名称 | 说明 | |
函数依赖 | 两个实例化的属性集X,Y,如果属性集X中的两个元组取值相同,必有对应的另外一个属性集Y中元组取值相同,则称Y函数依赖于X函数。 特别值得注意的是,如果属性集X中不存在两个取值相同的元组集合,则Y必定依赖于函数X,且函数X的属性集为超键。 | |
平凡函数依赖 | 如果Y依赖于X,同时Y是X的子集,那么称X -> Y 为平凡函数依赖 | |
非平凡函数依赖 | Y不是X的子集。对于任意关系模式而言,平凡函数依赖是必然成立的,其并不反映新的语义特征,因此我们一般不讨论平凡函数依赖。 | |
全函数依赖 | 完全函数依赖表示的就是函数X的属性集构成了候选键。其中形式化的表示就是如果对于X的任何一个子集Z,都有Y不依赖于X,则称Y完全函数依赖于X。 | |
部分函数依赖 | 如果Y不完全函数依赖于X,则称Y部分函数依赖于X。 | |
传递函数依赖 | 如果Y函数依赖于X,Z函数依赖于Y,其Y不是X的子集,X不依赖于Y,则称Z传递依赖于X。 | |
直接函数依赖 | 否则称Z直接函数依赖于X。 | |
多值依赖 | 定义:对于某个关系上的三个属性A, B, C。如果属性B,C的取值都不单一,同时B的取值与C无关,也就是B依赖于A,随着A取值的变化可以取不同的值。 | |
形式化描述:设R(U)是属性集U上的一个关系模式。X,Y,Z是的U的子集,并且Z=U-X-Y,如果对R(U)的任一关系r,都有如下性质:如果r中存在2个元组s、t,使得:s[X]=t[X] ,则r中必存在元组u,使得: (1) s[X]=t[X]=u[X] (2) u[Y]=t[Y] 且 u[Z]=s[Z] (即交换s、t在Y上的值得到的2个元组必在r中) 则称关系模式R满足多值依赖X→→Y。 | ||
注意事项:多值依赖会导致数据冗余和更新异常,因此在进行数据模式设计的时候,要消除多值依赖。一般使用的方法是建立两个关系,让每个关系只存储一个多值属性的数据。 | ||
连接依赖 | 设关系模式R、Ri的属性集是U、Ui,UiU(1≤i≤n).若R每个容许的实例r均满足r=∏U1(r)∞...∞∏Un(r)则称R满足连接依赖,记作∞(R1,...,Rn).若其中某个Ui=U,则称连接依赖是平凡连接依赖。 多值依赖也是连接依赖。 |
https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E4%BE%9D%E8%B5%96/3192421?fr=aladdin