热门问题
时间线
聊天
视角
阿姆斯特朗公理
来自维基百科,自由的百科全书
Remove ads
阿姆斯特朗公理系统(英语:Armstrong's axioms)是一组用于推导关系数据库中所有函数依赖的规则。这一系统由威廉·W·阿姆斯特朗在1974年的论文中首次提出。[1] 当应用于函数依赖集(用 表示)时,这些规则在生成该集闭包(用 表示)中的函数依赖方面既可靠又完备。换言之,反复应用这些规则,我们能够推导出闭包 中的所有函数依赖,且不会产生不属于该闭包的依赖关系。
此条目需要补充更多来源。 (2024年10月17日) |
让我们用更严谨的方式来描述这个概念。假设 代表一个关系模式,其中 是属性集, 是函数依赖集。如果所有满足 中函数依赖的, 的实例 ,也都同时满足函数依赖 ,那么我们就说 被 逻辑蕴含,记作 。我们用 来表示所有被 逻辑蕴含的函数依赖的集合。
再来看推理规则集 的作用。如果我们能够通过反复运用 中的规则,从 中推导出函数依赖 ,我们就说 可由 通过 所推导,记作 。我们用 表示所有可以通过 从 推导出的函数依赖的集合。
那么,当且仅当以下条件成立时,推理规则集 是可靠的:
也就是说,使用 推导出的函数依赖不能超出由 逻辑蕴含的函数依赖范围。 推理规则集 的完备性当且仅当以下条件成立:
更简单地说,推理规则集 能够推导出所有由 逻辑蕴含的函数依赖。
Remove ads
公理(基本规则)
设是定义在属性集上的关系模式。在接下来的讨论中,我们将用、、表示的任意子集。为了简洁,我们用代替常规的来表示两个属性集和的并集。这种记法在处理数据库理论中的属性集合时是相当常见的。
Remove ads
如果是一个属性集,是的一个子集,那么函数决定(也就是函数依赖),记作。
- 若则.
Remove ads
如果决定,那么在和中同时添加任意属性集后,这种决定关系仍然成立。这表明,增加新的属性不会改变已有的函数依赖关系。
- 若,则对任意属性集,都有.
函数依赖关系具有传递性。也就是说,如果决定,且决定,那么必然也决定。
- 若且,则.
Remove ads
公理的推论
这些推论可以从上述公理中推导出来。
若,则且。
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的传递性) |
Remove ads
若且,则。
1. | (已知) |
2. | (已知) |
3. | (1和Z的增广性) |
4. | (3和2的传递性) |
对于任意,。这直接由自反性公理得到。
当时,该属性是增广性的一个特殊情况。
- 若,则。
在这种意义上,扩展性可以替代增广性作为公理,因为通过扩展性和其他公理可以证明增广性。
1. | (自反性) |
2. | (已知) |
3. | (1和2的传递性) |
4. | (3的扩展性) |
5. | (自反性) |
6. | (4和5的传递性) |
参考文献
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads