📜  DBMS 中函数依赖的阿姆斯壮公理

📅  最后修改于: 2021-09-08 16:29:15             🧑  作者: Mango

先决条件 –功能依赖

术语阿姆斯壮公理是指由威廉·W·阿姆斯特朗引入的一套健全且完整的推理规则或公理,用于测试函数依赖的逻辑含义。如果 F 是一组函数依赖,则 F 的闭包,表示为F^+    , 是 F 逻辑隐含的所有函数依赖的集合。阿姆斯壮公理是一组规则,当重复应用时,会生成函数依赖的闭包。

公理——

  1. 反身性公理——
    如果{\displaystyle A}    是一组属性和{\displaystyle B}    是的子集{\displaystyle A}    , 然后{\displaystyle A}    持有{\displaystyle B}    .如果{\displaystyle B\subseteq A}    然后{\displaystyle A\to B}    此属性是琐碎的属性。
  2. 增广公理——
    如果{\displaystyle A\to B}    持有和{\displaystyle Y}    是属性集,那么{\displaystyle AY\to BY}    也持有。即在依赖项中添加属性,不改变基本依赖项。如果{\displaystyle A\to B}    , 然后{\displaystyle AC\to BC}    对于任何{\displaystyle C}    .
  3. 传递性公理 –
    与代数中的传递规则相同,如果{\displaystyle A\to B}    持有和{\displaystyle B\to C}    成立,那么{\displaystyle A\to C}    也持有。 {\displaystyle A\to B}    被称为{\displaystyle A}    功能上决定{\displaystyle B}    .如果{\displaystyle X\to Y}    {\displaystyle Y\to Z}    , 然后{\displaystyle X\to Z}

次要规则——

这些规则可以从上述公理推导出来。

  1. 联盟——
    如果{\displaystyle A\to B}    持有和{\displaystyle A\to C}    成立,那么{\displaystyle A\to BC}    持有。如果{\displaystyle X\to Y}    {\displaystyle X\to Z}    然后{\displaystyle X\to YZ}
  2. 作品 –
    如果{\displaystyle A\to B}    {\displaystyle X\to Y}    成立,那么{\displaystyle AX\to BY}    持有。
  3. 分解——
    如果{\displaystyle A\to BC}    那么成立{\displaystyle A\to B}    {\displaystyle A\to C}    抓住。如果{\displaystyle X\to YZ}    然后{\displaystyle X\to Y}    {\displaystyle X\to Z}
  4. 伪传递性——
    如果{\displaystyle A\to B}    持有和{\displaystyle BC\to D}    成立,那么{\displaystyle AC\to D}    持有。如果{\displaystyle X\to Y}    {\displaystyle YZ\to W}    然后{\displaystyle XZ\to W}    .

为什么阿姆斯壮公理指的是 Sound 和 Complete ?
通过声音,我们的意思是给定在关系模式 R 上指定的一组函数依赖 F,我们可以通过使用阿姆斯壮公理的主要规则从 F 推断出的任何依赖在满足 F 中的依赖的 R 的每个关系状态 r 中成立.
完全,我们的意思是重复使用阿姆斯壮公理的主要规则来推断依赖关系,直到不能再推断出更多的依赖关系,从而得出可以从 F 推断出的所有可能依赖关系的完整集合。

参考 –

  • 书——数据库系统基础
  • http://tinman.cs.gsu.edu