我在理解BCNF分解时遇到了困难。
如果我有:
R=(A,B,C)
FDs: AB -> C, C -> B计算闭包时,我得出的结论是最小键是{AB}和{AC}。
Therefore,
AB --> C is NOT in BCNF violation because AB is a key
C --> B IS in violation because C is not a key.
I decompose C --> B like this
R1 = Closure of C = (C,B)
R2 = (A,C)我不确定如何从这里开始。如果需要进一步分解,我该怎么做?如果我应该在这里结束,你怎么知道什么时候停止分解?
发布于 2014-03-19 16:05:52
R1和R2是当你停下来的时候。分解之后,您将识别新关系中的键和函数依赖项。R1中的密钥是C(使用FB: C -> B,没有BCNF冲突),R2中的密钥是AC (也没有BCNF冲突)。
发布于 2017-10-17 08:24:00
为AB->C和C->B编写闭包
{A,B}+ = {A, B, C}
{C}+= {C, B}A+B是一个超密钥,因此它没有违反BCNF。因此,我们使用违反规则的FD (C->B)进行分解。
{A, B, C} - {B, C} = {A} 然后将左侧的C->B添加到{A}中,得到{A, C}和{B, C},因此我们将R(A, B, C)分解为R(B, C)和R(A, C)。
https://stackoverflow.com/questions/22495446
复制相似问题