【转】数据库中的闭包与最小依赖

已知关系模式R(U,F),其中U={ A,B,C,D,E},F是这样的关系集合{AB—>C,B—>D,C—>E,EC—>B,AC—>B}
求AB的闭包。

  1. 第一步,设X0=AB,在F中找出这样的关系,左边是AB的子集,即左边为A,B,AB,从题目可得AB—>C,B—>D
  2. 第二步,将X0的子集推出的属性,这里是C,D与X0并起来得到X1=ABCD,因为X1不等于X0(直到Xi=Xj)继续运算
  3. 重复第一步,但此时注意,你要找的是X1的子集,而且是从来没用过的子集,像A,B,AB就不需要重新计算了,此时找的应该是C—>E,AC—>B
  4. 重复第二步,得到X2=ABCDE,此时虽然X2!=X1,但是X2却包含所有属性集合了,也可以停止继续运算,即AB的闭包为ABCDE

总结:也就是说,我们找一个属性集的闭包时,就是在找该属性所有能直接或间接推导出来的属性,然后不断合并。


最小函数依赖集,首先要满足下列条件:

  1. 一个函数依赖中右部分只能含有一个属性
  2. 不含多与依赖,即去掉某一函数依赖后形成的集合B和原来的集合A是等价的,在说白点,B可以退出去掉的函数依赖
  3. 不含部分依赖,像F{AB—>C,A—>C}就不是最小函数依赖集

已知关系模式R(U,F),其中U={A,B,C},F是这样的关系集合{A—>BC,B—>C,AB—>C,A—>B}
求该模式的最小函数依赖集。

答案:F={B—>C,A—>B},A—>BC不满足一个函数依赖中右部分只能含有一个属性,B—>C,AB—>C存在部分依赖,

也可看做多余依赖,因为B—>C,AB—>C是绝对成立的,有跟没有无差别

--------------------- 本文来自 legendaryhaha 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/legendaryhaha/article/details/80642812?utm_source=copy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值