[SQLD 도전기] 데이터 모델링의 이해(4) - 관계(Relationship)
본문 내용은 모두 필자가 공부하며 직접 정리한 내용입니다.
Kdata 데이터자격검정의 SQL 개발자(SQLD) 가이드를 참고하였습니다.
─지난 글 보기─
과목 1 데이터 모델링의 이해
제 1장 데이터 모델링의 이해
제 4절 관계(Relationship)
1. 관계의 개념
가. 관계의 정의
ㆍ엔터티의 인스턴스 사이의 논리적인 연관성으로서
존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
2. 관계의 분류
ㆍ관계가 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있는 것은
관계를 연결함에 있어 어떤 목적으로 연결되었느냐에 따라 분류하기 때문이다.
ㆍERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않고 표현했다면
클래스다이어그램에서는 이것을 구분하여 연관관계와 의존관계로 표현하고 있는 것이다.
3. 관계의 표기법
ㆍ관계명(Membership) : 관계의 이름
ㆍ관계차수(Cardinality) : 1:1, 1:M, M:N
ㆍ관계선택사양(Optionality) : 필수관계, 선택관계
가. 관계명(Membership)
ㆍ관계명은 엔터티가 관계에 참여하는 형태를 지칭한다.
ㆍ엔터티에서 관계가 시작되는 편을 관계시작점(The Beginning)이라고 부르고 받는 편을 관계끝점(The End) 이라고 부른다.
ㆍ관계 시작점과 끝점 모두 관계이름을 가져야 하며 참여자의 관점에 따라 관계이름이 능동적(Active)이거나 수동적(Passive)으로 명명된다.
ㆍ관계명 명명규칙
- 애매한 동사를 피한다. 예를들어, '관계된다', '관련이 있다', '이다', '한다' 등은 구체적이지 않다.
- 현재형으로 표현한다. 예를들어, '수강을 신청했다', '강의를 할 것이다' 라는 식으로 표현해서는 안된다.
나. 관계차수(Degree/Cardinality)
ㆍ두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것을 관계차수(Cardinality)라고 한다.
ㆍ가장 일반적인 관계차수 표현방법은 1:M, 1:1, M:N이다.
ㆍ관계차수를 표시하는 방법은 여러 가지 방법이 있지만 Crow's Foot 모델에서는 선을 이용하여 표현한다.
ㆍ한 개가 참여하는 경우는 실선을, 다수가 참여하는 경우(Many)는 까마귀발과 같은 모양으로 그려준다.
1) 1:1(ONE TO ONE) 관계를 표시하는 방법
2) 1:M(ONE TO MANY) 관계를 표시하는 방법
3) M:M(MANY TO MANY) 관계를 표시하는 방법
다. 관계선택사양(Optionality)
ㆍ참여하는 엔터티가 항상 참여하는지 아니면 참여할 수도 있는지를 나타내는 방법이 필수와 선택참여이다.
ㆍ선택참여관계는 ERD에서는 관계를 나타내는 선에서 선택참여하는 엔터티쪽을 원으로 표시한다.
ㆍ필수참여는 아무런 표시를 하지 않는다.
4. 관계의 정의 및 읽는 방법
가. 관계 체크사항
ㆍ두 개의 엔터티 사이에서 관계를 정의할 때 다음 사항을 체크해 보도록 한다.
- 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
- 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?
다음에는 식별자(Identifiers)에 관한 내용을 정리하여 포스팅하겠습니다.