函数依赖
多值依赖
数学定义是:设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。
假如Z是空集,那么X→→Y就是平凡的多值依赖,反之则是非平凡的多值依赖。
用一个例子来理解:有关系R(仓库号,仓库管理员,库存产品号),
- X:仓库号
- Y:仓库管理员
- Z:库存产品号
假设每一个产品只能放在一个仓库里面,但是一个仓库却可以有多个仓库管理员,因此给定一对<库存产品号,仓库号>有一组仓库管理员的值,而这组仓库管理员的值仅仅决定于仓库号,而与库存产品号无关。比如一对<产品A,仓库号1>有仓库管理员1,2,<产品B,仓库号2>就有仓库管理员1,2。用符号来表示就是仓库号→→仓库管理员。
仓库管理员 |
仓库号 |
库存产品号 |
管理员1 |
1 |
产品A |
管理员2 |
1 |
产品A |
管理员1 |
2 |
产品B |