RDBMS(관계형 데이터 베이스 관리 시스템)의 정규화는 데이터베이스 설계에서 중복을 제거하고 데이터 중복을 최소하하여 데이터베이스를 보다 효율적으로 설계하는 과정.
제 1 정규화(1NF): 각 테이블이 하나의 원자 값으로만 구성되도록 함. 즉, 각 열에는 중복되는 필드가 없어야함
제 2 정규화(2NF): 부분 함수 종속을 제거. 기본 키가 아닌 모든 속성이 기본 키에 완전 함수 종속되어야 함
제 3 정규화(3NF): 이행적 함수 종속을 제거. 모든 비기본 속성이 기본 키에 이행적으로 종속되지 않아야 함.
BCNF(Boyce-Codd 정규화 형태): 모든 결정자가 후보 키여야 함. 이를 통해 제 3 정규화에서 발생할 수 있는 이상 현상을 방지!
4,5 정규화도 있으나 일반적으로 3또는 BCNF까지 정규화를 수행하는 경우가 많음
정규화 과정을 통해 중복된 데이터를 제거하고 이상 현상을 방지하여 데이터베이스의 구조를 최적화할 수 있지만 과도한 정규화는 성능 저하를 일으킬 수 있으므로 적절한 수준에서의 정규화가 필요.
데이터베이스 테이블 내의 모든 레코드에서 고유한 아이드를 제공한다.
데이터가 일관될 수 있도록 돕는 역할을 한다. 보통은 두 개의 데이터베이스 테이블을 잇고자 기본 키와 사용된다. 일종의 테이블을 연결하는 가상의 다리 역할.