解释 DBMS 中的属性闭包

dbmsdatabasebig data analytics更新于 2026/1/13 16:52:17

属性 x 的闭包是指所有对 X 函数依赖 F 的属性的集合。它用 X+ 表示,表示 X 可以确定的内容。

算法

让我们看看计算 X+ 的算法。

  • 步骤 1 − X+ =X
  • 步骤 2 − 重复,直到 X+ 不再变化
    • 对于 F 中的每个函数依赖 Y->Z
      • 如果 Y ⊆ X+ 则 X+ = X+ U Z

示例 1

考虑关系 R(A,B,C,D,E,F)

F: E->A, E->D, A->C, A->D, AE->F, AG->K.

求 E 或 E+ 的闭包

解答

E 或 E+ 的闭包如下 −

  E+ = E
    =EA       {对于 E->A 添加 A}
    =EAD       {对于 E->D 添加 D}
    =EADC     {对于 A->C 添加 C}
    =EADC     {对于 A->D 已添加 D}
    =EADCF     {对于 AE->F 添加 F}
    =EADCF     {对于 AG->K 不添加 k AG ⊄ D+)

示例 2

设关系 R(A,B,C,D,E,F)

F: B->C, BC->AD, D->E, CF->B。求 B 的闭包。

解

B 的闭包如下 −

B+ = {B,C,A,D,E

闭包用于查找 R 的候选键并计算 F+

R 的候选键:如果 X->{R,则 X 是 R 的候选键

例如,

R(A,B,C,D,E,F) 其中 F:A->BC,B->D,C->DE,BC->F。然后,找到 R 的候选键。

解决方案

A+= {A,B,C,D,E,F}={R}=>A 是候选键

B+= {B,D} => B 不是候选键

C+= {C,D,E} => C 不是候选键

BC+= {B,C,D,E,F} => BC 不是候选键

F 的闭包 (F+):F+ 是所有可以从 F 推断/推导出来的函数表达式 (FD) 的集合。对 F 反复运用阿姆斯特朗公理,我们可以计算出所有函数表达式 (FD)。

示例

R(A,B,C,D,E) AND F:A->B,B->C,C->D,A->E。求 F 的闭包

解

A+= {A,B,C,D,E}

B+= {B,C,D}

C+= {C,D}

F+= {A->A, A->B, A->C, A->D, A->E, B->B, B->C, B->D, C->C, C->D}


相关文章