我有
R(ABCDE),AB是主键 并且F = {f1:AB-> CDE; f2:BD-> E}
我很困惑,因为我的教科书说它达到了第3范式,但是当我通过在线工具检查它时,它说由于f2违规而达到了第2种形式。
哪个是对的?
答案 0 :(得分:1)
Codd对3NF的定义包括规定表的每个非素数属性都是非传递性地依赖于每个键。
换句话说,由于E依赖于(AB)和(BD),但C仅依赖于(AB),这是违反3NF的。
在线工具是对的。
要制作这个3NF,你需要分成两个关系:ABCD和BDE。然而,这会带来与参照完整性执行相关的问题。