数据库问题:什么是多值函数依赖?

数据库问题:什么是多值函数依赖?,第1张

数据依赖指的是通过一个关系属性间的相等与否体现出来的数据间的相互关系,其中最重要的是函数依赖和多值依赖。

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,反之则不正确”

(个人看法)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6920492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存