Search

Normalization(정규화)

태그

정의

데이터베이스 설계 과정에서 중복을 최소화하고 데이터 무결성을 향상시키기 위한 프로세스
테이블 간의 관계를 구조화하고, 데이터의 일관성, 정확성, 효율성을 보장하는데 도움이 된다.
완전한 정규화가 반드시 최선은 아님
성능 향상 또는 개발 용이성 등의 이유로 의도적으로 역정규화(denormalization)를 진행하기도 함

정규화의 단계

1.
제1정규형 모든 컬럼 값은 원자적(더 이상 분할할 수 없는)해야 하며, 각각의 로우가 고유해야 합니다.
2.
제2정규형 제1정규형에 추가하여 부분 함수 종속성(partial functional dependency)을 제거해야 합니다. 즉, 기본키가 복합키인 경우 모든 비키 컬럼은 기본키 전체에 대해 종속되어야 합니다.
3.
제3정규형 제2정규형에 추가하여 이행적 함수 종속성(transitive functional dependency)을 제거해야 합니다. 즉 비키 컬럼 간에 종속관계가 없어야 합니다.
4.
보이스-코드 정규형 (BCNF) 제3정규형에 추가하여 모든 결정자가 후보 키(candidate key)여야 합니다.
비키 컬럼
부분 함수 종속성
이행적 함수 종속성
후보 키
역정규화