관계형데이터모데링노트 요약

한 엔터티에 여러개 서브타입 존재시

mitomi 2023. 10. 30. 21:41
반응형
SMALL

한 엔터티에 서브타입 후보가 여러개 존재할때는 그집합을 가장 잘 표현하는 한개만 존재하도록 해야 함

 

한 엔터티에 서브타입이 여러개인 이유

- 첫번째 집합을 나누는 관점에 때라  다양한 뷰 존재

특정집합은  기준이 무엇이냐에 따라 여러가지로 분류 가능

집합을 가장  잘 표현한 분류를 정하기 어려울땐 고유속성이 존재하는 분류를 서브타입은로 정하기

- 두번째 코드를 서브타입으로 표현했기 때문

코드 속성에 존재할 수 있는 코드명을 서브타입으로 표현하면 모델의 가독성이 높아져서 코드를 간혹 서브타입처럼 표현함

코드는 서브타입이 아니기 때문에 코드를 서브타입으로 표현하는 것은 바람직 하지 않음.

바커표기법 서브타입 여러개인 엔터티 &   IE  표기법으로 여러개 서브타입 표현한 잘못된 모델 &  서브타입 중 하나만 선택한 모델

주문엔터티에 주문유형,매수매도, 국내국외  3가지 서브타입이 존재하는 것처럼 보임

그러나 서브타입은 하나만 정해야함

바커표기법에서는 코드도 서브타입처럼 표현가능 하지만 서브타입은 하나이므로 어떤게 서브타입인지 식별할 수 있어야 함. 3개중 어떤게 서브타입인지 표시해주는  툴은 없음

 

바커와 달리  IE 표기 모델은 하나의 엔터티에 서브타입이 3개 존재해 잘못된 모델이다. 슈퍼타입에 존재하는 속성과 서브타임에 존재하는 속성을 합하면 전체속성이 되어야 한다. 즉 주문 슈퍼타입과 주식채권서브타입 속성을 합하면 전체속성이 되므로 매수매도등의 서브타입에 속할 속성은 없게된다.

 

바커표기법은 가독성을 높이기 위해 표현했지만  IE  표기법은 잘못된 모델이다.  

 

여러 후보중에 서브타입을 정하는 것으 쉽지 않다. 고유 속성이 서브타입을 정하는 주요 기준이기는 하지만, 불완전한 서브타입은 속성이 없기때문에 주요기준이 없기도 하다.

 

또한 서브타입을 업무에 따라 결정할 수도 있다. 고객 =개인+법인/온라인+오프라인 으로 서브타입을 나눌수도 있다.

해당 업무에서 고객을 구분할때 주로 사용하는 뷰에 따라 결정하는게 바람직하다.

하나의 엔터티에 서브타입은 하나만 존재한다.  최종적으로 물리모델로 변환되기 때문에 다양하게 분류된 상태에서 물리 모델로 변환 할 수 없기 때문이다. 핵심엔터티의 서브타입을 정할때는 속성까지 모두 도출하고 숙고해서 분석한 후 정해야한다.

728x90