본문 바로가기
DataBase/Data Modeling

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

by 빅경 2017. 2. 12.
728x90
반응형


관계란


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

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


관계 패어링

관계 패어링이란 엔터티 내의 인스턴스가 개별적으로 관계를 가지는 것을 뜻한다.

관계는 관계 패어링의 집합을 논리적으로 표현한것이다.


존재에 의한 관계


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

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


행위에 의한 관계

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

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



관계의 표기법


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


관계명(Membership)

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

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

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

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



관계차수(Degree/Cardinality)

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

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


1:1(One to One)관계 표시

두 엔터티간에 한 번씩만 관계를 맺을때 사용된다.


가족은 법적으로 하나만 있습니다. 즉, 사원 엔터티와 가족사항 엔터티는 1:1 관계차수가 성립된다.


1:M(One to Many)관계 표시

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

부서 엔터티는 여러명의 사원을 소속하지만, 사원은 하나의 부서에만 소속된다. 


M:N(Many to Many)

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

M:N관계를 가진 모델링은 두개의 주식별자 상속받은 관계 엔터티를 이용하여 3개의 엔터티로 구분하여 수정이 된다.



관계선택사양(Optionality)


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


고객과 주무 엔터티 관계를 살펴보자. 3명의 손님의 가게에 들어왔다. 하지만 2명의 손님만 주문을 시킬 경우도 있다.

주문은 꼭 손님에 의해서 수행이 되지만, 손님은 주문을 시킬수도 있고 안 시킬수도 있다.

이처럼 주문은 손님에의해 수행이 될수도 있고 안 될수도 있어서 선택참여 관계이고 주문된 항목은 꼭 손님에 의해서 수행이 되어져야 하므로 필수참여 관계이다. 


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


손님과 주문의 선택관계사양을 ERD로 표시하면 아래와 같다.

이미지

손님은 여러개의 주문을 시킬수 있으므로 Crow Foot 모양으로 나타냈다.


비고 : 설계단계에서 필수참여와 선택참여 여부를 고려하기를 권고한다.

       선택참여된 항목은 물리속성에서 Foreign Key로 연결될 경우 Null을 허용할 수 있다.


  

감사합니다.

728x90
반응형