📜  找到属性闭包的最简单方法

📅  最后修改于: 2021-09-28 10:10:22             🧑  作者: Mango

可以从属性集功能上确定的所有那些属性的集合称为属性集的闭包,而属性集{X}的闭包表示为{X}+。我们只能借助属性的闭包集才能找到候选键和主键。

那么让我们看看计算闭包属性集的最简单方法。在这种方法中,您必须进行多次迭代。

示例-1:
设 R(A, B, C) 是一个表,它具有三个属性 A、B、C。

他们还有两个功能规范:

A–>B
B–>C

所以,

(A)+ = {A, B, C} 

这是因为我们可以用 A 找到 B,而当我们得到 B 时,我们也可以找到 C。在这个过程中使用了传递性。

示例 2 :
让我们以表 R(A, B, C, D, E, F, G) 为例。功能依赖是:

A–>B
BC–>DE
AEG—>G

所以你必须找到 (AC)+ 的闭包。

所以看上面的依赖。您可以看到 (AC) 已经退出并且 A 已经存在,因此通过使用上述依赖项,您可以在 A 的帮助下找到 B,然后您设置了 (ABC) 现在您的设置中也有 BC,因此您可以找到DE 使用上述依赖项(参见依赖项 2)。现在你有 (ABCDE) 在你的但看到你的集合中没有 G 所以你不能使用 (AEG) 依赖找到 G 。

所以(AC)的闭包是(ABCDE)。这意味着如果你有 AC 你可以找到 (ABCDE)。

示例 3 :
让我们再看一张表 R(A, B, C, D, E)。功能依赖:

A–>BC
CD–>E
B—> D
E—>A

所以你必须找到 (B)+ 的闭包。

现在你的集合中已经有 B 了。通过 B,您可以找到 D(参见依赖项 B–>D),现在您拥有 (BD)。可以看到,经过迭代和检查,我们通过(BD)找不到任何依赖。所以 B 的闭包是 BD。