- 1、本文档共137页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
版权所有(C)-南京大学计算机科学与技术系 8.2.3 多值依赖与第四范式 2. 定义8-12:多值依赖(MVD) 设有关系模式R(U),X, Y是U的子集(X,Y?U),若对R(U)的任何一个关系r,对X的一个确定值,存在Y的一组值与之对应,且Y的这组值又与Z=U-X-Y中的属性值不相关,此时称Y多值依赖于X,并记为X→→Y。 多值依赖产生的原因 在一个关系模式中,若存在两个相互独立的属性之间的‘一对多’函数对应关系,如: C与T的‘一对多’函数对应关系 C与L之间的‘一对多’函数对应关系 而T和L之间又没有任何依赖关系,此时若把它们合并起来构成一个关系,即R(C, T, L),则就会产生多值依赖现象。 版权所有(C)-南京大学计算机科学与技术系 8.2.2 与函数依赖有关的范式 例:有一个学生关系 SCG( S#, Sn, Sd, Ss, C#, G ),根据用户给定的语义约束得到如下的函数依赖关系: 基本常识: S#→Sn 每个学生均只属一个系与一个专业; S#→Sd S#→Ss 每个学生修读之每门课有且仅有一个成绩; (S#,C#)→G 各系无相同专业。 Ss→Sd 版权所有(C)-南京大学计算机科学与技术系 8.2.2 与函数依赖有关的范式 关系模式 SCG( S#, Sn, Sd, Ss, C#, G ),函数依赖集为: S#→Sn, S#→Sd, S#→Ss, (S#,C#)→G, Ss→Sd 该关系模式是否满足第二范式的要求? 找出该关系模式的所有(候选)关键字 据此确定该关系的主属性集和非主属性集 判断每一个非主属性和关键字之间的函数依赖关系是否满足2NF的要求。 如果不存在非主属性对关键字的部分依赖,那么 SCG ? 2NF (S#,C#) 主属性集:{ S#,C# } 非主属性集:{ Sn, Sd, Ss, G } 版权所有(C)-南京大学计算机科学与技术系 8.2.2 与函数依赖有关的范式 关系模式 SCG( S#, Sn, Sd, Ss, C#, G ),函数依赖集为: S#→Sn, S#→Sd, S#→Ss, (S#,C#)→G, Ss→Sd 关系模式SCG只能满足到 1NF 采用SCG( S#, Sn, Sd, Ss, C#, G )的模式设计方案(仅满足1NF的关系模式)会带来什么样的问题? 数据冗余 因数据冗余而产生更新异常 为什么出现数据冗余现象? 非主属性对关键字的部分函数依赖 如何避免上述的数据冗余现象? 按照更高范式的要求设计关系模式:模式分解 版权所有(C)-南京大学计算机科学与技术系 8.2.2 与函数依赖有关的范式 图1:根据关系模式SCG所建立的数据库(仅满足1NF) 版权所有(C)-南京大学计算机科学与技术系 8.2.2 与函数依赖有关的范式 为了使最终的模式设计结果能够满足到2NF,我们可以对关系SCG进行模式分解,将其属性集合分解构成若干个小的关系模式。 随着对原有关系模式的分解,原来在关系模式SCG上存在的函数依赖集合也被分解到若干个小的关系模式上去。 模式分解的目标 使得分解得到的每个小的关系模式都能够满足2NF的要求。 版权所有(C)-南京大学计算机科学与技术系 8.2.2 与函数依赖有关的范式 模式分解 设在关系模式R上成立的函数依赖集为F, Head(R) 是由关系R中的所有属性所构成的属性集合。 如果存在一组子关系模式 { R1, R2, …, Rk } 满足下述的两个条件,则我们称 { R1, R2, …, Rk } 是关系模式R的一个分解 (Decomposition) Head(R) = Head(R1)∪Head(R2) ∪… ∪Head(Rk) 设子关系Ri上的函数依赖集为Fi (i=1,2,…,k), 则: Fi = { X?Y ? X?Y?F+ 且 (X∪Y)?Head(Ri) } 版权所有(C)-南京大学计算机科学与技术系 8.2.2 与函数依赖有关的范式 关系的规范化过程就是一个不断进行模式分解的过程。 通过模式分解可以消除原有关系模式中那些不好的函数依赖关系(即不满足更高范式要求的函数依赖关系),以尽可能地解决原有模式中所存在的数据冗余和各种插入、删除异常现象。 版权所有(C)-南京大学计算机科学与技术系 8.2.2 与函数依赖有关的范式 模式分解的方法 设存在一个关系模式R, 其属性集合为Head(R), F是其函数依赖集。将其分解到满足范式M的步骤如下: 找出所有不满足范式M要求的函数依赖关系 选择一个不符合要求的函数依赖关系作如下的分解: 假设 X Y ? F+ 且不满足范式M的要求,则我们将关系模式R分解为如下的两个子关系: R1 ( X?Y, {
您可能关注的文档
- 《数字电子技术基础》杨聪锟 第3章 逻辑代数基础.ppt
- 《数字电子技术基础》杨聪锟 第9章 脉冲波形的产生与整形.ppt
- 《数字电子技术基础简明教程》(第3版)教学课件 CH1 CH14.PPT
- 《数字电子技术基础简明教程》(第3版)教学课件 CH2 CH22.ppt
- 《数字电子技术基础简明教程》(第3版)教学课件 CH2 CH24.ppt
- 《数字电子技术基础简明教程》(第3版)教学课件 CH4 CH43.PPT
- 《数字电子技术基础简明教程》(第3版)教学课件 CH5 CH51.PPT
- 《数据库技术及应用——SQL Server 》教学课件 12.ppt
- 《数据库技术及应用——SQL Server 》教学课件 13.ppt
- 《数据库系统概论》 第1章 程序设计基础.PPT
文档评论(0)