- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数依赖的公理系统解读
候选码的求解:例3 设关系模式R(S, D, I, B, O, Q), 其函数依赖集: F = { S→D, I→B, B→O, O→Q, Q→I } 求R的所有候选码。 解: L类(S); R类(D) ; N类(无) ; LR类(I, B, O, Q) 因为S+=SD, 所以S不是R的候选码; 因为(SI)+=SIDBOQ,所以SI是一个候选码; 因为(SB)+=SBDOQI,所以SB也是一个候选码; 因为(SO)+=SODQIB,所以SO也是一个候选码; 因为(SQ)+=SQDIBO,所以SQ也是一个候选码。 *5.4 模式的分解 5.4.1 模式分解的三个定义 分解的目标:无损连接分解、保持函数依赖、达到更高级范式 5.4.2 分解的无损连接性和保持函数依赖性 判别无损连接的充要条件 判别分解是否保持函数依赖的方法 5.4.3 模式分解的算法 转换为3NF的保持函数依赖的分解 转换为3NF的既无损连接又保持函数依赖的分解 转换为BCNF的无损连接分解 达到4NF的具有无损连接性的分解 模式的分解:两个记号 定义5.16 关系模式RU, F的一个分解是指: ? = {R1U1 , F1, R2U2 , F2, … ,RnUn , Fn} 其中U = Ui ,并且没有Ui ? Uj , 1≤i,j ≤n, Fi是F在Ui上的投影。 定义5.17 函数依赖集合Fi = {X?Y | X?Y?F+ ? XY ? Ui},称为F在Ui上的投影。 1 i ∪ n = 5.4.1 模式分解的三个定义 对一个模式的分解是不唯一的,但是分解前后的两个模式应等价。 对“等价”的概念有三种不同的定义(也称分解的标准、分解的特性或分解的目标): 1. 分解具有无损连接性(Lossless join); 2. 分解要保持函数依赖(Preserve dependency) 3. 分解既要保持函数依赖,又要具有无损连接性。 模式分解的三个定义 按照不同的分解准则,模式所能达到的分离程度各不相同,各种范式就是对分离程度的测度。 进一步讨论: (1) “无损连接性”和“保持函数依赖”的含义? 如何判断? (2) 对不同的分解等价定义,分离后的关系模式的范式级别。 (3) 如何实现分离,分解的算法。 模式分解中的问题: 有损分解 R(A, B, C) A B C 1 1 2 2 2 1 A B 1 1 2 2 B C 1 2 2 1 A B C 1 1 2 2 2 1 ∏AB(R) ∏BC(R) ∏AB(R) ∏BC(R) R(A, B, C) A B C 1 1 1 2 1 2 A B 1 1 2 1 B C 1 1 1 2 A B C 1 1 1 1 1 2 2 1 1 2 1 2 ∏AB(R) ∏BC(R) ∏AB(R) ∏BC(R) 有损分解 无损分解 模式分解中的问题: 不保持函数依赖 A B C a1 b1 c1 a2 b1 c1 a3 b2 c2 a4 b3 c1 {A ? B, B ? C} A a1 a2 a3 a4 B b1 b2 b3 C c1 c2 各列值 A B a1 b1 a2 b1 a3 b2 a4 b3 A C a1 c1 a2 c1 a3 c2 a4 c1 = A B C a1 b1 c1 a2 b1 c1 a3 b2 c2 a4 b3 c1 分解 若插入 将违反 B ? C 该分解保持A ? B,而不保持B ? C,但是是无损分解 { A ? B } a5 b3 a5 c3 a5 b3 c3 模式分解中存在的问题: 例 A B a1 b1 a2 b1 a3 b2 a4 b3 B C b1 c1 b2 c2 b3 c1 A C a1 c1 a2 c1 a3 c2 a4 c1 B C b1 c1 b2 c2 b3 c1 = = A B C a1 b1 c1 a1 b3 c1 a2 b1 c1 a2 b3 c1 a3 b2 c2 a4 b1 c1 a4 b3 c1 A B C a1 b1 c1 a2 b1 c1 a3 b2 c2 a4 b3 c1 该分解保持B ? C,而不保持A ?B, 且是有损分解 该分解保持函数依赖, 且是无损分解 { B ? C } { A ? B } { B ? C } 5.4.2 分解的无损连接性和保持函数依赖性 如果一个分解具有无损连接性,则它能够保证不丢失信息。 如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。 分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依
文档评论(0)