第六章 关系数据理论
6.2 规范化
规范化理论:解决插入异常,删除异常,更新异常,数据冗余的问题
函数依赖
理解 :在我们的二维表中 我有两个属性组 X Y 属性组
属性组X上 如果有两行 X的属性值相同 Y一定相同
X 具有唯一性
定义:两者不可能存在两个元组在X上的属性值相等,而Y上的属性值不等
非平凡函数依赖:X 为学号课程号 Y 为成绩 X->Y 但是反之不行
平凡函数依赖: X 为学号 课程号 Y为学号 X->Y Y->X
完全函数依赖 : X函数决定了Y X中没有冗余的部分 X-F>Y
部分函数依赖 : X函数决定了Y X中有冗余的部分 X-P> Y
传递函数依赖:X->Y Y->Z
X-传递>Z
满足条件:X->Y Y 不能是X的子集
X->Y Y不能函数决定X 即二者不能等价
失败案例:X学号 Y身份证号 Z学院
成功案例:X学号 Y学院 Z院长姓名
6.2.2 码
候选码:K 为R<U,F>中的属性或者属性组合 若K-F>U 完全的决定!
K具有最小性,没有一个属性是冗余的。
主属性:包含在任何一个候选码中的属性
理解 :为其中的一个码的组成部分
非主属性:不包含在任何候选码中的属性
全码:整个属性组是码
外码:
理解:X的取值和另外一个关系模式的码相对应,那么称为此表的外码
(可能是同一个表)
tip:外码一定是相对于某个表而言!
6.2.3 范式
范式:符合某一种级别的关系模式的集合
BCNF 扩充的第三范式
定义:关系模式 R<U,F>中,若每一个决定因素都包含码,则R<U,F>符合BCNF
一个满足BCNF的关系模式条件:
1: 所有非主属性对每一个码都是完全函数依赖
2.所有主属性对每一个不包含它的码也是完全函数依赖
3.没有任何属性完全函数依赖于非码的任何一组属性