목록

2019년 2월 8일 금요일

[데이터베이스] 7. 데이터 모델링, 데이터 모델이란? (데이터 모델의 정의, 종류, 구성요소)






1. 데이터 모델링이란?


  • 현실 세계에 존재하는 데이터를 컴퓨터 내 데이터베이스 구축을 위해 단순화 하여 옮기는 과정이다.
  • 사용자의 요구사항을 조사하고 이를 개체, 관계, 속성을 중심으로 체계적으로 표현하고 문서화 하는 기법을 데이터 모델링이라고 한다.
  • 데이터베이스 설계의 과정 중 핵심 단계.
     


2. 데이터 모델이란?

  • 데이터 모델링의 결과물(데이터의 구조, 스키마)을 표현하는 도구이다.

현실 세계 ---> 개념적 구조 ---> 논리적 구조



2-1. 개념적 데이터 모델 = 정보 모델
  • 사람의 머리로 이해할 수 있도록 현실 세계를 개념적인 형태로 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구이다.
  • 속성들로 기술된 개체 타입과 이 개체 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
  • ex) 개체-관계 모델(E-R 모델)


2-2. 논리적 데이터 모델
  • 개념적 구조를 논리적 형태로 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구이다.(데이터베이스의 논리적 구조 = 데이터베이스 스키마)
  • 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계를 이용하여 현실 세계를 표현하는 방법이다.
  • 단순히 데이터 모델이라고 하면 논리적 데이터 모델을 의미한다.
  • ex) (데이터 간의 관계를 어떻게 포현하느냐에 따라) 관계형 데이터 모델, 계층형 데이터 모델, 네트워크형 데이터 모델



3. 개념적 데이터 모델


3-1. 개체-관계(E-R) 모델
  • 개념적 데이터 모델의 대표적인 예.
  • 피터 첸(Peter Chen)에 의해 1976년에 제안되었다.
  • 개체 타입과 개체 간의 관계를 이용해 현실 세계를 개념적으로 표현하는 방법.
  • 데이터를 개체, 관계, 속성으로 묘사한다.
  • 특정 DBMS를 고려한 것이 아니기 때문에 관계 표현에 제한이 없다. 
  • E-R 다이어그램으로 표현한다.

* E-R 다이어그램



4. 논리적 데이터 모델


4-1. 관계형 데이터 모델
  • 계층 모델과 망 모델의 복잡한 구조를 단순화시킨 모델로 가장 개념이 단순하고 일반적으로 많이 사용되는 논리적 데이터 모델이다.
  • IBM 연구소에 근무하던 E.F.Codd가 1970년에 관계 데이터 모델을 제안했다.
  • 관계형 데이터 모델을 최초로 구현한 RDBMS 시제품은 1970년 대에 IBM 연구소에서 개발된 System R 이다.
  • 1980년대 후반부터 여러가지 데이터 모델들이 새로 등장했지만 관계 DBMS는 여전히 가장 널리 사용된다.(Oracle, MS-SQL, Informix, Sybase 등)
  • 관계형 데이터 모델은 동일한 구조(릴레이션)의 관점에서 모든 데이터를 논리적으로 구성한다.
  • 선언적인 질의어를 통한 데이터 접근을 제공하며, 사용자는 원하는 데이터만 명시하고, 어떻기 이를 찾을 것인가는 명시하지 않아도 된다.
  • 높은 데이터의 독립성을 제공하는 것에 목적을 둔다.
  • 논리적으로 연관된 데이터를 연결하기 위해 링크나 포인터를 사용하지 않는다.
  • 표(Table)를 이용하여 데이터 상호 관계를 정의하는 DB구조이다.
  • 데이터 간의 관계를 기본기(Primary Key)와 이를 참조하는 외래기(Foreign Key)로 표현한다.
  • 1:1, 1:N, N:M 관계를 자유롭게 표현할 수 있다.
  • 장점 : 간결하고 보기 편리하며, 다른 데이터베이스로의 변환이 용이하다.
  • 단점 : 다소 성능이 떨어진다.


4-2. 계층형 데이터 모델
  • 데이터의 논리적 구조도가 트리 형태이며, 개체가 트리를 구성하는 노드 역할을 한다.
  • 개체 집합에 대한 속성 관계를 표시하기 위해 개체를 노드로 표현하고 개체 집합들 사이의 관계를 링크로 연결한다.
  • 개체 간에 상하 관계가 성립하며, 부모와 자식으로 표현한다.
  • 부모와 자식 개체는 1:N 대응 관계만 존재하며 두 개체 사이에는 하나의 관계만 정의할 수 있다.
  • 레코드 삭제 시 연쇄 삭제(Triggered Delete)가 된다.
  • 개체 타입들 간에는 사이클(Cycle)이 허용되지 않는다.
  • 계층형 모델에서는 개체를 세크먼트라고 부른다.
  • 대표적인 DBMS는 IMS이다.


4-3. 네트워크(망, 그래프)형 데이터 모델
  • CODASYL이 제안한 데이터 모델로, CODASYL DBTG 모델이라고도 한다.
  • 그래프를 이용해서 데이터 논리 구조를 표현한 데이터 모델이다.
  • 상위, 하위 레코드 사이에서 N:M 대응 관계를 만족하는 구조이다.
  • 상위의 레코드를 Owner, 하위의 레코드를 Member라 부르며 Owner-Member 관계라고도 한다.
  • 레코드 타입 간의 관계는 1:1, 1:N, N:M 이 될 수 있다.
  • 대표적인 DBMS는 DBTG, EDBS, TOTAL 등이 있다.



5. 데이터 모델에 표시할 사항

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



6. 데이터 모델의 구성요소


6-1. 개체(Entity)
  • 데이터베이스에 표현하려는 것으로, 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체이다.
  • 유형, 무형의 정보로, 서로 연관된 몇 개의 속성으로 구성된다.
  • 파일 시스템의 레코드에 대응하는 것으로, 어떤 정보를 제공하는 역할을 수행한다.
  • 실제 세계에 독립적으로 존재하거나 그 자체로서도 구별이 가능하다.


6-2. 속성(Attribute)
  • 데이터의 가장 작은 논리적 단위로서 파일 구조의 데이터 항목 또는 데이터 필드에 해당된다.
  • 개체를 구성하는 항목이다.


6-3. 관계(Relationship)
  • 개체 간의 관계 또는 속성 간의 관계이다.


* 데이터 모델의 구성요소를 E-R 다이어그램으로 표현하면...
- 학생이라는 개체는 학번, 학생명과 같은 속성을 가진다. 
- 개체 타입(Entity Type) : 개체를 고유의 이름과 속성들로 정의한 것으로 파일 구조의 레코드 타입에 대응된다.
  ex) 학생(학번, 학생명) 
- 개체 인스턴스(Entity Instance) : 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체로 개체 어커런스라고도 한다. 개체 인스턴스는 파일 구조의 레코드 인스턴스에 대응된다.
  ex) [110234, 김당근]
- 개체 집합(Entity Set) : 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것이다.
  ex) [110234, 김당근], [110553, 이감자], [131147, 박연근] ...





댓글 없음:

댓글 쓰기