有人能告诉我这种关系是否在3NF?

时间:2016-01-08 14:17:08

标签: database relational-database relational-algebra 3nf bcnf

考虑具有以下函数依赖性的关系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)

2 个答案:

答案 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中分解。