跳转到内容

阿姆斯特朗公理

维基百科,自由的百科全书

阿姆斯特朗公理系统(英語:Armstrong's axioms)是一组用于推导关系数据库中所有函数依赖规则。这一系统由威廉·W·阿姆斯特朗在1974年的论文中首次提出。[1] 当应用于函数依赖集(用 表示)时,这些规则在生成该集闭包(用 表示)中的函数依赖方面既可靠又完备。换言之,反复应用这些规则,我们能够推导出闭包 中的所有函数依赖,且不会产生不属于该闭包的依赖关系。

让我们用更严谨的方式来描述这个概念。假设 代表一个关系模式,其中 是属性集, 是函数依赖集。如果所有满足 中函数依赖的, 的实例 ,也都同时满足函数依赖 ,那么我们就说 逻辑蕴含,记作 。我们用 来表示所有被 逻辑蕴含的函数依赖的集合。

再来看推理规则集 的作用。如果我们能够通过反复运用 中的规则,从 中推导出函数依赖 ,我们就说 可由 通过 所推导,记作 。我们用 表示所有可以通过 推导出的函数依赖的集合。

那么,当且仅当以下条件成立时,推理规则集 是可靠的:

也就是说,使用 推导出的函数依赖不能超出由 逻辑蕴含的函数依赖范围。 推理规则集 的完备性当且仅当以下条件成立:

更简单地说,推理规则集 能够推导出所有由 逻辑蕴含的函数依赖。

公理(基本规则)

[编辑]

是定义在属性集上的关系模式。在接下来的讨论中,我们将用表示的任意子集。为了简洁,我们用代替常规的来表示两个属性集的并集。这种记法在处理資料庫理論中的属性集合时是相当常见的。

自反律

[编辑]

如果是一个属性集,的一个子集,那么函数决定(也就是函数依赖),记作

.

增广律

[编辑]

如果决定,那么在中同时添加任意属性集后,这种决定关系仍然成立。这表明,增加新的属性不会改变已有的函数依赖关系。

,则对任意属性集,都有.

传递律

[编辑]

函数依赖关系具有传递性。也就是说,如果决定,且决定,那么必然也决定

,则.

公理的推论

[编辑]

这些推论可以从上述公理中推导出来。

分解规则

[编辑]

,则

证明

[编辑]
1. (已知)
2. (自反性)
3. (1和2的传递性)

合成规则

[编辑]

,则

证明

[编辑]
1. (已知)
2. (已知)
3. (1和A的增广性)
4. (2和Y的增广性)
5. (3和4的传递性)

合并规则

[编辑]

如果,则

证明

[编辑]
1. (已知)
2. (已知)
3. (2和X的增广性)
4. (1和Z的增广性)
5. (3和4的传递性)

伪传递规则

[编辑]

,则

证明

[编辑]
1. (已知)
2. (已知)
3. (1和Z的增广性)
4. (3和2的传递性)

自确定性

[编辑]

对于任意。这直接由自反性公理得到。

扩展规则

[编辑]

时,该属性是增广性的一个特殊情况。

,则

在这种意义上,扩展性可以替代增广性作为公理,因为通过扩展性和其他公理可以证明增广性。

证明

[编辑]
1. (自反性)
2. (已知)
3. (1和2的传递性)
4. (3的扩展性)
5. (自反性)
6. (4和5的传递性)

参考文献

[编辑]
  1. ^ William Ward Armstrong: Dependency Structures of Data Base Relationships, page 580-583. IFIP Congress, 1974.

外部链接

[编辑]