数据库求最小函数依赖集(最小覆盖)

在这里插入图片描述在这里插入图片描述
这个英文流程反而清晰,主要过程如下
1.设置G=F;

2.右边属性单一化(这个很容易理解,网上的教学第一步都是这个),即对属性集中每一个X->(A1…An),将其拆为 X->A1,X->A2…,X->An

3.对每一个X->A,对X中的每一个属性B,计算去除B之后的X在G中的闭包,如果闭包包含A,那么就用去除B之后的X替换之前的X,注意此步实际上是两个for循环,而且此步仅需针对属性个数大于1的X就行了

4.对每一个X->A,暂时将其去除得到N,在N中求X的闭包,如果闭包包含A,那么就从G中移除X->A

还不懂??来到题你就懂了
在这里插入图片描述
在这里插入图片描述
主要看步骤3,4。 3有解释,我来说一下4:E->D被移除了,来看看为什么被移除。
首先去除E->D得到N={A->C,A->D,E->A,E->H},在N中求E的闭包为E,A,D,是包含D的,所以E->D被移除。剩余的为什么没去除?自己按这个流程操作就知道了

什么?闭包怎么求?

说通俗一点:闭包就是由一个属性直接或间接推导出的所有属性的集合。

  • 41
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值