3函数依赖公理系统1974年W
Armstrong首先提出了函数依赖的公理系统,称为Armstrong公理
对于一组已知的函数依赖,利用该公理可导出所蕴函的函数依赖
对于关系模式R(U,F),为了确定一个关系模式的码,为了从一组函数依赖求得蕴含的函数依赖我们需要从现有的函数依赖集合F下推导或者至少需要判断函数依赖X→Y是否为F所蕴含
为此,我们需要一套推理规则
这样的推理规则,在1974年由Armstrong首先提出来,称为Armstrong公理(Armstrong'saxioms)系统
在介绍Armstrong公理系统之前,我们先给出逻辑蕴含和F的闭包的概念
逻辑蕴含给定一个关系模式,只考虑给定的函数依赖是不够的,必须找出在该关系模式上成立的其他函数依赖
逻辑蕴含:设F是关系模式R(U)的函数依赖集合,由F出发,可以证明其他某些函数依赖也成立,我们称这些函数依赖被F逻辑蕴含
例如,设F={A→B,B→C},则函数依赖A→C被F逻辑蕴含,记作:F|=A→C
即函数依赖集F逻辑蕴含函数依赖A→C
F的闭包F+对于一个关系模式,如何由已知的函数依赖集合F,找出F逻辑蕴涵的所有函数依赖集合呢
这就是我们下面要讨论的问题
F的闭包F+:设F为一个函数依赖集,F的闭包是指F逻辑蕴涵的所有函数依赖集合
F的闭包记作F+
例如,给定关系模式R(A,B,C,G,H,I),函数依赖集合F={A→B,A→C,CG→H,CG→I,B→H}
可以证明函数依赖A→H被F逻辑蕴涵
设有元组s和t,满足s[A]=t[A],根据函数依赖的定义,由已知的A→B,可以推出s[B]=t[B]
又根据函数依赖B→H,可以有s[H]=t[H]
因此,已经证明对任意的两个元组s和t,只要有s[A]=t[A],就有s[H]=t[H]
所以,函数依赖A→H被F逻辑蕴涵
计算F的闭包F+,可以