🗺 ER-to-Relational Mapping
Goals
- 모든 정보를 보존
- 최대한 가능한 만큼 제약조건들을 유지
- NULL 값들을 최소화
Step 1. Regular Entity Types
기존 엔터티의 attribute를 전부 포함하고, key attributes 중에서 하나를 골라 Primary key로 정한다.
만약, 고른 key가 composite이면 해당하는 attribute들 모두 Primary key로 정한다.
Step 2. Weak Entity Types
weak 엔터티의 attribute를 전부 포함
owner 엔터티의 Primary key를 Foreign key로 가지고,
owner 엔터티의 Primary key와 weak 엔터티의 Partial key를 Primary key로 가진다.
Step 3. Binary 1:1 Relation Types
상황에 따라 3가지 방법으로 가능하다.
1. Foreign key approach (2 relations)
주로 한쪽이 total participation일 때 사용
total participation인 쪽을 S, 반대를 T로 두면, T의 Primary key에 해당하는 Foreign key를 S에 만들어서 서로 연결시킨다.
2. Merged relation (1 relation)
둘다 total participation인 경우에, 두 entity를 하나의 relation으로 합친다.
3. Cross-reference or relationship relation (3 relations)
세 번째 relation U를 만들어서 S, T와 연결
S와 T의 Foreign key 중 하나를 U의 Primary key로 만들고, 나머지 Foreign key 하나는 U의 Unique key로 만든다.
추가적인 join operation이 필요
Step 4. Binary 1:N Relation Types
1-side의 Primary key를 N-side에 Foreign key로 가지고 서로 연결시킨다.
Step 5. Binary M:N Relation Types
relationship relation이라 불리는 새로운 relation U를 생성
각각 엔터티에서 Primary key들을 뽑아서 U의 Foreign key로 만들고 서로 연결
이 때, 이 key들은 U의 Primary key가 된다.
Step 6. Multivalued attributes
multivalued attribute A에 대해서, 새로운 relation U를 만든다.
U의 Foreign key로는, 원래 A attribute가 속했던 entity의 Primary key를 Foreign key로 가진다.
U의 Primary key로는, 위에 얘기한 Foreign key와 원래 attribute A, 이렇게 둘을 Primary key로 가진다.
Step 7. N-ary Relationship Types
N-ary relationship type R에서 n > 2 면, 새로운 relationship relation U를 생성
참여하는 모든 entity의 Primary key들을 U의 Foreign key로 가진다.
'CS > Database' 카테고리의 다른 글
[Database] Basic SQL Queries (2) | 2023.01.22 |
---|---|
[Database] SQL 기초 (1) | 2023.01.22 |
[Database] Relational Model (0) | 2023.01.22 |
[Database] Entity-Relationship(ER) Model (0) | 2023.01.22 |
[Database] Data Model & Schema (0) | 2023.01.22 |