相关知识:
数据库、Armstrong公理系统、伪传递、传递依赖、3NF
伪传递是传递函数依赖吗,存在伪传递的关系,是3NF吗?
答案:伪传递是传递函数依赖,存在伪传递的依赖关系,不是3NF。
参考案例:
#存在如下关系
R(X,Y,W,Z), F{X->Y,YW->Z}
可以看出该关系的候选码为XW
存在伪传递:X->Y,YW->Z,可得:XW->Z
其实这就是一种传递函数依赖。
根据传递函数依赖的定义:
X->Y,Y不是X的子集,Y不能->X,Y->Z,Z不是Y的子集,则称Z对X传递函数依赖
(加上条件:Y不能->X,是因为XY就是X<–>Y,这样相当于X本身就可以推出Z,而不需要依靠传递)
由定义可以将伪传递看成是这样的:
X->Y,视为:XW->YW(增广律)
YW->Z
所以,这其实也是一种传递函数依赖。所以不会是3NF
当然本例中,存在部分函数依赖, 连2NF都不是,肯定也不会是3NF。
数据库系统中本来有点疑惑的小问题,一开始没想到,突然联想到了,记录一下。
有什么问题欢迎评论区留言讨论。