Computer Science/데이터 베이스

[데이터베이스] ER-관계 사상(ER to Relational Mapping)

바보1 2023. 10. 26. 04:12

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2023.10.21 - [Computer Science/데이터 베이스] - [데이터베이스] ER 모델(Entity Type, Entity Sets, Attributes and Keys)

 

[데이터베이스] ER 모델(Entity Type, Entity Sets, Attributes and Keys)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.20 - [Computer Science/데이터 베이스] - [데이터베이스] 스키마(Schema), 인스턴스(Instance), 상태(State) [데이터베이스] 스키마(Schema), 인스턴스(Instance),

hi-guten-tag.tistory.com

 

2023.10.25 - [Computer Science/데이터 베이스] - [데이터베이스] 관계 모델(Relation Model)

 

[데이터베이스] 관계 모델(Relation Model)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.25 - [Computer Science/데이터 베이스] - [데이터베이스] 약한 엔티티 타입(Weak Entity Type) [데이터베이스] 약한 엔티티 타입(Weak Entity Type) 앞의 글을 읽

hi-guten-tag.tistory.com


1. ER-관계 사상(ER to Relational Mapping)

 

 

  • 개념적 설계 과정인 ER 다이어그램에서 Relational Schema로 매핑하는데 조건은 다음과 같습니다.
  • 모든 정보를 보존하고, 최대한 많은 제약 조건을 유지하며, NULL 값을 최소화하는 것입니다.
  • 순서는 다음과 같습니다.
    1. Mapping of Regular Entity Types
    2. Mapping of Weak Entity Types
    3. Mapping of Binary 1:1 Relationship Types
    4. Mapping of Binary 1:N Relationship Types
    5. Mapping of Binary M:N Relationship Types
    6. Mapping of Multi-Valued Attributes
    7. Mapping of N-Ary Relationship Types

 

  • 우리는 해당 글에서 아래의 ER 다이어그램, ER Schema에서 아래의 Relational Schema로 매핑하는 방법에 대해 배울 것입니다.

ER 다이어그램, ER Schema
Relational Schema


2. Mapping of Regular Entity Types

 

 

  • ER Schema의 모든 Strong, Regular Entity Type을 relation R로 만들고 모든 Attribute를 추가합니다.
  • 이때 Composite Attribute는 Simple Attribute로 분해해서 포함시킵니다.
  • 또한 ER Schema의 키 애트리뷰트를 하나 선택하여 R의 PK로 선택합니다.
  • 만약 ER Schema의 키 애트리뷰트가 Composite Attribute라면 그것을 구성하는 모든 Simple Attribute가 R의 PK가 됩니다.
  • 이 과정이 끝나면 아래와 같은 Relational Schema가 생성됩니다.


3. Mapping of Weak Entity Types

 

 

  • ER Schema에서 약한 엔티티 타입인 W에 대해 릴레이션 R을 생성하고, W의 모든 Simple Attribute를 R에 포함시킵니다.
  • 또한 소유 엔티티 타입인 owner entity type의 PK를 R의 FK로 포함시킵니다.
  • 따라서 R의 기본키는 소유자의 PK와 W의 Partial Key의 조합이 되겠습니다.
  • 위의 예시에서는 DEPENDENT의 PK는 {Essn, Dependent_name}이 됩니다.
  • 일반적으로 약한 엔티티 타입은 소유 엔티티 타입에 존재 존속성이 있으므로, 외래키에 대해 참조적으로 전파되는 CASCADE 옵션을 설정하는 것이 일반적입니다.


4. Mapping of Binary 1:1 Relationship Types

 

 

  • 관계를 매핑하는 접근 방식은 세 가지가 있습니다.
  • 외래키 접근 방식(Foreign Key Approach), 합병된 릴레이션 접근 방식(Merged Relation Option), 교차 참조 또는 관계 릴레이션 접근 방식(Cross-Reference or Relationship relation Option)이 그 접근 방식입니다.
  • 외래키 접근 방식(Foreign Key Approaceh)은 한 릴레이션 S를 선택하여 T의 PK를 S의 FK로 포함시키는 방식입니다.
    • 이때 S는 일반적으로 Total Participation Entity를 선택하는 것이 좋습니다.

 

  • 합병된 릴레이션 접근 방식(Merged Relation Option)은 두 엔티티 타입과 관계 타입을 하나의 릴레이션으로 합치는 방법입니다.
    • 이 방식은 두 엔티티 타입이 모두 Total Pariticipation 할 때 가능하고, 두 테이블이 항상 정확히 동일한 수의 튜플을 가질 것이라는 것을 나타냅니다.

 

  • 교차 참조 또는 관계 릴레이션 접근 방식(Cross-Reference or Relationship relation Option)은 새로운 릴레이션 R을 정의하여 S와 T의 PK를 교차 참조하는 것입니다.
    • 이 방법은 보통 M:N 릴레이션에서 주로 사용됩니다. 
    • 이때 R의 기본키는 두 FK 중 하나가 될 것이고, 다른 FK는 R의 Unique Key가 될 것입니다.

5. Mapping of Binary 1:N Relationship Types

 

 

  • 외래키 방식과, 상호 참조 방식을 사용합니다.
  • 이때 외래키 방식을 사용하면 N 측의 릴레이션을 S라 하고, 1측의 릴레이션을 T라고 가정해 봅시다.
  • T의 PK를 S의 FK로 포함시키면 됩니다. 왜냐하면 N 측의 인스턴스가 최대한 하나의 1측의 엔티티 인스턴스와 관계가 있기 때문입니다.
  • 또한 관계 타입의 애트리뷰트는 모두 S의 애트리뷰트로 포함시켜야 합니다.
  • 왜냐하면 1측은 N개의 S와 연관되어 있지만, S는 오로지 1개의 T와 관계가 있기 때문입니다.

 

  • 또한 상호 참조 방식은 위의 1:1과 마찬가지로 새로운 관계 릴레이션을 생성하여 표시합니다.

6. Mapping of Binary M:N Relationship Types

 

 

  • M:N 관계를 매핑하는 유일한 방법은 관계 릴레이션(Relationship relation)을 생성하는 것입니다.
  • 이때 참여 엔티티 타입에 해당하는 릴레이션들의 PK를 새로운 릴레이션인 S의 FK로 포함시킵니다.
  • 그들의 조합이 S의 PK가 됩니다.


7. Mapping of Multi-Valued Attributes

 

 

  • Multi-Valued Attribute A에 대하여 새로운 릴레이션인 R을 생성해야 합니다.
  • R은 A에 대응하는 한 애트리뷰트를 포함합니다.
  • 또한 A를 Multi-Valued Attribute로 갖는 관계 타입에 해당하는 릴레이션의 PK인 K를 R의 FK로 포함시킵니다.
  • 이때 R의 PK는 A와 K의 조합입니다.


8. Mapping of N-Ary Relationship Types

 

 

  • 관계 타입 R에 대하여 R에 대응하는 릴레이션 S를 생성합니다.
  • 이때 모든 참여 엔티티 타입에 대응되는 릴레이션의 PK를 S의 FK로 포함시킵니다.
  • 또한 모든 관계 타입의 애트리뷰트 또한 S의 애트리뷰트로 포함시킵니다.
  • 일반적으로 S의 PK는 참여 엔티티 타입들인 릴레이션을 참조하는 FK의 조합입니다.
  • 그러나 만약 R에 참여하는 엔티티 타입 중에 한 엔티티 타입인 E`의 Cardinality Constraint가 1이라면, 해당 릴레이션을 참조하는 FK는 S의 PK로 포함시키면 안 됩니다.
  • 그 이유는 나머지 n-1개의 FK로도 충분히 E`을 식별할 수 있기 때문입니다.

9. 요약

 

 

  • ER Schema와 비교했을 때, Relational Schema에서 주목할 점은 관계 타입이 명시적으로 드러나게 표현되지 않는다는 것입니다.
  • 대신에 관계 타입은 두 개의 애트리뷰트 A와 B를 가지는 것으로 표현됩니다.
  • 여기서 하나의 애트리뷰트는 PK가 될 것이고, 다른 애트리뷰트는 두 릴레이션 S와 T에 포함된 FK가 될 것입니다.


참고

 

 

경북대학교 컴퓨터학부 COMP0322-004 데이타베이스 수업

DATABASE SYSTEMS 7th / Elmasri, Navathe 저 / PEARSON / 2019년


데이터베이스 관련 글은 여기서 끝내도록 하겠습니다.

감사합니다.

지적 환영합니다.