COMPANY의 ER 스키마
COMPANY의 관계 스키마
ER에서 관계형으로의 매핑 동안의 목표
- 모든 정보 보존 (모든 속성 포함)
- 모든 정보, 즉 모든 속성이 포함되도록 정보를 보존
- 가능한 범위에서 제약 조건 유지
- 관계형 모델에서는 모든 제약 조건을 보존할 수 없음
- 예) ER에서 1:10과 같은 최대 카디널리티 비율
- NULL 값 최소화
- 가능한 한 구체적으로 표현하기
- 이것은 논리 스키마에서 물리 스키마로의 매핑을 도움
언급된 매핑 절차는 많은 상업적 도구(예: erwin, ROSE 등)에서 구현되었음
ER-관계형 매핑 알고리즘
단계 1: 일반 엔터티 유형의 매핑
- ER 스키마에서 각각의 강한 엔터티 유형 에 대하여, 의 모든 단순 속성을 포함하는 관계 을 생성함
- 의 키 속성 중 하나를 의 기본 키로 선택함
- 선택한 의 키가 복합 키인 경우, 키로 선택한 단순 속성 집합이 의 기본 키(PK)가 됨
- 예: EMPLOYEE, DEPARTMENT, PROJECT 관계 (ER 스키마에서 일반 엔터티로 매핑)
- 관계 : EMPLOYEE, DEPARTMENT, PROJECT 엔터티 유형
- PKs: 각각 EMPLOYEE에 대한 Ssn, DEPARTMENT에 대한 Dnumber, PROJECT에 대한 Pnumber.
단계 2: 약한 엔터티 유형의 매핑
- ER 스키마에서 소유자 엔터티 유형 를 가진 각각의 약한 엔터티 유형 에 대하여
- 관계 을 생성하고
- 의 모든 단순 속성(또는 복합 속성의 단순 구성 요소)을 의 속성으로 포함함
- 또한 소유자 엔터티 유형에 해당하는 관계의 PK 속성을 의 외래 키(FK) 속성으로 포함함
- 의 PK는 (i) 소유자의 PK와 (ii) 약한 엔터티 유형 의 부분 키의 조합 (있는 경우)
- 예) DEPENDENT 관계
- PK: {Essn, Dependent_name}
단계 3: 이진 1:1 관계 유형의 매핑
- ER 스키마에서 각 이진 1:1 관계 유형 에 대하여, 에 참여하는 엔터티 유형에 해당하는 관계 와 를 식별함. 세 가지 가능한 옵션이 있음
- 외래 키 방식 (2개의 관계) 옵션
- 관계 중 하나, 예를 들어 를 선택함
- 에서 총 참여를 하는 엔터티 유형으로 를 선택하는 것이 좋음
- 의 PK를 의 FK로 포함함
- 예) ER 스키마에서의
MANAGES
관계 유형 - 관계 :
DEPARTMENT
엔터티 유형 (총 참여로 인해) - 관계 :
EMPLOYEE
엔터티 유형 - 의 FK (예,
DEPARTMENT
관계) - 의 PK (예:
EMPLOYEE
관계)인 Ssn - 병합된 관계 (1개의 관계) 옵션
- 두 엔터티 유형과 관계를 하나의 관계로 병합하여 1:1 관계 유형의 대체 매핑이 가능함
- 두 참여가 모두 총 참여인 경우 적절할 수 있음
- 교차 참조 또는 관계 관계 (3개의 관계) 옵션
- 두 엔터티 유형을 대표하는 두 관계 와 의 PK를 교차 참조하기 위한 목적으로 세 번째 관계 를 설정함
- 의 PK는 와 에서의 FK 중 하나가 될 것임
- 다른 FK는 의 고유 키가 될 것임
- 추가 조인 연산이 필요함
단계 4: 이진 1:N 관계 유형의 매핑
- 각 정규 이진 1:N 관계 유형 에 대하여, 의 N-side에 참여하는 엔터티 유형을 대표하는 관계 를 식별함
- R에 참여하는 다른 엔터티 유형을 대표하는 관계 의 기본 키를 의 외래 키로 포함함
- 1:N 관계 유형의 모든 단순 속성을 의 속성으로 포함합니다.
- 예: ER 스키마에서의
WORKS_FOR
관계 유형 - 관계 :
EMPLOYEE
엔터티 유형 (N-side) - 관계 :
DEPARTMENT
엔터티 유형 (1-side) - 의 FK (Dno): 의 PK, Dnumber에서 가져온 것
단계 5: 이진 M:N 관계 유형의 매핑
- 각각의 정규 이진 M:N 관계 유형 에 대해, 을 나타내기 위해 새로운 관계 (relationship relation라고 함)를 생성
- 의 FK 속성으로 참여하는 엔터티 유형을 대표하는 관계의 PKs를 포함함; 그들의 조합은 의 PK가 될 것임
- M:N 관계 유형의 모든 단순 속성(또는 복합 속성의 단순 구성 요소)을 의 속성으로 포함함
- 예) ER에서의 WORKS_ON 관계 유형
- 관계 :
WORKS_ON
관계 유형 - FKs (Essn 및 Pno): 각각 EMPLOYEE 및 PROJECT 관계의 PKs (Ssn 및 Pnumber)에서 가져옴
- PK: {Essn, Pno}
- 한 속성:
WORKS_ON
의 Hours에서 Hours
단계 6: 다중값 속성의 매핑
- 각 다중값 속성 에 대해, 새로운 관계 를 생성함
- 이 관계 는 다음을 포함할 것
- A에 해당하는 속성
- 를 속성으로 가지는 엔터티 유형의 PK인 FK인
- PK:
- 예) Department의 Locations 다중값 속성
- 관계 :
DEPT_LOCATIONS
관계 - :
DEPARTMENT
엔터티 유형의 Locations에서 Dlocation - FK:
DEPARTMENT
엔터티 유형의 PK에서 Dnumber - PK: {Dlocation, Dnumber}
단계 7: N-ary 관계 유형의 매핑
- > 2인 각 -ary 관계 유형 에 대해, 을 나타내기 위해 새로운 relationship relation 를 생성함
- 의 외래 키 속성으로 참여하는 엔터티 유형을 대표하는 관계의 기본 키를 포함함
- 또한 -ary 관계 유형의 모든 단순 속성(또는 복합 속성의 단순 구성 요소)을 의 속성으로 포함함
- 예
- 관계 U
- SUPPLY 관계
- PKs/FKs
- {Sname, Partno, ProjName}
- 다른 속성: Quantity
ER 및 관계형 모델 간의 대응
ER MODEL | RELATIONAL MODEL |
엔터티 유형 | 엔터티 관계 |
1:1 또는 1:N 관계 유형 | 외래 키(또는 관계 관계) |
M:N 관계 유형 | relationship relation 및 두 외래 키 |
-ary 관계 유형 | relationship relation 및 외래 키 |
단순 속성 | 속성 |
복합 속성 | 단순 구성 요소 속성 집합 |
다중값 속성 | 관계 및 외래 키 |
값 집합 | 도메인 |
키 속성 | 기본(또는 보조) 키 |
핵심 포인트
- ER-관계형(E2R) 매핑 목표
- 모든 정보(모든 속성 포함) 보존
- 가능한 한 제약 유지
- null 값 최소화
- E2R 매핑 알고리즘
- 정규/약한 엔터티 유형 매핑
- 이진 1:1, 1:N, M:N 관계 유형 매핑
- 다중값 속성 매핑
- N-ary 관계 유형 매핑