函数依赖理论
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属于第三范式,且消除了非主属性对候选键以外属性的多值依赖。
[参考资料]:《数据库系统概念》 机械工业出版社