[SQLD] 슈퍼타입과 서브타입

[SQLD] 슈퍼타입과 서브타입

슈퍼/서브타입 데이터 모델은 Extended ER모델이라고도 불린다.

  • 슈퍼타입: 공통의 부분
  • 서브타입: 공통으로부터 상속받아 서

if 10만건도 되지 않는 데이터 or 시스템을 운영하는 도중에도 데이터가 증가하지 않는다, 트랜잭션의 성격을 고려하지않고 전체를 하나의 테이블로 묶는 것도 괜찮은 방법이다.
하지만 데이터 양이 이미 많고 지속적으로 증가한다면 슈퍼/서브타입 물리적 데이터 모델로 변환하는 세 가지 유형을 고려해야한다.




성능을 고려한 슈퍼/서브타입 데이터 모델 변환

https://hec-ker.tistory.com/68

https://hec-ker.tistory.com/68

논리모델 One to One Type(1:1 타입) Plus Type(슈퍼+서브 타입) Single Type(All in One 타입)
정의 if 슈퍼타입과 서브타입 각각 트랜잭션이 발생, 개별 테이블로 구성(1:1 관계) if 슈퍼타입과 서브타입 함께 트랜잭션이 발생, 슈퍼타입의 PK와 각 서브타입의 속성을 묶어 N개의 테이블을 구성 if 슈퍼타입과 서브타입 정확히 지정x상황, 하나의 테이블로 통합
예시 고객엔티티 하위에 개인고객, 법인고객으로 구분 개인고객엔티티, 법인고객엔티티 고객엔티티
물리모델 결정기준 개별로 발생되는 경우가 많은 서비스는 Identity로 슈퍼타입+서브타입에 대해 발생되는 서비스는 RollDown 으로! 전체를 하나로 묶어 트랜잭션이 발생할 때는 RollUp 으로!




출처

Comments