我有一个关系无法这一关系分解成BCNF
R = { A, B, C, D, E, F, G, H, I }
而且函数依赖
F ={
ABC -> DE
E -> C
AB -> F
C -> G
F -> H
H -> IJ
F -> B
}
我能够做简单的BCNF分解,但我无法分解此。我有ABC作为唯一候选人的关键。然后,我把它分成两个关系摆脱打破BCNF,E -> C
第一FD的,让我有关系
{ A, B, D, E, F, G, H, I, J } and { E, C }
但是,现在马上我已经失去了从第一关系的候选键。那么这是否意味着我现在必须为第一个关系寻找一个新的候选关键词,然后继续分解它的过程直到我们没有违反BCNF的关系?有人能告诉我如何解决这个问题吗?
编辑:
行,所以这里是我已经在做的事情:
我现在有{ A, B, D, E, F, G, H, I, J }
和{ E, C }
我找到了更大的关系,一个新的密钥。这个新密钥是ABDEG
?
然后我继续分解关系分裂的关系任何地方违反BCNF。这里是我采取的步骤:
{ A, B, D, E, F, G, H, I, J } // { E, C }
{ A, B, D, E, G, H, I, J } // { AB, F } // { E, C }
{ A, B, D, E, G, H, J } // { H, I } // { AB, F } // { E, C }
{ A, B, D, E, G, H } // { H, J } // { H, I } // { AB, F } // { E, C }
所以最后一行是我的最终结果。这似乎是在BCNF?我的答案是否正确,我是否正确分解?
如果ABC是一个候选关键字,那么从E→C来看,ABE必然也是一个候选关键字。 – 2013-03-19 18:19:13
干杯,没有发现。考虑到这一点,我重新审视了我的结果,并且我仍然得到了相同的答案。 – csss 2013-03-19 18:24:51
有四个候选键:ABC,ABE,ACF和AEF。 – 2014-02-07 11:12:15