多值依赖:
比如:学校中某一门课程由多个教员讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。我们可以用一个非规范化的关系来表示教员T, 课程C 和参考书B 之间的关系:
课程C 教员T 参考书 B ------------------------------ 物理 李 勇 普通物理学 王 军 光学原理 物理习题集 ------------------------------ 数学 李 勇 数学分析 张 平 微分方程 高等代数 把其变成一个表格:
Teaching
课程C 教员T 参考书B ------------------------ 物 理 李 勇 普通物理学 物 理 李 勇 光学原理 物 理 李 勇 物理习题集 物 理 王 军 普通物理学 物 理 王 军 光学原理 物 理 王 军 物理习题集 数 学 李 勇 数学分析 数 学 李 勇 微分方程 数 学 李 勇 高等代数 数 学 张 平 数学分析 数 学 张 平 微分方程 数 学 张 平 高等代数 . . . . . . . . .
关系模型TEACHING(C,T,B)的码是(C,T,B),即A1l_Key。因而TEACHING∈BCNF。但是当某一课程(如物理)增加一名讲课教员(如周英)时,必须插人多个元组: (物理,周英,普通物理学),(物理,周英,光学原理),(物理,周英,物理习题集)
对数据的增删改很不方便, 数据的冗余也十分明显。仔细考察这类关系模式,发现它具有一种称之为多值依赖(MVD)的数据依赖。
定义5.9 设R(U)是属性集U上的一个关系模式。X,Y,Z是的U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。
也就是说,一个实体中的A属性的数据不变,而对应的B属性却又很多不同的数据,而这个跟是实体中的C属性没有联系。
例如,在关系模式TEACHING中,对于一个(物理,光学原理)有一组T值{李勇,王军},这组值仅仅决定于课程C上的值(物理)。也就是说对于另一个(物理,普通物理学)它对应的一组T值仍是{李勇,王军},尽管这时参考书B的值已经改变了。因此T多值依赖于C,即C→→T。
若X→→Y,而Z = 即Z为空,则称X→→Y 为平凡的多值依赖。
多值依赖具有以下性质:
多值依赖具有对称性。即若X→→Y,则X→→Z,其中Z=U-X-Y。 多值依赖的传递性。即若X→→Y,Y→→Z, 则X→→Z-Y。 函数依赖可以看作是多值依赖的特殊情况。即若X→Y,则X→→Y。这是因为当X→Y时,对X的每一个值x,Y有一个确定的值y与之对应,所以X→→Y。 若X→→Y,X→→Z,则X→→YZ。 若X→→Y,X→→Z,则X→→Y∩Z。 若X→→Y,X→→Z,则X→→Y-Z,X→→Z-Y。 多值依赖与函数依赖相比,具有下面两个基本的区别:
多值依赖的有效性与属性集的范围有关。 若X→→Y在U上成立则在W(XY W U)上一定成立;反之则不然,即X→→Y在W(W U)上成立,在U上并不一定成立。这是因为多值依赖的定义中不仅涉及属性组X和Y,而且涉及U中其余属性Z。 一般地,在R(U)上若有X→→Y在W(W U)上成立,则称X→→Y为R(U)的嵌入型多值依赖。 但是在关系模式R(U)中函数依赖X→Y的有效性仅决定于X,Y这两个属性集的值。只要在R(U)的任何一个关系r中,元组在X和Y上的值满足定义5.l,则函数依赖X→Y在任何属性集W(XY W U)上成立。 若函数依赖X→Y在R(U)上成立,则对于任何Y' Y均有X→Y'成立。而多值依赖X→→Y若在R(U)上成立,我们却不能断言对于任何Y' Y有X→→Y'成立。 总之,多值依赖存在这明显的冗余。
来源:http://blog.sina.com.cn/s/blog_a637e97e01013220.html