다음 중 모델 관계가 잘못 표기된 것을 모두 고르시오. (표기법은 Richard Barker의
CASE*Method 방식으로 표현하고 있다.)
해설)
# 기본기 다지기
- Richard Barker 모델 요소 확인하기
1. 엔터티
- 엔터티는 둥근 사각형으로 표기한다.
- 엔터티는 하나 이상의 속성을 가지고 있다.
2. 속성
- 속성은 하나의 엔터티에 종속되는 명사적 단어이다.
- 속성 상태는 * (Mandatory) : 필수적으로 반드시 있어야 하는 속성 , o(Optional) : 존재할수도 있고 않을수도 있는 속성 으로 2가지 형태가 있다.
여기서 부서코드, 부서명 은 반드시 있어야 하는 필수이므로 * 표시를 나머지는 있을수도 있고, 없을수도 있기 때문에 o를 표시한다.
3. 관계
두 엔터티 사이에 관계를 나타내는 것으로 동사적 표현을 사용한다.
관계의 종류
- 1:1 관계
A 엔터티에 존재하는 데이터 1개와 B 엔터티에 존재하는 데이터 개수도 1개가 되는 엔터티간의 관계이다.
- 1:M 관계
A 엔터티에 존재하는 데이터 1개에 대해서 B 엔터티에 존재하는 데이터의 개수가 여러개가 되는 관계
- M:M 관계
A 엔터티에 존재하는 데이터 1개에 대해서 B 엔터티에 존재하는 데이터의 개수가 여러개이며,
B 엔터티에 존재하는 데이터 1개에 대해서 A 엔터티에 존재하는 데이터의 개수도 여러개가 되는 관계
선택성
- 필수조건 :
실선으로 표시, 상대 엔터티에 대해 해당 엔터티에 조건을 만족하는 엔터티가 반드시 존재하는 경우
- 선택조건 :
점선으로 표시, 상대 엔터티에 대해 해당 엔터티에 조건을 만족하는 엔터티가 존재할수도, 그렇지 않을수도 있는 경우
관계 표현 읽는 법
1. 사원 --> 부서 방향으로 읽기
각 사원은 / 단 하나의 / 부서를 / 반드시 가져야 한다.
2. 부서 --> 사원 방향으로 읽기
각각의 부서는 / 하나 이상의 / 사원을 / 가질수도 있다.
---------------------------------------------------------------------------------------------------------------
# 상단 문제 해설
* 왼쪽 엔터티를 A로 하고 오른쪽 엔터티를 B로 가정하고 해석해보자.
정답 ) 2번
- 첫번째 관계 읽기:
A --> B로 읽기
각 A는 / 하나의 / B를 / 반드시 가져야 한다.
B --> A로 읽기
각 B는 / 하나 이상의 / A를 / 가질수도 있다..
- 두번째 관계 읽기:
A --> B로 읽기
각 A는 / 하나 이상의 / B를 / 가질수도 있다
B --> A로 읽기
각 B는 / 하나의 / A를 / 반드시 가져야 한다.
첫번재와 두번째 관계들을 각각 해석해볼때 모순 관계를 확인할수 있다.
"각 A는 / 하나의 / B를 / 반드시 가져야 한다." :
B에 데이터를 입력하기 위해서는 A가 반드시 존재해야 한다는 말이된다.
"각 B는 / 하나의 / A를 / 반드시 가져야 한다." :
A에 데이터를 입력하기 위해서는 B가 반드시 존재해야 한다는 말이된다.
즉. 한쪽에 값을 입력하기 위해서는 다른쪽에 값이 반드시 존재해 있어야 한다는 말이 된다. 이것은 현실상 발생할수 없는 구조이다.
다시말해 입력할때 벌써 관계에 대한 제약조건으로 인해서 입력 자체가 불가능 한 것이다.
'DAP > 05.데이터모델링' 카테고리의 다른 글
[데이터 모델링] 반정규화, 중복 테이블 (0) | 2009.12.24 |
---|---|
[데이터 모델링] 모델링 기본 원칙 (1) | 2009.12.15 |
데이터 모델링 > 주제영역 후보 도출 (0) | 2009.09.26 |