4

我得到以下关系:

R(A,B,C,D,E)

以及以下功能依赖项:

F1 - AC -> D
F2 - D -> E
F3 - E -> A

我正在尝试将其转换为 BCNF 形式。

我采取的第一步是找出关系的可能键。

Keys: ABC, BCD, BCE

然后我检查了函数依赖项是否符合 BCNF 形式,它们不符合。所以我尝试分解并得到以下结果:

R1(A,C,D) AC->D Keys: AC
R2(D, E) D->E Keys: D

我相信在这一点上,关系是 BCNF 形式并且是无损的,但不是保持依赖关系。

这似乎是这类事情的正确技术吗?我可能错过了一两步吗?

4

1 回答 1

1

我相信你的 BCNF 有错误。在 R1 和 R2 之间,你失去了 B。

密钥、ABC、BCD 和 BCE 是正确的。(您需要 B、C 和 A、D 或 E 之一)。

R1 (A, B, C, D),密钥 ABC 和 R2 (D, E) 与密钥 D 是有效的规范化。

于 2013-08-13T20:08:11.020 回答