无损联接分解.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
无损联接分解

 PAGE \* MERGEFORMAT 4 无损联接分解 定义:无损联接分解是将一个关系模式分解成若干个关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式,则称这种分解为无损联接分解。 ? ? 可还原 ? ? 例1:关系模式:成绩(学号,姓名,课程号,课程名,分数) 函数依赖:学号-姓名,课程号-课程名, (学号,课程号)-分数 若将其分解为下面三个关系模式: ? 成绩(学号,课程号,分数) 学生(学号,姓名) 课程(课程号,课程名) 问,这样的分解是无损分解么? 由于:学号-姓名,所以: 成绩(学号,课程号,分数,姓名) 由于:课程号-课程名,所以: 成绩(学号,课程号,分数,姓名,课程名) ? 所以这个例子是无损分解 ? 例2:设R=ABCDE, R1=AD,R2=BC,R3=BE,R4=CDE, R5=AE, 设函数依赖: A-C, B-C, C-D, DE-C, CE-A. 判断R分解成 ? ρ={R1,? R2,? R3,? R4,? R5}是否无损联接分解? ? 解: 这样的题要通过画表的方法来解,首先,原始表: ? ABCDEADa1b12b13a4b15BCb21a2a3b24b25BEb31a2b33b34a5CDEb41b42a3a4a5AEa1b52b53b54a5表1 (A B C D E是关系R的属性, AD, BC, BE, CDE, AE 是分解之后每一个关系对应的属性集) 填表的过程: 当横竖相交的时候,如果在分解关系中存在对应列的单个的属性(譬如第一列第一行AD与A相交的单元格,AD含有A,就填写a1),则填写a下标 , 下标就是单元格对应所在的列号。否则填写b下标, 下标是单元格对应所在的行列号。 填写之后的初始表就是表1所示 2.根据依赖关系修改原始表: 对于依赖关系A-C,看A列中有两行a1是相等的(第一行和第五行),所以在C列中对应的两行也应该相等,但是看到这两行都是b(b13,b53),所以将这个b都换成b13(上面的较小的标) ABCDEADa1b12b13a4b15BCb21a2a3b24b25BEb31a2b33b34a5CDEb41b42a3a4a5AEa1b52b53àb13b54a5对于依赖BàC, 同样的道理,看B这一列中,第二行和第三行都是a2,那么对C这一列同样的操作,但是看到C这一列中第二行是a3,那么就将第三行改成a3,优先级比b要高。 ABCDEADa1b12b13a4b15BCb21a2a3b24b25BEb31a2b33àa3b34a5CDEb41b42a3a4a5AEa1b52b13b54a5 对依赖CàD,C列的1,5行相等,D的1,5行也应该相等,D的第1行有a,所以b54换成a4;另外C列的2,3,4行也相等,D的2,3,4行也应该相等,D的第4行有a,所以将对应的行都换成a4 ABCDEADa1b12b13a4b15BCb21a2a3b24àa4b25BEb31a2a3b34àa4a5CDEb41b42a3a4a5AEa1b52b13b54àa4a5 对于DEàC, DE公共的相等的行是3,4,5行,对应C的3,4,5行也应该相等,故将C列的两个的b13换成a3,所以表格经过这个函数依赖关系,就是: ABCDEADa1b12b13àa3a4b15BCb21a2a3a4b25BEb31a2a3a4a5CDEb41b42a3a4a5AEa1b52b13àa3a4a5 对于CEàA, CE的公共行是3,4,5行,所以将A的3,4,5行也对应相等,因为A列的第五行含有a1,所以将3,4行的b31,b41都换成a1 ? 最终得到的表格就是: ? ?最后,我们从表格里看到对于DE行来说,都是a,所以得出结论,题中的分解是无损联接分解 ? ******************** ? 无损分解的一个简便的判别方法(适用于分解成2个关系的情况) ? 譬如: 有关系R=ABC, 依赖关系{A--B}那么下面哪个是无损分解: ? A. {R1(AB),R2(AC)}? B.{R1(AB),R3(BC)} ? 首先看选项A,R1∩R2=A,R1-R2=B,R1U R2--(R1-R2).所以它是无损分解 选项B, R1∩R2=B, R

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档