본문 바로가기

Tools & Tips

DB - ER(Entity RelationShip)모델 및 다이어그램 정리

1. 정의 
- 사물을 개체(Entity)와 개체간의 관계(=Relationship)로 표현

커플을 예로들면
남자친구 - 개체(Entity)
여자친구 - 개체(Entity)
사귄다 - 관계(Relationship)

2. E-R다이어그램  :  ER모델을 표준화된 그림으로 나타낸 것 

E - R 다이어그램 예제

3. 개체
- 독립적인 실체 (사람,사물,장소,개념,사건 등)
- 각각의 데이터 값을 가지며, 변하는 것도 있음
- 비슷한 속성의 개체 타입이 있으며, 개체 집합으로도 묶인다.

껌를 예로들자면
자일리톨 껌 - 개체(Entity)
풍선 껌 - 개체(Entity)
껌 - 개체 타입(Entity Type)
껌들이 담겨져 있는 통 - 개체 집합(Entity Set)

4. 속성
- 개체가 가진 성질

위의 껌을 예로들자면
껌의 색 = 속성(Attribute)
껌의 맛 = 속성(Attribute)
껌의 이름(자일리톨) = 속성(Attribute)
껌의 종류 = 속성(Attribute)

5. 관계 
- 개체 사이의 연관성을 나타내는 개념
6. 관계타입
- 개체 타입과 개체 타입간의 연결 가능한 관계를 정의한 것 , (관계 집합 = 관계로연결 된 집합)

7.관계 대응수
-개체 타입의 관계에 실제로 참여하는 개별 개체수(1:1/多:1 /1:多 / 多:多)

8. 표기법



위의 ER 다이어그램으로는 복잡한 현실 세계를 표현하기에 충분하지 않다.
대용량 데이터, GIS, Multimedia, 객체 지향 등 대용량 표현에 한계가 있으며
재사용, 상속과 확장성의 개념 등이 없다.
이들을 해결하기 위해 Extended ER 모델로 발전하게 된다.


전문화(specialization), 일반화(generalization), 집단화(aggregation) 등의 모델을 추가하여
확장된 개체-관계 모델(Extended E-R Model, EER)이 개발되었다.

9. E-R 다이어그램 작성절차

 1. Entity 도출

 명사형, 집합형을 이루고 대표성을 갖는 Entity 도출 
 예) 학생, 학과, 교수

 2. Relationship 도출 

 Entity와 entity 간의 관계 도출
 예) 학생은 학과에 소속된다.

 3. Attribute 도출 

 Entity의 상세 속성 도출
 예) 학생 = {학번, 이름, 학과, ...

 4. Cardinality 도출 

 두 Entity 간의 관계에서 참여자의 수를 비율로 표시
 예) 1 : 1, 1 : N, N : M 

 5. 식별자 도출

 기본키, 외래키, 수퍼키, 후보키, 대체키 등에 대한 정의 

 6. 정규화

 1차, 2차, 3차, BCNF, 4차, 5차 정규화 

 7. 통합/분할 

 Entity type의 성격에 따라 통합, 분할 수행 

 8. Data 모델 검증

 Entity type 속성 관계 등에 대한 적합성 검증 

10. 사상(Mapping)

이런 개념적 모델을 컴퓨터가 이해할 수 있는 논리적 데이터 모델(logical data model)로 변환하여야 한다.
매핑의 내용을 아래 표와 같이 정리한다.

E-R 모델

관계형 모델

개체 타입

릴레이션

속성

단순속성

속성

복합속성

단순 속성들의 집합

키 속성

기본키 또는 보조키

속성값의 집합

도메인

관계

이진 관계성 (Binary Relationship)

일대일(1:1) 관계

1:1 양방향 의무적 참여

두 관계를 하나로 통합.
기본키는 통합되기 전의 두 관계의 기본키 중 어느 한쪽.

1:1 한쪽은 선택적, 다른 한 쪽은 의무적 참여

선택적 측 관계의 기본키를 의무적 측에 외래키로 포함.

1:1 양쪽 모두 선택적 참여

기존 두 관계의 기본키로 구성되는 새로운 관계 생성.
새 관계의 기보키는 기존 두 관계의 기본키 중 어느 한쪽 사용.

일대다(1:N) 관계

N측 의무적 참여

1측의 PK N측의 FK로 설정

N측 선택적 참여

- 두 관계의 PK로 구성된 새로운 관계를 생성.
- 새 관계의 PK는 다측 관계의 기본키.

M:N 관계

- 두 릴레이션의 PK로 구성된 릴레이션을 생성.
- 새로운 릴레이션의 PK는 두 릴레이션의 PK를 결합하여 사용한다.
- 복합키를 구성.

순환 관계성

일대다(1:N) 관계

- 다측이 의무적 관계일 경우 일측 관계의 기본키를 다측 관계의 외래키로 포함.
- 
다측이 선택적 관계일 경우 기존 두 관계의 기본키로 구성되는 새로운 관계를 생성하며, 새로운 릴레이션의 기본키로는 다측의 기본키를 사용.

M:N 관계

기존 두 관계의 기본키로 구성되는 새로운 관계를 생성하며, 새로운 릴레이션의 기본키로는 다측의 기본키를 사용.

특수 속성/개체

약한 개체 타입

강한 개체타입의 기본키와 약한 개체타입의 부분키(partial key)로 식별.

복합 속성

- 복합속성의 개개 속성이 중요한 의미를 가지는 경우에는 나누어서 표현.
- 
전체를 사용할 때에는 단순속성으로 표현.

다중값 속성

1. 새로운 릴레이션을 생성.
2. 생성된 릴레이션을 다중값 속성과 원래 릴레이션의 기본키 값으로 구성.
3. 원래 릴레이션에서 다중값 속성이 빠진다.