본문 바로가기
SQL

[SQL] 데이터 모델링 - 관계 (Relationship)

by seung_nari 2022. 10. 31.

관계란?

데이터 모델에서의 관계란 "엔터티 간 논리적인 연관성"을 의미한다. 관계는 엔터티간의 연관성을 나타냈기 때문에 엔터티의 정의에 영향을 받고 속성 정의 및 관계 정의에도 영향을 받는다.

 

관계는 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있다. 이는 엔터티간 어떠한 목적으로 관계가 이뤄졌는지에 따라 분류된다.

 

존재에 의한 관계

사원은 부서에 항상 속해있다. OR 부서는 사원을 포함할 수 있다.

사원은 부서에 소속되어 있기 때문에 나타나는 관계다. 즉, 존재의 형태에 의해 관계가 형성된다.

 

행위에 의한 관계

고객이 주문하면 주문이 발생된다. OR 주문은 고객에 의해 발생된다.

주문은 고객이 원하는 무언가를 주문할때 발생한다. 즉, 행위의 형태에 의해 관계가 형성된다.


관계의 표기법

관계를 표기법은 '관계명', '관계차수', '관계선택사양' 세 가지로 이루어져 있다.

 

관계명 (Membership)

관계명은 엔터티간 관계에 맺어진 형태 뜻한다.

관계가 시작되는 쪽을 '관계시작점(The Beginning)' 이라 칭하며 받는 쪽을 '관계끝점(The End)'라고 칭한다.

또한 관점에 따라 능동적(Active)이거나 수동적(Passive)으로 명명된다.

(비고 : 관계명은 현재형으로 나타내고, 분명한 동사로 명명하는 것이 권고사항이다.)

 

관계차수 (Degree/Cardianlity)

관계차수란 두 엔터티간 관계에서 수행되는 경우의 수를 뜻한다. 종류로는 1:1, 1:M, M:N이 있다.

(비고 : Crow's Foot 방법으로 관계차수를 표현함)

 

1:1 (One to One)

 

1:M (One to Many)

엔터티에서 다른 엔터티와의 관계의 수가 여러번 정의되지만, 반대의 경우 한번만 정의될때 사용된다.

 

M:N (Many to Many

두 엔터티간의 과계가 서로 여러번 정의될 때 사용된다.

 

관계선택사양 (Optionality)

관계에서 항상 참여하는지 아니면 참여할 수도 있는지를 나타내는 방법따라 필수참여 관계(Mandatory), 선택참여 관계(Optional)로 나뉜다.

 

필수참여는 참여하는 모든 참여자가 반드시 관계가 있는, 타 엔터티의 참여자와 연결이 되어야 하는 관계이다. 예를 들면 주문서는 반드시 주문목록을 가져야 하며 주문목록이 없는 주문서는 의미가 없으므로 주문서와 주문목록은 필수참여관계가 되는 것이다. 반대로 목록은 주문이 될 수도 있고 주문이 되지 않은 목록이 있을 수도 있으므로 목록과 주문목록과의 관계는 선택참여가 되는 것이다.

선책참여관계일 경우 ERD에서 관계를 나타내는 선에서 선택참여하는 엔터티쪽에 원을 표시해야한다.

 

 

 

 

출처

댓글