정규화(Normalization)은 데이터베이스 설계에서 중복을 최소화하고 데이터의 일관성과 무결성을 유지하기 위한 과정입니다.
제1정규형(1NF):
테이블의 각 열(속성)은 원자적인 값만 가지도록 분해합니다. 즉, 더 이상 쪼갤 수 없는 최소의 데이터 단위로 구성되어야 합니다.
제2정규형(2NF):
1NF를 만족하면서 부분 함수 종속성(Partial Functional Dependency)을 제거합니다. 테이블의 모든 속성이 기본 키에 완전히 종속되어야 합니다.
제3정규형(3NF):
2NF를 만족하면서 이행적 함수 종속성(Transitive Dependency)을 제거합니다. 즉, 테이블의 모든 비 기본 키 속성이 기본 키에 대해 이행적으로 종속되지 않아야 합니다.
BCNF(Boyce-Codd 정규형):
모든 결정자가 후보 키인 테이블입니다. 제3정규형에서 발생할 수 있는 조인 종속성(Joint Dependency) 문제를 제거합니다.
제4정규형(4NF):
다치 종속성(Multivalued Dependency)을 제거합니다. 하나의 테이블 내에서 다른 테이블의 다중값 종속성이 발생하지 않도록 합니다.
제5정규형(5NF):
조인 종속성을 제거하여 데이터베이스에서 다중 테이블 조인에 의해 발생하는 종속성 문제를 해결합니다.