> 教育经验 > 什么是多值依赖介绍

什么是多值依赖介绍

什么是多值依赖介绍

多值依赖属4nf的定义范围,比函数依赖要复杂得多。在关系模式中,函数依赖不能表示属性值之间的一对多联系,这些属性之间有些虽然没有直接关系,但存在间接的关系,把没有直接联系、但有间接的联系称为多值依赖的数据依赖。

在函数依赖中,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的一个值决定Y的一组值,这种决定关系与Z取值无关。

(2)多值依赖是全模式的依赖关系。

多值依赖的缺点是:数据冗余太大

多值依赖关系模式分解

为降低数据冗余,作模式分解,使子模式的Z=Ø,仅有平凡多值依赖。对前例,子模式为R1(仓库,雇员),R2(仓库,物资)