본문 바로가기
DB/데이터모델링

데이터모델링이론 - 엔터티의 관계와 관계명, 관계차수, 필수선택사양

by 참외롭다 2024. 1. 10.
반응형

데이터모델링이론 - 엔터티의 관계와 관계명, 관계차수, 필수선택사양

 

데이터 모델링에서 관계는 엔터티의 사이의 논리적인 연관성을 의미합니다. 엔터티사이의 관계는 속성정의 및 관계정의에 따라 다변화할 수 있습니다. 엔터티를 기준으로 만들어진 인스턴스가 다른 엔터티의 인스턴스와 개별적인 관계를 가지면 이를 집합관계로 표현할 수 있습니다. 관계의 표현에는 유형에 따라 이항관계, 삼항관계, n항관계가 존재할 수 있습니다. 이런 연관성을 집합해 관계를 도출합니다.

 

관계의 분류

 

관계는 '존재에 의한 관계''행위에 의한 관계' 로 구분됩니다. 엔터티의 연결 목적에 따라 구분할 수 있습니다. 단, ERD에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법을 사용합니다. 클래스다이어그램에서는 연관관계와 의존관계로 표현합니다.

예를들어 '소속된다' 라는 관계는 '사원' 엔터티는 '회사' 엔터티안에 항상 존재하므로 '존재에 의한 관계'로 분류할 수 있습니다.
반대로 '주문하다' 는 '고객' 엔터티의 행위에 의해서 발생하므로 '행위에 의한 관계'로 분류됩니다.

 

관계의 표기법

 

관계명

 

 

엔터티가 관계에 참여하는 형태를 관계명으로 지정합니다. 각 엔터티의 관점에 따라 관계의 형태가 달라지므로

엔터티간의 관계에는 두 개의 관계명이 있습니다. 관계가 시작되는 엔터티를  '관계시작점' 이라고 부르고, 관계의 대상을 '관계끝점' 이라고 합니다. 두 관계점 모두 관계이름을 가져야하고, 관점에 따라 능동/수동적으로 명명됩니다.

 

관계차수

 

엔터티간 관계에서 참여자의 수를 표현하는 것을 관계차수라고 합니다. 일반적인 관계차수는 1:M, 1:1, M:N 이 있습니다.

 

 

- 1:1 관계

엔터티의 인스턴스는 관계를 맺는 엔터티의 단 하나의 인스턴스와 관계가 있다. 상대 엔터티의 인스턴스도 마찬가지로 하나의 인스턴스와 관계가 있다.

- 1:M 관계

엔터티의 인스턴스는 관계를 맺는 다른 엔터티의 다 수의 인스턴스와 관계가 있다. 상대엔터티의 인스턴스는 단 하나의 인스턴스와 관계가 있다.

- M:N 관계

엔터티의 인스턴스는 관계를 맺는 다른 엔터티의 다 수의 인스턴스와 관계가 있다. 상대엔터티의 인스턴스도 마찬가지로 다수의 인스턴스와 관계가 있다.

 

 

관계필수선택사양

 

관계사양에는 필수참여선택참여가 있습니다. 필수참여는 관계에 참여하는 모든 인스턴스가 상대 엔터티 인스턴스 중 반드시 하나 이상과 관계를 맺어야합니다. 선택참여는 관계에 참여하는 엔터티의 인스턴스가 상대 엔터티의 0개 이상의 인스턴스와 관계를 맺어야합니다.

 

주문과 메뉴와의 관계에서 주문에는 반드시 메뉴가 있어야 하고 메뉴는 주문 될 수도 안될 수도있기 때문에 주문은 필수참여, 메뉴는 선택참여 합니다.

 

선택참여된 항목은 물리속성에서 외래키 연결 또는 Null 허용 컬럼이 됩니다.  ERD 관계선으로 표현할 때는 선택참여 하는 쪽을 원으로 표현하고 필수참여하는 쪽은 아무것도 표시하지 않습니다.

 

관계의 정의와 읽는 방법

 

정확한 관계를 정의하기 위해서 다음과 같은 사항을 체크한후 관계를 정의합니다.

 

- 두 엔터티 사이에 관심 있는 연관규칙이 존재하는가?

- 두 엔터티 사이에 정보의 조합이 발생하는가?

- 업무정의에 관계 연결에 대한 규칙이 서술되있는가?

- 관계연결을 가능케하는 동사가 있는가?

 

관계 읽기

 

관계에 참여하는 기준 엔터티를 하나 또는 각으로 읽고, 대상 엔터티의 개수를 읽고 관계 필수선택사양과 관계명을 읽습니다.

 

각 주문은 여러 메뉴를 항상 포함한다

각 메뉴는 여러 주문에 때때로 포함된다

 

 

반응형