阿姆斯特朗法则(Armstrong's Axioms) 是数据库理论中用于推导函数依赖(Functional Dependencies, FD)的一组基本公理,由计算机科学家威廉·阿姆斯特朗(William W. Armstrong)在1974年提出。它构成了关系数据库设计中的规范化理论(如BCNF、3NF)的基础。
阿姆斯特朗公理的三大基本规则
自反律(Reflexivity)
- 如果属性集 ( Y ) 是属性集 ( X ) 的子集(即 ( Y \subseteq X )),则 ( X \to Y ) 成立。
- 例子:若 ( X = {A, B} ),则 ( {A, B} \to {A} ) 必然成立。
增广律(Augmentation)
- 若 ( X \to Y ) 成立,则对任意属性集 ( Z ),有 ( XZ \to YZ ) 成立(( XZ ) 表示 ( X \cup Z ))。
- 例子:若 ( {A} \to {B} ),则 ( {A, C} \to {B, C} ) 也成立。
传递律(Transitivity)
- 若 ( X \to Y ) 且 ( Y \to Z ) 成立,则 ( X \to Z ) 成立。
- 例子:若 ( {A} \to {B} ) 且 ( {B} \to {C} ),则 ( {A} \to {C} )。
扩展的派生规则
从上述三条公理可以推导出以下常用规则:
- 合并律(Union):
若 ( X \to Y ) 且 ( X \to Z ),则 ( X \to YZ )。 - 分解律(Decomposition):
若 ( X \to YZ ),则 ( X \to Y ) 且 ( X \to Z )。 - 伪传递律(Pseudotransitivity):
若 ( X \to Y ) 且 ( WY \to Z ),则 ( WX \to Z )。
应用场景
阿姆斯特朗法则主要用于:
- 验证函数依赖的有效性:判断给定的函数依赖是否可以从已知依赖集中推导出来。
- 计算函数依赖的闭包(( F^+ )):即所有能从给定依赖集 ( F ) 中推导出的函数依赖集合。
- 数据库规范化:帮助设计无冗余的数据库模式(如达到BCNF或3NF)。
示例
给定属性集 ( {A, B, C} ) 和函数依赖集 ( F = {A \to B, B \to C} ),利用传递律可推导出 ( A \to C )。其闭包 ( F^+ ) 包括:
- ( A \to A ), ( B \to B ), ( C \to C )(自反律),
- ( A \to B ), ( B \to C ), ( A \to C )(传递律),
- ( A \to AB ), ( AB \to AC ), 等(增广律)。
重要性
阿姆斯特朗公理是数据库理论中的核心工具,确保了函数依赖推理的完备性和正确性,为数据库设计提供了严格的数学基础。


雷达卡




京公网安备 11010802022788号







