[데이터베이스] ER 관계 사상(mapping) 알고리즘 7단계

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진 이상의 관계 타입

  1. 3진 이상의 각 관계 타입 R에 대하여 Relation R을 생성한다.
  2. 관계 타입 R에 참여하는 모든 엔티티 타입에 대응되는 Relation들의 기본키를 Relation R에 외래키로 포함시킨다.
  3. 관계타입 R이 가지고 있는 모든 단순 애트리뷰트들을 Relation R에 포함시킨다.
  4. 일반적으로 외래키들의 조합이 Relation R의 기본키가 된다.
  5. 관계타입 R에 참여하는 엔티티 타입들의 카디날리티가 1:N:N이면, 카디날리티가 1인 Relation의 기본키를 참조하는 외래키가 Relation R의 기본키가 된다.


 

7단계) 다치 애트리뷰트

  • 각 다치 애트리뷰트에 대하여 Relation R 생성한다.
  • 애트리뷰트들을 Relation R에 포함시키고, 
  • 다치 애트리뷰트를 애트리뷰트로 갖는 엔티티 타입이나 관계 타입에 해당하는 Relation의 기본키를 Relation R에 외래키로 포함시킨다.
  • Relation R의 기본키는 다치 애트리뷰트와 외래키의 조합이다.

 

 


 

참고 자료

https://jie0025.tistory.com/114

728x90
반응형