关系模式R(U,F),其中U=(W,X,Y,Z),F=WX→Y,W→X,X→Z,y→w。关系模式R的候选码是 (38) , (39) 是无损连接并保持函数依赖的分解;
(39)处填()。
A.
- D.p={R1(WX),R2(YZ)
B.p={R1(WY),R2(XZ)}
C.p={R1(WZ),R2(XY)}
D.p={R1(WXY),R2(XZ)}
E.
参考答案:C
解析:
此题涉及候选码的求法,先看一些基本概念,然后看下面几个定理:
给定关系模式只和函数依赖集F,可将其属性分为4类。
①L类:仅出现在F的函数依赖左部的属性。
②R类:仅出现在F的函数依赖右部的属性。
⑧N类:在F的函数依赖的左右部均未出现的属性。
④LR类:在F的函数依赖的左右部均出现的属性。
定理1:对于给定的关系模式只及其函数依赖集F,若属性又是L类属性,则X必为R的任一候选码的成员。
推论1:对于给定的关系模式R及其函数依赖集F,若属性X是L类属性,且X的闭包为全体属性,则X必为R的惟一候选码。
定理2:对于给定的关系模式只及其函数依赖集F,若属性X是只类属性,则X不在任一候选码中。
推论2:对于给定的关系模式只及其函数依赖集F,若属性Y是L类属性和N类属性的集成,且X的闭包为全体属性,则X必为只的惟一候选码。
题目中Z为R类属性,所以Z不包含在任一候选码中,其余属性均为LR类,所以候选码可能就不惟一了。先求单个属性的闭包:X的闭包为XZ,不是全体属性,所以单个J不是候选码;Y属性的闭包为全体属性,所以单个Y为候选码;W属性的闭包为全体属性,所以单个W为候选码;Z就不用理会了。这样就可求得W和Y为候选码。
再看(39)题,A,B都没有保持依赖W→X,D没有保持Y→W,只有C都保持了,所以选C。