要直接使用定义证明 函数依赖(FD),而不是依赖 Armstrong 公理系统,您需要从函数依赖的基本含义出发,通过逻辑推导来展示一个 FD 是如何被另一组 FD 所蕴含的。

函数依赖 X → Y 的定义是:对于关系 R 的任何一个关系实例 r,如果 r 中任意两个元组 ts 在属性集 X 上的值都相等(即 t[X] = s[X]),那么它们在属性集 Y 上的值也必须相等(即 t[Y] = s[Y])。

以下是使用定义证明函数依赖的步骤和示例:

证明步骤:

  1. 明确已知条件: 列出所有已知的函数依赖(F)。假设您有一个关系 R,并且它的任何实例都必须满足 F 中的所有函数依赖。
  2. 明确目标: 确定您要证明的函数依赖 X → Y
  3. 选取任意两个元组: 考虑关系 R 的任意一个实例 r,并从 r 中选取任意两个元组 t1t2
  4. 设定前提条件: 假设这两个元组 t1t2X 上的值是相等的,即 t1[X] = t2[X]。这是证明 X → Y 所需要的前置条件。
  5. 运用已知 FD 推导: 使用已知条件中给定的函数依赖 F,结合 t1[X] = t2[X] 这个前提,一步一步地推导,直到能够得出 t1[Y] = t2[Y]。在每一步推导时,都必须明确指出是依据哪一个已知 FD 的定义来得出新的相等关系。
  6. 得出结论: 如果能够成功推导出 t1[Y] = t2[Y],那么根据函数依赖的定义,就证明了 X → YF 逻辑蕴含。

示例:证明传递律 (Transitivity) A → BB → C 蕴含 A → C

  • 已知条件:
    • A → B (根据定义:如果 t1[A] = t2[A],则 t1[B] = t2[B]
    • B → C (根据定义:如果 t1[B] = t2[B],则 t1[C] = t2[C]
  • 目标: 证明 A → C

证明:

  1. 考虑关系 R 的任意一个实例 r
  2. r 中选取任意两个元组 t1t2
  3. 设定前提条件: 假设 t1[A] = t2[A]
  4. 运用已知 A → B
    • 由于 A → B 成立,并且我们有 t1[A] = t2[A]
    • 根据 A → B 的定义,我们可以得出 t1[B] = t2[B]
  5. 运用已知 B → C
    • 现在我们有 t1[B] = t2[B]
    • 由于 B → C 成立,根据 B → C 的定义,我们可以得出 t1[C] = t2[C]
  6. 得出结论:
    • 我们从 t1[A] = t2[A] 出发,成功推导出了 t1[C] = t2[C]
    • 因此,根据函数依赖 A → C 的定义,我们证明了 A → C 成立。

通过这种方式,您无需引用 Armstrong 公理系统中的任何规则,而是直接基于函数依赖的定义,一步步地展示逻辑蕴含的过程。