函数依赖的逻辑蕴涵 一、逻辑蕴涵 定义:设有关系模式R(U)及其函数依赖集F,如果对于R的任一个满足F 的关系r函数依赖X→Y 都成立,则称F 逻辑蕴涵X→Y,或称X→Y 可以由F 推出。 例:关系模式 R=(A,B,C),函数依赖集F={A→B,B→C}, F 逻辑蕴涵A→C。 证:设u,v 为r中任意两个元组: 若A→C 不成立,则有u[A]=v[A],而u[C]≠v[C] 而且A→B, B→C,知 u[A]=v[A], u[B]=v[B], u[C]=v[C], 即若u[A]=v[A]则u[C]=v[C],和假设矛盾。 故F 逻辑蕴涵A→C。 满足F 依赖集的所有元组都函数依赖X→Y(X→Y 不属于F 集),则称F 逻辑蕴涵X→Y (X→Y 由F 依赖集中所有依赖关系推断而出) 二、Armstrong公理 1、定理:若U为关系模式R的属性全集,F 为U上的一组函数依赖,设X、Y、Z、W 均为R的子集,对R(U,F)有: F1(自反性):若X≣Y(表X 包含Y),则X→Y 为F 所蕴涵;(F1':X→X) F2(增广性): 若X→Y 为F 所蕴涵,则XZ→YZ 为F 所蕴涵;(F2':XZ→Y) F3(传递性): 若X→Y,Y→Z 为F 所蕴涵,则X→Z 为F 所蕴涵; F4(伪增性):若X→Y,W≣Z(表W 包含Z)为F 所蕴涵,则XW→YZ 为F所蕴涵; F5(伪传性): 若X→Y,YW→Z 为F 所蕴涵, 则XW→Z 为F 所蕴涵; F6(合成性): 若X→Y,X→Z 为F 所蕴涵,则X→YZ 为F 所蕴涵; F7(分解性): 若X→Y,Z≢Y (表Z 包含于Y)为F 所蕴涵,则X→Z 为F所蕴涵。 函数依赖推理规则F1∽F7 都是正确的。 2、Armstrong公理: 推理规则F1、F2、F3合称Armstrong公理; F4 ∽ F7 可由F1、F2、F3推得,是Armstrong公理的推论部分。 三、函数依赖的闭包 定义:若F 为关系模式R(U)的函数依赖集,我们把F 以及所有被F 逻辑蕴涵的函数依赖的集合称为F 的闭包,记为F+。 即:F+={X→Y|X→Y∈F∨“应用 Armstong公理从 F 中导出的任何 X→Y”} △ F 包含于F+,如果F=F+,则F 为函数依赖的一个完备集。 △ 规定:若X 为U的子集,X→Φ 属于F+。 例:R=ABC,F={A→B, B→C}, 求 F+ 解: F+ ={A→Φ ,AB→Φ ,AC→Φ ,ABC→Φ ,B→Φ ,C→Φ , A→A,AB→A,AC→A,ABC→A,B→B,C→C, A→B,AB→B,AC→B,ABC→B,B→C, A→C,AB→C,AC→C,ABC→C,B→BC, A→AB,AB→AB,AC→AB,ABC→AB,BC→Φ , A→AC,AB→AC,AC→AC,ABC→AC,BC→B, A→BC,AB→BC,AC→BC,ABC→BC,BC→C, A→ABC,AB→ABC,AC→ABC,ABC→A,BC→BC} 例:已知关系模式 R 中 U={A...