第三范式下消除传递依赖案例:该分解是否正确?
分解正确性判断
这个分解不正确,核心问题有两点:
- 分解后的
R2(c,d,e)仍存在传递依赖:c→d且d→e,违反了第三范式(3NF)“消除非主属性对主键的传递依赖”的要求——R2的主键是c,d作为非主属性却能决定另一个非主属性e,传递依赖未被消除。 R3(d,e)属于冗余分解:R2已经包含了d和e两个属性,原函数依赖d→e在R2中完全可以得到满足,单独拆分出R3没有意义。
符合3NF的正确分解应该彻底消除所有传递依赖,例如:
R1(a,b,c):保留主键a及直接依赖的属性b、c,对应函数依赖a→b、a→cR2(c,d):对应函数依赖c→dR3(d,e):对应函数依赖d→e
这样每个关系模式都不存在传递依赖,同时完整保留了原有的所有函数依赖,且满足无损连接特性。
内容的提问来源于stack exchange,提问作者filtertips
相关产品推荐
相关产品推荐

