Chapter 4. 데이터 모델링(Data Modeling)¶
1절. 데이터 모델링
2절. 데이터 모델
3절. 개체-관계 모델
4절. 논리적 데이터 모델
1절. 데이터 모델링¶
데이터 모델링(Data Modeling)¶
- 현실 세계에 존재하는 데이터를 컴퓨터 세계 데이터베이스로의 변환 과정
- 데이터베이스 설계 핵심 과정
2단계 데이터 모델링¶
| 종류 | 설명 |
|---|---|
| 개념적 데이터 모델링 (Conceptual Modeling) |
현실 세계 중요 데이터를 추출하여 개념 세계로 옮기는 작업 |
| 논리적 데이터 모델링 (Logical Modeling) |
개념 세계 데이터를 데이터베이스에 저장하는 구조로의 표현 작업 |
데이터 모델링 개념¶
2절. 데이터 모델¶
데이터 모델(Data Model)¶
- 데이터 모델링 결과물 표현 도구
| 종류 | 설명 | 예시 |
|---|---|---|
| 개념적 데이터 모델 |
사람이 이해하도록 현실 세계를 개념적 모델링하여 데이터베이스 개념적 구조로 표현하는 도구 | 개체-관계 모델 |
| 논리적 데이터 모델 |
개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구 | 관계 데이터 모델 |
3절. 개체-관계 모델¶
개체-관계 모델(E-R model : Entity-Relationship model)¶
- 피터 첸(Peter Chen)의 개념적 데이터 모델
- 개체와 개체 간 관계로 현실 세계를 개념적 구조로 표현
- 핵심 요소 : 개체 · 속성 · 관계
개체-관계 다이어그램(E-R diagram)¶
- E-R 다이어그램
- 개체-관계 모델을 통해 현실 세계를 개념적으로 모델링한 결과물을 그림 표현
개체(Entity)¶
- 현실 세계에서 조직 운영에 꼭 필요한 사람 · 사물처럼 구별되는 모든 것
- 중요 데이터를 가진 사람· 사물 · 개념 · 사건 등
- 다른 개체와 구별되는 이름 보유
- 각 개체만의 고유한 특성 · 상태
- 모든 개체는 속성을 최소한 하나 이상 보유
- 파일 구조 레코드(record)와 대응
- 개체 예시
| 설명 | 개체 |
|---|---|
| 서점에 필요한 개체 | 고객 · 책 |
| 학교에 필요한 개체 | 학과 · 과목 |
- E-R 다이어그램 : 사각형 표현
- 사각형 안에 이름 표기
개체 세부 사항¶
개체 타입(Entity Type)¶
- 개체를 고유 이름 · 속성들로 정의
- 파일 구조의 레코드 타입(record type)에 대응
개체 인스턴스(Entity Instance)¶
- 개체 구성 속성이 실제 값을 가짐으로써 실체화된 개체
- == 개체 어커런스(entity occurrence)
- 파일 구조 레코드 인스턴스(record instance)에 대응
개체 집합(Entity Set)¶
- 특정 개체 타입 개체 인스턴스들의 집합
속성(Attribute)¶
- 개체 · 관계가 가지는 고유 특성
- 의미 있는 데이터의 가장 작은 논리적 단위
- 파일 구조 필드(field)에 대응
- E-R 다이어그램 : 타원 표현
- 타원 안에 이름 표기
속성 분류¶
단일 값 속성(Single-Valued Attribute)¶
- 하나의 값만 가지는 속성
| 예시 |
|---|
| 고객 개체 이름 |
| 적립금 속성 |
다중 값 속성(Multi-Valued Attribute)¶
- 여러 개의 값을 가지는 속성
- E-R 다이어그램에서 이중 타원 표현
| 예시 |
|---|
| 고객 개체 연락처 속성 |
| 책 개체 저자 속성 |
단일 값과 다중 값 속성¶
단순 속성(simple attribute)¶
- 의미를 더 분해할 수 없는 속성
| 예시 |
|---|
| 고객 개체 적립금 속성 |
| 책 개체의 이름 |
| ISBN |
| 가격 속성 |
복합 속성(composite attribute)¶
- 의미를 분해할 수 있는 속성
| 예시 |
|---|
| 고객 개체 주소 속성 : 도 · 시 · 동 · 우편번호 등으로 의미 세분화 |
| 고객 개체 생년월일 속성 : 연 · 월 · 일로 의미 세분화 |
단순 속성과 복합 속성¶
유도 속성(Derived Attribute)¶
- 기존의 다른 속성 값에서 유도되어 결정된 속성
- 값이 별도로 저장 X
- E-R 다이어그램에서 점선 타원 표현
| 예시 |
|---|
| 책 개체의 가격과 할인율 속성으로 계산되는 판매가격 속성 |
| 고객 개체의 출생연도 속성으로 계산되는 나이 속성 |
널 속성(NULL Attribute)¶
- 널(NULL) 값이 허용되는 속성
널(NULL) 값¶
- 아직 결정되지 않은 값
- 모르는 값
- 존재하지 않는 값
- 공백이나 0과는 상이
| 예시 |
|---|
| 등급 속성이 널(NULL) 값 -> 등급 미결정 |
키 속성(Key Attribute)¶
- 각 개체 인스턴스 식별 시 사용되는 속성
- 모든 개체 인스턴스의 키 속성 값은 상이
- 둘 이상의 속성들로도 구성
- E-R 다이어그램에서 밑줄 표현
| 예시 |
|---|
| 고객 개체의 고객아이디 속성 |
관계(Relationship)¶
- 개체와 개체가 맺는 의미 있는 연관성
- 개체 집합들 사이의 대응 관계, 매핑(mapping)
- E-R 다이어그램에서 마름모 표현
| 예시 |
|---|
| 고객 개체와 책 개체 간의 구매 관계 : "고객은 책을 구매한다" |
관계 유형 : 관계 참여 개체 타입 수 기준¶
| 관계 유형 | 설명 |
|---|---|
| 이항 관계 | 개체 타입 두 개가 맺는 관계 |
| 삼항 관계 | 개체 타입 세 개가 맺는 관계 |
| 순환 관계 | 개체 타입 하나가 자기 자신과 맺는 관계 |
관계 대응 수(Cardinality)¶
- 두 개체 타입 관계에 실제로 참여하는 개별 개체 수
| 타입 유형 | 설명 |
|---|---|
| 일대일 관계 | 하나의 개체가 하나의 개체에 대응 |
| 일대다 관계 | 하나의 개체가 다수의 개체에 대응 |
| 다대일 관계 | 다수의 개체가 하나의 개체에 대응 |
| 다대다 관계 | 다수의 개체가 다수의 개체에 대응 |
관계 유형 : 매핑 카디널리티 기준¶
일대일(1 : 1) 관계¶
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계 가능
- 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 하나와 관계 가능
일대다(1 : N) 관계¶
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 다수와 관계 가능
- 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 하나와 관계 가능
다대다(N : M) 관계¶
- 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 다수와 관계 가능
- 개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 다수와 관계 가능
매핑 카디널리티(Mapping Cardinality)¶
- 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺는 상대 개체 집합의 인스턴스 개수
관계 참여 특성¶
| 종류 | 설명 | 예시 | ERD |
|---|---|---|---|
| 필수적(전체) 참여 | 모든 개체 인스턴스가 반드시 참여 | 고객 개체가 책 개체와의 구매 관계에 필수적 참여 : 모든 고객은 책을 반드시 구매 | 이중선 |
| 선택적(부분) 참여 | 개체 인스턴스 중 일부만 관계에 참여 가능 | 책 개체가 고객 개체와의 구매 관계에 선택적 참여 : 고객에 구매하지 않은 책 존재 | 단일선 |
관계 종속성¶
| 종류 | 영문 | 설명 |
|---|---|---|
| 강한 개체 | Strong Entity | 다른 개체의 존재 여부를 결정하는 개체 |
| 약한 개체 | Weak Entity | 다른 개체의 존재 여부에 의존적인 개체 |
- 특징
- 강한 개체와 일반 개체는 대부분 일대다의 관계
- 약한 개체는 강한 개체와의 관계에 필수적 참여
- 약한 개체는 강한 개체의 키를 포함하여 키 구성
- ERD에서 약한 개체는 이중 사각형 표현
- 약한 개체가 강한 개체와 맺는 관계는 이중 마름모 표현
관계 종속성 예시¶
- 직원 개체와 부양가족 개체 사이의 부양 관계
- 직원 개체 : 강한 개체
- 부양가족 개체 : 약한 개체
E-R 다이어그램¶
| 요소 | 설명 |
|---|---|
| 사각형 | 개체 |
| 마름모 | 관계 |
| 타원 | 속성 |
| 링크(연결선) | 각 요소 연결 |
| 레이블 | 일대일, 일대다, 다대다 관계 |
IE 표기법¶
IE 표기법 관계¶
4절. 논리적 데이터 모델¶
논리적 데이터 모델 개념¶
- ERD로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적 구조
- 데이터베이스의 논리적 구조 == 데이터베이스 스키마(Schema)
- 사용자가 생각하는 데이터베이스의 모습 또는 구조
- 관계 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델 등
관계 데이터 모델(Relational Data Model)¶
- 일반적으로 많이 사용되는 논리적 데이터 모델
- 데이터베이스의 논리적 구조가 2차원 테이블 형태
계층 데이터 모델(Hierarchical Data Model)¶
- 데이터베이스의 논리적 구조 : 트리(tree) 형태
- 루트 역할을 하는 개체가 존재하고 사이클은 미존재
- 개체 간 상하 관계 성립 : 일대다(1 : N) 관계만 허용
- 부모 개체
- 자식 개체
- 두 개체 사이 하나의 관계만 정의 가능
- 다대다(n:m) 관계 직접 표현 불가
- 구조가 복잡하며 데이터 삽입·삭제·수정·검색이 어려움
네트워크 데이터 모델(Network Data Model)¶
- 데이터베이스의 논리적 구조 : 네트워크, 그래프 형태
- 개체 간 관계 : 일대다(1:n) 관계만 허용
- 오너(owner)
- 멤버(member)
- 두 개체 사이 여러 관계를 정의하여 이름으로 구별
- 다대다(n:m) 관계 직접 표현 불가
- 구조가 복잡하며 데이터 삽입·삭제·수정·검색이 어려움