반정규화의 정의
- 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다.
- 협의의 반정규화는 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있고 좀 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 의미한다.
- 데이터 무결성이 깨질 수 있는 위험을 무릅쓰고 데이터를 중복하여 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나, 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행하게 된다.
반정규화 절차
- 반정규화도 하나의 난이도 높은 데이터 모델링의 실무 기술이다.
- 반정규화에 대한 필요성이 결정이 되면 칼럼의 반정규화 뿐만 아니라 테이블의 반정규화와 관계의 반정규화를 종합적으로 고려하여 적용해야 한다.
- 반정규화를 막연하게 중복을 유도하는 것만을 수행하기 보다는 성능을 향상시킬 수 있는 다른 방법들을 고려하고 그 이후에 반정규화를 적용하도록 해야 한다.
반정규화의 다양한 기법들
성능향상을 위한 의도적인 반정규화 예시
'Database > SQLD 시험 준비' 카테고리의 다른 글
챕터02. 데이터 모델과 성능 - 2.4 대량 데이터에 따른 성능 (0) | 2023.08.26 |
---|---|
챕터02. 데이터 모델과 성능 - 2.2 정규화와 성능 (0) | 2022.12.08 |
챕터02. 데이터 모델과 성능 - 2.1 성능 데이터 모델링의 개요 (0) | 2022.11.29 |
챕터01. 데이터 모델링의 이해 - 1.6 연습문제 (0) | 2022.11.29 |
챕터01. 데이터 모델링의 이해 - 1.5 식별자 (0) | 2022.11.28 |