자격증 정리/SQLD

Chapter 02 ) 데이터 모델과 성능 (3) - 반정규화와 성능

HanJW96 2023. 3. 8. 20:13

반정규화의 정의

  • 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발(Development)과 운영(Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미
  • 협의의 반정규화는 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있고 좀 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합 분리 등을 수행하는 모든 과정을 의미
  • 데이터 무결성이 깨질 수 있는 위험을 무릎쓰고 데이터를 중복하여 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행하게 된다.

- 중복성의 원리를 활용하여 데이터 조회 시 성능을 향상시키는 역할을 할 수 있음

반정규화 절차

  • 반정규화도 하나의 난이도 높은 데이터 모델링의 실무기술이다.
  • 반정규화에 대한 필요성이 결정이 되면 칼럼의 반정규화 뿐만 아니라 테이블의 반정규화와 관계의 반정규화를 종합적으로 고려하여 적용
  • 반정규화를 막연하게 중복을 유도하는 것만을 수행하기 보다는 성능을 향상시킬 수 있는 다른 방법들을 고려하고 그 이후에 반정규화를 적용하도록 해야 한다.

 

1. 반정규화 대상 조사 2. 다른 방법 유도 검토 3. 반정규화 적용
- 범위 처리 빈도수 조사
- 대량의 범위 처리 조사
- 통계성 프로세스 조사
- 테이블 조인 개수
- 뷰 테이블
- 클러스터링 적용
- 인덱스의 조정
- 응용 애플리케이션
- 테이블 반정규화
- 속성의 반정규화
- 관계의 반정규화
* 반정규화의 대상을 조사한다 * 반정규화의 대상에 대해 다른 방법으로 처리할 수 있는지 검토한다. * 반정규화를 적용한다.

* 반정규화의 대상을 조사하고 다른 방법을 적용할 수 있는지 검토하고 그 이후에 반정규화를 적용하도록 한다.

반정규화의 기법 - 테이블 반정규화

반정규화의 기법 - 칼럼의 반정규화

반정규화의 기법 - 관계 반정규화

기법 내용
중복 관계 추가 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능저하를 예방하기 위해 추가적인 관계를 맺는 방법이 관계의 반정규화임

- 테이블과 칼럼의 반정규화는 데이터 무결성에 영향을 미치게 되나 관계의 반정규화는 데이터 무결성을 깨뜨릴 위험을

갖지 않고서도 데이터처리의 성능을 향상시킬 수 있는 반정규화의 기법이 된다.