多值依赖属4nf的定义范围,比函数依赖要复杂得多。在关系模式中,函数依赖不能表来自示属性值之间的一对多联系,这些属性之间有些虽然没有直接关系,但存在间360百科接的关系,把没有直接联系、但有间接的联系称二怕为多值依赖的数据依赖。
在函数依赖中,X与Y是否存在函数依赖关系,只需考察X,Y的两组属性,与别的属性无关。而在多值依赖中,X与Y是否存在多值依赖还需看看属性Z。
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)粒乎没正外晚维预中多值依赖X→→Y成值兰统找立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。
平凡的多值依赖与非平凡兵立众效的多值依赖:
若X→→Y,而Z为空集,则称X→→Y为平凡的多值依赖;若Z不为空,则称其为非平凡的多值依赖。
1)对称性:使用上述定义的符号,若福半到失严原被要X→→Y,则X→→Z .
2)实例r的X或Z每增删一个值,r就须同步增删多条记录。
3)若X→Y,则X→→Y。故可把函数依赖看成多值依赖的特殊情况。
有这样一个关系 <仓库管理员,仓库号,库存产品号> ,假设一个产品只能放到一个仓库中,但是一个仓库可以有若干管理员,那么对应于一个 <仓库管理员,库存产品号>有一个仓库号,而实际上,这个仓库号只与库来自存产品号有关,与管理员无关,就说这是多值依赖。
(1第婷代工同)允许X的一个值决360百科定Y的一组值,这种决定关系与Z取值无关。
(2)多值依赖是全模式的罗矛响掉们依赖关系。
多值依赖的缺点是:数据冗余太大
为降低数据冗余,作模式这组占队宣点物春能外分解,使子模式的Z=Ø,仅有平凡多值依赖。对前例,子模式为R1(仓库,雇员代门),R2(仓库,物资)