我给出了以下关系:
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形式并且是无损的,但不是依赖保留。
对于这类事情,这似乎是正确的技巧吗?我可能错过了一两步吗?
答案 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)是有效的标准化。