从3rd Normal Form Definition:
如果数据库满足以下条件,则它是第三种正常形式
条件:
它是第二种正常形式。
不存在可传递的函数依赖项。
通过传递函数依赖,我们的意思是
表中的关系:a在功能上依赖于b,b是
函数依赖于c。在这种情况下,c是传递依赖的
从A到B。
我的幸运者给了我们第三次辩护:
非素数属性不能依赖于不是超级键的任何集合
(传递依赖)。
这两个定义到3nf是否相等?为什么?
最佳答案
假设存在一个属性X
,这取决于一组不是超级键的属性。这意味着X
依赖的集合至少包含一个属性np1
,该属性不是超级键的一部分。但是np1
将反过来依赖于一个超级键。
因为np1
依赖于超级键,所以以下一项(并且只有一项)将为真:
a.X
只取决于超级键,这与我们最初的假设相矛盾。
或
b.X
仅依赖于np1
=>这引入了传递依赖
如果x真的依赖于sk和np1,那么[sk,np1]将成为一个超级密钥——这是不可能的。
所以唯一可能的结论是这两个定义是相等的。