SQL/데이터 통합

Supertypes & Subtypes 슈퍼타입과 서브타입

domsam 2025. 2. 11. 11:44
반응형
유사한 엔터티를 일반화하면 슈퍼타입과 서브타입 엔터티가 생긴다.
공통 속성은 슈퍼타입에 속하게 되고 고유한 속성은 서브타입으로 남게 된다. 

 

 

1. 서브타입

서브타입에 대한 일반적인 정의는 서브타입은 서로 배타적이어야 하며 모든 서브타입의 합집합이 전체 집합이 돼야 한다.

 

2. 서브타입의 종류

- Exclusive 배타 서브타입
- Inclusive 중복 서브타입


2-1 Exclusive 배타 서브타입

서브타입 부분 집합 간에 공통부분을 갖지 않는 서브타입을 말한다. 슈퍼 타입의 하나의 인스턴스는 하나의 서브타입과 관계가 존재하므로 고객은 개인고객이거나 사원 둘 중 하나이다. 오른쪽 모델은 정보 공학 표기법이다. 서브타입 기호에 X표시가 있으면 배타 서브타입이다. 

 

2-2 Inclusive 중복 서브타입

서브타입 부분 집합 간에 공통부분을 갖는 서브타입을 말한다.  슈퍼타입은 인스턴스는 하나인데 서브타입이 둘 이상이 될 수 있는 경우이다. 즉, 한 명의 고객이 개인고객이면서 사원이 될 수 있다.

 

3. 인스턴스 제약에 따른 서브타입 구분

- 완전(Complete) 서브타입
- 불완전(Incomplete) 서브타입


3-1 완전(Complete) 서브타입

슈퍼타입의 모든 인스턴스가 최소한 하나의 서브타입 인스턴스로 반드시 존재하는 서브타입. 즉, 슈퍼타입에 있는 값이 반드시 하나 이상 서브타입에 있는 경우. 

고객구분코드: 사업자, 사원
고객 엔터티에 고객번호가 하나 있으면 개인고객, 사원 엔터티 중에 반드시 그 고객번호가 존재한다.


3-2 불완전(Incpomplete) 서브타입

슈퍼타입에만 인스턴스가 존재하고 서브타입에는 인스턴스가 존재하지 않을 수 있는 서브타입. 즉, 슈퍼타입에 있는 값이 서브타입에 하나도 없을 수 있고 있더라도 하나만 존재하는 경우.

고객구분코드: 사업자, 사원, 가망
가망 고객은 이름과 주민등록번호만 관리하면 되서 서브 타입이 존재하지 않는다.

 

4. 슈퍼타입 엔터티와 서브타입 엔터티 간의 관계

4-1 배타 서브타입과 완전 서브타입

슈퍼타입의 한 인스턴스는 반드시 하나의 서브타입 인스턴스와 관계가 존재한다.
모든 서브타입의 합집합은 슈퍼타입의 합집합과 같다.

4-2 배타 서브타입과 불완전 서브타입

슈퍼타입의 한 인스턴스는 하나의 서브타입 인스턴스와 관계가 존재할 수도 있고 없을 수도 있다.

4-3 중복  서브타입과 완전 서브타입

슈퍼타입의 한 인스턴스는 한 개 혹은 두 개 이상의 서브타입 인스턴스와 관계가 존재할 수 있다. 
슈퍼타입의 모든 인스턴스는 관계가 존재하는 서브타입의 인스턴스가 반드시 존재한다.

4-4 중복 서브타입과 불완전 서브타입

슈퍼타입의 한 인스턴스는 한 개 혹은 두 개 이상의 서브타입 인스턴스와 관계가 존재할 수 있다. 
슈퍼타입의 어떤 인스턴스는 서브타입의 인스턴스와 관계가 존재하지 않을 수 있다.

 

관계형 데이터 모델링 프리미엄 가이드 도서의 내용을 참고하였습니다.