데이터베이스 정규화

Database Normalization

정규화는 함수 종속성 등 데이터 간 종속 관계를 분석하여 릴레이션을 무손실 분해함으로써 데이터 중복을 최소화하고 삽입·삭제·갱신 이상현상을 제거하는 논리 데이터 모델링 과정이다.

핵심 키워드

이상현상(삽입·삭제·갱신 Anomaly)함수 종속(Functional Dependency)부분 함수 종속(2NF)이행 함수 종속(3NF)BCNF(결정자 = 후보키)다치 종속(MVD, 4NF)조인 종속(JD, 5NF)무손실 분해(Lossless Decomposition)반정규화(Denormalization)

암기: "도부이결다조": 도메인 원자값(1NF)·부분 함수 종속 제거(2NF)·이행 종속 제거(3NF)·결정자는 후보키(BCNF)·다치 종속 제거(4NF)·조인 종속 해소(5NF)

구성도

정리

1. 개요

  • 정의: 종속성 분석을 통해 릴레이션을 분해하여 중복과 이상현상을 제거하는 과정
  • 목적: 데이터 중복 최소화, 무결성 유지, 이상현상 제거, 데이터 구조 안정성·확장성 확보
  • 이상현상(Anomaly)
    • 삽입 이상: 불필요한 데이터 없이는 원하는 데이터 삽입 불가
    • 삭제 이상: 한 데이터 삭제 시 유지해야 할 다른 정보까지 손실
    • 갱신 이상: 중복 데이터 일부만 수정되어 불일치 발생

2. 구성/원리 (정규형 단계)

정규형조건제거 대상
1NF모든 속성 값이 원자값(Atomic)반복 그룹·다중값 속성
2NF1NF + 기본키 전체에 완전 함수 종속부분 함수 종속
3NF2NF + 기본키가 아닌 속성 간 종속 없음이행 함수 종속 (A→B, B→C)
BCNF모든 결정자가 후보키후보키 아닌 결정자
4NFBCNF + 비자명한 다치 종속 없음다치 종속 (A→→B)
5NF모든 조인 종속이 후보키에 의해 함축조인 종속
  • 원리
    • 분해는 무손실 조인(Lossless Join) 과 가능하면 종속성 보존을 만족해야 함
    • 1NF~BCNF: 함수 종속 기반 / 4NF: 다치 종속 / 5NF: 조인 종속 기반
    • 3NF는 종속성 보존 분해가 항상 가능하나, BCNF는 종속성 보존을 보장하지 못할 수 있음

3. 비교: 정규화 vs 반정규화

항목정규화반정규화
목적무결성·중복 제거조회 성능 향상
방법릴레이션 분해테이블 병합·분할, 중복 컬럼·파생 컬럼, 요약 테이블
장점이상현상 제거, 저장 효율, 유연한 구조조인 감소, 응답 속도 개선
단점조인 증가로 조회 성능 저하 가능데이터 불일치 위험, 동기화 부담
적용OLTP 논리 설계성능 요구 영역, DW·리포팅

4. 고려사항·최신 동향

  • 고려사항
    • 실무에서는 통상 3NF 또는 BCNF까지 수행 후 성능 요건에 따라 선택적 반정규화
    • 반정규화 전 인덱스·클러스터링·파티셔닝·캐시 등 대안 우선 검토
    • 반정규화 시 트리거·배치 등 정합성 유지 방안 명시
  • 최신 동향
    • DW·분석 환경은 스타·스노우플레이크 스키마 등 차원 모델링(의도적 비정규화) 사용
    • NoSQL은 쿼리 패턴 중심 모델링으로 중복·임베딩을 허용
    • 레이크하우스에서도 메달리온 계층별로 정규화 수준을 달리 적용

함께 볼 토픽

v1 · 2026. 10. 19. 갱신 · 틀린 내용을 발견하면 알려 주세요.