관계형 데이터베이스 관리 시스템(RDBMS)의 정규화는 데이터 중복을 최소화하고 데이터 무결성을 위해 데이터베이스를 구성하고 구조화하는 프로세스이다.
큰 테이블을 더 작은 관련 테이블로 나누고 이들 간의 관계를 설정하여 데이터 중복 및 불일치를 줄이는 작업이 포함됩니다.
정규화의 주요 목표는 각 데이터 조각이 한 곳에만 저장되어 이상 현상 제거하고 전체 데이터베이스 효율성을 향상시키는 것입니다.
정규화 프로세스는 여러 정규 형식으로 나뉘며 각 정규 형식은 서로 다른 유형의 데이터 중복 및 이상 현상을 처리한다.
정규화 단계론
제 1 정규화
: 테이블의 컬럼이 원자값(Atomic Value, 하나의 값)을 갖도록 테이블을 분해한다.
제2 정규화
: 제1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해한다. 완전 함수 종속이라는 것은 기본키의 부분집합이 결정자가 되어선 안된다는 것을 의미한다.
제3 정규화
: 제2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것이다.
BCNF 정규화
: 제3 정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해하는 것이다.