1. 관계의 개념
1) 관계의 정의
- 인스턴스와 인스턴스 사이의 논리적인 연관성이 부여된 상태
2) 관계의 패어링
- 패어링 : 인스턴스와 인스턴스 사이에 관계가 설정되어 있는 형태
– 엔터티는 인스턴스의 집합을 논리적으로 표현하였다면, 관계는 관계 패어링의 집합을 논리적으로 표현한 것이다.
2. 관계의 분류
(1) 존재에 의한 관계
(2) 행위에 의한 관계
3. 관계의 표기법
- 관계명 (Membership) : 관계의 이름
- 관계차수 (Cardinality) : 1:1, 1:M, M:N
- 관계선택사양 (Optionality) : 필수관계, 선택관계
1) 관계명 (Membership)
관계명은 엔터티가 관계에 참여하는 형태를 지칭한다.
각각의 관계는 두 가지의 관점으로 표현되며, 두 개의 관계명을 가지고 있다.
- 관계명 명명규칙
– 구체적으로 표현한다. 어떤 행위 또는 상태가 있는지 파악할 수 있도록 표현한다.
– 현재형으로 표현한다. ‘-했다’, ‘-할 것이다’ 로 표현하지 않는다.
2) 관계차수 (Cardinality)
- 1:1 (ONE TO ONE) 관계 표시
– 각 엔터티는 다른 엔터티에 대해 단 하나의 관계만을 가지고 있다.
- 1:M (ONE TO MANY) 관계 표시
– 각 엔터티는 관계를 맺는 다른 엔터티에 대해 하나 이상의 수와 관계를 가지고 있다.
– 그러나 반대의 관점에서는 단 하나의 관계를 가지고 있다.
- M:M (MANY TO MANY) 관계 표시
– 엔터티에 대해 하나 이상의 수와 관계를 가지며, 반대의 관점도 동일하게 관계에 참여하고 있다.
– M:N 관계 데이터 모델은 이후 두 개의 주식별자를 상속받은 관계엔터티를 이용하여 3개의 엔터티로 구분된다.
3) 관계선택사양 (Optionality)
-
필수참여 (Mandatory Membership)
– 참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔터티의 참여자와 연결이 되어야 하는 관계 -
선택참여 (Optional Membership)
– 정보로서 관련은 있지만, 서로가 필수적인 관계는 아닌 관계
– Foreign Key로 연결된 경우 Null 을 허용할 수 있는 항목이 된다. -
만약 관계가 표시된 양 쪽 엔터티에 모두 선택참여가 표시된다면, 즉 0:0 관계라면 잘못 설정된 관계인지 검토해야 한다.
4. 관계의 정의 및 읽는 방법
1) 관계 체크사항
두 개의 엔터티 사이에서 관계를 정의할 때 다음 사항을 체크해보도록 한다.
- 두 개의 엔터티 사이에 관심 있는 연관 규칙이 존재하는가?
- 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
- 업무기술서, 장표에 관계 연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계 연결을 가능하게 하는 동사(Verb)가 있는가?
2) 관계 읽기
⑴ 기준(Source) 엔터티를 한 개 또는 각(Each) 으로 읽는다.
⑵ 대상(Target) 엔터티의 관계참여도, 즉 개수(하나 이상) 를 읽는다.
⑶ 관계선택사양과 관계명을 읽는다.