슈퍼타입 / 서브타입 모델
1. 업무를 구성하는 데이터의 특징을 분석하여 공통점/차이점을 고려하여 효과적으로 표현할 수 있음
2. 공통의 부분을 슈퍼타입 엔티티로 모델링하고 공통으로 부터 상속받아 다른 엔티티와 차이가 있는 속성에 대해서는 별도의 서브타입 엔티티로 구분
3. 업무의 모습을 정확하게 표현하면서 물리적인 데이터 모델로 변환을 할 때 선택의 폭을 넓힐 수 있는 장점이 있다.
슈퍼/서브 타입 모델의 물리데이터 모델은 데이터의 양과 트랜잭션의 유형을 기준으로 슈퍼타입, 서브타입, 개별타입으로 변환된다.
슈퍼타입 / 서브타입 모델 변환 방법
슈퍼타입 기준 (Single 타입, All in One 타입)
- 슈퍼/서브타입 모델을 하나의 테이블로 변환한 것이다. (예: 고객 테이블을 하나로만 구성)
- Single타입 기준, 혹은 All in One 타입 기준이라고도 한다.
서브타입 기준 (Plus 타입, Super+Sub 타입)
- 슈퍼/서브타입을 서브타입 테이블들로 변환한 것이다. (예: 개인고객, 법인고객 테이블로 구성)
- 도출된 각각의 서브타입에는 변환 전 슈퍼 엔티티에 있던 컬럼들을 공통적으로 가지고 있다.
- Plus 타입 기준 혹은 Super+Sub 타입 기준이라고도 한다.
개별타입 기준 (OneToOne 타입, 1:1 타입)
- 슈퍼/서브타입을 슈퍼, 서브타입 각각 개별 테이블로 변환한 것이다. (예: 고객, 개인고객, 법인고객 테이블로 구성)
- 슈퍼 테이블, 서브 테이블 모두 생성한 것이다.
- OneToOne 타입 기준 혹은 1:1 타입 기준이라고도 한다.
슈퍼타입 / 서브타입 데이터 모델 변환의 중요성
- 트랜잭션은 항상 슈퍼타입 기준으로 처리하는데 테이블은 개별타입으로 유지되어 UNION 연산에 의해 성능이 저하될 수 있다. => 슈퍼타입 기준으로 테이블을 구성하는 것이 유리
- 트랜잭션은 항상 서브타입을 기준으로 처리하는데 개별타입 혹은 슈퍼타입으로 되어 있는 경우 성능이 저하될 수 있다. => 서브타입 기준으로 테이블을 구성하는 것이 유리
- 트랜잭션은 항상 개별타입 기준으로 처리하는데 테이블은 슈퍼타입으로 되어 있어 불필요하게 많은 양의 데이터가 집약되어 있어서 성능이 저하되는 경우가 있다. => 개별타입으로 테이블을 구성하는 것이 유리
PK / FK 칼럼 순서와 성능
Pk / Fk 칼럼 순서와 성능 개요
- 테이블에 발생하는 트랜잭션 조회 패턴에 따라 PK / FK 칼럼의 순서를 조정해야 한다.
- 물리적인 데이터 모델링 단계에서는 스스로 생성된 PK 순서 이외에 다른 엔티티로부터 상속받아 발생되는 PK순서까지 항상 주의하여 표시해야 한다.
Pk가 복합키일 경우 칼럼순서가 성능에 영향을 미치는 이유
- 인덱스 선두 칼럼에 대한 조건이 들어와야 한다. (가능한한 '=' 조건으로)
- 인덱스 선두 칼럼에 대한 조건이 들어오지 않을 경우 인덱스 전체를 읽거나 테이블 전체를 읽게됨.
SELECT 문에서 ' = ' 조건이 붙는 식별자를 앞에 오게 하는 것이 좋다.
'으쌰으쌰💪 > SQL' 카테고리의 다른 글
데이터 모델과 성능 - 연습문제 오답노트 (0) | 2023.08.22 |
---|---|
데이터 모델과 성능 - 분산 데이터베이스와 성능 (0) | 2023.08.22 |
데이터 모델과 성능 - 대량 데이터에 따른 성능 (0) | 2023.08.17 |
데이터 모델과 성능 - 반정규화와 성능 (0) | 2023.08.16 |
데이터 모델과 성능 - 정규화와 성능 (0) | 2023.08.16 |