规范化理论:多值依赖的理解_依赖关联泛化实现

规范化理论:多值依赖的理解_依赖关联泛化实现多值依赖的定义我们用一个例子来引出多值依赖(MultivaluedDependency,MVD)的含义。假设学校中一门课程可由多名教师讲授,教学中他们使用相同的一套参考书,这样我们可用下图的非规范化的关系来表示课程C、教师T和参考书B间的关系。关系CTB如果关系CIB转化成规范化的关系,如图所示。规范后的关系CTB由此可以看出,规范后的关系模式…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

多值依赖的定义

我们用一个例子来引出多值依赖(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.

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210088.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 软件免杀教程_EXE文件

    软件免杀教程_EXE文件攻击机:win7IP:192.168.32.134靶机:windowsserver2012(安装360、火绒)IP:192.168.32.133第一步:使用njRAT生产一个客户端exe木马输入回连端口号8888,点击start配置客户端木马的回连地址:192.168.32.134将文件保存在桌面开启360杀毒,直接报毒,不免杀1、将生成的客户端木马:Server.exe在EncryptionToolV3.0中以base64加密方式打开打开之后,将base6

    2022年8月20日
    10
  • 登录双微信怎么登_windows设置多用户远程登录

    登录双微信怎么登_windows设置多用户远程登录QQ都能登录两个,为啥微信不行。其实微信也可以,让笔者来教教大家第一步:新建一个文本第二步:输入以下内容startD:\Tencent\WeChat\WeChat.exestartD:\

    2022年8月1日
    6
  • 字符串数组转集合_安全方法把字符串转集合

    字符串数组转集合_安全方法把字符串转集合//controller中接收id数组, //html页面; varids=$(‘#yourGrid’).jqGrid(‘getGridParam’,’selarrrow’); //bean属性设置值,表达提交方式, $(“#ids”).val(JSON.stringify(ids)); //controller List<String>ids=JSON.par…

    2026年1月26日
    3
  • 软件设计师考试考点分析总结

    软件设计师考试考点分析总结文章目录分值分布考点总结计算机组成与体系结构数据表示进制转换编码浮点数运算 CPU 结构运算器控制器 Flynn 分类法 CISC 复杂指令集 RISC 精简指令集流水线流水线相关概念存储系统 Cache 主存内存磁盘总线系统可靠性差错控制 校验码操作系统进程管理死锁及银行家算法存储管理页面置换算法文件管理索引文件目录结构位示图磁盘管理 I O 设备管理虚设备与 SPOOLING 技术微内核操作系统数据库数据库模式数据库设计过程 E R 模型关系代数规范化理论函数依赖键范式模式分解并发控制数据库安全备份恢复数据仓库与数据挖掘反规范化

    2025年12月15日
    4
  • 《JavaScript 模式》读书笔记(5)— 对象创建模式4

    我们学完了大部分对象创建模式相关的内容,下面还有一些小而精的部分。七、对象常量JavaScript中没有常量的概念,虽然许多现代的编程环境可能为您提供了用以创建常量的const语句。作为一种变通方

    2022年3月25日
    321
  • Java性能优化的48条+七个案例[通俗易懂]

    Java性能优化的48条+七个案例[通俗易懂]Java性能优化的48条+七个案例

    2022年4月22日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号