厦门大学计算机科学系教程.ppt

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

* 注意 (XG+)+ != XG+ * * * 人们从不同的角度去观察问题,对“等价”的概念形成了三种不同的定义: 这三个定义是实行分解的三条不同的准则。按照不同的分解准则,模式所能达到的分离程度各不相同,各种范式就是对分离程度的测度。 这一节要讨论的问题是: (1)“无损连接性”和“保持函数依赖”的含义是什么?如何判断? (2)对于不同的分解等价定义,究竟能达到何种程度的分离,即分离后的关系模式是第几范式。 (3)如何实现分离,即给出分解的算法。 * 在引理1.3.3中,第一条说明r在p上的投影连接映射后的元组只会膨胀,不会变少。第二条说明直接投影的结果与先拆开来再连接再投影的结果一致。第三条说明无论进行多少次分解后,再连接的结果都是一致的。 引理1.3.3的结论告诉我们,一个实例经过投影,连接之后,其结果可能产生元组膨胀,即元组增多,本节开头部分的引例恰好也说明了这个事实。 我们并不希望类似例1.3.11的情况发生,因为它在多个表进行连接操作时出现了本身不存在的元组,产生了数据异常,这对保持数据的正确性是有害的。因此,我们需要对表间连接的情况进行分析,以便降低产生数据异常的可能性。为此,我们先引入以下的概念。 第一条说明r在p上的投影连接映射后的元组只会膨胀,不会变少。第二条说明直接投影的结果与先拆开来再连接再投影的结果一致。第三条说明无论进行多少次分解后,再连接的结果都是一致的。 结论告诉我们,一个实例经过投影,连接之后,其结果可能产生元组膨胀,即元组增多,本节开头部分的引例恰好也说明了这个事实。 我们并不希望类似的情况发生,因为它在多个表进行连接操作时出现了本身不存在的元组,产生了数据异常,这对保持数据的正确性是有害的。因此,我们需要对表间连接的情况进行分析,以便降低产生数据异常的可能性。为此,我们先引入以下的概念。 无损分解的定义 定义6.18 p={ R1U1,F1,R2U2,F2,…,RkUk,Fk}是RU,F的一个分解 若对R中的任何一个关系r均有r= mp(r)成立,则称分解p具有无损连接性。 无损分解的判定算法 算法6.2 判断一个分解的无损连接性 设p={ R1U1,F1,R2U2,F2,…,RkUk,Fk}是RU,F的一个分解,U={A1, A2 ,…,An}, F={FD1, FD1 ,…,FDp} 1.建立一个n列k行的表,每列对应一个属性,每行对应分解中的一个关系模式。若属性Aj属于Ui ,则在j列i行的交叉处天上aj ,否则填上bij; 无损分解的判定算法 2.对应每个FDi (FDi为Xi →Ali)做下列操作: 找到Xi所对应的列中具有相同符号的那些行。考察这些行的li列,若其中有ali则全部改为ali;否则全部改为bmli;m是这些行的行号最小值 如在某次更改之后,有一行成为a1, a2,…, an,则算法终止,P具有无损连接性,否则P不具有无损连接性 3.比较扫描前后,表有无变化,如有变化,则返回第2步,否则算法终止 分解示例 例: 已知关系模式RU,F,其中 U={A,B,C,D,E}; F={AB→C,C→D,D →E}。 R的一个分解为R1(A, B, C ), R2(C, D), R3(D, E). 判断分解是否是无损连接。 实例 无损连接例子(1) 无损连接例子(2) 无损连接例子(3) 无损连接例子(4) 定理6.5 保持函数依赖分解的定义 定义6.19 p={ R1U1,F1,R2U2,F2,…,RkUk,Fk}是RU,F的一个分解 若F+=( U Fi )+则分解p保持函数依赖 i=1 i=k 模式分解的事实 若要求分解保持函数依赖,则分解可以达到3NF,但不一定达到BCNF; 若要求分解既要保持函数依赖,又要保持无损连接则分解可以达到3NF,但不一定达到BCNF; 若要求分解保持无损连接,那一定能达到4NF; 第六章、关系数据理论 模式分解算法 [算法6.3](合成法)转换为3NF的保持函数依赖的分解。 (1)对R〈U,F〉中的函数依赖集F进行“极小化处理”(处理后得到的依赖集仍记为F) (2)找出不在F中出现的属性,把这样的的属性构成一个关系模式。把这些属性从U中去掉,剩余的属性仍记为U。 (3)若有X→A∈F,且XA=U,则ρ={R},算法终止。 (4)否则,对F按具有相同左部的原则分组(假定分为k组),每一组函数依赖,所涉及的全部属性集Ui。 若Ui ≤ Uj (i≠j)就去掉Ui。 例子:转换为3NF的保持函数依赖的分解 例1:关系模式RU,F,其中U={C,T,H,R,S,G}, F={CS→G,C→T,TH→R,HR→C,HS→R},将其分解成3NF并保持函数依赖。 例子:转换为3NF的保持函数依赖的分解 (一)计算F

文档评论(0)

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

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

1亿VIP精品文档

相关文档