본문 바로가기

데이터 Story/모델링 이론

배타 서브타입 & 중복 서브타입

서브타입은 크게 배타 서브타입과 중복 서브타입으로 구분할 수 있습니다.

 

배타(Exclusive 또는 Disjoint) 서브타입은 서브타입 부분 집합 간에 공통 부분을 갖지 않는 서브타입입니다. [그림1]은 배타(Exclusive) 서브타입입니다.


[그림1]

 

하나의 슈퍼타입 인스턴스는 단 하나의 서브타입과 관계(일대일 관계)가 존재합니다. 따라서 고객은 개인 고객이거나 사원 둘 중 하나입니다.

 

서브타입 간에 상호 배타적이므로 일반적으로 전체 서브타입의 합은 슈퍼타입이 됩니다. 즉 개인 고객과 사원을 합치면 전체 고객이 됩니다.

 

[그림2]정보 공학(Information Engineering) 표기법의 배타 서브타입입니다. 서브타입 기호에 X 표시가 있습니다.


[그림2]

 

[그림3]중복(Inclusive 또는 Overlapping) 서브타입입니다.


[그림3]

 

중복 서브타입은 겹쳐지는 부분이 존재하는 서브타입입니다. 하나의 슈퍼타입 인스턴스가 두 개 이상의 서브타입과 관계가 존재할 수 있습니다. 따라서 고객은 개인 고객이거나 사원이거나, 또는 개인 고객과 사원 둘 다일 수 있습니다.

 

[그림4]는 중복 서브타입을 IE 표기법으로 표현한 모델입니다. 서브타입 기호에 X 표시가 없습니다.


[그림4]

 

실제로 발생하는 대부분의 서브타입은 배타(Exclusive) 서브타입입니다. 중복(Inclusive) 서브타입은 자주 발생하지 않습니다.

 

배타 서브타입의 개념은 쉬운데 혼란을 일으시킬 수 있는 부분이 있습니다. 이력과 연동된 내용인데 다음에 설명할 것이고요.

 

중복 서브타입은 데이터를 관리하는 방법이 혼란스러울 수 있습니다. 이 부분도 다시 상세하게 설명드리겠습니다.

 

해당 업무 요건이 배타 서브타입인지 중복 서브타입인지를 정확히 도출하는 것이 중요합니다. 중복 서브타입으로 도출해야 하는데 습관적으로 배타 서브타입으로 도출하면 업무를 반영하지 못하게 되므로 유의해야 합니다.