728x90
반응형
ER 관계 사상 알고리즘
ER 모델이 실제 DB로 구축되기 위하여 논리적 모델링 단계를 거치는데, 이 단계에서 사상(mapping)이 이루어진다.
ER 모델을 관계 데이터 모델로 만드는 단계를 사상(mapping)이라고 한다.
사상(mapping)에는 7개의 알고리즘 단계가 있다.
단계 | 사상할 대상 | 구분 |
1단계 | 개체 타입 | 강한 개체 타입 |
2단계 | 약한 개체 타입 | |
3단계 | 관계 타입 | 이진 1:1 관계 타입 |
4단계 | 이진 1:N 관계 타입 | |
5단계 | 이진 N:M 관계 타입 | |
6단계 | 속성 | N진 관계 타입 |
7단계 | 다중값 속성 |
1단계) 정규 엔티티 타입과 단일 값 애트리뷰트
- ER Schema의 각 정규 엔티티 타입 E에 대해 하나의 Relation R 생성
- E에 있던 단순 애트리뷰트들을 Relation R에 모두 포함시킴
- E에서 복합 애트리뷰트는 그 복합 애트리뷰트를 구성하는 단순 애트리뷰트들만 R에 포함시킴
- E의 기본키가 Relation의 기본키가 됨
2단계) 약한 엔티티 타입과 단일 값 애트리뷰트
- ER Schema에서 소유 엔티티 타입 E를 갖는 각 약한 엔티티 타입 W에 대하여 Relation R 생성
- W에 있던 모든 단순 애트리뷰트들을 Relation R에 포함시킴
- 소유 엔티티 타입 E에 해당하는 Relation의 기본키를 약한 엔티티 타입 W에 해당하는 Relation에 외래키로 포함시킴
- 약한 엔티티 타입 W에 해당하는 릴레이션의 기본키는
- 약한 엔티티 타입 W의 부분키와
- 소유 엔티티 타입 E의 Relation을 참조하는 외래키의 조합으로 이루어짐
3단계) 2진 1:1 관계 타입
- 2진 1:1 관계 타입 R에 대하여, R에 참여하는 엔티티 타입에 대응되는 Relation S와 T를 찾는다.
- 둘 중 더 중요한 것을 S로 정하면 된다.
1) S와 T 중에서 하나 선택
→ (ex. S선택) 선택하지 않은 것(T)의 기본키를 선택한 것(S)에 외래키 역할로 포함시킴
- 다른쪽 키를 당기는 쪽이 더 우수하다고 여김.
2) 가능한, S와 T 중에서 관계 타입에 완전하게 참여하는 Relation을 S의 역할을 하는 걸로 선택 (참조무결성)
- 관계 타입 R이 가지고 있는 모든 단순 애트리뷰트들을 S에 대응되는 Relation에 포함시킴
- 두 엔티티 타입 S, T가 관계 타입 R에 완전하게 참여할 때는?
- 두 엔티티 타입과 관계 타입을 하나로 묶어서, 하나의 Relation으로 합치는 방법도 가능
4단계) 정규 2진 1:N 관계 타입
• 정규 2진 1:N 관계 타입 R에 대하여,
- N측의 참여 엔티티 타입에 대응 되는 Relation S측을 찾고, 1측 - T측을 찾는다.
• 1측인 T의 기본 키를 N측인 S에 외래키로 포함시킨다.(N측인 S를 중심으로, 1측인 T의 기본키를 영입)
5단계) 2진 M:N 관계 타입
- 2진 M:N관계 타입 R에 대해서는 Relation R을 생성한다.
- 참여 엔티티 타입에 해당하는 Relation의 기본키를 Relation R에 외래키로 포함시키고,
- 이들의 조합이 Relation R의 기본키가 된다.
6단계) 3진 이상의 관계 타입
- 3진 이상의 각 관계 타입 R에 대하여 Relation R을 생성한다.
- 관계 타입 R에 참여하는 모든 엔티티 타입에 대응되는 Relation들의 기본키를 Relation R에 외래키로 포함시킨다.
- 관계타입 R이 가지고 있는 모든 단순 애트리뷰트들을 Relation R에 포함시킨다.
- 일반적으로 외래키들의 조합이 Relation R의 기본키가 된다.
- 관계타입 R에 참여하는 엔티티 타입들의 카디날리티가 1:N:N이면, 카디날리티가 1인 Relation의 기본키를 참조하는 외래키가 Relation R의 기본키가 된다.
7단계) 다치 애트리뷰트
- 각 다치 애트리뷰트에 대하여 Relation R 생성한다.
- 애트리뷰트들을 Relation R에 포함시키고,
- 다치 애트리뷰트를 애트리뷰트로 갖는 엔티티 타입이나 관계 타입에 해당하는 Relation의 기본키를 Relation R에 외래키로 포함시킨다.
- Relation R의 기본키는 다치 애트리뷰트와 외래키의 조합이다.
참고 자료
728x90
반응형