자격증 정리/SQLD
Chapter 02 ) 데이터 모델과 성능 (3) - 반정규화와 성능
HanJW96
2023. 3. 8. 20:13
반정규화의 정의
- 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발(Development)과 운영(Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미
- 협의의 반정규화는 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있고 좀 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합 분리 등을 수행하는 모든 과정을 의미
- 데이터 무결성이 깨질 수 있는 위험을 무릎쓰고 데이터를 중복하여 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행하게 된다.
- 중복성의 원리를 활용하여 데이터 조회 시 성능을 향상시키는 역할을 할 수 있음
반정규화 절차
- 반정규화도 하나의 난이도 높은 데이터 모델링의 실무기술이다.
- 반정규화에 대한 필요성이 결정이 되면 칼럼의 반정규화 뿐만 아니라 테이블의 반정규화와 관계의 반정규화를 종합적으로 고려하여 적용
- 반정규화를 막연하게 중복을 유도하는 것만을 수행하기 보다는 성능을 향상시킬 수 있는 다른 방법들을 고려하고 그 이후에 반정규화를 적용하도록 해야 한다.
1. 반정규화 대상 조사 | 2. 다른 방법 유도 검토 | 3. 반정규화 적용 |
- 범위 처리 빈도수 조사 - 대량의 범위 처리 조사 - 통계성 프로세스 조사 - 테이블 조인 개수 |
- 뷰 테이블 - 클러스터링 적용 - 인덱스의 조정 - 응용 애플리케이션 |
- 테이블 반정규화 - 속성의 반정규화 - 관계의 반정규화 |
* 반정규화의 대상을 조사한다 | * 반정규화의 대상에 대해 다른 방법으로 처리할 수 있는지 검토한다. | * 반정규화를 적용한다. |
* 반정규화의 대상을 조사하고 다른 방법을 적용할 수 있는지 검토하고 그 이후에 반정규화를 적용하도록 한다.
반정규화의 기법 - 테이블 반정규화
반정규화의 기법 - 칼럼의 반정규화
반정규화의 기법 - 관계 반정규화
기법 | 내용 |
중복 관계 추가 | 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능저하를 예방하기 위해 추가적인 관계를 맺는 방법이 관계의 반정규화임 |
- 테이블과 칼럼의 반정규화는 데이터 무결성에 영향을 미치게 되나 관계의 반정규화는 데이터 무결성을 깨뜨릴 위험을
갖지 않고서도 데이터처리의 성능을 향상시킬 수 있는 반정규화의 기법이 된다.