转换为BCNF

时间:2013-02-12 20:17:04

标签: database relational-database database-normalization

我给出了以下关系:

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形式并且是无损的,但不是依赖保留。

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

1 个答案:

答案 0 :(得分:1)

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

Keys,ABC,BCD和BCE是正确的。 (您需要B,C以及A,D或E中的一个)。

带键D的R1(A,B,C,D),键ABC和R2(D,E)是有效的标准化。