求关系模式中的候选键(软考,数据库)
求关系模式中的候选键,是软考中的考点,但视频中没有讲,所以得一提。 求闭包 给定关系模式R(U,F),U={A,B,C,D,E},F={B-A, D-A, A-E,AC-B},其属性AD的闭包为______. 解:设X(0)=AD,计算X(1):逐一扫描F集中的各个函数依赖,找左部是A、D、AD的函数
求关系模式中的候选键,是软考中的考点,但视频中没有讲,所以值得一提。
求闭包
给定关系模式R(U,F),U={A,B,C,D,E},F={B->A, D->A, A->E,AC->B},其属性AD的闭包为______. 解:设X(0)=AD,计算X(1):逐一扫描F集中的各个函数依赖,找左部是A、D、AD的函数依赖,得到A E。于是X(1)=X(0)∪EA=ADE。由于X(0)!=X(1),所以继续扫描,于是X(2)=X(1)∪EA=ADE。由于X(2)=X(1),所以算法到此为止,属性AD的闭包为X(2),即ADE。
求候选键
关系模式R(U,F),其中U={W,X,Y,Z},F={WX→Y,W→X,X→Z,Y→W}。关系模式R的候选建是__
解法:从函数依赖集出发,把所有属性分为3类
1、L类:全部出现在函数依赖的左半部
2、R:全部出现在函数依赖的右半部
3、LR:出现在函数依赖的左右两边
可能成为候选键的有L类,LR类
对于L类,求出它的闭包,若包含所有属性,则说明其为候选键。
对于LR类,求出其闭包,若包含所有属性,则为候选键;若不包含,再和LR类中的其他属性组合。
对于N类,直接加至候选键即可。
对于这道题
L:无
R:z
LR:w,x,y
先排除z
在LR中,w的闭包为{w,y,z,x}
x的闭包为{x,z}
y的闭包为{w,y,z,x}
所以,w和y为候选键。