Denormalization
반정규화, 역정규화
- 특정 상황에서 DB 성능 향상을 위해 일정 부분 데이터 중복을 허용하는 작업들을 지칭한다.
- 반정규화는 조회 성능은 향상시킬 수 있으나,
입력·수정·삭제 성능은 저해될 수 있어 이 부분을 염두하고 진행해야 한다.
* 반정규화를 통해 성능 향상을 기대할 수 있는 경우
- Entity의 Instance 개수가 많은 상황에서(=데이터가 많은 상황에서) 둘 이상의 Entity 간 Join을 수행하는 경우
(이 경우, Join에 연관된 엔터티들을 합치면 성능 향상을 기대해볼 수 있다.)
* 반정규화로 인해 성능이 저하되는 경우
- 엔터티를 합침으로써 반정규화를 수행한 이후, 갱신 로직이 추가되는 경우
(즉, 조회 성능을 향상시킨 대신 불필요한 갱신 로직이 추가되는 것이다.)
Reference: Database Management Systems 3E
(Raghu Ramakrishnan, Johannes Gehrke 저, McGrawHill, 2003)
Reference: The Guide for SQL Professional
(Kdata 한국데이터산업진흥원 저, Kdata 한국데이터산업진흥원, 2020)