DataBase - 모델링, IDEF1X 릴레이션 표기법
Posted 07 13, 2010 22:59, Filed under: DataBase/Modeling
# 한번의 광고 클릭으로, 당신을 대신해서 불우이웃을 도울 기회가 많아집니다.

# 식별 관계 Identifying과 Non-Identifying Relationship
- Identifying 이라는 단어는 식별하고 있느냐라고 해석할 수 있다.
ID는 식별자와 같다. ID의 원어는 Identifier 이다.
어떤 릴레이션쉽이 Identifying이냐 Non-Identifying이냐를 구분하는 기준은 페어런트 엔터티(Parent Entity)와 차일드 엔터티(Child Entity)간에서(일대다 관계에서는 일이 되는 엔터티가 페어런트 엔터티이고, 다가 되는 엔터티가 차일드 엔터티이다) 차일드 엔터티가 페어런트 엔터티의 UID(PK, Primary Key)를 참조하는데 이 참조되는 UID가 차일드 엔터티의 UID로 포함이 되느냐이다.

- 위의 그림에서 차일드 엔터티는 페어런트 엔터티의 PK를 참조하고 있는데, 참조되는 페어런트 엔터티의 PK를 차일드 엔터티의 PK로 사용하고 있다. 이 경우 차일드 엔터티의 PK는 Child UID, Parent UID를 결합하여 사용한다.
- 차일드 엔터티가 의존적인 엔터티(Dependent Entity)로 표현된 것에 주의하자. Identifying Relationship 상태에 있기 때문에 차일드 엔터티는 페어런트 엔터티에 의존적이다. 페어런트 엔터티에 값이 없으면 차일드 엔터티가 생성될 수 없다.
- 이러한 관계를 Identifying이라고 부르는 이유는 페어런트 엔터티의 UID가 차일드 엔터티의 인스턴스를 식별하는 역할을 수행하기 때문이다. 이 경우 반드시 Child UID가 있을 필요는 없지만 Child UID와 결합하는 것이 더 일반적이다.
- 위의 그림은 하나의 엔터티만을 참조하고 있으므로 최소한 하나의 Parent UID를 차일드 엔터티가 가져야만 한다.
하지만 여러개의 엔터티들을 참조하고 있다면, 그 엔터티의 수만큼 Parent UID를 가지게 된다.
그리고 이런 경우 차일드 엔터티에 있는 Parent UID들은 페어런트 엔터티들을 참조하고 있는 것이 되므로 외부키(FK, Foreign Key)가 된다.
# Mandatory와 Optional 의 차이점은 NULL값을 허용 하느냐, 허용하지 않느냐의 차이가 있다.
- Mandatory : 필수적인 혹은 의무적인 (생략하면 안되는)
- Optional : 선택적인 (생략해도 괜찮은)

- 위의 그림은 Non-Identifying 이라 부른다.
Non-Identifying 은 그림과 같이 차일드 엔터티에서 참조하는 페어런트 엔터티의 UID 값을 참조하지만 PK로 사용 되지 않고 있다.
릴레이션에서 Parent Entity 쪽에 마름모 모양이 없으므로 Mandatory 방식이다.
이 Mandatory 에서는 NULL 값을 허용하지 않는다.
그러므로 Parent Entity에 존재하는 Parent UID 값을 Child Entity에 하나 이상 입력해야 한다.

- 위의 그림의 릴레이션에서는 Parent Entity쪽에 마름모 모양이 있으므로 Optional 방식이다.
이 Optional 방식은 Child Entity의 Parent UID 값에 NULL 값을 허용한다는 의미이다.
# 주의 할점은 NULL값을 허용하지만, NULL값이 아닐경우 반드시 Parent Entity에서 존재하는 Parent UID 값이어야 한다.
# 관계의 차수
- 릴레이션쉽에서 카디널리티라는 것은 One-to-Many 릴레이션쉽을 기준으로 페어런트 엔터티 인스턴스 하나에 몇개의 차일드 엔터티 인스턴트들이 관련되는 지를 따지는것.
참고자료 : 소설처럼 읽는 DB 모델링 이야기(영진닷컴)
"DataBase / Modeling" 분류의 다른 글
| DataBase - 모델링 (Key Entity, Main Entity, Action Entity) (0) | 2010/07/19 |
| DataBase - 모델링 (Partition Table) (0) | 2010/07/19 |
| Database - 모델링 표기 방식(ER/Studio) (0) | 2010/07/01 |
# 한번의 광고 클릭으로, 당신을 대신해서 불우이웃을 도울 기회가 많아집니다.
Response :
0 Trackback
,
0 Comment
Trackback URL : http://develop.sunshiny.co.kr/trackback/523