Notice
Recent Posts
Recent Comments
05-20 20:45
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

-

[SQLD] #004 데이터 모델링의 이해 - 관계 본문

SQLD

[SQLD] #004 데이터 모델링의 이해 - 관계

choiht 2021. 4. 19. 17:24
반응형

목차
1. 관계의 개념
2. 관계의 분류
3. 관계의 표기법
4. 관계의 정의 및 읽는 방법




1. 관계의 개념

1. 관계의 정의

관계 (Relationship) : 엔터티의 인스턴스 사이의 논리적인 연관성으로써 존재의 형태로써나 행위로써 서로에게 연관성이 부여된 상태
관계는 엔터티와 엔터티간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있다.



2. 관계의 페어링

관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(페어링)이고, 이것의 집합을 관계로 표현한다는 것이다. 따라서 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다.









2. 관계의 분류

관계는 어떤 목적으로 연결되었느냐에 따라 두가지로 분류된다.







3. 관계의 표기법

- 관계명 (Membership) : 관계의 이름
- 관계차수 (Cardinality) : 1:1, 1:M, M:N
- 관계선택사양 (Optionality) : 필수관계, 선택관계



1. 관계명 (Membership)

관계명은 엔터티가 관계에 참여하는 형태를 지칭한다.


엔터티에서 관계가 시작되는 쪽을 '관계시작점' 이라고 부르고, 받는 쪽을 '관계끝점' 이라고 부른다.
관계명은 다음과 같은 규칙에 따라 작성해야한다.

- 애매한 동사를 피한다. '관계된다', '관련이 있다', '이다', '한다' 등은 구체적이지 않아서 어떤 행위가 있는지 모르기 때문
- 현재형으로 표현한다. '수강을 신청했다', '강의를 할 것이다' 등은 잘못된 표현이다.





2. 관계차수 (Degree / Cardinality)

두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것을 관계차수라고 한다. 가장 일반적인 관계차수 표현방법은 1:1, 1:M, M:N 이다.

1. 1:1 관계를 표시하는 방법


2. 1:M 관계를 표시하는 방법


3. M:N 관계를 표시하는 방법






3. 관계선택사양 (Optionality)

'반드시 지하철의 문이 닫혀야 지하철은 출발한다' 와 같이 지하철 출발과 문닫힘은 필수적으로 연결되어있다. 이와 같이 데이터 모델의 관계에서는 필수참여관계(Mandatory)가 된다.

하지만 지하철 안내방송의 경우 지하철의 출발과 상관없이 방송해도 별 문제가 없다. 이와 같이 지하철의 출발과 안내방송은 정보로써 관련이 있지만 서로가 필수적인 관계가 아닌 선택참여관계(Optional)가 된다.

필수 참여 (Mandatory Membership) : 참여하는 모든 참여자가 반드시 관계를 가지는 것
선택 참여 (Optional Membership) : 참여하는 모든 참여자가 반드시 관계를 가질 필요는 없는 것

선택참여괸계는 ERD에서 선택참여하는 엔터티쪽을 원으로 표시한다.
필수참여는 아무런 표시를 하지 않는다.









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

1. 관계 체크사항

- 두 개의 엔터티 사이에 관심있는 연관 규칙이 존재하는가?
- 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?



2. 관계 읽기

- 기준 엔터티를 한 개 또는 각각으로 읽는다.
- 대상 엔터티의 관계 참여도, 즉 개수를 읽는다.
- 관계선택사양과 관계명을 읽는다.





출처
이 글의 내용은 모두 한국데이터베이스진흥원이 출판한 SQL 전문가 가이드 2013 Edition을 기본으로 한다.

반응형
Comments