【发布时间】:2016-06-10 05:45:17
【问题描述】:
我有 R(A,B,C,D) 和 AB 主键和AD --> C
我认为它在 2nf 中,因为您无法用 AB 的子集确定 C 来自wiki“如果一个表在1NF中并且没有非主属性依赖于表的任何候选键的任何适当子集,则它在2NF中”
但很多人说它是在 1nf 中,因为定义 “在 2NF 中,如果它在 1NF 中,并且表的每个非主属性都依赖于每个候选键的整体” 所以 AD 不是整个主键,而只是具有另一个属性而不是素数的一部分
如果您也可以提供一些与维基百科不同的参考,那么我可以证明我的论文是否真的正确
【问题讨论】:
-
{AB} 是键意味着 AB->CD。 “如果关系 R 处于第一范式并且 R 的每个非主属性完全依赖于 R 的每个候选键,则关系 R 处于第二范式。” [1] 因此,R 确实满足 2NF,因为每个非主属性 (C,D) 都完全依赖于每个键 ({A,B})。 [1] Codd EF,Randall J. Rustin(编辑)中的“数据库关系模型的进一步规范化”,数据库系统:Courant 计算机科学研讨会系列 6,Prentice-Hall,新泽西州 Englewood Cliffs,1972 年.
标签: sql database relational-database normalization