如果我们有一个关系模式R(A,B,C,D),带有一组依赖关系:
ABC -> D
D -> A
如何将R分解成BCNF关系?无论我如何看待,唯一合理的方式似乎是弃掉其中一个FD。还有其他办法吗?
答案 0 :(得分:2)
没错,人们可以在保留FD的同时无损地分解为3NF,但BCNF可能无法保留它们。然而,它是一种无损分解:如果保持原件的投影,那么这些组件将加入到原始组件中。但只要原件具有给定值,组件就应该是它的预测。 (如果它们没有,则会出现错误,因此我们希望DBMS适当地约束组件。)因此,有必要但足以将组件约束为原始投影。 ABC非常简单(因为它是关键)。这使我们需要要求AD = ABCD PROJECT {DA}。我们说组件必须满足"平等依赖"。