Part 1.关系理论
1°函数依赖
平凡函数依赖
X→Y Y不包含于X
非平凡函数依赖
X→Y Y包含与X
完全函数依赖
X→Y 并且对于X的任何一个真子集X‘都不能→Y,那么称为Y对X完全函数依赖,记作
部分函数依赖
Y不完全依赖于X,记作 例如A→C,AB→C 那么C就是部分函数依赖于AB的 这种情况下会造成数据冗余
2°码
候选码
定义:是一个属性组,这个属性组能推出所有的属性,并且该属性组的任意子集都不能推出其余属性了,即在满足完全函数依赖的前提下,还得是最小的属性组
比如,有一个学号就能推出所有的属性了,那这个学号就是候选码,再比如,学号和姓名两个属性才能推出所有其余属性,那么学号和姓名这个属性组就是候选码
例题:求候选码
求候选码分为两步
step1:找出一定属于候选码的属性,可能属于候选码的属性,不属于候选码的属性
一定属于候选码的属性:只出现在左边,题中BD
可能属于候选码的属性:左右两边都出现 题中ACE
不属于候选码的属性:只在右边出现 题中G
step2
求闭包,
由可以得到BD不是候选码,接下来我们用BD和可能属于候选码的集合里分别进行组合,再对组合完的结果进行闭包,看是不是候选码
先用A和BD组合 A-BD能够推出所有的属性,故ABD是一个候选码 同理CBD和EBD也是候选码
超码
能推出所有属性的属性组的集合,候选码是极小的超码集,是超码的子集
主码
当有多个候选码的时候,选出其中一个当主候选码,就叫主码
主属性
包含再任何一个候选码中的属性,比如例题中的BD都是主属性
非主属性
不在任何一个候选码中的属性
外码
关系模式R中,若有一个属性或属性组X,它不是R的码 但是在另一个关系模式S中是码,那就称之为X为R的外码