如何从一组功能依赖项中删除冗余属性



如何通过删除冗余属性来创建 FD 的最小覆盖?

例如,给定此 FD:

A1 ⟶ A3A1A2 ⟶ A3A3 ⟶ A4A6A3A4 ⟶ A6A3A5 ⟶ A1A2A5A6 ⟶ A3

最小覆盖是

A1 ⟶ A3A3 ⟶ A4A3 ⟶ A6A3A5 ⟶ A1A3A5 ⟶ A2A5A6 ⟶ A3

如果有人能向我解释这些步骤,我会很高兴:)

我将解释这些步骤并将输出添加到每个步骤。

  1. A1 ⟶ A3 已经很小了。所以就这样吧。
    A1 ⟶ A3
  2. A1A2 ⟶ A3 表示给定 A1 和 A2,您可以识别 A3。正如您从上一步中知道的那样,给定 A1 您已经可以识别 A3,那么这实际上并没有添加任何额外的信息。请注意,得出 A2 ⟶ A3 的结论在逻辑上是不正确的。因此,我们可以删除整个FD,因为它是多余的。
    A1 ⟶ A3
  3. A3 ⟶ A4A6 表示 A3 ⟶ A4 和 A3 ⟶ A6。因此,我们删除此 FD 并将其拆分为 2。
    A1 ⟶ A3A3 ⟶ A4A3 ⟶ A6
  4. A3A4 ⟶ A6 与步骤 2 类似。由于 A3 ⟶ A6 然后 A3A4 ⟶ A6 不会添加任何其他信息,使其变得多余。
    A1 ⟶ A3A3 ⟶ A4A3 ⟶ A6
  5. A3A5 ⟶ A1A2 与步骤 3 类似。我们可以将它们分成 2 个不同的 FD A3A5 ⟶ A1 和 A3A5 ⟶ A2。这是最小的,因为没有其他FD,如A3 ⟶ A1。
    A1 ⟶ A3A3 ⟶ A4A3 ⟶ A6A3A5 ⟶ A1A3A5 ⟶ A2
  6. A5A6 ⟶ A3 已经很小了。
    A1 ⟶ A3A3 ⟶ A4A3 ⟶ A6A3A5 ⟶ A1A3A5 ⟶ A2A5A6 ⟶ A3

最新更新