앞의 글을 읽으시면 이해에 도움이 됩니다.
1. 관계(Relationship)란?
- 위의 그림에는 여러 가지 암묵적인 관계가 존재합니다.
- 즉 어떤 엔티티 타입의 한 애트리뷰트가 다른 엔티티 타입을 참조할 때, 우리는 두 엔티티 간에 관계(Relationship)가 있다고 말합니다.
- 예를 들어 DEPARTMENT 엔티티 타입의 Manager 애트리뷰트는 EMPLOYEE를 참조하고,
- PROJECT의 Controlling_department 애트리뷰트는 DEPARTMENT를 참조합니다.
- ER 모델에서는 이러한 참조들을 애트리뷰트들로 표현하지 않고 관계로 명시해야 합니다.
- 즉 Manager 대신 Manage라는 관계로, Controlling_department가 아닌 Control이라는 관계로 명시합니다.
2. 관계 타입(Relationship Type), 관계 집합(Relationship Sets), 인스턴스(Instance)
- 관계 타입(Relationship Type)이란 엔티티 타입들에 속하는 엔티티들 간의 관계의 타입입니다.
- 관계 타입에는 관계의 이름, 참여하는 엔티티 타입, 관계의 제약 조건을 나타냅니다.
- 관계 집합(Relationship Sets)은 관계 인스턴스(Instance)의 집합입니다.
- 관계 집합은 관계 타입의 현재 상태를 나타냅니다.
3. 관계의 차수, 역할 이름, 순환적 관계
- 관계의 차수(degree of relationship)이란 관계에 참여하는 엔티티 타입의 개수를 의미합니다.
- 아래 그림의 경우 관계에 참여하는 엔티티 타입이 2개이므로, 이진(Binary)라고 부릅니다.
- 관계에 참여하는 엔티티 타입이 1개이면 Uni, 3개이면 (Tertiary)라고 부릅니다.
- 역할 이름(Role Name)은 관계 타입에 참여하는 각 엔티티 타입이 관계 내에서 특정한 역할을 나타냅니다.
- 예를 들어 WORKS_FOR 관계 타입에서 EMPLOYEE는 근로자의 역할을, DEPARTMENT는 부서의 역할을 합니다.
- 관계 타입에 참여하는 모든 엔티티 타입이 다를 경우에 각 엔티티 타입의 이름이 역할 이름을 대신할 수 있습니다.
- 그러나 하나의 엔티티 타입이 어떤 관계 타입에 두 번 이상 참여하면 어떻게 해야 할까요?
- 이러한 관계 타입을 순환적 관계(Recursive Relationship) 혹은 자기 참조 관계(Self-Referenceing Relationship)이라고 합니다.
- 관계 타입이 순환적 관계 혹은 자기참조 관계일 때는 반드시 역할 이름을 명시해야 합니다.
- e1은 관계에 두 번 이상 참여하므로 역할 이름이 반드시 필요합니다.
참고
경북대학교 컴퓨터학부 COMP0322-004 데이타베이스 수업
DATABASE SYSTEMS 7th / Elmasri, Navathe 저 / PEARSON / 2019년
다음 글에서는 관계의 제약 조건, 관계 타입의 애트리뷰트에 대해 알아보겠습니다.
2023.10.25 - [Computer Science/데이터 베이스] - [데이터베이스] 관계의 제약 조건, 관계 타입의 애트리뷰트
감사합니다.
지적 환영합니다.
'Computer Science > 데이터 베이스' 카테고리의 다른 글
[프로그래머스 - Oracle] 132201 - 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.10.21 |
---|---|
[프로그래머스 - Oracle] 131536 - 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.10.21 |
[데이터베이스] ER 모델(Entity Type, Entity Sets, Attributes and Keys) (0) | 2023.10.21 |
[데이터베이스] 스키마(Schema), 인스턴스(Instance), 상태(State) (0) | 2023.10.20 |
[데이터베이스] 데이터 모델 (0) | 2023.10.20 |