728x90
4) 데이터베이스 구조와 성능
1. 슈퍼/서브 타입 모델의 성능 고려
- 슈퍼/서브 타입 데이터 모델의 개요
- 분석 단계에서 논리적 데이터 모델에 사용하는 모델
- 업무 모습을 정확하게 표현하면서 물리적 데이터 모델로 변환할 때 선택의 폭을 넓힐 수 있다는 장점
- 데이터들이 갖는 공통점을 슈퍼타입으로 모델링하고, 다른 엔터티와 차이가 있는 속성(상속의 개념)에 대해서는 별도로 서브 엔터티로 구분한다
- 슈퍼/서브 타입 데이터 모델의 변환
- 슈퍼/서브 타입에 대한 변환을 잘못하면 성능이 저하되는데, 큰 이유는 트랜잭션 특성을 고려하지 않고 테이블이 설계됐기 때문이다
- 트랜잭션이 빈번하게 처리되는 기준에 따라 테이블을 설계해야 한다
- 즉, 슈퍼/서브 타입 성능을 고려한 물리적 데이터 모델로 변환하는 기준은 데이터 양과 테이블에 발생되는 트랜잭션의 유형에 따라 결정 된다
- 슈퍼/서브 타입 데이터 모델의 변환기술
- 논리적 데이터 모델에서 설계한 슈퍼/서브 타입 모델을 물리적 데이터 모델로 전환할 때, 어떤 유형의 트랜잭션이 발생하는지 검증해야 한다
- 데이터 양이 적다면 전체를 하나의 테이블로 묶어도 되지만, 데이터가 많다면 3가지를 고려하여 적용한다
- 개별로 발생되는 트랜잭션에 대해서는 개별 테이블을 구성한다
- 슈퍼타입 + 서브타입에 대해 발생되는 트랜잭션에 대해서는 슈퍼타입 + 서브타입 테이블을 구성한다
- 전체를 하나로 묶어 트랜잭션이 발생할 때 하나의 테이블로 구성한다
- 슈퍼/서브 타입 데이터 모델의 변환 타입 비교
구분 | OneToOne Type | Plus Type | Single Type |
---|---|---|---|
특징 | 개별 테이블 유지 | 슈퍼+서브 타입 테이블 | 하나의 테이블 |
확장성 | 우수 | 보통 | 나쁨 |
조인성능 | 나쁨 | 나쁨 | 우수 |
I/O량 성능 | 좋음 | 좋음 | 나쁨 |
관리 용이성 | 좋지않음 | 좋지않음 | 좋음 |
트랜잭션 유형에 따른 선택방법 | 개별 테이블로 접근이 많은 경우 | 슈퍼+서브 형식으로 데이터를 처리하는 경우 | 전체를 일괄적으로 처리하는 경우 |
2. 인덱스 특성을 고려한 PK/FK 데이터베이스 성능 향상
- PK/FK 칼럼 순서와 성능 개요
- 데이터 조회시 가장 효과적으로 처리할 수 있는 장치는 인덱스
- PK/FK 설계의 의미 : 데이터를 접근할 때 경로를 제공하는 성능 측면에서 중요한 역할
- 테이블에 발생되는 트랜잭션의 조회 패턴에 따라 PK/FK 칼럼의 순서를 조정 해야 함
- PK 순서 결정 기준 : 인덱스 정렬구조를 이해한 상태에서 인덱스를 효율적으로 이용할 수 있도록 지정
출처 : https://blog.naver.com/handuelly/221709939271
728x90
300x250