1. 관계(Relationship)란?
◎ 관계(Relationship)는 엔티티 간의 관련성을 의미한다.
◎ 존재 관계와 행위 관계로 분류됨.
◎ 존재 관계 : 두 개의 엔티티가 존재 여부의 관계가 있는 것
◎ 행위 관계 : 두 개의 엔티티가 어떤 행위에 의해 관련성이 있는 것.
2. 관계의 종류
◎ 존재 관계
- 엔티티 간의 상태를 의미.
ex) 학생이 학교에 입학하게 되면 관리학교가 할당되고, 그 할당점으로 학교에서 학생들을 관리한다.
◎ 행위 관계
- 엔티티 간에 어떠한 행위가 있는 것
ex) 증권회사의 계좌 개설, 주문 발주 등...
3. 관계 차수
◎ 관계 차수(Relation Cardinality)는 두 개의 엔티티 간 관계에 참여하는 수를 의미
3-1. 관계 차수의 종류
◎ 1대1 관계
종류 | 설명 |
완전 1 : 1 | - 하나의 엔티티에 관계되는 엔티티의 관계가 하나 있는 경우. - 반드시 존재 |
선택적 1 : 1 | - 하나의 엔티티에 관계되는 엔티티의 관계가 하나이거나 없을 수도 있음. |
◎ 1대N 관계
- 엔티티에 행이 하나 있을 때 다른 엔티티의 값이 여러 개 있는 관계
ex) 고객은 여러개의 계좌를 가질 수 있음.
◎ N대M 관계
- 두 개의 엔티티가 서로 여러 개의 관계를 갖고 있는 것.
ex) 한명의 학생이 여러개의 과목을 수강할 수 있음. 반대로 한 개의 과목은 여러명의 학생이 수강함
※ 이러한 관계는 조인(Join)에서 문제가 발생할 수 있음. 그러므로 1 대 N 또는 N 대 1로 바꿔주어야 한다.
◎ 필수적 관계와 선택적 관계
종류 | 설명 |
필수적 관계 | - 반드시 하나가 있어야 하는 관계. ex) 고객이 반드시 있어야 계좌를 개설할 수 있음. |
선택적 관계 | - 없을수도 있는 관계 ex) 고객은 있더라도 계좌는 없어도 될 때 선택적 관계가 됨. |
4. 식별관계와 비식별 관계
◎ 식별 관계(Identification Relationship)
- 고객과 계좌 엔티티에서 고객은 독립적으로 존재할 수 있는 강한 개체임.
- 강한 개체는 어떤 다른 엔티티에게 의존하지 않고 독립적으로 존재함.
- 강한 개체는 다른 엔티티와 관계를 가질 때 다른 엔티티에게 기본키를 공유.
- 강한 개체는 식별 관계로 표현됨.
- 강한 개체의 기본키 값이 변경되면 식별 관계(공유받은 쪽)에 있는 엔티티의 값도 변경됨
- 여기서 계좌 엔티티가 약한 개체가 된다.
◎ 비식별 관계(Non-Identification Relationship)
- 비식별 관계는 강한 개체의 기본키를 다른 엔티티의 기본키가 아닌 일반 컬럼으로 관계를 가지는 것
- 예를 들어 지점 코드는 고객 엔티티의 기본키가 아닌 일반 컬럼으로 참조됨
- 비식별 관계는 점선으로 표시
※ 강한 개체, 약한 개체
- 강한 개체는 어디에도 관여받지 않는 독립적인 개체
- 약한 개체는 다른 개체의 존재에 의존하는 개체
'Programming > DataBase' 카테고리의 다른 글
[DataBase]정규화(Normalization)에 대해 알아보자! (0) | 2019.02.21 |
---|---|
[DataBase]엔티티 식별자[Key](Entity Identifier)란 뭘까? (0) | 2019.02.21 |
[DataBase]속성(Attribute)이란? (0) | 2019.02.21 |
[DataBase]엔티티[Entity]란 무엇일까? (0) | 2019.02.21 |
[DataBase]3층 스키마에 대해 알아보자 (0) | 2019.02.20 |