-
데이터 모델링24 - 엔티티 모델링의 어려움을 극복할 방법론과 전략3Data Base/관계형 데이터 모델링 2023. 9. 26. 17:54
서브타입과 E-R패턴 3
그림 11-14 두 개의 서브타입셋이 공존
그림 11-15 하나의 주요 관점으로 묶은 모습
하나의 엔티티에 서브타입셋(관점,차원)이 2개 이상인 경우 서브타입을 어떻게 바라보아야 하는지 정리해보자. [그림 11-14]의 <고객> 엔티티에는 <국내거주여부>와 <온라인여부>라는 두 서브 타입셋이 공존한다. 혹자는 이처럼 여러 개의 서브 타입이 존재하는 모델은 잘못된 것이라고 주장하기도 한다. 슈퍼타입인 <고객>에 서브타입인 <국내겨주여부>를 엔티티화 할 경우 거주나 주소에 대한 여타다른 속성을 갖는 엔티티가 될 가능성이 내포된다. 그러므로 엔티티로 분리하였을때 다른 속성들이 포함될 여부가 적은 <온라인여부>를 엔티티로 분리하고 해당 엔티티의 속성으로 <국내거주여부>를 넣는것이 바람직하다. 그래서 하나의 주요 관점으로 묶어 [그림 11-15]처럼 표현하는 것이 적절하다.
그런데 이와 같은 관점은 다음과 같으 이유로 바람직하지 못하다.
1. [그림 11-14]와 [그림 11-15]는 표현하는 비지니스가 다르다. [그림 11-14]에서 <온라인여부>와 <국내거주정보>는 <고객> 집합을 바라보는 다른 창일 뿐, 동격의 같은 차원이다. 반면 [그림 11-15]는 상위의 <온라인여부>에 종속된 하위의 <국내거주여부>를 형상화한 것이다. 두 모델은 완전히 다르다.
2. 데이터 모델링은 논리적인 측면에서 검토되어야 한다. 모델링은 물리적인 요소를 과감히 제거하고 오직 논리적인 측면에서 수행한 후, 이를 상세화하면서 다양한 물리적 요건이 나타나게 되면 필요에 따라 통합 혹은 분리할 수 있다.
3. 모델 설계 시점에서 서브타임은 아직 엔티티도 속성도 아니면, 단지 업무 요건을 설계에 반영할 때 통합 관점에서 효과적으로 표현할 수 있는 방법이다. 즉, 서브타입은 분류의 한 관점이다.
즉, 서브타입에 (주요 속성이 아닌) 상세 속성을 배치해야 할 시점에 다른 관점(서브타입셋)과 영향을 검토하여 모델에 반영하면 되는 것이다. 마치 데이터를 이해하는 과정이나 도구로, 관련 업무에 대한 데이터에 대해 모두 정규화를 수행한 후 현실적 상황을 감안하여 일부 반정규화를 수행하는 것과 같다. 따라서 두 모델은 모두 나름의 존재 의미가 있다. 최종적으로 [그림 11-15]처럼 하나의 서브타입셋으로 분리되더라고, 먼저 주요한 관점을 찾아 데이터 집합을 [그림 11-14]처럼 분류해보는 것이 중요하다.
물론 무리한 일반화와 통합으로 집합이 모호해지고 개체들의 본질이 희석될 수도 있다. 이런 경우에는 집합들의 속성들의 동질성과 통합의 적절성에 대한 재검토가 필요하며, 주제와 성격이 동질한 범위에서 적절하게 통합되었마녀 각 개체 유형이 섞이지 않도록 적절한 구분(서브타입)을 지정하면된다. 집합을 일반화하여 대상을 확장할 수 있게 해두고 구분자를 통해 정의하는 방식은 동질성에 저촉되지 않으면 얼마든지 기존 체계를 준수하면서 새로운 집합을 추가할 수 있음을 의미한다. 그럼에도 불구하고 현장에서는 유사한 성격의 독립적인 개별 엔티티를 나열하는 것에 익숙하다. 쪼개고 분리하면 집합의 독립성과 구체성이 높아져서 나름의 이익이 있을 수도 있으나. 이는 일반적으로 바람직하지 만은 않다.
그림 11-16 서브타입으로 상세화된 집합을 테이블로 전환하는 세가지 기준
지금까지 집합에는 다양한 유형의 개체가 존재하며, 이를 그만큼 다양한 관점으로 볼 수 있어야 한다는 점에 주목했다. 이와 더불어 데이터 모델에서 집합의 색깔을 규정하는 핵심 개체 유형들을 서브타입을 통해 구체적으로 정의해보았다. 이제 마지막 으로 서브타입으로 상세화된 집합을 테이블로 전환하는 기준에 대해 고민해보면 될 것이다.
서브 타입의 구현의 기준은 테이블의 용량 과 트랜잭션의 발생에 의한 구분 유형으로 크게 [구름 11-16]과 같이 3가지의 형태로 물리 설계된다. 테이블의 용량이 작은 경우 혼합 구성이 유연성 측면에서 유리하며, 대용량 데이터를 담아야 한다면 다음 기준에 따라 구성하면 된다.
1. 트랜잭션이 슈퍼타입과 서브타입에서 개별적으로 발생 -> 혼합(통합도 무방)
2. 트랜잭션이 서브타입별로 발생 -> 분리
3. 트랜잭션이 슈퍼타입과 서브타입 전체를 대상으로 발생 -> 통합
[출처 - 프로젝트의 성패를 결정짓는 데이터 모델링 이야기 , 김상래 저]
'Data Base > 관계형 데이터 모델링' 카테고리의 다른 글
데이터 모델링26 - 데이터 집합의 분리, 확장, 통합2 (0) 2023.09.28 데이터 모델링25 - 데이터 집합의 분리, 확장, 통합1 (0) 2023.09.27 데이터 모델링24 - 엔티티 모델링의 어려움을 극복할 방법론과 전략3 (0) 2023.09.26 데이터 모델링23- 엔티티 모델링의 어려움을 극복할 방법론과 전략2 (0) 2023.09.26 데이터 모델링22- 엔티티 모델링의 어려움을 극복할 방법론과 전략1 (0) 2023.09.25