데이터 모델링 Data modeling
현실 세계의 개체 특성을 파악하고,
관계를 정의해 적절한 연산과 구조체계를 만들어가는 과정을 말한다.
종류
1) 정보 모델링 Information Modeling
- 현실을 추상화하여 데이터모델을 만듦.
2) 데이터 모델링 Data Modeling
- 컴퓨터가 이해하기 쉽게 데이터모델을 만듦.
데이터 모델 Data model
그렇다면 데이터 모델이란 무엇인가.
건설업자들은 모델하우스라는 도구를 통해 이해를 돕고 투자를 이끈다.
마찬가지로 데이터 모델도 모델하우스처럼 데이터 구조를 표현하기 위한 도구다.
즉, 데이터 구조를 효과적으로 표현하기 위한 도구들의 집단을 일컫는다.
종류
개념적 데이터 모델 | 논리적 데이터 모델 |
E-R 모델 | 관계형 데이터 모델 |
이진 모델 | 계층형 데이터 모델 |
의미적 데이터 모델 | 네트워크형 데이터 모델 |
정보 논리 모델 | 객체지향형 데이터 모델 |
함수적 데이터 모델 |
1) E-R 모델(Entity-Relationship Model)
: 개체와 관계로 현실을 개념적으로 표현한 모델로, 대표적인 개념적 데이터 모델이다.
- 개체(Entity)는 현실에 존재하는 객체를 의미한다. (ex. 학생, 과목 등)
- 관계(Relationship)는 개체 사이의 연관 행위를 의미한다. (ex. 등록, 수강 등)
- E-R 모델의 E-R 다이어그램은 기호로 표현되는 특징이 있다.
- 기본키(Primary Key)는 해당 속성(Attribute)의 대표되는 값으로다른 튜플들과 구별될 수 있는 식별자 역할을 한다.
- 사상(Mapping)은 개체 간 대응관계를 말하며,1:1 / 1:N / N:1 / N:M 형태로 구분할 수 있다.
(그림 1. E-R 다이어그램)
- 학생 개체는 과목 개체에 1:N 수강관계가 있으므로
과목은 많은 학생들 받을 수 있게된다.
- 학생 개체의 학번 속성은 기본키가 되므로, 동명이인이라도 구분가능하다.
2) 관계형 데이터 모델(Relational Data Model)
: 관계형은 릴레이션(Relation)으로 표현한 데이터 모델이다.
- 릴레이션(Relation)은 하나 이상의 속성정보를 담은 테이블을 의미한다.
- 기본키(Primary key)와 외래키(Foreign key)로 관계를 표현한다.
- 외래키는 다른 릴레이션의 기본키를 참조하는 것을 말한다.
그림1. E-R 다이어그램을 논리적 데이터 모델인 관계형 데이터모델로 변경해보면 다음과 같다.
릴레이션 | 기본키 | 외래키 |
학생 | 학번 | |
과목 | 과목코드 | |
수강 | 학번, 과목코드 |
(표 1. 관계형 데이터 모델)
3) 계층형 데이터 모델(Hierarchical Data Model)
: 트리 형태로 표현한 데이터 모델이다.
때문에 트리(Tree)구조가 어떤 구조인지 알고가면 이해에 도움이 된다.
그림처럼 나무를 거꾸로 할 때,
뿌리가 가장 높은 곳에 위치하고 점점 아래로 가지를 펴며 퍼진다.
이러한 트리 구조에서 깊이를 레벨(Level)이라 하고,
최상단 하나의 뿌리를 루트(Root; 뿌리)라고 하며 가지 끝을 노드라고 한다.
- 계층형 데이터 모델은 레코드라는 노드로 이루어져 있고, 종속관계가 형성된다.
- 순서가 존재하고 포함관계에 있으므로 상위 레벨에서 삭제가 이루어지면 연결된 하위 레벨도 삭제된다.
표1. 관계형 데이터 모델을 계층형 구조로 바꿔보면 다음과 같다.
트리 형태의 이해를 돕기위해 대학교 릴레이션을 추가했다.
같은 학교 안에 속해있는 학생과 과목개체가 있고,
학생은 수강과목, 과목엔 수강생이 있다.
만약 과목이 사라질 경우 수강생 정보가 사라지므로 종속관계에 있음을 알 수 있다.
4) 네트워크형 데이터 모델(Network Data Model)
: 그래프 형태로 표현한 데이터 모델이다.
- 그래프 형태이므로 관계 표현에 용이하나 복잡해질 수 있다.
- 확장에 어려움이 있어 실제론 잘 사용되지 않는다.
'IT > 데이터베이스' 카테고리의 다른 글
데이터베이스 :: 관계 대수와 관계 데이터 연산 (1) | 2016.03.01 |
---|---|
데이터베이스 :: 관계형 데이터베이스의 개념 (0) | 2016.02.29 |
데이터베이스 :: 이상(Anomaly)과 데이터 정규화 (0) | 2016.02.24 |
데이터베이스 :: 스키마 (0) | 2016.02.22 |
데이터베이스 :: 특징과 용어 (0) | 2015.12.28 |