数据库工程师考试自学(6)---多值依赖与4NF

本文介绍了多值依赖的概念及其与函数依赖的区别,通过实例说明了如何判断多值依赖和平凡多值依赖,并给出了消除多值依赖的方法,即通过分解关系模式达到第四范式(4NF)的要求。

多值依赖的定义:

设R(U)是一个属性集合U上的一个关系模式,X, Y, 和Z是U的子集,并且Z=U-X-Y,多值依赖X->->Y成立当且仅当对R的任一个关系r,r在(X,Z)上的每个值对应一Y的值,这组值仅仅决定于X值而与Z值无关。

若X->->Y,而Z=空集,则称X->->Y为平凡的多值依赖。否则,称X->->Y为非平凡的多值依赖。

可以看出,如果把上面的一改为一,那么多值依赖就变成了函数依赖。当然一个值组成的组也是组,所以说,函数依赖是多值依赖的特殊情况。

如下表:

课程C教师T 参考书B

数学 邓军数学分析

数学 邓军 高等代数

数学 邓军微分方程

表中,U = C+T+B,(C,T)确定一组B,但是这组B其实与T无关,仅由C确定,所以(C,T)->->B。又因为T不是空集,所以(C,T)->->B为非平凡多值依赖。

要想消除多只依赖,可以分解为:(C,T), (C,B)及

表1:

课程C 教师T

数学邓军

表2:

课程C 参考书B

数学 数学分析

数学 高等代数

数学 微分方程

对于R中的每个非平凡多值依赖X->->Y(Y不属于X),X都含有候选码,则R属于4NF。

分析:对于每一个非平凡多值依赖X->->Y,X若含有候选码,也就是X->Y,所以4NF所允许的非平凡多值依赖是函数依赖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值