什么是功能依赖的最小集或FD的范式覆盖?
一组功能依赖 (FD) E 的最小覆盖是一个与 E 等价的最小依赖集 F。
其正式定义如下:如果一组 FD F 满足以下条件,则称其为最小集:
F 中的每个依赖项在其右侧只有一个属性。
我们不能用依赖项 Y->A 替换 F 中的任何依赖项 X->A,其中 Y 是 X 的真子集,并且仍然有一组与 F 等价的依赖项。
我们不能从 F 中删除任何依赖项,并且仍然有一组与 F 等价的依赖项。
范式覆盖称为最小覆盖,也称为 FD 的最小集。如果 FC 中的每个 FD 都是:
- 简单 FD。
- 左简化 FD。
- 非冗余 FD。
**简单 FD** - X->Y 是一个简单 FD,如果 Y 是单个属性。
**非冗余 FD** - X->Y 是一个非冗余 FD,如果它不能从 F-{X->y} 中推导出来。
**左简化 FD** - X->Y 是一个左简化 FD,如果 X 中没有多余的属性。{多余属性:如果 XA->Y,则如果 X->Y,则 A 是多余属性}
示例
考虑一个查找 F 的范式覆盖的示例。
给定的功能依赖如下:
A -> BC
B -> C
A -> B
AB -> C
最小覆盖:最小覆盖是与给定 FD 等价的 FD 集。
范式覆盖:在范式覆盖中,LHS(左侧)必须是唯一的。
首先,我们将找到最小覆盖,然后找到范式覆盖。
**第一步** - 将 RHS 属性转换为单一属性。
A -> B
A -> B
B -> C
A -> B
AB -> C
A -> C
**第二步** - 删除额外的 LHS 属性
找到 A 的闭包。
A+ = {A, B, C}
A -> B
A -> B
B -> C
A -> B
A -> B
因此,AB -> C 可以转换为 A -> C
A -> B
B -> C
**第三步** - 删除冗余 FD。
现在,我们将以上 FD 集转换为范式覆盖。
A -> BC
B -> C
广告