理论功能依赖

时间:2017-06-03 13:53:15

标签: functional-dependencies

我正在学习功能依赖,我对此感到困惑:

  

鉴于表L(A,B,C,D)和FD> s:AB-> C,C-> D

     

我们可以从它获得功能依赖BC-> D?为什么呢?

我会说是的,因为我们有C-> D,我们可以去BC-> DB,然后将它分成BC-> D和BC-> B.这种推理是否正确?

  

表L是否为第二范式?它排在第3位吗?它是3.5正常形式吗?

现在,我不确定:我认为它在第二种,但不是第三种正常形式,但我不知道它是否在3.5(也许是的,因为我们只有一个键(AB)?) 如果不是,我们将如何将它变成3.5NF?

1 个答案:

答案 0 :(得分:1)

AB → C, C → D,你可以推导BC → D,你的推理是正确的。这可以使用Armstrong’s axioms

显示
1. From C → D you can derive BC → BD (by augmentation with B)
2. From BC → BD you can derive BC → D (by decomposition)

由于关系的唯一候选键是AB(因此AB是素数属性),因此依赖关系C→D违反第三范式以及Boyce-Codd范式(有时称为3.5范式)。如果每个行列式都是超级密钥,则关系在BCNF中,而事实并非如此,因为C不是超级密钥。如果,即使决定因素不是超级密钥,则确定性是一个主要属性(由于D不是素数,因此不是这种情况),因此关系可以是3NF。模式取而代之的是2NF,因为没有非素数属性依赖于候选键的适当子集。

相关问题