考虑具有以下函数依赖性的关系R(A,B,C,D,E):A-> BC,D-> CE,C-> E
AD + = ABCDE
Prime属性:AD 非素数属性:BCE
分解为3NF而不是BCNF
R1(A,B,C,D)R2(C,E)
答案 0 :(得分:0)
自从我做完这件事以后,对我来说已经很久了。但是,如果我在3NF中记得正确的话,如果列在传递上依赖于另一列,则不允许列在表中。
在这种情况下,唯一的传递依赖是A - > C - > E,这意味着E需要从R中提取。
你完成了我的理解。 有些东西告诉我你可能需要从R1中提取C,但这可能只是BCNF中的nessecary。
答案 1 :(得分:0)
您案例中的第三种正常形式如下:
R 1 (A B C)
R 2 (C E)
R 3 (C D)
R 4 (A D)
请注意,这是以第三范式保留依赖关系分解关系的唯一方法,并且所有生成的依赖关系都是这样的,所有分解的模式也都在BCNF中。
最后,可以注意到,同样的关系可以通过失去一些功能依赖性以不同的方式在BCNF中分解。