[DB] 9. Relational Database Design by ER-to-Relational Mapping

SUbbb·2021년 10월 17일
0

DataBase

목록 보기
6/15
post-thumbnail

An ER Schema for COMPANY

The Relational Schema for COMPANY

Goals During ER-to-Relational Mapping

1) 모든 정보를 유지 (모든 attributes 포함)
2) 최대한 constraints를 유지 (모든 constraints를 relational model에서 유지될 수는 없음)
3) NULL 값들을 최소화 (이것이 logical에서 physical schema로 mapping하는 데 도움)

The ER-Relational Mapping Algorithm

Step 1: Mapping of Regular Entity Types

  • ER schema에서 각 strong entity type E에 대해, 새로운 relation R을 생성하고, E의 모든 simple attributes를 포함시킨다.
  • E의 key attributes 중 하나를 R의 primary key로 선택 (나머지는 SK(unique))
  • 선택한 key가 composite한 경우, 선택한 key의 simple attributes의 set이 R의 primary key를 구성
  • Example: The EMPLOYEE, DEPARTMENT, and PROJECT relations (mapped from the regular entities in the ER schema)

Step 2: Mapping of Weak Entity Types

  • ER schema에서 각 weak entity type W에 대해, 새로운 relation R을 생성하고, W의 모든 simple attributes를 R의 attributes로 포함시킨다.
  • 또한, owner entity type의 PK를 R의 FK로 포함시킨다.
  • owner의 PK와 weak entity type W의 partial key의 조합R의 PK가 된다.
  • Example: The DEPENDENT relation
    • PK: {Essn(FK), Dependent_name(Partial key)}

Step 3: Mapping of Binary 1:1 Relationship Types

  • ER schema에 있는 각 binary 1:1 relationship type R에 대해, 해당 relationship에 참여하는 relations S & T를 식별

3개의 가능한 options:
1) Foreign key approach (2 relations) option:

  • 한 relation S를 선택 (R에서 total participation으로 참여하고 있는 entity type을 선택하는 것이 good)
  • 다른 relation T의 PK를 S의 FK로 포함
  • Example: The MANAGES relationship type in the ER schema
    • Relation S: The DEPARTMENT entity type (total participation으로 참여하기 때문)
    • Relation T: The EMPLOYEE entity type
    • EMPLOYEE의 PK인 Ssn을 DEPARTMENT의 SK인 Mgr_ssn으로 가진다. (Mgr_ssn이 Ssn을 참조)

2) Merged relation (1 relation) option:

  • 1:1 relationship type에 대한 mapping을 two entity types와 relationship을 single relation으로 합침으로써 수행
  • entities가 서로 total participation인 경우 적절

3) Cross-reference or relationship relation (3 relation) option:

  • relation S & T의 PKs를 cross-referencing하기 위해 새로운 relation U를 생성
  • U의 PK는 S & T로부터의 FKs 중 하나
  • 또 다른 FK는 U의 unique key
  • 추가적인 join이 필요 -> 추가 정보를 얻기 위해 수행, overhead!

Step 4: Mapping of Binary 1:N Relationship Types

  • 각 binary 1:N relationship type R에 대해, N-side에 있는 relation S를 선택
  • relation T의 primary key를 S의 FK로서 포함
  • 1:N relation type의 simple attributesS의 attribute로 포함
  • Example: The WORKS_FOR relationship type in the ER schema
    • Relation S: The EMPLOYEE entity type (N-side)
    • Relation T: The DEPARTMENT entity type (1-side)
    • EMPLOYEE가 DEPARTMENT의 Dnumber(PK)를 참조하기 위해 Dno(FK)를 가짐

Step 5: Mapping of Binary M:N Relationsihp Types

  • 각 binary M:N relationship type R에 대해, 이를 표현할 새로운 relation U를 생성 (called relationship relation)
  • relationship에 참여하는 entity types의 PKs를 U의 FK attributes로 포함하고, 포함한 FKs의 combination이 U의 PK를 구성
  • M:N relationship type의 simple attributes를 U의 attributes로 포함
  • Example: The WORKS_ON relationship type in ER
    • FKs (Essn and Pno) -> EMPLOYEE & PROJECT relations으로부터 가져옴
    • PK: {Essn, Pno}
    • One attribute: Hours (WORKS_ON의 Hours attribute)

Step 6: Mapping of Multivalued Attributes

  • 각 multivalued attribute A에 대해, 이를 표현할 새로운 relation U를 생성
  • relation U는
    • A에 해당하는 attribute,
    • A를 attribute로서 가지는 entity type의 PK를 FK로,
    • {A, K}를 PK
      가진다.
  • Example: The Locations multi-valued attribute of Department
    • Relation U: the DEPT_LOCATIONS relation
      • A: DEPARTMENT entity type의 Locations로부터 가져온 Dlocation
        • FK: DEPARTMENT entity type의 PK를 가져온 Dnumber
        • PK: {Dlocation, Dnumber}

Step 7: Mapping of N-ary Relationship Types

  • 각 n-ary relationship type R에 대해(n>2), 이를 표현할 새로운 relationship relation U를 생성
  • 참여하는 entity types를 표현하는 relations의 primary keysU의 foreign key attributes로 가진다.
  • M:N relationship types를 mapping하는 과정과 유사
  • Example:
    • Relation U: The SUPPLY relation
    • PKs/FKs: {Sname, Partno, ProjName}
    • The other attribute: Quantity

Correspondence between ER and Relation Models

profile
배우고 정리하고 공유하기

0개의 댓글