본문 바로가기

Programming/DataBase

[DataBase]관계(Relationship)이란 무엇일까?

728x90
반응형



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)

- 비식별 관계는 강한 개체의 기본키를 다른 엔티티의 기본키가 아닌 일반 컬럼으로 관계를 가지는 것

- 예를 들어 지점 코드는 고객 엔티티의 기본키가 아닌 일반 컬럼으로 참조됨

- 비식별 관계는 점선으로 표시


※ 강한 개체, 약한 개체

- 강한 개체는 어디에도 관여받지 않는 독립적인 개체

- 약한 개체는 다른 개체의 존재에 의존하는 개체


반응형