2.函数依赖
设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同,则称X函数决定Y,或Y函数依赖于X。
3.平凡函数依赖
当关系中属性集合Y是属性集合X的子集时(Y?X),存在函数依赖X→Y,即一组属性函数决定它的所有子集,这种函数依赖称为平凡函数依赖。
4.非平凡函数依赖
当关系中属性集合Y不是属性集合X的子集时,存在函数依赖X→Y,则称这种函数依赖为非平凡函数依赖。
5.完全函数依赖
设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。
6.部分函数依赖
设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。
7.传递函数依赖
设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y
!→X),Y→Z,则称Z传递函数依赖于X。
多值依赖属4nf的定义范围,比函数依赖要复杂得多。
在关系模式中,函数依赖不能表示属性值之间的一对多联系,这些属性之间有些虽然没有直接关系,但存在间接的关系,把没有直接联系、但有间接的联系称为多值依赖的数据依赖。
在函数依赖中,X与Y是否存在函数依赖关系,只需考察X,Y的两组属性,与别的属性无关。而在多值依赖中,X与Y是否存在多值依赖还需看属性Z。
多值依赖的举例:
有这样一个关系 <仓库管理员,仓库号,库存产品号>,假设一个产品只能放到一个仓库中,但是一个仓库可以有若干管理员,那么对应于一个 <仓库管理员,库存产品号>有一个仓库号,而实际上,这个仓库号只与库存产品号有关,与管理员无关,就说这是多值依赖。
为降低数据冗余,作模式分解,使子模式的Z=Ø,仅有平凡多值依赖。对前例,子模式为R1(仓库,雇员),R2(仓库,物资)。
以上内容参考:百度百科—多值依赖
多值依赖里面的Z是一组,这里一组可以是任意值,可为0,1,2,,,,
函数依赖虽然没有规定Z的依赖问题,但它相当于默认Z为某值的情况
所以 “若X→Y,则X→→Y,反之则不正确”
(个人看法)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)