서브타입은 크게 배타 서브타입과 중복 서브타입으로 구분할 수 있습니다.
배타(Exclusive 또는 Disjoint) 서브타입은 서브타입 부분 집합 간에 공통 부분을 갖지 않는 서브타입입니다. [그림1]은 배타(Exclusive) 서브타입입니다.
[그림1]
하나의 슈퍼타입 인스턴스는 단 하나의 서브타입과 관계(일대일 관계)가 존재합니다. 따라서 고객은 개인 고객이거나 사원 둘 중 하나입니다.
서브타입 간에 상호 배타적이므로 일반적으로 전체 서브타입의 합은 슈퍼타입이 됩니다. 즉 개인 고객과 사원을 합치면 전체 고객이 됩니다.
[그림2]는 정보 공학(Information Engineering) 표기법의 배타 서브타입입니다. 서브타입 기호에 X 표시가 있습니다.
[그림2]
[그림3]은 중복(Inclusive 또는 Overlapping) 서브타입입니다.
[그림3]
중복 서브타입은 겹쳐지는 부분이 존재하는 서브타입입니다. 하나의 슈퍼타입 인스턴스가 두 개 이상의 서브타입과 관계가 존재할 수 있습니다. 따라서 고객은 개인 고객이거나 사원이거나, 또는 개인 고객과 사원 둘 다일 수 있습니다.
[그림4]는 중복 서브타입을 IE 표기법으로 표현한 모델입니다. 서브타입 기호에 X 표시가 없습니다.
[그림4]
실제로 발생하는 대부분의 서브타입은 배타(Exclusive) 서브타입입니다. 중복(Inclusive) 서브타입은 자주 발생하지 않습니다.
배타 서브타입의 개념은 쉬운데 혼란을 일으시킬 수 있는 부분이 있습니다. 이력과 연동된 내용인데 다음에 설명할 것이고요.
중복 서브타입은 데이터를 관리하는 방법이 혼란스러울 수 있습니다. 이 부분도 다시 상세하게 설명드리겠습니다.
해당 업무 요건이 배타 서브타입인지 중복 서브타입인지를 정확히 도출하는 것이 중요합니다. 중복 서브타입으로 도출해야 하는데 습관적으로 배타 서브타입으로 도출하면 업무를 반영하지 못하게 되므로 유의해야 합니다.
'데이터 Story > 모델링 이론' 카테고리의 다른 글
속성이란? (2) | 2012.02.18 |
---|---|
완전(Complete) 서브타입 & 불완전(Incomplete) 서브타입 (0) | 2012.01.29 |
정규화에 대한 주절거림 (2) | 2012.01.08 |
서브타입은 어떻게 도출하는가? (0) | 2011.12.18 |
서브타입(Subtypes)이란? (1) | 2011.12.04 |