函数依赖

函数依赖

Content #

设R(U)是属性集U上的关系模式,X,Y是U的子集。若对R(U)的任何一个可能的关系r,r中不可能存在两个元组在X上的属性相等,而在Y上的属性不等,则称X函数决定Y,或Y函数依赖于X,记作: \(X \rightarrow Y\)

非平凡函数依赖:\(X \rightarrow Y\),但 \(Y \nsubseteq X\) . 平凡函数依赖:\(X \rightarrow Y\),但 \(Y \subseteq X\) .

Y对X的完全函数依赖: \(X \stackrel{f}{\longrightarrow} Y\) \(X \rightarrow Y\),对于X的任意一个真子集X’,都有X’不能决定Y。

Y对X的部分函数依赖: \(X \stackrel{p}{\longrightarrow} Y\) \(X \rightarrow Y\),但Y不完全函数依赖于X。

传递依赖: \(X \rightarrow Y, Y \nsubseteq X, Y \nrightarrow X, Y \rightarrow Z\), 则称X对X传递依赖。

多值依赖 #

设R(U)是属性集U上的关系模式,X,Y,Z是U的子集,并且Z=U-X-Y。当且仅当对 R(U)的任何一个关系r,给定一对(x,z)的值,有一组Y的值,这组值只由x值决定而与z值无关,则称X多值决定Y,或Y多值依赖于X。记作: \(X\rightarrow \rightarrow Y\)

在一个关系模型中,如果一个属性集合中的某些属性值决定了另外一些属性的值,但是这些属性之间又存在多对多的关系,那么这个属性集合就存在多值依赖。

假设有一个关系模式,包含三个属性:学生编号(SID)、课程编号(CID)和所选课程(Course)。在这个系统中,每个学生可以选择多门课程,同时每门课程也可以被多个学生选择。这种情况下,多值依赖存在于属性SID和Course之间。也就是说,一个学生的选课情况依赖于其学生编号,而与具体的课程编号无关。