
软考考点之Armstrong 公理
发布日期:2021-05-10 14:09:19
浏览次数:16
分类:精选文章
本文共 1106 字,大约阅读时间需要 3 分钟。
Armstrong公理系统及其应用
引言
Armstrong公理系统是描述属性集和函数依赖关系的形式化框架,广泛应用于数据库理论和知识工程领域。该系统通过一系列推理规则(自反律、传递律等),定义了数据库关系的合并、分解和伪传递性质。本文将详细介绍Armstrong公理系统的推理规则,并展示其闭包计算方法。
Armstrong公理系统的推理规则
Armstrong公理系统定义了一系列推理规则,用于确定函数依赖关系的蕴涵性。这些规则包括:
自反律:若Y是X的子集且Y是U(全集合)的子集,则X→Y必然成立。
证明:对于任何关系r<U,F>,若t[X]=s[X],且Y⊆X⊆U,则t[Y]=s[Y],因此X→Y成立。增广律:若X→Y属于F,并且Z是U的子集,则XZ→YZ也属于F。
证明:t[XZ]=s[XZ]说明t[X]=s[X]和t[Z]=s[Z],进而t[Y]=s[Y]和t[YZ]=s[YZ],因此XZ→YZ成立。传递律:若X→Y和Y→Z都属于F,则X→Z也属于F。
证明:t[X]=s[X]和t[Y]=s[Y]可得t[Z]=s[Z],因此X→Z成立。推论规则
通过上述三条基例,可得出以下推论规则:
-
合并规则:若X→Y和X→Z,则X→YZ亦成立。
证明:由增广律可得X→XY和X→Z,再组合X→XY和X→Z(传递律)可得X→YZ。 -
伪传递规则:若X→Y和WY→Z,则XW→Z也成立。
证明:由增广律可得W→WY和Y→Z,再组合得W→Z。结合X→Y和WY→Z,传递律可得XW→Z。 -
分解规则:若X→Y且Z包含于Y,则X→Z也成立。
证明:因Z⊆Y,自反律可得Y→Z,再利用传递律得X→Z。
属性集的闭包及其计算
定义1
函数依赖集合F的闭包F+,是所有F蕴含的关系模式的全体,记为F+。即F+[1]X→Y的集合。
定义2
一个属性集X关于F的闭包X+F定义为所有满足X→A的属性集A,即X+F = {A ∈ U | X→A ∈ F+}。
定理1
对于任意关系模式R(U, F)和真子集X≠Y,若F推导X→Y,则且仅则Y是X+F的真子集。
属性闭包的计算方法
计算X+F通常采用西蒙斯算法,通过反复应用Armstrong规则生成所有可能的函数依赖,得到最小闭包。
- Step 1:收集所有从F出发的可推导函数依赖。
- Step 2:由这些依赖生成更多的依赖,直到闭集不再扩变。
通过这种方式,可以得到X+F的最小闭包。
总结
Armstrong公理系统为函数依赖关系提供了一个形式化的推理框架,其推理规则和闭包计算方法极大地简化了数据库设计和验证过程。理解这些规则对于数据库关系的形式化描述和应用至关重要。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月17日 02时28分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
能解决数据可视化大屏需求的3款可视化工具
2019-03-13
多代理区块链框架客户端的操作
2019-03-13
一些技术博客
2019-03-13
第01问:MySQL 一次 insert 刷几次盘?
2019-03-13
优先级队列2
2019-03-13
TiKV 源码解析系列文章(十三)MVCC 数据读取
2019-03-13
Android 开发常用的工具类(更新ing)
2019-03-13
初次安装webpack之后,提示安装webpack-cli
2019-03-13
Hbase压力测试
2019-03-14
C#中的类、方法和属性
2019-03-14
Python爬虫训练:爬取酷燃网视频数据
2019-03-14
Python数据分析入门(十九):绘制散点图
2019-03-14
Callable中call方法和Runnable中run方法的区别
2019-03-14
Linux yum提示Loaded plugins错误的解决方法
2019-03-14
xshell解决文本粘贴格式错误
2019-03-14
JAVA BigInteger和BigDecimal类常用方式
2019-03-14
机器学习全教程
2019-03-14
idea在连接mysql数据库时区错误
2019-03-14