【学习数据库】Armstrong公理系统

文章目录

数据库专家Armstrong等提出一组定义和推理规则,并形成了一个有效而完备的理论体系,即Armstrong公理系统。

Armstrong公理

通俗的写:【X】【Y】【Z】都代表关系模式的子集

  • 自反率:若Y是X的一部分(子集),则X→Y
  • 增广率:如果X→Y,则XZ→YZ(X∪Z→Y∪Z)
  • 传递率:如果X→Y,Y→Z,则X→Z

由自反率所得到的函数依赖是平凡的函数依赖

为了便于理解,不采用许多表达式证明,我也十分讨厌一堆公式,所以我这里举例说明
这是一张完整的学生信息表

院系 专业 班级 姓名 性别
计算机工程系 软件工程 1820561 王二
计算机工程系 网络工程 1820552 温四
计算机工程系 软件工程 1820562 梁一

这是专业班级的表

专业 班级
软件工程 1820561
软件工程 1820562
网络工程 1820551
网络工程 1820552

这是系部专业的表

院系 专业
计算机工程系 软件工程
计算机工程系 网络工程
计算机工程系 数字媒体与技术
  1. 我们在上面的学生信息表找一行,比如第一行。
院系 专业 班级 姓名 性别
计算机工程系 软件工程 1820561 王二

问:求该学生的专业和院系?
软件工程可以由计算机工程系和软件工程这一整体一起推出,这是毋庸置疑的。因为软件工程是计算机工程系和软件工程这一整体的子集。
这就是自反率的意思。

  1. 我们在上面的学生信息表找一行,比如第二行。假如我们事先不知道该学生的专业。
院系 专业 班级 姓名 性别
计算机工程系 网络工程 1820552 温四

问:求该学生的姓名和专业?
我们可以通过专业班级表由1820552推导出他的专业是网络工程,我们可以由温四推出温四。所以我们用温四和1820552这一整体可以推导他的专业和姓名这一整体。结果是网络工程和温四。这就是增广率的意思。

  1. 我们在上面的学生信息表找一行,比如第三行。假如我们事先不知道该学生的专业,院系。
院系 专业 班级 姓名 性别
计算机工程系 软件工程 1820562 梁一

问:求该学生的院系?
我们可以通过专业班级表由1820562推导出他的专业是软件工程。然后我们可以通过系部专业表推导出他的院系是计算机工程系。
所以即使不知道专业,也可以由1820562推导出他的院系是计算机工程系。这就是传递率。

推理

  • 合并规则:若X→Y,X→Z,则X→YZ
  • 伪传递规则:若X→Y,WY→Z,则XW→Z
  • 分解性规则:若X→Y,Z是Y的一部分(子集),则X→Z

猜你喜欢

转载自blog.csdn.net/weixin_44611096/article/details/105792748