데이터베이스 정규화 (Database Normalization)

1. 정의

데이터베이스 정규화(Database Normalization)란 데이터 중복을 최소화하고 데이터 무결성을 보장하기 위해 릴레이션을 분해하는 과정을 말한다. 이를 통해 삽입·갱신·삭제 이상(Anomaly)을 제거하고 효율적인 데이터 구조를 설계할 수 있다.

2. 목적 및 절차

  • 목적: 데이터 중복 제거, 무결성 유지, 저장 공간 최적화, 데이터 일관성 확보
  • 절차: 정규화 단계(1NF~BCNF 이상) 순차 적용
  • 적용 시점: 논리적 설계 단계(Logical Design Phase)에서 수행

3. 정규화 단계별 설명

단계 정의 목적
1정규형(1NF) 모든 속성은 원자값(Atomic Value)으로만 구성 반복 그룹 제거
2정규형(2NF) 1NF 만족 + 부분 함수 종속 제거(기본키 전체에 종속) 기본키 전체에 종속
3정규형(3NF) 2NF 만족 + 이행 함수 종속 제거 비키 간 종속성 제거
BCNF 모든 결정자가 후보키 이상 현상 완전 제거
4정규형(4NF) BCNF 만족 + 다치 종속(MVD) 제거 독립적 다중 값 분리
5정규형(5NF) 4NF 만족 + 조인 종속 제거 데이터 재구성 최소화

 

4. 장점과 단점

(1) 장점

  • 데이터 중복 최소화
  • 데이터 무결성 강화
  • 이상 현상 제거

(2) 단점

  • 테이블 수 증가로 조인 비용 증가
  • 조회 성능 저하 가능성 → 반정규화(Denormalization) 고려 필요

5. 결론

정규화는 데이터베이스의 품질을 높이는 핵심 설계 기법으로, 각 단계의 목적과 적용 시점을 이해하고 시스템 특성에 맞게 반정규화와 병행해야 최적 성능을 낼 수 있다.

+ Recent posts