传递函数依赖属于关系模式R(U),传递函数依赖在关系模式 R(U)中,设 X,Y,Z 是 U 的不同的属性子集,如果 X 确定 Y、Y 确定 Z,且有 X 不包含 Y,Y 不确定 X,(X∪Y)∩Z=空集合,则称 Z 传递函数依赖于X。
定义1
在
关系模式R (U) 中, 如果X→Y, Y→Z, Z不是Y的子集, Y不函数决定X, 则称Z对X传递函数依赖 (Transitive Functional Dependency) 。该定义指明传递函数依赖包含2种情况:
(1) Y⊆X成立, 这种情况传递函数依赖蜕变为
部分函数依赖, 即Z部分函数依赖于X, 部分函数依赖是特殊的传递函数依赖。
例证1:设关系模式R (U, F) , U={ Sno, Sna, Cno, G }, 其中 Sno:学号, Sna:姓名, Cno:课号, G:成绩, F={ (Sno Cno) →G, Sno→Sna }。
(Sno Cno)→ Sno
Sno→ Sna
Sno不函数决定(Sno Cno)
Sna不是Sno的子集
【Sna传递函数依赖于(Sno Cno)】
但由于Sno ⊆ (Sno Cno) , 所以Sna 对 (Sno Cno) 的传递函数依赖蜕变成了部分函数依赖。
例证2:若R∈3NF, 则R∈2NF。[若关系模式R (U, F) 的函数依赖集F中不存在非主属性对码的传递函数依赖, 则F中一定不存在非主属性对码的部分函数依赖。
证明 (反证法) :假设关系模式R (U, F) 满足3NF, 而R不满足2NF, 即关系模式R (U, F) 的函数依赖集F中不存在非主属性对码的传递函数依赖, 而存在非主属性对码的部分函数依赖。
F中存在非主属性对码的部分函数依赖即关系模式R中存在码X, 属性组Y, 非主属性Z, Y是X真子集, 有X→Z (码的定义) , X→Y (平凡依赖) , Y→Z成立, 所以X→ΡΖ, 即Z部分依赖于码X。同时Z又传递依赖于码X, 因为满足传递依赖的条件:
X → Y 平凡函数依赖
Y → Z
Y 不函数决定 X
Z 不是Y的子集
【Z传递依赖于码X】
与假设矛盾, 所以命题成立。
(2) Y⊆X不成立, 这种情况是普通意义上的传递函数依赖。
例证3:设关系模式R(U,F) ,U={Sno,Sdept,Sloc}, 其中Sno:学号,Sdept:系别,Sloc:住宿楼号;F={Sno→Sdept,Sdept→Sloc}。
Sno→Sdept
Sdept→Sloc
Sdept不函数决定Sno
Sloc不是Sdept的子集
【Sloc传递函数依赖于Sno】
定义1指出了部分函数依赖是特殊的传递函数依赖, 从而使命题“若R∈3NF, 则R∈2NF”得证, 也使得各种范式之间的包含关系 (图2) 成立, 使关系数据理论呈现系统化和一致性。
1NF⊃2NF⊃3NF⊃BCNF⊃4NF⊃5NF
范式间的包含关系
定义2
在R (U) 中, 如果X→Y, Y→Z, Y不是X的子集, Y不函数决定X , 则称Z对X传递函数依赖。
因指出了Y不是X的子集, 所以否定了部分函数依赖是特殊的传递函数依赖。所定义的传递函数依赖只包含定义1中的情况 (2) , 从而无法证明命题“若R∈3NF, 则R∈2NF”的正确性, 使各种范式之间不具有图1的包含关系, 关系数据理论呈现局部性和不一致性。所以定义2不严谨。
定义3
在R (U) 中, 如果X→Y, Y→Z, Y不是X的子集, Z不是Y的子集, Z不是X的子集, Y不函数决定X, 则称Z对X传递函数依赖。
同定义2一样指出了Y不是X的子集, 否定了部分函数依赖是特殊的传递函数依赖, 同样使各种范式之间不具有图1的包含关系, 关系数据理论呈现局部性和不一致性, 所以不严谨。
定义4
在R (U) 中, 如果X→Y, Y→Z, Y不函数决定X, 则称Z对X传递函数依赖。由于没有指出Y不是X的子集和Z不是Y的子集[用A和B分别表示命题“Y是X的子集”和命题“Z是Y的子集”, 则(A, B)
真值表为 (0, 0) , (1, 1) , (1, 0) , (0, 1) ]。所以可以分下面4种情况进行讨论。
(1) 当 (A, B) 为 (0, 0) 时, 这与定义1的情况 (2) 相同, 是普通意义上的真正的传递函数依赖。
(2) 当 (A, B) 为 (1, 1) 时, 则Z ⊆ X成立, X→Z是平凡函数依赖。
(3) 当 (A, B) 为 (1, 0) 时, 这与定义1的情况 (1) 相同, Z部分函数依赖于X。
(4) 当 (A, B) 为 (0, 1) 时, 依据分解规则X对Z直接决定。
所以定义4实际上把平凡函数依赖、部分函数依赖和X对Z直接决定都定义为传递函数依赖, 使传递函数依赖没有任何的特殊性, 尤其把平凡函数依赖和X对Z直接决定都概括为传递函数依赖不够严谨, 所以定义4同样不严谨。