2NF具有以下定义
当且仅当表在1NF且 没有非素数 属性依赖于表的任何候选键的任何适当子集时,表在2NF中。
我的问题是为什么依赖属性必须非素数?这是否意味着素数属性可以依赖于候选键的适当子集?为什么在这种情况下它不会导致冗余?我正在思考一些关系的例子
{a,b,c,d}, if we assume {a,b}, {b,c} are two candidate keys and FD is a->c
答案 0 :(得分:0)
该引用来自维基百科(?),我怀疑它使用Codd的引用比C J Date的引用更多。 Codd发明了主键的概念,但是关系理论已经偏离了“初级”的概念。完全。
这是“关系数据库词典”中关于日期的最新定义:
当且仅当
R
的每个非键属性A
都使得R
不可简约地依赖于每个键时,Relvar [关系变量]
{ A }
在2NF中R
- 等效地,当且仅当,X -> Y
中存在的每个非平凡FDR
,(a)X
是超级密钥或(b){{1 }是一个子项或(c)Y
isn' ta子键。
请注意,这个问题可能因SO而被关闭,因为正如Date在其词典中所述,2NF在实践中并不特别有趣(他仅将其包含在历史利益中)。