函数依赖 传递函数依赖 ■定义 设X,Y,Z是某关系的不同的属性集,如果X→”,Y+X,”→Z, 则称Z对X传递函数依赖(Transitive Functional Dependency), ■直接依赖 由于有了条件Y+X,说明X与Y不是一一对应的: 否则,X9”,Z就直接函数依赖于X,而不是传递函数依赖于X了。 新疆大学软件学院 爱,激情,进取,感恩 2025年2月24日10时29分
新疆大学 软件学院 爱,激情, 进取,感恩 2025年2月24日10时29分 ◼ 定义 ◼ 直接依赖
函数依赖 传递函数依赖 ■举例: 在就诊关系R中,存在函数依赖Dname→Dlevel, Dlevel-Dsal,.所以Dname→Dsal. Dname Pname Fsum Dlevel Dsal 新疆大学软件学院 爱,激情,进取,感恩 2025年2月24日10时29分
新疆大学 软件学院 爱,激情, 进取,感恩 2025年2月24日10时29分 ◼ 举例: 在就诊关系R中,存在函数依赖Dname→Dlevel, Dlevel→Dsal,所以Dname→ Dsal。 Dname Pname Dlevel Dsal Fsum
函数依赖 逻辑蕴涵 函数依赖中需要解决的问题:从一些已知的函数依赖去 判断另外一些函数依赖是否成立。 ■例如,如果A→B和B→C在某个关系中成立,记 F={A→B,B→C,那么A→C在该关系中是否成立的 问题称为逻辑蕴涵问题,若A→C成立,则说F逻辑蕴涵 A→C,记作F卡A→C. ■定义 设F是R的函数依赖集,X,Y是R的属性子集,X→y是R的一个函 数依赖。如果一个关系模式R满足F,则必然满足x→”,这时称F 逻辑蕴涵X→Y,或表示为FFX→Y。 新疆大学软件学院 爱,激情,进取,感恩 2025年2月24日10时29分
新疆大学 软件学院 爱,激情, 进取,感恩 2025年2月24日10时29分 ◼ 函数依赖中需要解决的问题:从一些已知的函数依赖去 判断另外一些函数依赖是否成立。 ◼ 例如,如果A→B和B→C在某个关系中成立,记 F={ A→B,B→C},那么A→C在该关系中是否成立的 问题称为逻辑蕴涵问题,若A→C成立,则说F逻辑蕴涵 A→C,记作F╞ A→C。 ◼ 定义
函数依赖 逻辑蕴涵 ■一个关系模式可能有多个函数依赖形成函数依赖集,现 在有一个新的函数依赖不在函数依赖集里,但能从集合 里根据一定的规则推导出来,就说那个集合逻辑蕴涵这 个新的函数依赖。 ■举例 X→Z并不是显式地表现出来,而是从X→y和y→Z推出的,这可表示 为x→,y→Z=X→Z ■如果一个函数依赖能够由集合中的其他函数推出,则该 函数依赖是多余的。 新疆大学软件学院 爱,激情,进取,感恩 2025年2月24日10时29分
新疆大学 软件学院 爱,激情, 进取,感恩 2025年2月24日10时29分 ◼ 一个关系模式可能有多个函数依赖形成函数依赖集,现 在有一个新的函数依赖不在函数依赖集里,但能从集合 里根据一定的规则推导出来,就说那个集合逻辑蕴涵这 个新的函数依赖。 ◼ 举例 ◼ 如果一个函数依赖能够由集合中的其他函数推出,则该 函数依赖是多余的
函数依赖 逻辑蕴涵 ■闭包() 函数依赖集合F所逻辑蕴涵的函数依赖的全体称为F的闭包 (Closure),记为F,即F={X→FFX→r} ■函数依赖集的闭包(也成为完备集)定义了由给定函数 依赖集所能推导出的所有函数依赖。 ■通过F得到F+的算法可以由Armstrong公理推导出来。 新疆大学软件学院 爱,激情,进取,感恩 2025年2月24日10时29分
新疆大学 软件学院 爱,激情, 进取,感恩 2025年2月24日10时29分 ◼ 闭包(*) ◼ 函数依赖集的闭包(也成为完备集)定义了由给定函数 依赖集所能推导出的所有函数依赖。 ◼ 通过F得到F+的算法可以由Armstrong公理推导出来