반정규화 (De-Normalization)
반정규화란 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위이다.
→ 조회속도를 향상시키지만, 데이터 모델의 유연성은 낮아진다.
반정규화를 수행하는 이유
- 정규화에 충실하여 종속성, 활용성은 향상 되었지만 수행속도가 느려진 경우
- 다량의 범위를 자주 처리해야하는 경우
- 특정 범위의 데이터만 자주 처리하는 경우
- 요약/집계 정보가 자주 요구되는 경우
반정규화 기법
1. 테이블 통합
테이블 통합은 두 개의 테이블이 조인되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행한다.
2. 테이블 분할
테이블 분할은 테이블을 수직 또는 수평으로 분할하는 것이다.
- 수평 분할
- 레코드를 기준으로 테이블을 분할
- 수직 분할
- 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할
3. 중복 테이블 추가
여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된 테이블을 이용해야 하는 경우 중복 테이블을 추가하여 작업의 효율성을 향상시킬 수 있다.
4. 중복 속성 추가
중복 속성 추가는 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것이다.
'코딩 공부 > web & Java' 카테고리의 다른 글
[HTML] input type="submit"과 button (0) | 2022.09.19 |
---|---|
[HTML] section과 article (0) | 2022.09.17 |
[SQL] 정규형 (0) | 2022.09.14 |
[SQL] 정규화 (0) | 2022.09.14 |
[SQL] SUBSTRING, SUBSTRING_INDEX (0) | 2022.09.14 |