데이터 중복과 insertion, update, deletion anomaly를 최소화하기 위해 일련의 nomal forms(NF)에 따라 relation DB를 구성하는 과정
1NF : attribute의 value는 반드시 나눠질 수 없는 단일한 값이어야 한다
2NF : 모든 non-prime attriubte는 모든 키에 Fully FD해야 한다. 즉 partial FD 해서는 안된다.
3NF : 모든 non-prime attribute는 어떤 key에도 transitively dependent하면 안된다. #non-prime attribute와 non-attribute 사이에는 FD가 있으면 안된다
BCNF : 모든 유요한 non-trivial FD X -> Y는 X가 super key여야 한다.
super key: Table내에서 tuple들을 유니크하게 식별할 수 있는 attribute set
prime attribute: key ot composite key가 되는 attribute(s)
non-prime attribute: 어떠한 key에도 속하지 않는 attribute