第二范式定义

时间:2016-10-13 06:20:27

标签: sql database entity-relationship

2NF具有以下定义

  

当且仅当表在1NF且 没有非素数 属性依赖于表的任何候选键的任何适当子集时,表在2NF中。

我的问题是为什么依赖属性必须非素数?这是否意味着素数属性可以依赖于候选键的适当子集?为什么在这种情况下它不会导致冗余?我正在思考一些关系的例子

{a,b,c,d}, if we assume {a,b}, {b,c} are two candidate keys and FD is a->c

1 个答案:

答案 0 :(得分:0)

该引用来自维基百科(?),我怀疑它使用Codd的引用比C J Date的引用更多。 Codd发明了主键的概念,但是关系理论已经偏离了“初级”的概念。完全。

这是“关系数据库词典”中关于日期的最新定义:

  

当且仅当R的每个非键属性A都使得R不可简约地依赖于每个键时,

Relvar [关系变量] { A }在2NF中R - 等效地,当且仅当,X -> Y中存在的每个非平凡FD R,(a)X是超级密钥或(b){{1 }是一个子项或(c)Y isn' ta子键。

请注意,这个问题可能因SO而被关闭,因为正如Date在其词典中所述,2NF在实践中并不特别有趣(他仅将其包含在历史利益中)。