개주 훈련일지/📚 코살대 교본 학습

SQL) 반정규화와 성능

lshfood2 2025. 12. 24. 00:14

[ 반정규화의 정의 ]

반정규화는 정규화된 데이터 모델을 분석하여

엔터티/속성/관계를 중복, 통합, 분리 등의

작업으로 수행하는 데이터 모델링 기법이다.

 

데이터를 고의적으로 중복 저장하여 조회 성능을

향상시키기 위한 기법이라고 정의할 수 있는데,

중복 저장함으로써 조인 연산이 회피되어 성능이 향상된다.

 

데이터 무결성이 깨질 수 있는 위험을 무릎쓰고

데이터를 중복하여 반정규화를 적용하는 상황은

 

데이터를 조회할 때 디스크 I/O량이

많아서 성능이 저하되는 경우,

 

테이블 간 경로가 너무 멀어

조인으로 인한 성능 저하가 예상되는 경우,

 

칼럼을 계산하여 읽을 때

성능이 저하될 것이 예상되는 경우이다.


[ 반정규화의 절차 ]

칼럼의 반정규화, 테이블의 반정규화,

관계의 반정규화를 종합적으로 고려하여 적용해야 한다.

 

반정규화 대상을 조사한 후, 무조건적인 반정규화가 아닌

다른 방법으로 유도할 수 있는지 검토해야 한다.

 

다른 방법을 모두 검토한 후에도 다른 해결책이 없다면

반정규화를 적용하여 성능을 향상시킨다.

 

1) 반정규화 대상 조사

- 범위 처리 빈도수 조사

- 대량의 범위 처리 조사

- 통계성 프로세스 조사

- 테이블 조인 개수

 

2) 다른 방법 유도 검토

- 뷰 테이블

- 클러스터링 적용

- 인덱스의 조정

- 응용 애플리케이션 변경

 

3) 반정규화 적용

- 테이블 반정규화

- 속성의 반정규화

- 관계의 반정규화


[ 반정규화 기법 ]

- 테이블 반정규화

- 속성(칼럼)의 반정규화

- 관계의 반정규화

 

1) 테이블 반정규화 기법

테이블 병합

테이블 분할

테이블 추가

 

2) 칼럼 반정규화 기법

중복 칼럼 추가

파생 칼럼 추가

이력 테이블 칼럼 추가

PK에 의한 칼럼 추가

응용 시스템의 오작동을 위한 칼럼 추가

 

3) 관계 반정규화 기법

중복 관계 추가