什么是功能依赖的最小集或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

Bhanu Priya

更新于: 2021年7月3日

启动您的职业生涯

通过完成课程获得认证

开始
广告