第9章:数据库技术
函数依赖
Armstrong公理的定义是从已知的一些函数依赖,可以推导出另外一些函数依赖,这就需要一系列推理规则,这些规则常被称作 “Armstrong 公理”。设关系式R(U,F),U是关系模式R的属性集,F是U上一组函数依赖,则有以下三条推理规则:
Armstrong公理包括三条基本推理规则,即自反律、增广律和传递律。
Armstrong公理是关系数据库理论中关于函数依赖的基本原理,其中包括三条基本推理规则:
-
自反律(Reflexivity):如果对于任意属性集合X,Y,Z,如果Y包含于X,则X决定Y(X→Y)。也就是说,如果在一个关系中,X的值决定了Y的值,则X→Y成立。
-
增广律(Augmentation):如果X→Y成立,并且Z是属性集合U的任意属性,则XZ→YZ也成立。这条规则表示,如果X决定Y,在给定条件下增加Z,仍然可以推出
XZ
决定YZ
。 -
传递律(Transitivity):如果X→Y和Y→Z成立,则X→Z也成立。这条规则表示,如果X决定了Y,Y又决定了Z,那么可以推导出X决定Z。
这三条基本推理规则构成了Armstrong公理的基础,通过这些规则我们可以推导出在关系数据库中关于函数依赖的相关性质,帮助进行数据库设计和优化。
根据前面提到的Armstrong公理中的基本推理规则(自反律、增广律和传递律),可以推导出一些其他推理规则,其中包括合并规则、伪传递规则和分解规则。这些推理规则有助于更深入地理解函数依赖和关系模式中的属性之间的关系,从而优化数据库设计和规范化。
-
合并规则:如果X→Y,X→Z都成立,则可以推出X→YZ。这条规则暗示了如果X决定了Y,同时也决定了Z,那么X也决定了YZ。
-
伪传递规则:如果X→Y和WY→Z都成立,则可以推出XW→Z。这条规则说明了如果X决定了Y,且WY决定了Z,那么XW也决定了Z。
-
分解规则:如果X→Y,ZSY都成立,则可以推出X→Z。这条规则表明如果X决定了Y,且ZSY中Z也和Y有关系,那么X也决定了Z。
范式
第一范式
第一范式是最基本的范式,符合数据表的原子性。
简单的说,第一范式就是每一个属性都不可再分。 表中的同一列的类型相同 一个列名只能对应到一列 并且每一列都不可分 行的上下关系互不影响
第二范式
2NF
在1NF
的基础之上,消除了非主属性对于主属性的部分函数依赖。简单的说,是表中的非主属性必须完全依赖于主属性。
学生基本信息表(学号,身份证号,姓名)中,当然学号属性取值是唯一的。 而(学号,身份证号)>(姓名),(学号)->(姓名),(身份证号)->(姓名) 所以姓名部分函数依赖于(学号,身份证号);
判断一个关系是否属于第二范式: 1.找出数据表中的所有候选键; 2.找出所有主属性和非主属性; 3.判断所有的非主属性对候选键的部分函数依赖。
第三范式
第三范式(3NF
)就是指表中的所有数据元素不但要能唯一地被主关键字所标识, 而且它们之间还必须相互独立,不存在其他的函数关系。 也就是说,在2NF
的基础上消除传递函数依赖。 所谓传递函数依赖,指的是如果存在"A→B→C"的决定关系,则C传递函数依赖于A。
符合第三范式的数据表,消除了数据冗余、更新异常、插入异常和删除异常。
BCNF
消除主属性对主键的部分与传递依赖
第四范式
第四范式是消除表中的多值依赖。 以解决信息冗余,达到“一事一地”也就是一对一的关系。
小结
1NF
:保证原子性 2NF
:去除非主属性对于主属性的部分依赖 3NF
:去除非主属性对于主属性的传递依赖 BCNF
:消除主属性对主键的部分与传递依赖 4NF
:消除表中的多值依赖。
关系模式
多对多联系(m:n
)转换为一个独立的关系模式R时,R的关键字为各实体关键字的集合。