데이터베이스의 정규화, 반정규화에 대해 작성한다.
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 |