规范化理论:多值依赖

多值依赖的定义

我们用一个例子来引出多值依赖(Multivalued Dependency,MVD)的含义。

假设学校中一门课程可由多名教师讲授,教学中他们使用相同的一套参考书,这样我们可用下图的非规范化的关系来表示课程C、教师T和参考书B间的关系。

关系CTB

 

如果关系CIB转化成规范化的关系,如图所示。

规范后的关系CTB

 

由此可以看出,规范后的关系模式CIB的键是(C, T, B),即全码,CTB属于BC范式。但是,进步分析可以看出,CTB还存在着如下弊端。

① 数据冗余大:课程、教师和参考书都被多次存储。
② 插入异常:若增加一名教授“数据结构”的教师“李静”时,由于这个教师也使用相同的一套参考书,所以需要添加两个元组,即:(数据结构, 李静, 算法与数据结构)和(数据结构, 李静, 数据结构教程)。
③ 删除异常:若要删除某一门课的一本参考书,则与该参考书有关的元组都要删除,如删除数据库原理”课程的“数据库系统”,则需要删除(数据库原理, 吴胜利, 数据库系统)和(数据库原理, 陈晨, 数据库系统)两个元组。

 

产生以上弊端的原因主要有以下两方面:
①对于关系CTB中C的一个具体值来说,有多个T值与其相对应;同样,C与B间也存在着类似的联系。
②对于关系CTB中的一个确定的C值,与其所对应的一组T值与B值无关。如,与“数据库原理”课程对应的一组教师与此课程的参考书毫无关系。

以上两个方面可以看出,C与T间的联系显然不是函数依赖,在此我们称之为多值依赖

多值依赖的定义:设有关系模式R(U),U是属性全集,X,Y和Z是属性集U的子集,且Z=U-X-Y,如果对于R的任一关系,对于X的一个确定值,存在Y的一组值与之对应,且Y的这组值仅仅决定于X的值而与Z值无关,此时称Y多值依赖于X,或X多值决定Y,记作X→→Y。


多值依赖与函数依赖间的区别

(1)在关系模式R中,函数依赖X→Y的有效性仅仅取决于X,Y这两个属性集,不涉及第三个属性集,而在多值依赖中,X→→Y在属性集U(U=X+Y+Z)上是否成立,不仅要检查属性集X,Y上的值,而且要检查属性集U的其余属性Z上的值。因此,可能会有X→→Y在属性集W(W\subsetU)上成立,而在属性集U上不一定成立的情况,所以,多值依赖的有效性与属性集的范围有关。如果在R(U)上有X→→Y在属性集W(W\subsetU)上成立,则称X→→Y为R(U)的嵌入型多值依赖。

(2)如果在关系模式R上存在函数依赖X→Y,则任何Y'\subsetY均有X→Y'成立,而多值依赖X→→Y在R上成立,但不能断言对于任何Y'\subsetY有X→Y'成立。

 

多值依赖公理及其推论

设有关系模式R(U),U是属性全集,X,Y,Z和W是属性集U的子集。

多值依赖公理

① 增广律:如果X→→Y,V\subseteq W\subseteqU,则WX→→VY。

② 传递律:如果X→→Y,Y→→Z,则X→→Z-Y。

③ 补余律:如果X→→Y,则X→→U-X-Y。

 

函数依赖公理与多值依赖混合公理

① 复制规则:从FD导出MVD,如果X→Y,则X→→Y。
② 接合规则:从MVD导出FD,如果X→Y,Z\subseteqY,且存在W\subseteqU有W\capY=Φ,W→Z,则X→Z。

 

多值依赖推论

①合并律:如果X→→Y,X→→Z,则X→→YZ。

②伪传递律:如果X→→Y,WY→→Z,则XW→→(Z-W-Y)。

③ 分解律:如果X→→Y,X→→Z,则X→→(Y\capZ),X→→(Y-Z),X→→(ZY)。这说明,如果两个相交的属性子集均多值依赖于另一个属性子集,则这两个属性子集因相交而分割成三部分也都多值依赖于该属性子集。

④混合伪传递律:如果X→→Y,XY→→Z,则X→→(Z-Y)。

 

 

 

参考资料:[1]陈志泊,王春玲,许福,范春梅.数据库原理及应用教程(第3版)[M].北京:人民邮电出版社,2014:155-157.

 

 

 

 

 

 

 

  • 34
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值