데이터베이스 설계 단계 | 데이터 모델링

2025. 1. 23. 17:52Database/Database

 

데이터 모델링

  • 현실 세계에 존재하는 데이터를, 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정.
  • 데이터베이스 설계의 핵심 단계이다. 
  • 과정: 현실 세계 –[개념적 모델링]-> 개념 세계 –[논리적 모델링]-> 컴퓨터 세계
    • 개념적 모델링: 현실 세계의 데이터에서 중요 데이터를 추출하여 개념 세계로 옮기는 작업
    • 논리적 모델링: 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업

데이터 모델

    • 의미: 데이터 모델링의 결과물을 표현하는 도구.
    • 종류
      • 개념적 데이터 모델: 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 데이터 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구. (예: ‘개체-관계 모델’) 
      • 논리적 데이터 모델: 개념적 구조를 논리적 데이터 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구. (예: ‘관계 데이터 모델')
    • 구성: 데이터 모델 = 데이터 구조 + 연산 + 제약조건
      • 데이터 구조: 자주 변하지 않고 정적임
      • 연산: 데이터 구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업으로, 값이 연산에 의해 계속 변경될 수 있으므로 동적이다.
      • 제약조건: 구조적 측면의 제약 사항과 연산을 적용하는 경우 허용할 수 있는 의미적 측면의 제약 사항이 있다.
    • 데이터 모델링과 데이터 모델의 개념 이해하기
      • 데이터베이스 설계 = 개념적 데이터 모델링 + 논리적 데이터 모델링
      • 아파트 건설 단계: 설계도 그리기 -> 모델하우스 만들기
        • 사람들의 요구 사항을 반영하는 설계도 작성 과정: 개념적 데이터 모델링
        • 설계도를 그릴 때 사용하는 방법이나 도구: 개념적 데이터 모델
        • 설계도를 토대로 모델하우스를 만드는 과정: 논리적 데이터 모델링
        • 모델하우스를 만들 때 사용하는 방법이나 도구: 논리적 데이터 모델

 

논리적 데이터 모델의 종류

  • 정의: 데이터베이스 모델은 데이터를 어떻게 구조화하고 조직화할지에 대한 개념적인 설계 방식. 데이터베이스를 어떻게 저장할 것인지, 데이터 간의 관계를 어떻게 정의할 것인지를 정하는 틀이다. 
  • 목적: 데이터를 저장하고 처리하는 방법에 대한 구조적인 틀을 제공. 즉, 데이터가 어떻게 저장되고, 서로 어떤 관계를 가지며, 어떻게 관리될지에 대한 규칙을 정의하는 것이다.

 

데이터베이스 모델의 변천 과정

 

1. 파일시스템(File System)

  • 방식: 데이터를 단순히 파일로 저장. 각각의 파일이 독립적으로 존재하며 데이터 간의 연결 관계를 표현하지 않음.
  • 사용 예시:
    • 메모장(txt 파일)이나 엑셀(csv 파일) 같은 방식으로 데이터를 저장.
    • 과거의 단순 고객 명단이나 재고 관리 문서를 파일로 관리하던 시절.
  • 문제: 데이터의 중복, 검색 속도 저하, 데이터 관계를 표현하기 어려움.

2. 계층 데이터 모델(Hierarchical Data Model)

  • 방식: 데이터를 트리 구조로 표현하며 부모-자식 관계로 연결. 각 데이터 항목은 하나의 부모만 가질 수 있음.
  • 사용 예시:
    • IBM의 IMS(Information Management System): 초창기 계층형 데이터 모델 기반 DBMS.
    • XML 데이터베이스: 문서를 계층 구조로 표현하여 데이터를 저장.
  • 문제: 부모-자식 관계로 인해 유연성이 떨어지고, 데이터 항목 간 복잡한 관계를 표현하기 어려움.

3. 네트워크 데이터 모델(Network Data Model)

  • 방식: 계층형 모델의 제한을 극복하여 하나의 데이터 항목이 여러 부모와 연결될 수 있는 그래프 구조.
  • 사용 예시:
    • CODASYL DBMS(Network Database Management Systems): 네트워크 데이터 모델 기반 DBMS.
    • IDMS(Integrated Database Management System): 네트워크 데이터 모델을 지원하는 초기 DBMS.
  • 문제: 구조가 복잡하고, 데이터를 처리하는 데 높은 학습 곡선이 요구됨.

4. 관계 데이터 모델(Relational Data Model)

  • 방식: 데이터를 테이블(표)로 구성하고, 테이블 간 관계를 키(Primary Key, Foreign Key)로 정의.
  • 사용 예시:
    • MySQL, PostgreSQL, Oracle, Microsoft SQL Server 등 현대적인 관계형 DBMS.
    • 데이터베이스 테이블 예: Employees 테이블, Departments 테이블.
  • 문제: 테이블 간 복잡한 관계를 처리하거나 대규모 데이터를 다룰 때 성능 최적화가 필요함.

 

5. 객체 데이터 모델(Object Data Model)

  • 방식: 객체 지향 개념(캡슐화, 상속, 다형성)을 데이터 모델에 적용. 데이터를 객체로 관리하며, 동작(메서드)까지 포함해 데이터와 연관된 모든 것을 하나의 단위로 처리.
  • 사용 예시:
    • ObjectDB: 객체 데이터 모델을 따르는 대표적인 DBMS.
    • 객체 저장 예: 학생(Student) 객체에 이름, 학번, 과목 리스트를 함께 저장.
  • 문제: 관계형 데이터베이스에 비해 덜 널리 사용되며, 기존 시스템과 호환성 문제가 있음.

 

6. 객체-관계 데이터 모델(Object-Relational Data Model)

  • 방식: 객체 모델과 관계형 모델의 특징을 결합. 관계형 데이터베이스의 테이블 구조를 유지하면서 객체 지향 개념(상속, 다형성 등)을 추가로 지원.
  • 사용 예시:
    • PostgreSQL: 객체-관계 데이터 모델을 지원하는 대표적인 DBMS.
    • Oracle DB: 객체-관계 데이터를 지원하는 기능 제공.
    • 데이터 저장 예: 테이블 구조에서 JSON, XML, 사용자 정의 데이터 타입을 통해 객체 구조 데이터를 저장.
  • 문제: 복잡한 데이터 모델을 설계하고 관리하는 데 높은 수준의 기술과 노력이 필요함.

DB 모델, DB, DBMS 관계 정리 

(관계형 데이터베이스 모델을 예시로)

  • 관계형 데이터베이스 모델: 데이터 저장 설계 원칙. 데이터를 테이블(행과 열)로 구성하는 방식
  • 관계형 데이터베이스: 관계형 모델을 따라 만든 구체적인 데이터 저장소.
  • 관계형 DBMS: 관계형 데이터베이스를 관리하는 시스템 중 하나.
  • MySQL DBMS: 관계형 DBMS의 한 종류.
  • MySQL의 데이터베이스: MySQL DBMS에서 생성된 관계형 데이터베이스.