内容正文:
关系数据库规范化理论
第4章
目录
01
关系规范化
的引入
02
函数依赖
03
函数依赖的
公理系统
04
关系模式的
规范化
05
多值依赖
与4NF
06
关系模式分解
及规范化步骤
本章主要内容
通过第2、3章的学习,学生可以完成数据库关系模型的设计及实现。每种关系模型对应一种关系模式,关系模式的好坏直接决定数据的完整性、准确性、一致性和操作性。然而,是不是所有满足关系模型的关系模式设计都是“最好”的设计?不同的关系模式设计会出现什么样的问题?有没有什么理论标准来评价或者优化该关系模式,使其成为“更好”的关系模式设计?
本章重点内容是学习如何针对具体的应用项目,从概念模型设计出发,通过不断优化,实现一个“较好”的数据库关系模式设计。其内容包括关系模式设计存在的常见问题,关系模式中属性间依赖关系及函数依赖的公理系统理论,最小函数依赖集及其求解算法,范式及其转换步骤和多属性之间的依赖关系。
关系模式的规范化
第4章
04
4.4.1 第一范式
由于关系模式中各属性间存在多种依赖关系,导致关系模式存在多种问题,如数据冗余、数据插入、数据删除、数据修改异常等问题。
关系模式规范化的根本目的是消除关系模式中的数据冗余,消除不合适的数据依赖部分,解决数据更新异常现象。
在关系数据库中,关系模式规范化对不同程度的规范化要求设立不同的标准,称为范式。
4.4.1 第一范式
范式是满足某一种规范化程度的关系模式的集合。
1971—1972年,其概念最早是由科德在提出,之后他又先后提出了第一范式(First Normal Form,1NF)、第二范式(Second Normal Form,2NF)、第三范式(Third Normal Form,3NF)的概念。
1974年,科德和博伊斯又共同提出了Boyce-Codd范式,简称BC范式(Boyce-Codd Normal Form,BCNF)。
1976年,罗纳德·费金(Ronald Fagin)提出了第四范式(Fourth Normal Form,4NF)的概念。
随后又有人给出第五范式(Fifth Normal Form,5NF)的概念。
4.4.1 第一范式
根据规范化程度,各个范式之间的关系如图4.1所示:
5NF4NFBCNF3NF2NF1NF
4.4.1 第一范式
由于关系模式中各属性间存在多种依赖关系,导致关系模式存在多种问题,如数据冗余、数据插入、数据删除、数据修改异常等问题。
关系模式规范化的根本目的是消除关系模式中的数据冗余,消除不合适的数据依赖部分,解决数据更新异常现象。
在关系数据库中,关系模式规范化对不同程度的规范化要求设立不同的标准,称为范式。
4.4.1 第一范式
定义4.11 若关系模式R中每个属性值都是一个原子属性,不可再分,则称该关系模式为第一范式,记为R1NF。
满足第一范式的关系模式中的属性值都是原子属性,排除了属性值为元组、数组或某种复合数据的可能,这是对每个规范化关系的基本要求。
例如:教学关系模式TC中的属性集为{SNo,SN,Sex,DNo,DN,CScore};
组合属性
不属于1NF
4.4.1 第一范式
消除组合属性
属于1NF
存在大量的数据冗余
根据语义,表4.7函数依赖集F有{SNo→SN,SNo→Sex,SNo→DNo,DNo→DN,(SNo,CN)→Score},
根据码的定义可知,该关系模式中的码为{SNo,CN},是主属性。
根据函数依赖的分类,用函数依赖图表示函数依赖关系,如图4.2所示。
4.4.1 第一范式
由图4.2可知,表4.7的教学管理关系模式中,既存在完全函数依赖,又存在部分函数依赖和传递函数依赖,这种情况在数据库中一般是要避免的,也正是因为这种复杂关系的存在,导致关系数据中出现各类问题。要解决问题,可以通过关系模式分解的方式,去掉不合理的函数依赖关系,向更高一级范式转化。
4.4.2 第二范式
定义4.12 如若关系模式R1NF,且它任意一个非主属性都完全函数依赖于R的任一候选码,则称该关系模式为第二范式,记为R2NF。
例如:在教学管理关系模式TC中,主属性为(SNo,CN),非主属性为(SN,Sex,DNo,DN,Score);
由图4.2可知,关系模式TC中存在非主属性对主属性的部分函数依赖,因此TC2NF,且这样会使关系模式存在大量的数据冗余,引起更新异常。
4.4.2 第二范式
非主属性对主码完全函数依赖。因此,
SD∈2NF,SC∈2NF。
为解决数据冗余的问题,采用投影分解,将TC分解为学生实体SD和学生选课实体SC.
学生
SD(SNo,SN,Sex,DNo,DN)
学生选课实体
SC(SNo,CN,Score)
TC
4.4.2 第二范式
第二范式的特点: