본문 바로가기

개발/Database

데이터베이스 정규화, 반정규화

데이터베이스의 정규화, 반정규화에 대해 작성한다.

 

1.정규화(Normalization)
정규화는 데이터의 중복성을 제거하여 여러 엔티티의 조인이 발생하는 데이터베이스 환경에서 성능을 향상시키기 위한 데이터 구조화 프로세스를 말한다.

 

정규화 단계
-제1정규화
중복되는 컬럼을 제거한다.
-제2정규화
종속되는 값을 제거한다.
-제3정규화
엔티티에 맞는 데이터로 분리한다.

 

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

 

-그룹에 대한 합계 값을 미리 계산하여 테이블에 저장
(기존 테이블에 sum 하는것이 아니라 별도의 통계 테이블을 생성)
-하나의 테이블에서 자주 사용되는 레코드와 그렇지 않은 행들을 분리
-자주 조인하여 사용하는 컬럼을 중복제거하여 하나의 테이블로 생성

반응형

'개발 > Database' 카테고리의 다른 글

계층형 질의(Hierarchical Query)  (0) 2020.08.14
ORM(Object Relational Mapping)  (0) 2020.06.13
Index  (0) 2020.06.05
SQL - GROUP BY, HAVING  (0) 2020.06.05
SQL 튜닝  (0) 2020.06.05