函数依赖
一、函数依赖定义
R(U)是属性集U上的关系模式,X,Y是U的一个子集,r是R(U)中的任意给定的关系,对于r中的任意两个元组s和t,当s【X】=t【x】时,一定有s【y】=t【y】,称为Y函数依赖于X
记为 x->y
x被称为决定因素
每一个x只能有一个y
非平凡依赖
如果y不是x的子集,则称为非平凡依赖,否则平凡依赖
部分依赖与完全依赖
传递与直接依赖
二、依赖的逻辑蕴含
三、Armstrong公理系统
1.自反律
2.增广律
3. 传递律
4.合并律
5.伪传递律
6.分解律
四、函数依赖和码的联系
在关系R中,k-〉U,则k为R的候选码
候选码特性:
1.唯一性
2.最小特性
五、属性集的闭包
A-〉B,则B放入A的闭包集中
六、最小函数依赖集
应该满足以下三个条件
- F中每个函数依赖右边只有一个元素
- F中没有冗余的函数依赖
- 每个函数依赖的左边没有冗余的属性
化为最小函数依赖集的步骤:
1.将所有的依赖因素化为单个属性
A-〉BC——-A-〉B,A-〉C
2.去掉F中冗余的函数依赖
将每一个函数依赖尝试去掉,A-〉B,若在去掉的F‘中,A的闭包依旧包含B,则为冗余的。
3.去掉所有决定因素的冗余属性
对于每一函数依赖,AC-〉E,若去掉A,C的闭包依旧含E,则A是冗余属性