怎样选择候选键问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 18:18:32
R(U,F) U={W,X,Y,Z} F={WX-->Y,W-->X,X-->Z,Y W}请从中选择候选键
答案给的是YW
那为什么不是,W-->X,X-->Z
所以W-->X,W-->Z,WX-->Y,WX-->W(我想因为W自己就能推出自己所以和Y一起也能推出啊)候选键为什么不是WX呢?
谁能帮我解释一下吗?最好细致一些非常感谢

定义:
从函数依赖集出发,把所有属性分为4类
1、L类属性:全部出现在函数依赖的左半部;
2、R类属性:全部出现在函数依赖的右半部;
3、LR类属性:出现在函数依赖的左右两边;
4、N类属性:不出现在函数依赖中。
规则:
可能成为候选键的有L类,LR类和N类;
R类属性不可能称为候选键的属性;
对于L类,求出它的闭包,若包含所有属性,则说明其为候选键,且为唯一候选键;
对于LR类,求出其闭包,若包含所有属性,则为候选键,若不包含,在找出其中一个属性结合;
对于N类,直接加至候选键即可。
--
本例中:
L类属性:没有
R类属性:z
LR类属性:w,x,y
N类属性:没有
先排除R类属性z
在LR类属性中,w的闭包为{w,y,z,x}
x的闭包为{x,z}
y的闭包为{y,w}
wx的闭包为{w,x,y,z}
wy的闭包为{w,y}
xy的闭包为{x,y,z,w}
wxy的闭包为{x,z,y,w}
由此可见,候选键为{w,wx,xy,xyw}
可从候选键中选取一个作为主键。