반정규화
1. 반정규화(De-Normalization) 개념
- 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법
2. 반정규화 특징
1. 장점
- 반정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가
2. 단점
- 데이터의 일관성 및 정합성 저하
- 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음
=> 반정규화를 위해서는 데이터의 일관성과 무결성을 우선으로 할지 데이터베이스의 성능과 단순화에 우선순위를 둘 것인지를 비교하여 조정하는 과정이 중요하다.
3. 반정규화 기법
1. 테이블
1. 테이블 병합
- 1:1 관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상
2. 테이블 분할
=> 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라 함
- 수평분할 : 테이블 분할에 레코드를 기준으로 활용
- 수직 분할 : 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용, 갱신 위주의 컬럼, 수직 분할, 조회 빈도가 높은 컬럼을 분할
3. 중복 테이블 생성
- 대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등)를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가
2. 컬럼
1. 중복 컬럼 생성
- 조인 시 성능 저하를 예방하기 위해, 중복된 컬럼을 위치 시킴
- 대량의 이력데이터 처리 시 불특정일 조회나 최근 값을 조회할 때 나타날 수 있는 성능 저하를 예방하기 위해 기능성 컬럼을 추가
3. 관계
1. 중복관계 추가
- 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법