• Exclusive 서브타입 : 서브타입 부분 집합 간 공통부분을 갖지 않음
  • Inclusive 서브타입 : 서브타이 부분 집합 간 공통부분 보유
중복 서브타입 모델 관리 방법 - 고객 구분코드 중복


Exclusive 서브타입과 유사하게 관리
  • 고객 구분코드 기준으로 모든 서브타입에 대한 인스턴스 생성
  • 슈퍼타입과 서브타입의 1:1 관계 생성 \--> 직관적이며 사용하기 편함
  • 슈퍼타입인 고객 엔터티에 같은 사람이 두번 존재
  • 중복을 제거하기 위해서 통합고객관리 엔터티 같은 추가 엔터티 필요


구분자 속성 코드값를 이용해 슈퍼타입 엔터티의 중복제거
  • 슈퍼타입과 서브타입의 1:N 관계 생성
  • 구분해야할 대상의 종류가 다수일 경우 코드값이 많이 생겨 관리의 어려움 발생
  • 조회조건에 따라 슈퍼타입 엔터티가 아닌 다수의 서브타입 엔터티 별로 조회하는 경우 발생


코드값으로 관리하는 서브타입을 여부 속성으로 관리하는 모델
  • 변경에 취약
  • 구분자를 통해 서브타입이 명확하게 구분되는 경우 사용
  • 모델 구조만으로 물리적 데이터를 어떻게 생성해야 하는지 모호해짐 (Exclusive와 Inclusive구분이 어려움)


인스턴스 제약에 따른 서브타입 구분
  • Complete 서브타입 : 슈퍼타입의 모든 인스턴스가 최소한 한의 서브타입 인스턴스로 반드시 존재
  • Incomplete 서브타입 : 슈퍼타입에만 인스턴스가 존재하고 서브타입에는 인스턴스가 존재하지 않음


가망고객은 이름과 주민등록번호만 관리, 따라서 개별 서브타입 인스턴스가 존재하지 않는다
  • 개념 모델링이나 초기 논리 모델링 단계에서는 서브타입이 명확하지 않을 수 있음.
  • 이 경우 '기타' 등과 같은 서브타입을 사용해 전체 집합이 정의가 안됐다는 것을 표현하지는 것이 좋다.



슈퍼타입 엔터티와 서브타입 엔터티의 관계
  • Exclusive 서브타입과 Complete 서브타입이 실무에서 가장 많이 쓰임


중복 서브타입 모델


!그림6.24_일반화된 중복서브타입모델.png!


중복 서브타입이 존재하면 데이터를 어떻게 관리하는 것이 효율적인지 숙고
  • 조회 방법 및 집합의 정의가 변경 될수 있음
  • 상위 개념 엔터티에서 중복 서브타입이 발생하면 모델 전반적으로 영향을 끼침
  • 서브타입으로 도출된 엔터티는 핵심 엔터티일 가능성이 크므로 주의