第九章第二节

闭包及候选键求解问题

 

在关系模式中R(U,F)中,U是R的属性全集,F是R上的一组函数依赖

所有被F逻辑蕴含的函数依赖的全集称为F的闭包,记作。

首先 可以根据Armstrong公理

(自反律、增广律、传递律)

自反律:若Y是X的一部分(子集),则X→Y
增广律:如果X→Y,则XZ→YZ(X∪Z→Y∪Z)
传递律:如果X→Y,Y→Z,则X→Z
及其Armstrong公理推论

(合并规则、分解规则、伪传递规则、复合规则)

合并规则:若X→Y,X→Z,则X→YZ
伪传递规则:若X→Y,WY→Z,则XW→Z
分解性规则:若X→Y,Z是Y的一部分(子集),则X→Z
属性集闭包

比较简单传统的闭包求法

求取属性集闭包的步骤:

设要求的闭包属性集是Y,把Y初始化为X.
检查函数依赖集F中的每个函数依赖A->B,如果属性集A中的所有属性都在Y中,而B中有属性不在Y中,则将其加入到Y中。
重复第二步,直到没有属性可以添加到Y中为止。最后得出的Y就是X+。
*例子:*设有关系模式R(M,N,X,Y,Z)其依赖集F={M->H,H->Z,Y->Z,N->Y,Z->M}。求M+,MH+
第一步:设要求的闭包属性集是Y,把Y初始化为X.
令X={M},我们先看M->H,由于函数依赖M->H左边的所有属性都在X中,而右边H不在X中,所以可以把H添加到X 中,此时X={M,H}

然后按照顺序我们再看H->Z,我们不难发现函数依赖H->Z左边的所有属性都在X中,右边的属性Z又不在X中,仍旧添加,这时X={M,H,Z}

下一个

Y->Z,可以发现Y属性不在X中,条件不满足
N->Y,可以发现N属性不在X中,条件不满足
Z->M,Z属性在X中条件满足,但右边M也在X中条件不满足。

属性判断完 ,那么属性M的闭包:M+=MHZ。
MH+的求法也一样

令X={M,H},先看M->H,不难看出M在X中,H也在,右不满足。

H->Z,H在X中,属性Z不在,所以可以把Z加入到X中,这时X={M,H,Z}

Y->Z,Y属性就不满足,pass

N->Y,N属性也不在X中,pass

Z->M,右边M属性在X中不满足添加条件

即MH+=MHZ
————————————————
版权声明:本文为CSDN博主「大海里全是水」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_46670811/article/details/109526906

候选键求法

L类:仅出现在F的函数依赖左部的属性;

R类:仅出现在F的函数依赖右部的属性;

N类:在F的函数依赖左右两边均未出现的属性;

LR类:在F的函数依赖左右两边均出现的属性。

1.L,N

2.(L,N)+=U

3.(L,N,L,R)+=U

4.候选键
————————————————
版权声明:本文为CSDN博主「qq_65556736」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_65556736/article/details/125079495

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值