본문 바로가기

데이터베이스/정규화

반정규화(역정규화)

1. 테이블 반정규화

 분류

 기법

 내용

 테이블 병합

 1:1 관계 테이블 병합

 1:1 관계를 통합

 1:M 관계 테이블 병합

 1:M 관계를 통합

 슈퍼/서브타입 테이블 병합

 슈퍼/서브타입 관계를 통합

 테이블 분할

 수직 분할

 컬럼 단위로 분할

 수평 분할

 로우 단위로 분할

 테이블 추가

 중복 테이블 추가

 다른 업무이거나 서버가 다른 경우 동일한 테이블 구조를 중복하여 생성

 통계 테이블 추가

 SUM, AVG 등을 미리 계산해 둔 테이블을 추가

 이력 테이블 추가

 마스터 테이블에 존재하는 레코드를 시간, 트랜잭션 발생 시점에 따라 복사해 두는 테이블을 추가

 부분 테이블 추가

 수평 분할이란 동일한 개념

 

 

2. 컬럼 반정규화

 

 기법

 내용

 중복 컬럼 추가

 조인에 의한 성능 저하를 예방하기 위해 중복 된 컬럼을 위치 시킴

 파생 컬럼 추가

 트랜잭션이 처리 되는 시점에 계산에 의해 발생 되는 성능 저하를 예방하기 위해 미리 값을 계산하여 컬럼에 보관

 이력 테이블 컬럼 추가

 대량의 이력 데이터를 처리할 때 불특정 날 조회나 최근 값을 조회할 때 나타날 수 있는 성능 저하를 예방하기 위해 이력 테이블에 기능성 컬럼을 추가

 PK에 의한 컬럼 추가

 복합 의미를 가지는 PK를 단일 속성으로 구성하는 경우 단일 PK안에서 특정 값을 별도로 조회하는 경우 성능 저하가 발생 될 수 있음. 이미 PK안에 데이터가 존재하지만 성능 향상을 위해 일반 속성으로 포함

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

 업무적으로는 의미가 없지만 사용자가 데이터 처리를 하다가 잘 못 처리하여 원래 값으로 복구하기를 원하는 경우 이전 데이터를 임시적으로 중복하여 보관. 이력 데이터 모델로 풀어낼 수 있음

 

3. 관계 반정규화

 기법

 내용

 중복관계 추가

 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이 때 발생할 수 있는 성능 저하를 예방하기 위해 추가적인 관계를 맺음

 

'데이터베이스 > 정규화' 카테고리의 다른 글

BCNF(Boyce-Codd NF)  (0) 2015.01.09
제3정규형(3NF)  (0) 2015.01.09
제2정규형(2NF)  (0) 2015.01.09
제1정규형(1NF)  (0) 2015.01.09