정규화(Normalization)와 반정규화(Denormalization)는 관계형 데이터베이스 설계에서 데이터 구조의 효율성과 성능을 조절하는 두 가지 접근 방식
✅ 정규화 (Normalization)
목적:
- 데이터 중복 제거,
- 데이터 무결성 유지,
- 데이터 구조의 논리적 정합성 확보
장점:
- 데이터 무결성 향상
- 변경 시 일관성 유지
- 저장 공간 최적화
단점:
- 조인이 많아져 성능 저하 가능
- 실시간 처리에 불리할 수 있음
✅ 반정규화 (Denormalization)
목적:
- 조회 성능 향상
- 복잡한 조인 최소화
방법:
- 테이블 병합
- 중복 데이터 허용
- 집계 필드 추가
- 컬럼을 별도로 분리하거나, 계산 결과 컬럼 저장
장점:
- 조회 성능 향상, 특히 대용량/실시간 시스템에서 유리
- 조인 감소로 인한 단순한 쿼리 작성 가능
단점:
- 데이터 중복 증가 → 무결성 문제 가능성
- 변경 작업이 많아지면 관리 복잡도 증가
✅ 정규화 vs 반정규화 요약
항목 | 정규화 | 반정규화 |
목적 | 중복 제거, 무결성 확보 | 성능 개선 |
장점 | 일관성, 저장 공간 효율 | 빠른 조회, 간단한 쿼리 |
단점 | 느린 조회, 복잡한 쿼리 | 데이터 중복, 무결성 위험 |
사용처 | OLTP 시스템 (은행, ERP 등) | OLAP, 리포팅, 대용량 분석 시스템 |