第九章第二节

1函数依赖集闭包

 定义:若F为关系模式R(U)的函数依赖集,我们把F以及所有被F逻辑蕴涵的函数依赖的集合称为F的闭包,记为F+。
即:F+={X→Y|X→Y∈F∨“应用Armstong公理从F中导出的任何X→Y”}
△ F包含于F+,如果F=F+,则F为函数依赖的一个完备集。
△ 规定:若X为U的子集,X→Φ 属于F+。

步骤1:初始,F+=F

步骤2:对F+中的每个函数依赖f,在f上应用自反性和增广性,将结果加入F+中;对F+中的一对函数依赖f1和f2,如果f1和f2可以使用传递律结合起来,则将结果加入F+中。

步骤3:重复步骤2,知道F+不再增大为止。

例:已知关系模式R(ABC),F={A→C,B→C},求F+

解:∵U={A,B,C},左部不同的属性集组合有23=8种:

Φ、A、B、C、AB、BC、AC、ABC。

(1)∴Φ→Φ

(2)∵(A)F+=AC

∴A→Φ、A→A、A→C、A→AC。

(3)∵(B)F+=BC

∴B→Φ、B→B、B→C、B→BC。

(4)∵(C)F+=C

∴C→Φ、C→C。

(5)∵(AB)F+=ABC

∴AB→Φ、AB→AB 、AB→A、AB→B 、AB→C、AB→BC 、AB→AC、AB→ABC 。

(6)∵(BC)F+=BC

∴BC→Φ、BC→BC、BC→B、BC→C。

(7)∵(AC)F+=BC

∴AC→Φ、AC→BC、AC→B、AC→C。

(8)∵(ABC)F+=ABC

∴ABC→Φ、ABC→ABC 、ABC→A、ABC→B 、ABC→C、ABC→BC 、ABC→AB、ABC→AC。

所以F+共有35个具体如下:

∴Φ→Φ、A→∅、A→A、A→C、A→AC

B→Φ、B→B、B→C、B→BC

C→Φ、C→C、 AB→∅、AB→AB 、AB→A、AB→B 、AB→C、AB→BC 、AB→AC、AB→ABC 、

BC→Φ、BC→BC、BC→B、BC→C、

AC→Φ、AC→BC、AC→B、AC→C、

ABC→Φ、ABC→ABC 、ABC→A、ABC→B 、ABC→C、ABC→BC 、ABC→AB、ABC→AC
 

2属性集闭包 

  • 定义:U是属性集,F是R上的函数依赖集,X是U的子集,用函数依赖推理规则可以从F推出函数依赖X→A中所有A的集合,称为属性集X关于F的闭包,称为X+ 。
  • 定理: X→Y 能用函数依赖推理规则推出的充分必要条件是 Y 属于 X+ 中。
  • X+={A|X→A能够由F根据Armstong公理导出}

个人理解:属性集的闭包就是由该属性集合能确定的所有属性的集合

eg:考虑属性A,B,C,D,E,F的关系,假设此关系有函数依赖:AB -> C, BC -> AD, D -> E, CF -> B, 那么{A, B}的闭包{A, B}+为?
步骤:BC -> AD 分解为 BC -> A 和 BC -> D,从X = {A, B}出发,AB -> C,把C加入X,得到{A, B, C},再由 BC -> D,加入D,由D -> E,加入E,得到X为{A, B, C, D, E},F确定不了,终止。得到闭包为{A, B, C, D, E}。

闭包的作用----能判断(属性集A与属性集B是否含依赖关系){A1, A2 ... An} -> {B1, B2 ... Bm}是否成立,若B是A的闭包的子集,则推断成立。

步骤1:初始,X+=X

步骤2:如果F中有某个函数依赖Y→Z满足Y\displaystyle \subseteqX+。则X+=X+ \cup Z

步骤3:重复步骤2,直到X+不再增大为止。

3候选键的求解方法 

 

快速求解候选键的一个充分条件

对于给定的关系模式RE(,  , … ,  )和函数依赖集F,可将其属性分为以下四类。

(1)L类:仅出现在F中的函数依赖左部的属性;
(2)R类:仅出现在F的函数依赖右部的属性;
(3)N类:在F的函数依赖左右两边均未出现的属性;
(4)LR类:在F的函数依赖左右两边均出现的属性

对于给定的关系模式R及其函数依赖集F,有一下结论。

(1)若X(X∈RE)是L类属性,则X必为RE的任意候选键的成员;
(2)若X(X∈RE)是L类属性,且包含了RE的全部属性,则X必为RE的唯一候选键;
(3)若X(X∈RE)是R类属性,则X不在任何候选键中;
(4)若X(Y∈RE)是N类属性,则X包含在R的任一候选键中;
(5)若X(X∈RE)是RE的N类和L类属性组成的属性集,且X包含了R的全部属性,则X
是RE的唯一候选键。

【例1】设有关系模式R(A, B, C, D)与它的函数依赖集F={D→B, B→D, AD→B, AC→D},求R的所有候选键。

解题思路:

通过考察F发现,A,C两属性是L类属性,故A、C两属性必在R的任何候选键中;

又由于=ABCD,即包含了R的全部属性,因此,AC是R的唯一候选键。

【例2】设有关系模式R(A, B, C, D, E, P)与它的函数依赖集F={A→D, E→D, D→B, BC→D, DC→A},求R的所有候选键。

解题思路:

通过考察F发现,C,E两属性是L类属性,故C,E两属性必在R的任何候选键中;

由于P是N类属性,故P属性也必在R的任何候选键中;

又由于= ABCDEP,即包含R的全部属性,因此,CEP是R的唯一候选键。

个人总结方法

  1. 找到L,N类属性。
  2. 如果属性闭包集(L,N)+=U  则已经找到候选键。
  3. (L,N)+\neqU,→找 LR类属性
  4. 如果属性闭包集(L,N,LR)+=U ,则已找到候选键 可看图上例9.10

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值