2NF:每一个非主属性都完全依赖于码
判定:不存在非主属性对关键字的部分依赖
例如:R(A,B,C,), F={A→B,B→A,C→A}
第2范式,主码是C,不存在非关键字部分依赖关键字,所以属于第2范式。存在非关键字对任一候选关键字的传递函数依赖,所以不符合第3范式。
3NF:非主属性函数依赖于超码
判定:不存在非主属性对码的传递函数依赖或部分函数依赖性
例如:AB-C,A->C 码为(A,B),A,B是主属性,C是非主属性,C部分函数依赖于码,即不满足3NF
BCNF:所有函数依赖要么平凡,要么对超码依赖
每个决定因素都包含码(相比于3NF,优点是加上了对主属性的限制)
另一种说法:①主属性完全函数依赖于不含它的码
②没有任何属性完全函数依赖于非码的任何一组属性
③所有非主属性对每一个码都是完全函数依赖