概念
1NF:每个属性都是原子的
2NF:在第一范式的基础上,其非主属性完全函数依赖键。
判断方法:
1.所有函数依赖左边是超键。
2.若右边是非主属性则:所有的非平凡函数依赖左边是超键或者有非主属性。
易错点:如R=(A,B,C,D,E)。AB为键,AB->C,AD->E,AB->D.则关系R属于2NF,AD->E这个可以看做传递依赖 AB->D,AD->E,即E完全函数依赖于AB
3NF:关系R满足2NF,且不存在非主属性对候选键的传递依赖。
eg. R=(A,B,C,D,E),键{A,B}, AB->C, AC->D,D->E,这个函数依赖存在两个传递依赖,AB->C, AC->D 和 AB->D, D->E。
注意!!!一定是非主属性对候选键的传递依赖。
易错点:如R={A,B,C}。AB->C,C->B,主键AB,此关系符合3NF,因为B是主属性,所以不是非主属性对候选键的传递依赖。
BCNF:
判断方法2种:
1:所有的函数依赖不存在非平凡函数依赖
2:若有非平凡函数依赖,则所有的非平凡函数依赖左边为键。
特判:只有两个属性的关系模式一定为BCNF。