본문 바로가기

RDBMS

정규화와 반정규화

정규화란 ? 

데이터의 중복성의 제거하여 여러 엔티티의 조인이 발생하는 데이터베이스 환경에서 성능을 향상시키기 위한 데이터 구조화 프로세스



정규화의 방법

- 낮은 차수의 정규화를 만족한 상태로 높은 차수의 정규화를 진행



정규화 단계

1) 제1정규화

- 중복되는 컬럼제거

e1


e2



2) 제2정규화

- 종속되는 값 제거




3) 제3정규화

- 엔티티(테이블명)에 맞는 데이터로 분리






반정규화란 ?  

정규화로 인해서 테이블의 수가 증가하게 되면, 다수의 JOIN이 발생함에 따라 성능 저하가 발생할 수 있다. 이 문제를 해결하고자 정규화 과정이 모두 마무리 한 다음 반정규화를 실시한다. 단, 테이블을 합치는 것만이 반정규화는 아니다.

  • 그룹에 대한 합계 같은 값을 미리 계산하여 테이블에 저장 ( 기존 테이블을 Sum 하여 확인하지 않고 별도의 통계 테이블 생성 )
  • 하나의 테이블에서 자주 사용되는 행(레코드)과 그렇지 않은 행들을 분리
  • 자주 JOIN하여 사용하는 컬럼을 중복제거하여 하나의 테이블로 생성


'RDBMS' 카테고리의 다른 글

조인 종류 및 수행원리  (0) 2017.05.31
트랜잭션 정리  (0) 2017.05.12