函数依赖理论
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)函数依赖:如果,则称这个函数依赖是平凡的。
多值依赖(Multivalued Dependency):设是属性集上的一个关系模式。,,是U的子集,并且。关系模式中多值依赖成立,当且仅当对的任一关系,给定的一对值有一组的值,这组值仅仅决定于值而与值无关。
无关属性(extraneous attribute):如果去除函数依赖中的一个属性不改变该函数依赖集的闭包,则称该属性是无关的。
正则覆盖(canonical cover):的正则覆盖是一个依赖集,使得逻辑蕴含中的所有依赖,并且逻辑蕴含中的所有依赖。此外必须既有如下性质:
- 中任何函数都不含无关属性。
- 中函数依赖的左半部都是唯一的。
无损分解/无损连接分解(lossless decomposition):
- 和是的无损分解,当且仅当。
- 和是的无损分解,当且仅当是或的超码。
有所分解/有损连接分解(lossy decomposition):不是无损分解的分解成为有损分解。
限定(restriction):令为模式上的一个函数依赖集,,……为的一个分解。在上的限定是中所有只包含中属性的函数依赖的集合。
保持依赖的分解(dependency-preserving decomposition):令如果,则该分解保持依赖。
保持依赖的算法可以直接按照定义算,也可以按下图所示:
范式
原子域:一个域是原子的(atomic)当且仅当该域的元素是不可分的单元。
主属性(Prime attribute):如一个属性是构成某一个候选码的属性集中的一个属性,则称它为主属性。
非主属性:主属性以外的属性。
第一范式(First Normal Form,1NF):如果关系模式R的所有属性的域都是原子的,那么R属于第一范式。
第二范式(Second Normal Form,2NF):关系模式R属于第一范式,且消除了非主属性对候选码的部分依赖。
第三范式(Second Normal Form,2NF):关系模式R属于第二范式,且消除了非主属性对候选码的传递依赖。
Boyce-Codd范式(Boyce-Codd Normal Form,BCNF):关系模式R属于第三范式,且消除了主属性对候选码的部分或传递依赖。
第四范式(Fourth normal form,4NF):关系模式R属于第三范式,且消除了非主属性对候选键以外属性的多值依赖。
[参考资料]:《数据库系统概念》 机械工业出版社