1 / 20

授课顺序: 15 授课学时: 2 学时 教学方式:讲授 基本要求:基本要求:了解数据依赖的公理系统及模式分解 。

授课顺序: 15 授课学时: 2 学时 教学方式:讲授 基本要求:基本要求:了解数据依赖的公理系统及模式分解 。. 6.4 数据依赖的公理系统. 6.4.1 定义 关系模式 R< U, F > ,对于其上任意一个关系 r ,若函数依赖 X Y 都成立,则称 F 逻辑蕴涵 X Y 。 在关系模式 R< U, F > 中,为 F 所逻辑蕴涵的函数依赖的全体称作 F 的闭包,记作 F + 。 例: F={ X Y , YZ} ,则 { X Z}  F + 。 6.4.2.1Armstrong 公理

kyra-burton
Download Presentation

授课顺序: 15 授课学时: 2 学时 教学方式:讲授 基本要求:基本要求:了解数据依赖的公理系统及模式分解 。

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 授课顺序:15 授课学时:2学时 教学方式:讲授 基本要求:基本要求:了解数据依赖的公理系统及模式分解 。

  2. 6.4 数据依赖的公理系统 • 6.4.1定义 • 关系模式R< U, F >,对于其上任意一个关系r,若函数依赖XY都成立,则称F逻辑蕴涵XY。 • 在关系模式R< U, F >中,为F所逻辑蕴涵的函数依赖的全体称作F的闭包,记作F+。 例:F={XY,YZ},则{XZ}  F+。 • 6.4.2.1Armstrong公理 X,Y,Z是属性集, • 自反律。若Y  X, 则X  Y。 • 增广律。若X  Y ,则XZ  YZ。 • 传递律。若X  Y, Y  Z,则X  Z 。

  3. 6.4.2.2 Armstrong公理的有效性及完备性 A = { f | 可用Armstrong公理从F中导出的函数依赖f} B = {f | 被F所逻辑蕴涵的函数依赖f} • 有效性:用Armstrong公理从F中导出的函数依赖必为F所蕴涵。 A  B • 完备性:F所蕴涵的函数依赖都能用Armstrong公理从F中导出。 B  A

  4. 6.4.2.3 Armstrong公理的有效性证明 按函数依赖定义r是R<U, F>上的任一关系,t,s  r 自 反 律 t[X] = s[X] YX } X  Y t[Y] = s[Y] t[XZ] = s[XZ] t[X] = s[X] } 增 广 律 t[Y] = s[Y] XY } t[XZ] = s[XZ] t[Z] = s[Z] XZYZ t[YZ] = s[YZ]

  5. X  Y t[X] = s[X] } 传 递 律 t[Y] = s[Y] } • 由Armstrong公理导出的推理规则 • 合并律。若X  Y,X  Z,则X  YZ。 • 分解律。若X  YZ ,则X  Y,X  Z 。 • 伪传递律。若X  Y,WY  Z,则XW  Z 。 t[Z] = s[Z] Y  Z X  Z

  6. 示例 R< U, F >, U = (A, B, C, G, H, I), F = {AB, AC, CGH, CGI, BH}, • A H? Y • CG  HI?Y • AG  I? Y • 思考:若属性组合是码,则函数依赖会有何特征??

  7. 问题:有没有一般性的算法判定XY是否能由F根据Armstrong公理导出?问题:有没有一般性的算法判定XY是否能由F根据Armstrong公理导出? • 6.4.3 属性集的闭包 • 设F为属性集U上的一组函数依赖,X  U, = {A | XA能由F根据Armstrong公理导出} 称 为属性集X关于函数依赖集F的闭包。 • 引理一: XA1 A2 Ak成立  XAi成立(i=1, 2,  ,k) 证明: 由合并律  由分解律 

  8. 引理二 Y   F 逻辑蕴涵XY 必要性: F逻辑蕴涵XY 对Y中任意属性A,有XA Y  充分性: 若Y  假设Y中有属性A  XA不能由F导出 } XY也不能由F导出 } 引理一 F逻辑蕴涵XY 矛盾

  9. 算法(求属性集的闭包) • 由引理二,判定XY是否能由F根据Armstrong公理导出,可转化为求 ,判定Y 是否成立。 Input:X,F Output: := X; while ( 发生变化)do for each 函数依赖 AB in F do begin if A  then := B end 开始: 算法会终止吗?

  10. 示例1 R< U, F >, U = (A, B, C, G, H, I), F = {AB, AC, CGH, CGI, BH},计算 。 所用依赖 AB AGB AC AGBC CGH AGBCH CGI AGBCH I = AGBCHI

  11. 示例2 R< U, F >, U = (A, B, C, D, E), F = {ABC, BD, CE, CEB, ACB},计算 。 所用依赖 ABC ABC BD ABCD CE ABCDE = ABCDE

  12. 思考:若属性组合是码,则码的闭包会有何特征??思考:若属性组合是码,则码的闭包会有何特征?? • 快速热身 R< U, F >, U = (C, T, H, R, S), F = {CT, HRC, HTR, HSR},HR是码吗?(N) HS呢?(Y)

  13. 补充:后选关键字的求解理论和算法 • 对与给定关系R和函数依赖集,可将属性分为四类。 • L类:仅出现在F的函数依赖左边的属性。 • R类:仅出现在F的函数依赖右边的属性。 • N类:在F的函数依赖左右两边均未出现的属性。 • LR类:在F的函数依赖左右两边均出现的属性。

  14. 快速求解后选关键字的一个充分条件。 • 定理1:若X是L类属性,则X包含在R的任一后选关键字中。 • 推论1:若X是L类属性,且X包含了R的全部属性,则X必为R的唯一后选关键字。 • 定理2:若X是R类属性,则X不在任一后选关键字中。 • 定理3:若X是N类属性,则X包含在R的任一后选关键字中。 • 推论2:若X是R的N类和L类组成的属性集,且X+包含了R的全部属性,则X是R的唯一后选关键字。 • 快速热身:设R={A,B,C,D,E,P},F={AD,ED,DB,BCD,DCA} 求R的所有后选关键字。

  15. 6.4.4 函数依赖集的等价性 • 函数依赖集F,G,若F+= G+,则称F与G等价。 • F+ = G+  F  G+,G  F+ • 判定F  G+,只需对F中的函数依赖XY,逐一考察Y是否属于 就行了。 • 例判断F函数依赖集F = {EB, BC, EC, EBC, EBC}和函数依赖集G= {EB, BC}是否等价?

  16. F函数依赖集F = {EB, BC, EC, EBC, EBC}和函数依赖集G= {EB, BC}是否等价? 考察F中的依赖是否被G蕴涵: • 1、(E)G+=EBC ,B (E)G+,所以F的EB被G蕴涵。 • 2、(B)G+=BC ,C (B)G+,所以F的BC被G蕴涵。 • 3、(E)G+=EBC ,C (E)G+,所以F的EC被G蕴涵。 • 4、(EB)G+=EBC ,C (EB)G+,所以F的EBC被G蕴涵。 • 6、(E)G+=EBC ,BC (EB)G+,所以F的EBC被G蕴涵。 再考察G中的依赖是否被F包含: • 1、(E)F+=EBC ,B (E)F+,所以G的EB被F蕴涵。 • 2、(B)F+=BC, C (B)F+,所以G的BC被F蕴涵。 可看出,F  G+,G  F+,所以F和G等价。

  17. 正则覆盖(最小覆盖) 满足下列条件的函数依赖集F称为正则覆盖,记作Fm: • 单属性化:F中任一函数依赖X  A,A必是单属性。 • 无冗余化:F中不存在这样的函数依赖X  A,使得F与F  {X  A}等价。 • 既约化:F中不存在这样的函数依赖X  A,在X中有真子集Z,使得F与F  {X  A}  {Z  A}等价。

  18. 算法:求解函数依赖集F的正则覆盖Fm • 单属性化:逐个检查F中各函数依赖FDi:XY, 若Y=A1 A2 Ak ,k≥2,则用诸XAi 代替Y。 • 无冗余化:逐个检查F中各函数依赖XA, 令G = F{XA},若A ,则从F中去掉该函数依赖。 • 既约化:逐个检查F中各函数依赖XA, 设X = B1Bm,逐个考查Bi, 若A  ,则以(X  Bi)取代X。

  19. 示例一 F = {AB,BA,AC,BC},求Fm。 1、单属性化:F已经是单属性了。 2、无冗余化: • 检查AB,G1=F{AB}={BA,AC,BC} (A)G+={A,C},B{A,C},所以AB不冗余。 • 检查AC,G1=F{AC}={AB,BA,BC} (A)G1+ ={A,B,C},C{A,B,C}, AC冗余, 所以从F中删除AC。 • 检查G1中的BC,G2= G1{BC}={AB,BA} (A)G2+ ={B},C {B}, BC不冗余。 3、既约化:左部已经无多余属性。 Fm = {AB,BA,BC} 或者 Fm = {AB,BA,AC} 注:正确答案的不止一个,考察依赖的顺序不同,答案也不同。

  20. 示例二 F = {CA,AG,CGB,BA},求Fm。 单属性化、无冗余化略。 判断CGB, • = = {G} B • = = {C,A,G,B} B  ,以C代替CG 最后,Fm = {CA,AG,CB,BA}

More Related