정규화(Normalization)란 기존 데이터베이스를 재구성하는 과정이다. 다음은 정규화에 대한 예이다.
기본 키(Primary Key)에 의해 모든 행이 유일하게 구분되어야 한다. 그리고 중복이 없어야 한다.
표시된 부분을 기준으로 제 1 정규화를 진행한다.
제 1 정규화를 만족하면서 후보 키(Candidate Key)에 속하지 않는 속성들이 후보 키(Candidate Key)에 완전 종속되어야 한다.
구매자 테이블은 제 2 정규화를 만족하기 때문에 수정 사항이 없다.
주문 내역 테이블은 표시된 부분을 기준으로 제 2 정규화를 진행한다.
결과는 다음과 같다.
제 2 정규화를 만족하면서 후보 키(Candidate Key)에 속하지 않는 속성들은 후보 키(Candidate Key)에 속하지 않는 속성들에 완전 종속되면 안 된다. 즉, 모든 속성들이 기본 키(Primary Key)에만 완전 종속되어야 한다.
위 예는 제 3 정규화를 만족하기 때문에 진행할 내용이 없다. 따라서 새로운 예시로 제 3 정규화를 진행해 보도록 하겠다.
표시된 부분이 제 3 정규화를 만족하지 않기 때문에 제 3 정규화를 진행하면 다음과 같다.
이상으로 정규화(Normalization)를 마칩니다.