반정규화의 종류와 정의
1. 반정규화(Denormalization)의 특징
데이터베이스 설계 과정에서 정규화된 데이터 구조를 의도적으로 일부 되돌리 는 작업을 말합니다.
이는 주로 성능 최적화와 쿼리 성능 향상을 위해 수행됩니다. 반정규화는 데이터의 중복을 허용하여 데이터베이스의 읽기 성능을 높이고, 조인 연산의 부담을 줄이기 위해 사용됩니다.
2. 반정규화의 장/단점
1) 장점
- 성능 향상 : 데이터 조회 시 조인 연산을 줄임으로써 쿼리 성능이 향상됩니다.
- 간단한 쿼리 : 데이터가 하나의 테이블에 모여 있으므로 쿼리가 단순해지고 유지 보수가 쉬워집니다.
- 효율성 : 데이터가 중복되어 저장되므로 캐시 효율성이 높아집니다.
2) 단점
- 데이터 중복 : 데이터가 중복 저장되므로 저장 공간이 증가하고, 데이터 불일치 가능성이 높아집니다.
- 데이터 무결성 : 중복된 데이터를 일관되게 유지하기 어려워질 수 있습니다.
- 복잡한 업데이트 : 데이터가 여러 위치에 중복되어 있으므로, 데이터를 삽입, 수정, 삭제할 때 복잡성이 증가합 니다.
3. 반정규화의 종류
1) 테이블 반정규화
- 테이블 병합 : 1:1관계 테이블 병합, 1:M 관계 테이블 병합, 슈퍼/서브 타입 테이블 병합
- 테이블 분할 : 테이블 수직 분할, 테이블 수평 분할
- 테이블 추가 : 중복 테이블 추가, 통계 테이블 추가, 이력 테이블 추가, 부분 테이블 추가
2) 컬럼 반정규화 (단일 테이블 내에서 성능 최적화)