国开《数据库基础与应用》第三章 3-1-5:传递函数依赖
3-1-5:传递函数依赖
定义:一个关系为R(U),X,Y和Z为属性集U上的子集,其中存在X→Y和Y→Z,但Y不反过来决定X,同时Y不包含Z,则存在X→Z,称此为传递函数依赖,即X传递函数决定Z,或者说Z传递函数依赖于X。
注意:在这里必须强调的是Y不反过来函数决定X,因为如果X→Y同时Y→X,则X和Y为相互决定的函数依赖关系,记作为“X←→Y”,这样X和Y是等价的,在函数依赖中是可以互换的,X→Z就是直接函数依赖,而不是传递函数依赖了。
另外,Y不包含Z也是必须满足的条件,因为如果Y⊇Z,则X→Y必然包含着X直接函数决定Y中的每个子集,这使得X→Z为也不是传递函数依赖。
例如:设一个学生关系为(学号,姓名,性别,系号,系名,系主任名),通常每个学生只属于一个系,每个系有许多学生,每个系都对应唯一的系名和系主任名。
函数依赖分析:在该关系中,存在“学号→姓名”、“学号→性别”、“学号→系号”的完全函数依赖,又存在“系号→系名”和“系号→系主任名”的完全函数依赖。还存在“学号→系名”和“学号→系主任名”这两个函数依赖,它是通过系号属性而传递的函数依赖,所以称这两个函数依赖是传递函数依赖。
包括平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖等5种。在非平凡函数依赖中,又分为部分函数依赖、完全函数依赖和传递函数依赖。