可以从属性集在功能上确定的所有那些属性的集合称为属性集的闭包,而属性集{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。现在,有了(BD),就可以通过B找到D(请参阅依赖项B–> D)。您可以看到,在迭代和检查之后,我们无法通过(BD)找到任何依赖项。因此,B的闭合为BD。