관계형 데이터베이스의 설계에서 중복을 최소화하기 위해 데이터를 구조화하는 프로세스이다.
정규화의 목적은 불필요한 중복을 최소화하고 삽입/삭제/갱신 시 발생할 수 있는 각종 이상 현상을 방지하는 것이다.
모든 속성 값이 원자 값을 갖도록 분해한다.
제1정규형을 만족하고, 기본키가 아닌 속성이 기본키에 완전 함수 종속이도록 분해한다.
(완전 함수 종속: 기본키의 부분집합이 다른 값을 결정하지 않는 것, (A, B) -> C이고 B -> C가 될 때 C를 별도 테이블로 분리)
제2정규형을 만족하고, 기본키가 아닌 속성이 기본키에 직접 종속(비이행적 종속)하도록 분해한다.
(이행적 종속: A->B->C가 성립하는 것으로, 이를 A->B, B->C로 분해하는 것이 제3정규형이다.)
제3정규형을 만족하고, 함수 종속성 X->Y가 성립할 때 모든 결정자 X가 후보키가 되도록 분해한다.