데이터베이스시스템 #9 - E-R Diagram Mapping

juyeong-s·2021년 11월 2일
0

E-R Diagram Mapping 이란?

  • E-R Diagram을 관계형 스키마로 매핑하는 단계별 알고리즘

• 1단계: 강력한 엔터티 유형 및 단일 값 속성
• 2단계: 약한 엔터티 유형 및 단일 값 속성
• 3단계: 바이너리 1:1 관계 유형
• 4단계: 일반 바이너리 1:N 관계 유형
• 5단계: 이진 M:N 관계 유형
• 6단계: 삼항 이상 관계 유형
• 7단계: 다중 값 속성

1단계 : 강력한 엔터티 유형 및 단일 값 속성

  • ER 스키마의 각 강력한 엔터티 유형 E에 대해 관계 R이 생성된다.
  • E의 모든 단순 속성을 관계 R에 포함 시킨다.
  • 복합 속성의 모든 단순 속성을 포함 (복합 속성 말고 단순 속성을 포함 시킴)
  • 다치 속성은 포함X, 유도된 속성도 포함 X
  • E의 기본 키는 관계 R의 기본 키가 된다.

예시)
EMPLOYEE(Empno, Empname, Title, City, Ku, Dong, Salary)
PROJECT(Projno, Projname, Budget)
DEPARTMENT(Deptno, Deptname, Floor)
SUPPLIER(Suppno, Suppname, Credit)
PART(Partno, Partname, Price)

2단계 : 약한 엔터티 유형 및 단일 값 속성

  • 소유 엔티티 유형 E가 있는 약한 엔티티 유형 W 각각에 대해 관계 R이 생성된다.
  • W의 모든 단순 속성을 관계 R에 포함 시킨다.
  • 복합 속성의 모든 단순 속성을 포함 (복합 속성 말고 단순 속성을 포함 시킴)
  • 관계 R의 기본 키는 약한 엔터티 유형 W의 부분 키와 소유 엔터티 유형 E의 기본 키의 조합입니다.

예시)
DEPENDENT(Empno, Depname, Sex, Salary)

3단계 : 바이너리 1:1 관계 유형

  • ER 스키마의 각 이진 1:1 관계 유형에 대해 S 및 T 역할을 수행하는 관계를 찾는다.
  • S와 T 중 관계 유형에 완전히 참여하는 관계를 S의 역할을 하는 관계로 선택한다.

예시)
PROJECT(Projno, Projname, Budget, Manager, StartDate)
-> Manager는 역할, StartDate는 Manages 관계 타입의 속성

4단계 : 바이너리 1:N 관계 유형

  • 바이너리 1:N 관계 유형의 경우 N 측의 엔터티 유형이 S 관계로 선택된다.
  • 선택되지 않은 다른 한쪽의 엔티티 타입의 primary key는 S 관계의 foreign key로 포함된다.
  • 관계 유형의 모든 단순 속성은 S 관계에 포함 시킨다.

예시)
EMPLOYEE(Empno, Empname, Title, City, Ku, Dong, Salary, Dno)
-> Dno는 foreign key
PART(Partno, Partname, Price, Subpartno)
-> circular 관계임

5단계 : 이진 M:N 관계 유형

  • 관계 R 생성
  • 관계에 참여하는 엔터티 타입의 primary key는 관계 R에 외래 키로 포함되며,
  • 각 엔티티의 primary key의 조합이 관계 R의 primary key가 된다.

    예시)
    WORKSFOR(Empno, Projno, Duration, Responsibility)

6단계 : 삼항 이상 관계 유형

  • 3항 이상의 각 관계 타입에 대해 관계 R이 생성된다.
  • 관계 타입에 참여하는 모든 엔터티 타입의 primary key를 관계 R의 foreign key로 포함시킨다.
  • foreign key의 조합이 관계 R의 primary key가 된다.
  • 만약 카디날리티가 1:N:N 일 경우, 카디널리티가 1인 관계에 참여하고 있는 엔티티의 pk 만 빼고 나머지 엔티티의 pk가 관계 R의 foreign key가 된다.

예시)
SUPPLY(Suppno, Projno, Partno, Quantity)
-> Quantity는 관계의 속성임

7단계 : 다중 값 속성

  • 각 다중 값 속성에 대한 관계 R 을 생성한다.
  • 다중값 속성에 대한 관계 R에 다중 값 속성을 속성으로 넣는다.
  • 다중 값 속성을 갖는 엔티티 타입의 primary key가 관계 R의 foreign key가 된다.

예시)
PROJLOC(Projno, Location)


최종 스키마

  • EMPLOYEE(Empno, Empname, Title, City, Ku, Dong, Salary, Dno)
  • PROJECT(Projno, Projname, Budget, Manager, StartDate)
  • DEPARTMENT(Deptno, Deptname, Floor)
  • SUPPLIER(Suppno, Suppname, Credit)
  • WORKS-FOR(Empno, Projno, Duration, Responsibility)
  • PART(Partno, Partname, Price, Subpartno)
  • SUPPLY(Suppno, Projno, Partno, Quantity)
  • PROJLOC(_Projno, Location)
profile
frontend developer

0개의 댓글