SQLD

1-1-4. 관계

JangGeonWu 2022. 9. 19. 13:28

1. 관계의 개념

가. 관계의 정의: 상호 연관성이 있는 상태

 - 인스턴스 사이의 논리적인 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태

 

나. 관계의 페어링

 - 관계 페어링(Relationship Paring): 엔터티 내에 인스턴스-인스턴스 사이에 관계가 설정된 어커런스. 관계를 통해 짝이 형성되었다 해서 relationship paring이다.

 - 인스턴스 각각은 자신의 연관성을 가지고 있을 수 있다. 이것을 집합해 '관계'를 도출한다.

 

2. 관계의 분류

 -  '존재'에 의한 관계, '행위'에 의한 관계가 있다.

 - ERD에서는 '존재적 관계'와 '행위에 의한 관계'를 구분하지 않았다면, UML의 클래스 다이어그램에서는 이를 실선과 점선으로 구분한다.

 

3. 관계의 표기법

 - 관계명(관계의 이름), 관계 차수(n:m), 관계 선택사양(필수 관계_Mandatory, 선택 관계_Optional)

 

가. 관계명

 - 애매한 동사 피하고, 현재형으로 표현한다.

 

나. 관계 차수(바커 표기법 기준)

 - 한 개가 참여하는 경우는 실선 그대로 유지, 다수가 참여한 경우에는 까마귀발과 같은 모양으로 그림

 

다. 관계 선택사양(ERD 기준)

 - 관계를 나타내는 선에서 선택 참여하는 엔터티 쪽을 원으로 표시

 

4. 관계의 정의 및 읽는 방법

가. 관계 체크사항

 - 두 개의 엔터티 사이에 관심 있는 연관 규칙이 존재하나? 정보의 조합이 발생하나?

 - 업무 기술서, 장표에 관계 연결에 대한 규칙이 서술되어 있나? 관계 연결을 가능하게 하는 동사가 있나?

 

나. 관계 읽기

 - 관계에 참여하는 '기준 엔터티'를 하나 또는 각(each)으로 읽고, 대상 엔터티의 개수(하나, 하나 이상)을 읽은 후에 관계 선택사양과 관계명을 읽도록 한다.

아래는 예시이다.

 

기준 엔터티 기준 엔터티 명 관계차수 관련 엔터티 명 선택사양 관계명
각각의 사원은  부서에  항상  속한다
하나의 병역사항은 하나의 사원에 의해 때때로 작성된다

 


Quiz.

 

Q1. 관계의 정의: 상호 _____이 있는 상태

 

Q2. 관계의 분류에는 ____에 의한 관계, _____에 의한 관계가 있다.

 

Q3. 관계를 표기할 때는 다음 3가지를 유의해야 한다.

 - ______

 - ______

 - ______(___관계 = mandatory, ___관계 = optional)