일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- github
- 데이터베이스
- 백준 11059
- 깃허브
- SQLD
- ROWNUM
- 프로그래머스 조건에 맞는 개발자 찾기
- AWS
- SAA-C02
- 파이썬
- 정규화
- join
- 알고리즘
- sql
- 백준 1756
- 백준 크리문자열
- 리스트 컴프리헨션
- 백준 24499 파이썬
- react
- 백준 2852
- Today
- Total
-
[SQLD] #004 데이터 모델링의 이해 - 관계 본문
목차
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을 기본으로 한다.
'SQLD' 카테고리의 다른 글
[SQLD] #006 데이터 모델과 성능 - 성능 데이터 모델링의 개요 (0) | 2021.04.20 |
---|---|
[SQLD] #005 데이터 모델링의 이해 - 식별자 (0) | 2021.04.19 |
[SQLD] #003 데이터 모델링의 이해 - 속성 (0) | 2021.04.16 |
[SQLD] #002 데이터 모델링의 이해 - 엔터티 (0) | 2021.04.16 |
[SQLD] #001 데이터 모델링의 이해 - 데이터 모델의 이해 (0) | 2021.04.14 |