3NF就是指表中的兄老所有数据元李槐素不但要能唯一地被主关键字所标识;特点就是哪尘友它们之间还必须相互独立,不存在其他的函数关系。
关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z (强制依赖)Y),使得X→Y,Y→Z,成立,Y→X不成立,则称R ∈ 3NF。
若R∈3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。
如果R∈3NF,则R也是2NF。
采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。
将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。
这个定义是没有问题的。对于你的疑问,J对(S,T)确实是部分依赖,但是3NF的定义中“没有任何非主属性慧辩对码前樱缺传递依赖或部分依赖”,其中说的是“非主属性”,而SJ是候选码,因此J是主属性,这并不违背三范式的定义。而BCNF则是要消除所有属性对码的部分函数依赖,所以这个不是BCNF。在范式的定义颂启中,只考虑码,而不考虑把哪个码定义为主键,也就是说范式的定义主键的定义无关。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)