데이터 모델

Data Model
데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형
  • 데이터 모델링: 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업

1. 구분[편집]

  • 개념적 데이터 모델
    • 현실세계에 대한 인식을 추상적인 개념으로 표현
    • 인간이 이해할수 있는 정보 구조로 표현
    • 대표적으로 개체-관계(E-R) 모델
  • 논리적 데이터 모델
    • 구현 모델이라고도 함
    • 개념 데이터 모델링의 개념 구조를 컴퓨터가 이해할 수 있도록 변환한 구조
    • 필드, 데이터타입 등으로 개념적 모델 구현
    • 관계 모델, 계층 모델, 네트워크 모델 등으로 구분
  • 물리적 모델
    • 성능과 직접적인 연관
    • 하위수준의 데이터 모델로 데이터가 저장되는 방법을 표현
    • 레코드형식, 레코드 순서, 접근경로, 저장방법에 관한 전무가가 정의

2. 구성 요소[편집]

  • 구조(Structure)
    • 데이터베이스에 표현될 대상으로서의 개체 타입과 개체 타입들간의 관계
    • 데이터 구조 및 정적 성질
  • 연산(Operation)
    • 저장된 실제 데이터를 처리하는 방법
    • 데이터를 조작하는 기본 도구
  • 제약조건(Constraint)
    • 저장될 수 있는 데이터의 논리적인 제약조건

3. 표현 용어[편집]

  • 개체(Entity)
    • 행, 튜플
    • 카디날리티(Entity): 개체의 수
  • 속성(Attribute)
    • 열, 필드
    • 디그리(Degree): 속성의 수
  • 관계(Relation)

4. 종류[편집]

4.1. 관계형 데이터 모델[편집]

상세 구현 모델은 관계형 데이터베이스 참조
  • 표(Table)을 이용해 데이터 관계를 정의
  • 데이터간의 관계를 Key를 통해 구성
  • 1:1, 1:N, N:M 관계를 자유롭게 표현
  • 간결하고 명확하고 상호변환성이 좋지만 성능이 떨어진다.
  • 대표 DBMS: 오라클, MySQL, MsSQL, SQLite, 포스트그레

4.2. 계층형 데이터 모델[편집]

  • 트리 형태의 논리적 구조를 가지며, 개체는 트리의 노드로 표현
  • 개체간의 관계를 링크로 표현되며 부모-자식 관계를 가짐
  • 1:N 대응관계만 존재
  • 레코드 삭제 시 연쇄 삭제(Triggered Delete)가 이루어짐
  • 개체들 간 Cycle이 허용되지 않음
  • 개체(Entity)를 세그먼트(Segment)라 지칭
  • 대표 DBMS: IMS

4.3. 네트워크형 데이터 모델[편집]

  • 망형 모델, 그래프형 모델이라고도 불린다.
  • CODASYL이 제안한 모델로, CODASYL 모델이라고도 한다.
  • 대표적인 DBMS가 DBTG로, DBTG 모델이라고도 한다.
  • 그래프를 이용해서 데이터 논리 구조를 표현
  • 상하위 레코드는 N:M 대응 관계
  • 상위 레코드를 Owner, 하위 레코드를 Member라 지칭
    • 이러한 구조 때문에 Owner-Member 모델이라고도 한다.
  • 대표 DBMS: DBTG, EDBS, TOTAL

5. 데이터 모델링[편집]