FD 的最小函数依赖集或规范覆盖集是什么?
一组函数依赖项(FD)E的最小覆盖是等价于E的最小依赖项集F。
正式定义是:如果满足以下条件,则一组FFF是最小的-
F中的每个依赖项在其右侧都有一个属性。
我们不能用依赖Y->A替换F中的任何依赖X->A,其中Y是X的真子集,并且仍然有一组等价于F的依赖。
我们不能从F中删除任何依赖,并且仍然有一组与F等价的依赖。
规范覆盖称为最小覆盖,称为最小FD集。如果FC中的每个FD是一个,则一组FDFC称为F的规范覆盖-
简单的FD。
左减少FD。
非冗余FD。
简单FD-X->Y是一个简单的FD,如果Y是单个属性。
左简化FD−X->Y是左简化FD,如果X中没有无关属性。{无关属性:让XA->Y那么,如果X_>Y,A是一个无关属性}
Non-redundantFD−X->Y是一个Non-redundantFD,如果它不能从F-{X->y}导出。
示例
考虑一个寻找F的规范覆盖的例子。
给定的函数依赖如下-
A->BC
乙->丙
A->B
AB->C
最小覆盖:最小覆盖是等价于给定FD的一组FD。
规范封面:在规范封面中,LHS(左侧)必须是唯一的。
首先,我们将找到最小覆盖,然后是规范覆盖。
第一步-将RHS属性转换为单例属性。
A->B
A->C
乙->丙
A->B
AB->C
第二步-删除额外的LHS属性
找到A的闭包。
A+={A,B,C}
所以,AB->C可以转化为A->C
A->B
A->C
乙->丙
A->B
A->C
第三步-删除冗余FD。
A->B
乙->丙
现在,我们将上述FD集转换为规范覆盖。
上述FD集的规范覆盖如下-
A->BC
乙->丙