第1章关系模型和关系运算.ppt

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

* 依赖保持性 定义 设? ={R1,R2,…,Rp }是R的一个分解,F是R上的FDs集。F在Ri上投影的集合 G=∪?Ri (F)。若G≡F,则称分解? 保持函数依赖集F。 * 算法4.2.2 检验分解ρ是否具有依赖保持性 PERSERVE1(F,ρ) begin G:=φ; for each X→Y in F do for each Ri in ρ do if X ? Ri then do begin Z:= CLOSURE(X, F); if Z∩Ri -X?φ then G:= G ∪{X→(Z∩Ri -X)} /*F在Ri上投影的集合 end; for each X→Y in F do if MEMBER(G, X→Y ) then T:=true else return(false); return(T); end. 思考:为什么G中的每个函数依赖都在F的闭包中? * 例6 设? ={R1,R2,R3},其中R1=ABD,R2=BCE,R3=DE, F={A→BD,D→A,C→BE,E→D,C→A}。 判断:?是否保持函数依赖集F。 解:(1)计算F在? 上的投影G。 考察FD A→BD, A?R1,A+=ABD, G={ A→BD }; 考察 D→A, D?R1,D+=ABD, G={ A→BD,D→AB }, 又D?R3,但ABD∩R3 -D=φ,G不变; 对 C→BE, C?R2,C+=ABCED,G={A→BD,D→AB,C→BE} 分别考察 E→D 和 C→A, 结果: G={ A→BD,D→AB ,C→BE, E→D ,E→B}。 (2)判断F和G是否等价。 可以看出,F中的FD除C→A外都已在G中了,而MEMBER(G, C→A)为真,因此,?保持函数依赖集F。 * 保持依赖练习 分析下列分解是否保持函数依赖 (1)设关系模式R(A,B,C), 其函数依赖集为 F1 ={ A→C, B →C },R的一个分解ρ1={R1(A,B),R2(A,C)}。 (2)设关系模式R(A,B,C), 其函数依赖集为 F2 ={ A→B, B →C },R的一个分解ρ2={R1(A,B),R2(B,C)}。 (3)关系模式R=(A,B,C), R上的函数依赖集 F3 ={ A→B,B→C}。 R上的分解 ?1 ={R1( AB), R2( AC)}。 * 2. 通过分解实现规范化 算法4.2.4 生成3NF的分解算法 DECOMPOSE(R, K, F) 算法步骤:(1). 若R?3NF,算法终止,ρ={R}。 (2).若ρ中有Ri?3NF,即Y?Ri,Z?KY且 K→Y, Y→K, Y→Z,则Z传递依赖于Ri中的键K,分解Ri为: Ri1 =Ri-Z和Ri2= YZ,用Ri1和Ri2代替ρ中的Ri 。 (3). 若ρ中所有Ri ?3NF,输出ρ,否则转(2) 继续进行分 解,直到使所有关系模式都成为3NF。 思考:生成3NF的分解算法是否是无损分解? * 例7 : 设关系模式R(A,B,C,D,E,G,H,I,J,K,M)为航空公司数据库。 其中, 属性ABCDEGHIJKM分别为: 航班号(A)、出发地(B)、目的地(C)、出发时间(D)、到达时间(E)、飞行时间(G)、机型(H)、头等舱座位数(I)、普通舱座位数(J)、座位总数(K)、用餐时间(M)。 F={A→BCDEGH,BCD→A,BCE→A,DG→M, H→IJK, EG→M,IJ→K,IK→J,JK→I}。 试分解R为3NF。 * F={A→BCDEGH,BCD→A,BCE→A,DG→M, H→IJK, EG→M,IJ→K,IK→J,JK→I}。 解:R的键为K={A,BCD,BCE},R?3NF。 因有DG→M,而DG不是键,A→DG,即M传递依赖于A, 分解R为: R1 =ABCDEGHIJK, K1 ={A,BCD,BCE}; R2 =DGM, K2 ={DG}。 R2?3NF,R1?3NF,R1中有H→IJK, 分解R1为: R11 =ABCDEGH, K11 ={A,BCD,BCE}; R12=HIJK,

文档评论(0)

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

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

1亿VIP精品文档

相关文档