函数依赖理论
Armstrong定理(Armstrong's axiom)
- 自反律(reflexivity rule):若为一属性集且,则成立
- 增补律(augmentation rule):若成立且为一属性集,则成立。
- 传递律(transitivity rule):若和成立,则成立。
另外的一些规则:
- 合并律(union rule):若和成立,则成立。
- 分解律(decomposition):若成立,则和成立。
- 伪传递律(pseudotransitivity rule):若和成立,则成立。
逻辑蕴含(logically imply):如果函数依赖集能推出函数依赖,则称被逻辑蕴含。
函数依赖集的闭包(closure):令为一个函数依赖集,的闭包是被逻辑蕴含的所有函数依赖的集合,记作。
函数确定(functionally determine):如果,我们称属性被函数确定。
属性集的闭包:令为一个属性集,我们将函数依赖集下被函数是确定的所有属性的集合成为下的闭包,记为。
部分函数依赖(partial functional dependency):如果,存在是的一个子集使,得,则称部分依赖于。
完全函数依赖(Full functional dependency):如果,不存在是的一个子集,使得,则称完全依赖于。
传递函数依赖(transitive functional dependency):如果,,则称传递依赖于。
平凡的(trivial)函数依赖:如果,则称这个函数依赖是平凡的。
无关属性(extraneous attribute):如果去除函数依赖中的一个属性不改变该函数依赖集的闭包,则称该属性是无关的。
正则覆盖(canonical cover):的正则覆盖是一个依赖集,使得逻辑蕴含中的所有依赖,并且逻辑蕴含中的所有依赖。此外必须既有如下性质:
- 中任何函数都不含无关属性。
- 中函数依赖的左半部都是唯一的。
无损分解/无损连接分解(lossless decomposition):
- 和是的无损分解,当且仅当。
- 和是的无损分解,当且仅当是或的超码。
有所分解/有损连接分解(lossy decomposition):不是无损分解的分解成为有损分解。
限定(restriction):令为模式上的一个函数依赖集,,……为的一个分解。在上的限定是中所有只包含中属性的函数依赖的集合。
保持依赖的分解(dependency-preserving decomposition):令如果,则该分解保持依赖。
保持依赖的算法可以直接按照定义算,也可以按下图所示:
范式
原子域:一个域是原子的(atomic)当且仅当该域的元素是不可分的单元。
第一范式(First Normal Form,1NF):如果关系模式R的所有属性的域都是原子的,那么R属于第一范式。
第二范式(Second Normal Form,2NF):如果关系模式R属于第一范式,且所有非主属性都完全依赖于候选码,那么R属于第二范式。
第三范式(Second Normal Form,2NF):如果关系模式R属于第二范式,且所有非主属性都不传递依赖于候选码,那么R属于第三范式。
Boyce-Codd范式(Boyce-Codd Normal Form,BCNF):如果关系模式R属于第三范式,且主属性不依赖于主属性,那么R属于第三范式。