관계의 개념

관계(Relationship)란 두 개의 엔티티타입 사이의 논리적인 관계, 즉 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 것을 말하고, 데이터 모델에서의 관계란 업무의 흐름을 나타낸다.

관계 패어링

엔티티와 엔티티 사이에 관계가 설정되어 있는 것을 관계 패어링이라고 한다.
엔티티타입은 엔티티의 집합을 논리적으로 표현하였다면 관계는 관계 패어링의 집합을 논리적으로 표현한 것이다.

관계의 명명

각각의 관계에는 두 개의 멤버쉽(Membership)이 있다. 멤버쉽은 엔티티타입이 관계에 대해서 자신이 기준이 되는 관점이다. 엔티티타입에서 관계가 시작되는 편을 관계 시작점(The Beginning)이라 하고, 받는 편을 관계 끝점(The End)이라고 한다. 관계 시작점과 끝점 모두 관계 이름을 가져야 하며 멤버쉽의 성격에 따라 관계 이름이 능동적(Active)이거나 수동적(Passive)으로 명명된다.

사용자 삽입 이미지
<멤버쉽>
  • 애매한 동사를 피하라.
  • 현재형으로 표현하라.

관계의 카디낼리티

두 개의 엔티티타입간 관계에서 참여자의 수를 표현하는 것을 카디낼리티(Cardinality)라고 한다.
가장 일반적인 카디낼리티 표현 방법은 1:M, 1:1, M;N 이다.
카디낼리티를 표시하는 방법은 한 개가 참여하는 경우는 실선을, 다수가 참여하는 경우는 까마귀발 같은 모양으로 그려준다.

1:1(One To One) 관계를 표시하는 방법
한 개의 구매신청서에 대해 한 개의 구매주문을 신청하고 한 개의 구매주문에는 한 개의 구매신청 내용을 작성한다.
사용자 삽입 이미지
<Cardinality - 1:1>

1:M(One To Many) 관계를 표시하는 방법
한 명의 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.
사용자 삽입 이미지
<Cardinality - 1:M>

M:N(Many to Many) 관계를 표시하는 방법
하나의 주문서에는 여러 개의 제품을 포함할 수 있고, 한 제품은 여러 개의 주문서를 통해 신청될 수 있다.
사용자 삽입 이미지
<Cardinality - M:N>


관계에 참여하는 방법

필수 참여(Mandatory Membership)
참여하는 모든 참여자가 반드시 타 엔티티타입의 참여자와 연결되어야 하는 관계이다.

선택 참여(Optional Membership)
참여하는 모든 참여자가 반드시 타 엔티티타입의 참여자와 연결되지 않아도 되는 관계이다.
선택 참여된 항목은 물리 속성에서 FK로 연결될 경우 NULL을 허용하는 항목이 된다.
ERD에서 선택 참여관계를 표시할 때 선택 참여하는 엔티티타입쪽을 원으로 표시한다.

사용자 삽입 이미지
<관계 참여도>

하나의 주문목록에는 한 개의 목록을 항상 포함하고 한 목록은 여러 개의 주문목록에 의해 포함될 수 있다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,