一、Armstrong 公理 基本定律
Armstrong 公理 基本定律 : 关系模式 R ( U , F ) , 有如下 基本规则 ;
- 自反律 : 如果 Y ⊆ X ⊆ U , 则有 X -> Y 成立 ;
- 增广律 : 如果 Z ⊆ U 并且 X -> Y , 则有 XZ -> YZ 成立 ;
- 传递律 : 如果 X -> Y 并且 Y -> Z , 则有 X -> Z 成立 ;
1、自反律
自反律 : 如果 Y ⊆ X ⊆ U , 则有 X -> Y 成立 ;
U 是 关系模式 R ( U , F ) 的 属性集合 , Y 属性集合 和 X 属性集合 都是 关系 R 属性集合 U 的子集 , Y 集合 是 X 集合的子集 , 根据 X 可以推导出 Y , 则有 X 集合中的属性 函数决定 Y 集合中的属性 ;
给定下面的 三个属性集合 ;
- U = { A , B , C } , 这是 关系模式 R ( U , F ) 的 所有属性 的 集合 ;
- X = { A , B }
- Y = { A }
有 Y ⊆ X ⊆ U 的 集合 关系 ;
X = { A , B } 集合 中的 属性 , 是可以 决定 属性 A 和 属性 B 本身的 , 因此 X = { A , B } 集合 中的属性 可以 函数决定 { A } 、 { B } 、 { A , B } 这三个集合中的属性 ;
使用真实的属性说明 : { 学号 , 姓名 } 可以唯一确定 { 学号 } 、 { 姓名 } 、 { 学号 , 姓名 } 属性集合中的属性 ;
2、增广律
增广律 : 如果 Z ⊆ U 并且 X -> Y , 则有 XZ -> YZ 成立 ;
U 是 关系模式 R ( U , F ) 的 属性集合 ,
① 属性集合 X 和 属性集合 Y 是 U 的子集 , 并且有 X 属性集合 函数决定 Y 属性集合 , 有 X -> Y ;
② 属性集合 Z 是 U 的子集 ;
满足 上述 ① ② 两个条件 , 则有 : XZ -> YZ ;
- XZ 是 属性集合 X 和 属性集合 Z 的并集 ;
- YZ 是 属性集合 Y 和 属性集合 Z 的并集 ;
X 属性集合 本来就可以 函数决定 Y 属性集合 , X -> Y , 在 左右两侧 分别增加 Z 属性集合 , XZ -> YZ 依然成立 ;
3、传递律
传递律 : 如果 X -> Y 并且 Y -> Z , 则有 X -> Z 成立 ;
U 是 关系模式 R ( U , F ) 的 属性集合 ,
① 属性集合 X 、 属性集合 Y 、 属性集合 Z 都是 U 的子集
② X 属性集合 函数决定 Y 属性集合 , 有 X -> Y ;
③ Y 属性集合 函数决定 Z 属性集合 , 有 Y -> Z ;
满足 上述 ① ② ③ 两个条件 , 则有 : X -> Z ;
- X 属性集合 函数决定 Z 属性集合 ;
二、Armstrong 公理 推论
Armstrong 公理 推理规则 :
- 合并规则 : 如果有 X -> Y 并且有 X -> Z , 则有 X -> YZ ; ( 根据 增广律 和 传递率 推理得到 )
- 伪传递规则 : 如果有 X -> Y 并且有 WY -> Z , 则有 XW -> Z ; ( 根据 增广律 和 传递率 推理得到 )
- 分解规则 : 如果有 X -> Y 并且有 Z ⊆ Y , 则有 X -> Z ; ( 根据 自反律 和 传递率 推理得到 )
1、合并规则
合并规则 : 如果有 X -> Y 并且有 X -> Z , 则有 X -> YZ ; ( 根据 增广律 和 传递率 推理得到 )
X 、 Y 、 Z 属性集合 都是 关系模式 R ( U , F ) 的 属性集合 U 的子集 ;
① 根据 增广律 推导 :
- X -> Y , 根据 增广律 在左右两边都增加 X , 有 XX -> XY , XX 是重复的 直接记为 X -> XY ;
- X -> Z , 根据 增广律 在左右两边都增加 Y , 有 XY -> YZ ;
② 根据 传递律 推导 : 有 X -> XY 和 XY -> YZ , 可以得到 X -> YZ ;
最终得到 X -> YZ ;
2、伪传递规则
伪传递规则 : 如果有 X -> Y 并且有 WY -> Z , 则有 WX -> Z ; ( 根据 增广律 和 传递率 推理得到 )
X 、 Y 、 Z 、 W 属性集合 都是 关系模式 R ( U , F ) 的 属性集合 U 的子集 ;
① 增广律 : X -> Y , 根据 增广律 , 左右两边增加 W , 得到 WX -> WY ;
② 传递律 : 有 WX -> WY 和 WY -> Z , 根据 传递率 , 可以得到 WX -> Z ;
最终得到 WX -> Z ;
3、分解规则
分解规则 : 如果有 X -> Y 并且有 Z ⊆ Y , 则有 X -> Z ; ( 根据 自反律 和 传递率 推理得到 )
X 、 Y 、 Z 属性集合 都是 关系模式 R ( U , F ) 的 属性集合 U 的子集 ;
① 自反律 : Z ⊆ Y , 根据 自反律 , Y -> Z ;
② 传递律 : 有 X -> Y 和 Y -> Z , 根据 传递率 , 可以得到 X -> Z ;
最终得到 X -> Z ;
三、最小不可推导的依赖
Armstrong 公理系统 ( 自反律、增广律、传递律 ) 及其 推论 ( 合并、伪传递、分解规则 ) 构成 函数依赖 的 完备 推理框架 ;
在描述 关系模式 R ( U , F ) 时 , 函数依赖集合 F 仅需包含 " 最小不可推导的依赖 " , 即 无法通过公理系统推导的 " 核心依赖 " , 其他依赖可 通过 公理系统 的 6 个推理规则 自动生成 , 可以推导出来的 依赖 就是 冗余依赖 ;
不包含 冗余性依赖 原则 :
- 覆盖完备性 : Armstrong 公理可生成 函数依赖集合 F 的 闭包 F⁺ , 任何未直接列出的 函数依赖 如果可通过公理推导 , 则该 被推导出的 函数依赖 仍然属于 F⁺ 闭包 , 可推导的依赖 无需显式写入 F 集合 ;
- 最小依赖集 : 冗余的 函数依赖 , 会 增加 数据库系统 的 维护成本 ;
- 逻辑等价性 : 关系模式 关系模式 R ( U , F ) 增加一个 冗余依赖 , 与 原来的 关系模式 完全相同 , 增加冗余依赖 不会改变 闭包 F⁺ 的语义 ;