数据库求F的最小覆盖/最小函数依赖
最小函数依赖集定义:
如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。
① F中的任何一个函数依赖的右部仅含有一个属性;
② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;
③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。
求解过程:
1.右边属性单一化:将F中的所有依赖右边化为单一元素
2.消除左边的冗余:对每一个X->A,对X中的每一个属性B,计算去除B之后的X在G中的闭包,如果闭包包含A,那么就用去除B之后的X替换之前的X
3.检验:对每一个X->A,暂时将其去除得到N,在N中求X的闭包,如果闭包包含A,那么就从G中移除X->A
实例: