다. 관계 표기법
관계란 하나 또는 두 개의 엔터티에서 인스턴스를 연관시키는 업무적인 이유를 말한다.
관계는 논리 데이터 모델링의 대상인 엔터티나 속성과는 달리 업무 규칙을 표현하는 세 가지 중요한 특성을 가지고 있다.
1 ) 관계 기수성(Cardinality, Degree) 표기법
기호로 나타낼 때 일은 'ㅡ'로, 다는 까마귀발(Crow's Foot) 형태로 표현한다. 관계 표기법은 일대일, 일대다, 다대다의 세 가지가 있다.
■ 일대일 관계
첫 번째 엔터티의 한 인스턴스가 두 번째 엔터티의 오직 하나의 인스턴스와 연관되어 있고, 두 번째 엔터티의 한 인스턴스가 첫 번째 엔터티의 오직 하나의 인스턴스와 연관이 있을 때, 이 두 개의 엔터티는 일대일 관계를 가지고 있다.
■ 일대다 관계
첫 번째 엔터티의 하나의 인스턴스가 두 번째 엔터티의 다수의 인스턴스와 연관되어 있고, 두 번째 엔터티의 하나의 인스턴스가 첫 번째 엔터티의 오직 하나의 인스턴스와 연관되어 있을 때, 이 두 엔터티는 일대다 관계를 가지고 있다. 데이터 모델에서 가장 많이 보이는 일반적인 관계이다.
■ 다대다 관계
첫 번째 엔터티의 하나의 인스턴스가 두 번째 엔터티의 많은 인스턴스들과 연관될 수 있고, 두 번째 엔터티의 하나의 인스턴스가 첫 번째 엔터티의 다수의 인스턴스와 연관될 수 있을 때, 이 두 개의 엔터티는 다대다 관계를 가지고 있다. 다대다 관계는 일대다의 형태로 만들어야만 한다.
CASE* Method 표기법 | 정보공학(IE) 표기법 | |
선택성 | 필수-> 실선, 선택-> 점선으로 표현 | 필수->동그라미 생략, 선택->동그라미로 표현 |
식별셩 | 식별 -> UID Bar, 비 식별 -> UID Bar 없음 | 식별->실선, 비 식별->점선의 관계 선으로 표현 |
2 ) 관계 선택성 표기법
기호로 나타낼 때, CASE* Method 표기법에서는 필수를 실선으로 선택은 점선으로 표시하고, 정보공학(IE) 표기법에서는 필수는 동그라미 생략이고, 선택은 관계 선에 동그라미를 표시한다.
■ 필수 관계
엔터티 A와 엔터티 B가 관계가 있을 때, 엔터티 B에 인스턴스를 입력(Insert)하기 전에 엔터티 A에 적어도 하나의 인스턴스를 입력해야 한다면, 엔터티 A의 선택성은 필수이다.
■ 선택 관계
엔터티 A와 엔터티 B가 관계가 있을 때, 엔터티 B에 인스턴스를 입력하기 전에 엔터티 A에 적어도 하나의 인스턴스를 입력할 필요가 없다면, 엔터티 A의 선택성은 선택이다.
선택성의 결정 방법 | 과거 | 현재 |
필수(Mandatory) | 관계 읽기를 통하여 반드시(Must)이면 필수 관계 - 하나 이상의 사원이 반드시 하나의 부서에 소속되어 있다. | 다른 엔터티에 어떤 행(Row)을 입력하기 전에 상대 엔터티에 적어도 한 건의 행(Row)이 반드시 있어야만 하는 경우. |
선택(Optional) | 관계 읽기를 통하여 일 수도(May be)이면 선택 관계 - 하나의 부서에는 여러 명의 사원이 소속될 수 있다. | 다른 엔터티에 어떤 행(Row)을 입력하기 전에 상대 엔터티에 어떤 행(Row)이 존재할 필요가 없는 경우. |
-
두 개의 엔터티 사이에 관계를 맺고 한쪽을 부모(Parent) 다른 한쪽을 자식(Child)이라 표현한다. 이는 일대다 관계이면 일 쪽이 부모 다 쪽을 자식이라 하며, 일대일인 경우 선택성이 필수인 쪽이 부모, 선택인 쪽을 자식으로 칭한다. 다시 말하면 유일 식별자와 외래 식별자로 관계를 맺게 되는데 유일식별자가 표현되는 엔터티가 부모이고, 외래 식별자 또는 외래 키가 표현되는 쪽의 엔터티가 자식이 된다.
3 ) 관계 식별성 표기법
■ 식별 관계
부모 엔터티의 식별자가 자식 엔터티의 식별자의 일부분이 되는 관계를 말한다. '주문' 엔터티와 '주문상품' 엔터티가 일대다의 관계이므로 '주문'이 부모 엔터티, '주문상품'이 자식 엔터티가 된다. CASE* Method 표기법에서는 관계 선에 수직인 바(UID Bar)를 사용하고, 정보공학(IE) 표기법에서는 실선을 사용하여 식별 관계를 표현한다.
'주문상품' 엔터티의 인스턴스 한 건이 존재하려면 반드시 '주문' 엔터티에 인스턴스가 존재해야 하고, '주문상품' 엔터티의 인스턴스를 식별하려면 반드시 '주문' 엔터티의 인스턴스를 식별해야만 한다. 이런 이유로 식별 관계는 자식 엔터티는 부모 엔터티에 대하여 존재 종속적이고 식별 종속적이어야 한다.
■ 비식별 관계
부모 엔터티의 식별자가 자식 엔터티의 식별자의 일부분이 안 되고 일반 속성으로 표현되는 관계를 말한다. '부서' 엔터티와 '사원' 엔터티가 일대다의 관계이므로 '부서'가 부모이고, '사원'이 자식 엔터티가 된다. CASE* Method 표기법에서는 관계 선에 수직인 바(UID Bar)가 없고, 정보공학(IE) 표기법에서는 점선을 사용하여 비식별 관계를 표현한다.
'사원' 엔터티의 인스턴스 한 건이 존재하려면 반드시 '부서' 엔터티의 인스턴스가 존재해야 하지만, '사원' 엔터티의 인스턴스 한 건을 식별하려고 할 때 반드시 '부서' 엔터티의 인스턴스를 식별해야만 하는 것은 아니다. 이런 이유로 비식별 관계는 자식 엔터티는 부모 엔터티에 대하여 존재 종속적이지만, 식별 종속적은 아니다.
'Data Architecture > 데이터 모델링' 카테고리의 다른 글
[Data Architecture] 관계형 모델 이론_데이터 구조_6가지 특성 (0) | 2020.12.05 |
---|---|
[Data Architecture] 관계형 모델 이론_관계형 모델 이란? (0) | 2020.12.05 |
[Data Architecture] 관계형 모델 이론_릴레이션, 속성, 도메인 개념 (0) | 2020.12.05 |
[Data Architecture] 데이터 모델링 표기법 이해_속성 표기법_정보공학(IE)표기법 및 CASE* Method 표기법 (0) | 2020.12.05 |
[Data Architecture] 데이터 모델링 표기법 이해_엔터티 표기법_정보공학(IE)표기법 및 CASE* Method 표기법 (0) | 2020.12.05 |