0

所以我与 FD 有关系 R(A, B, C, D, E)

{A->C, CE->B, BC->AD, D-E}.

我想将其标准化为 BCNF。

因为 A->C 和 D->E 违反了 BCNF。我从 ABCDE 中减去 C 和 E,这将是 ABD。但是我如何将原始关系的 FD 投影到新的 ABD 关系?有人告诉我,ABD 上的结果 FD 将是

{AB->D, AD->B}

我不太明白。

任何帮助,将不胜感激!

4

1 回答 1

1

将一组依赖项投射到分解模式上的算法是指数型的,因为应该计算分解模式属性的每个子集的闭包,并查看闭包的哪些属性属于分解关系。但是,在简单的情况下,就像您的示例一样,很容易检查所有可能的子集(六个):

A+ = AC
B+ = B
D+ = DE
AB+ = ABCDE (D is present in ABD, so AB → D is in the projection)
AD+ = ABCDE (B is present in ABD, so AD → B is in the projection)
BD+ = BDE
于 2016-11-06T19:03:39.990 回答