数据库求最小函数依赖集(最小覆盖)数据库求最小函数依赖集(最小覆盖)
这个英文流程反而清晰,主要过程如下
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被移除。剩余的为什么没去除?自己按这个流程操作就知道了

什么?闭包怎么求?

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

相关文章: