关系数据理论2016版-厦门大学数据库试验室.PPT

关系数据理论2016版-厦门大学数据库试验室.PPT

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

无损分解的判定算法 算法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的最小函数依赖集 最小函数依赖集为:F={CS→G,C→T,TH→R,HR→C,HS→R} (二)由于R中的所有属性均在F中都出现,所以转下一步。????? (三)对F按具有相同左部的原则分为: R1=CSG,R2=CT,R3=THR,R4=HRC,R5=HSR。 所以ρ={R1(CSG),R2(CT),R3(THR),R4(HRC),R5(HSR)}。 模式分解算法 [算法6.4] 转换为3NF既有无损连接性又保持函数依赖的分解。 (1)设X是R〈U,F〉的码。R〈U,F〉已由算法6.3分解为ρ={R1〈U1,F1〉,R2〈U2,F2〉,…,Rk〈Uk,Fk〉}, 令τ= ρ∪{R*〈X,Fx〉}。 (2)若有某个Ui,X?Ui,将R*〈X,Fx〉从中τ去掉, (3)τ就是所求的分解。 例子:转换为3NF既有无损连接性又保持函数依赖的分解 例2:关系模式RU,F,其中:U={C,T,H,R,S,G}, F={CS→G,C→T,TH→R,HR→C,HS→R},分解成3NF并保持无损连接和函数依赖。 ? 解:(1) 根据上例例1,得到3NF并保持函数依赖的分解如下: ????? σ={ R1(CSG),R2(CT),R3(THR),R4(HRC),R5(HSR) }。 (2) 而HS是原模式的码,所以τ={CT,CSG,CHR,HSR,HRT,HS}。由于HS是模式HSR的一个子集,所以消去HS后的分解{CT,CSG,CHR,HSR,HRT}就是具有无损联接性和保持函数依赖性的分解,且其中每一个模式均为3NF。 模式分解算法 [算法6.5]转换为BCNF的无损连接分解(分解法)。 (1)令ρ={R〈U,F〉} (2)检查ρ中各关系模式是否均属于BCNF。若是,则算法终止。 (3)设ρ中Ri〈Ui,Fi〉不属于BCNF,那么必有X→A∈Fi+(A?X),且X非Ri的码。因此,XA是Ui的真子集。对Ri进行分解:б={S1,S2},US1=XA,US2=Ui-{A},以б代替Ri〈Ui,Fi〉返回第(2)步 由于U中

文档评论(0)

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

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

1亿VIP精品文档

相关文档