如果我们有一个关系模式 R(A, B, C, D),具有一组依赖关系:
ABC -> D
D -> A
如何将 R 分解为 BCNF 关系?唯一可行的方法似乎是丢弃其中一个 FD,无论我怎么想。还有其他办法吗?
没错,我们总是可以无损分解为 3NF,同时保留 FD,但 BCNF 可能不会保留它们。尽管如此,它还是一种无损分解:如果组件保留了原始组件的投影,那么它们将连接到原始组件。但只要原始值具有给定值,其分量就应该是它的投影。 (如果不是,则说明发生了错误,因此我们希望 DBMS 适当地约束组件。)因此,将组件约束为原始组件的投影是必要但足够的。 ABC 就是这样(因为它是一把钥匙)。这使得我们需要要求 AD = ABCD PROJECT {DA}。我们说组件必须满足“平等依赖”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)