最常见的情况是指数据库理论中的 Armstrong 公理(通常被简称为 ARM 公理),它是推导函数依赖的核心规则。另一个较窄的定义是指 ARM 处理器架构中关于内存并发操作的原子公理。 [1, 2, 3]
以下为您详细介绍最常用的数据库 Armstrong 公理:
数据库中的 Armstrong 公理
它是关系数据库中用于推导函数依赖(Functional Dependency)的一套推理规则,由 W.W. Armstrong 在 1974 年提出。 [2]
1. 三大基本规则(核心)
这三条规则是完备的,可以推导出所有可能的依赖关系: [3]
- 自反律 (Reflexivity):如果属性集Y YY是X XX的子集(Y ⊆ X Y \subseteq XY⊆X),那么X → Y X \to YX→Y一定成立。
- 直白解释:就像照镜子,如果你知道一个人的(姓名、性别),你自然就知道他的(姓名)。
- 增广律 (Augmentation):如果X → Y X \to YX→Y成立,且Z ZZ是任意属性集,那么( X , Z ) → ( Y , Z ) (X, Z) \to (Y, Z)(X,Z)→(Y,Z)也成立。
- 直白解释:如果你凭学号能找到姓名,那么凭(学号、性别)也一定能找到(姓名、性别)。
- 传递律 (Transitivity):如果X → Y X \to YX→Y且Y → Z Y \to ZY→Z成立,那么X → Z X \to ZX→Z也成立。
- 直白解释:学号决定班级,班级决定班主任,那么学号就能决定班主任。
2. 三大推导规则(常用技巧)
基于基本规则,我们常使用以下更方便的结论:
- 合并律 (Union):由X → Y X \to YX→Y和X → Z X \to ZX→Z,可以得出X → ( Y , Z ) X \to (Y, Z)X→(Y,Z)。
- 分解律 (Decomposition):由X → ( Y , Z ) X \to (Y, Z)X→(Y,Z),可以得出X → Y X \to YX→Y和X → Z X \to ZX→Z。
- 伪传递律 (Pseudo-transitivity):由X → Y X \to YX→Y和( W , Y ) → Z (W, Y) \to Z(W,Y)→Z,可以得出( X , W ) → Z (X, W) \to Z(X,W)→Z。
计算机架构中的 ARM 原子公理
如果您是在研究 ARMv8 处理器架构,它指的是 多重拷贝原子性公理 (Multi-copy Atomic Axioms)。 [1]
- 核心逻辑:规定了在多核 CPU 运行环境下,一个核心对内存的写入操作何时能被其他核心观察到,这对于编写高性能的底层并发代码至关重要。
[1] https://www.reddit.com
[2] https://baike.baidu.com
[3] https://cloud.tencent.com