
데이터 중복과 이상 현상을 최소화하기 위해 일련의 정규형(normal forms)에 따라 RDB를 구성하는 과정
정규형
정규화되기 위해 준수해야 하는 제약조건
Init 테이블 -> 1NF -> 2NF -> 3NF -> BCNF -> 4NF -> 5NF -> 6NF
모든 attribute의 value는 반드시 나눠질 수 없는 단일한 값이여야 한다.
모든 non-prime attribute는 모든 key에 fully functionally dependent 해야한다.
모든 Key가 Composite Key가 아니라면 2NF는 자동적으로 만족한다?
보통은 맞으나, 아닐 때에도 있다. 예를 들어 특정 attribute는 항상 같은 값을 가지면 {}->{attribute} 즉, partially functionally dependent fd가 존재하게 되기 때문이다.
모든 non-prime attribute는 어떤 key 에도 transitively dependent 하면 안된다 (== non prime attribute 사이에는 FD가 있으면 안된다.)
모든 유효한 Non-trivial FD X->Y 에서 X는 Super Key여야 한다.
분리했던 테이블을 다시 합치는 것