关系数据库 – 将关系分解成BCNF
我在建立Boyce-Codd Normal Form之间的关系时遇到麻烦,如果不是,请将其分解为BCNF表单.给出这个例子:
具有功能依赖性的R(A,C,B,D,E):A→& B,C – > e 我该怎么去分解呢? 我采取的步骤是: 所以现在我知道ACE会组成整体关系,但分解的答案是:AB,CD,ACE. 我想我正在努力如何正确地将一个关系分解成BCNF表格,以及如何告诉你什么时候完成.真正感谢任何人在解决这些问题时能够走过思想过程.谢谢! 解决方法虽然这个问题是旧的,但其他的问题/答案似乎并不能为确定和分解与BCNF的关系提供一个非常明确的一般性答案.1.确定BCNF: 在你的情况下,可以显示唯一候选键(最小超级键)是ACE. 将R分解成BCNF形式: Initialize S = {R} While S has a relation R' that is not in BCNF do: Pick a FD: X->Y that holds in R' and violates BCNF Add the relation XY to S Update R' = R'-Y Return S 在你的情况下,迭代步骤如下: S = {ABCDE} // Intialization S = {R} S = {ACDE,AB} // Pick FD: A->B which violates BCNF S = {ACE,AB,CD} // Pick FD: C->D which violates BCNF // Return S as all relations are in BCNF 因此,R(A,E)被分解成满足BCNF的一组关系:R1(A,E),R2(A,B)和R3(C,D) 还要注意,在这种情况下,功能依赖性被保留,但BCNF的规范化并不能保证这一点. 我希望这有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |