文章目录
(四) 【关系数据库规范理论】
1.【关系规范化的作用】
1.1【非规范关系模式可能带来的问题】
- 数据大量冗余
- 更新异常
- 插入异常
- 删除异常
1.2【关系规范化如何解决这些问题】
- 通过分解关系模式来消除其中不合适的数据依赖。
1.3【规范化理论在数据库设计中的作用】
2.【函数依赖】
2.1【属性之间的联系类型】
- 一对一
- 一对多
- 多对多
2.2【候选码、主码、主属性、非主属性、单码、全码等概念】
- 候选码:关系模式中,若K部份依赖于U,那么K为候选码
- 主码:关系模式中,若有多个候选码,则选定其一为候选码
- 外部码:在关系模式中,不是本关系的和候选码,但却是另一个关系的码
- 主属性:包含在候选码中的属性
- 非主属性:不包含在任何候选码中的属性
- 单码:单个属性是码
- 全码:所有属性构成的码
2.3【函数依赖和码的唯一性】
-
码的唯一性:码是由一个或多个属性组成的可唯一标识元组的最小属性组。码在关系中总是唯一的,即码函数决定关系中的其他属性。因此,一个关系中,码值总是唯一的。否则,违反实体完整性规则
-
函数依赖的唯一性:一个函数依赖的决定因素可能是唯一的,也可能不是唯一的。如果我们知道A决定B,且A和B在同一关系中,但我们仍无法知道A是否能决定除B以外的其他所有属性,所以无法知道A在关系中是否是唯一的
3.【关系模式的规范化】
- 当一个关系中的所有分量都是不可分的数据项时,该关系是规范化的
- 1NF-2NF-3NF-BCNF-4NF-5NF
3.1【第一范式、第二范式、第三范式、BCNF的定义】
3.1.1【1NF】
- 如果关系模式R中不包含多值属性,则R满足第一范式
3.1.2【2NF】(所有非主属性没有部份依赖)
- 如果一个关系R属于1NF,且它的所有非主属性都完全函数依赖于R的任一候选码
- 推论:如果关系模式R-1NF,且它的每一个候选码都是单码
3.1.3【3NF】(所有非主属性没有部份依赖没有传递依赖)
- 如果关系模式R属于2NF,且它的每一个非主属性都不传递依赖于任何候选码
- 推论:如果关系模式R属于1NF,且它的每一个非主属性既不部分依赖,也不传递依赖于任何候选码
3.1.4【BCNF】(所有属性没有部份依赖没有传递依赖)
- 设关系模式R(U,F)属于1NF,若F的任一函数依赖X->Y(Y不是X的子集)中X都包含了R的一个码(也就是说X必须是超键)
- 推论:
R中所有非主属性对每一个码都是完全函数依赖
R中所有主属性对每一个不包含它的码,都是完全函数依赖
R中没有任何属性完全函数依赖于非码的任何一组属性
已实现了彻底的分离,消除了数据冗余、插入和删除异常