1、第第6 6章章 关系数据库理论关系数据库理论 第第6章章 关系数据库理论关系数据库理论 6.1 关系模式规范化的必要性关系模式规范化的必要性 6.2 函数依赖及其关系的范式函数依赖及其关系的范式 6.3 多值依赖及关系的第四范式多值依赖及关系的第四范式 6.4 关系规范化小结关系规范化小结 习题习题6 第第6 6章章 关系数据库理论关系数据库理论 6.1 关系模式规范化的必要性关系模式规范化的必要性 6.1.1 关系模式应满足的基本要求 1.元组的每个分量必须是不可分的数据项 关系数据库特别强调,关系中的属性不能是组合属性,必须是基本项,并把这一要求规定为鉴别表格是否为“关系”的标准。2.数据
2、库中的数据冗余应尽可能少 数据冗余大是指数据库中重复的数据过多。第第6 6章章 关系数据库理论关系数据库理论 3.关系数据库不能因为数据更新操作而引起数据不一致的问题 4.当执行数据插入操作时,数据库中的数据不能产生插入异常现象 5.数据库中的数据不能在执行删除操作时产生删除异常问题 6.数据库设计应考虑查询要求,数据组织应合理 第第6 6章章 关系数据库理论关系数据库理论 6.1.2 关系规范化可能出现的问题 例如,要求设计一个教学管理数据库,希望从该数据库中得到学生学号、学生姓名、年龄、性别、系别、系主任姓名、学生学习的课程和该课程的成绩信息。若将此信息要求设计为一个关系,则关系模式为教学
3、(学号,姓名,年龄,性别,系名,系主任,课程名,成绩)可以推出此关系模式的码为(学号,课程)。仅从关系模式上看,该关系已经包括了需要的信息,如果按此关系模式建立关系,并对它进行深入分析,就会发现其中的问题所在。不规范关系的实例教学关系如表6-1所示。第第6 6章章 关系数据库理论关系数据库理论 表6-1 不规范关系的实例教学关系 第第6 6章章 关系数据库理论关系数据库理论 1.数据冗余大 每一个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,系名和系主任数据重复量太大。2.插入异常 一个新系没有招生时,系名和系主任名无法插入到数据库中,因为在这个关系模式中,主码是(
4、学号,课程),而这时因没有学生而使得学号无值,所以没有主属性值,关系数据库无法操作,因此引起插入异常。第第6 6章章 关系数据库理论关系数据库理论 3.删除异常 当一个系的学生都毕业了而又没招新生时,删除了全部学生记录,随之也删除了系名和系主任名。4.更新异常 若某系换系主任,数据库中该系的学生记录应全部修改。第第6 6章章 关系数据库理论关系数据库理论 6.1.3 模式分解是关系规范化的主要方法 对于有问题的关系模式,可以通过模式分解的方法使之规范化。例如上述的关系模式“教学”,可以按“一事一地”的原则分解成“学生”、“教学系”和“选课”三个关系,其关系模式为 学生(学号,姓名,年龄,性别,
5、系名称)教学系(系名,系主任)选课(学号,课程名,成绩)第第6 6章章 关系数据库理论关系数据库理论 表6-2 教学关系分解后形成的三个关系 第第6 6章章 关系数据库理论关系数据库理论 6.2 函数依赖及其关系的范式函数依赖及其关系的范式1.关系模式的简化表示法关系模式的完整表示是一个五元组:RU,D,Dom,F其中:R关系名。U关系的属性集合。第第6 6章章 关系数据库理论关系数据库理论 D属性集U中属性的数据域。Dom属性到域的映射。F属性集U的数据依赖集。第第6 6章章 关系数据库理论关系数据库理论 2.函数依赖的概念 定义6-1:设RU是属性集U上的关系模式,X、Y是U的子集。若对于
6、RU的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而Y上的属性值不等,则称X函数确定Y函数,或Y函数依赖于X函数,记作XY。第第6 6章章 关系数据库理论关系数据库理论 3.1NF的定义 关系的第一范式是关系要遵循的最基本的范式。定义6-4:如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式(First Normal Form,简称1NF),记作R 1NF。第第6 6章章 关系数据库理论关系数据库理论 表6-3 非第一范式 第第6 6章章 关系数据库理论关系数据库理论 表6-4 第一范式 第第6 6章章 关系数据库理论关系数据库理论 4.
7、2NF的定义 定义6-5:若R(1NF,且每一个非主属性完全依赖于码,则R 2NF。5.3NF的定义 定义6-6:关系模式RU,F中若不存在这样的码X、属性组Y及非主属性Z(Z(Y)使得XY、YX、YZ成立,则称RU,F 3NF。第第6 6章章 关系数据库理论关系数据库理论 6.BCNF的定义 通常认为BCNF是修正的第三范式,有时也称它为扩充的第三范式。定义6-7:关系模式RU,F 1NF。若XY且Y(X时X必含有码,则RU,F BCNF。第第6 6章章 关系数据库理论关系数据库理论 BCNF的定义可以得到结论,一个满足BCNF的关系模式有以下特性:(1)所有非主属性对每一个码都是完全函数依
8、赖。(2)所有的主属性对每一个不包含它的码,也是完全依赖。(3)没有任何属性完全函数依赖于非码的任何一组属性。第第6 6章章 关系数据库理论关系数据库理论 7.BCNF和3NF的比较 BCNF和3NF的区别主要反映在以下两点:(1)BCNF不仅强调其他属性对码的完全的直接的依赖,而且强调主属性对码的完全的直接的依赖,它包括3NF,即R(BCNF,则R一定属于3NF。(2)3NF只强调非主属性对码的完全直接依赖,这样就可能出现主属性对码的部分依赖和传递依赖。第第6 6章章 关系数据库理论关系数据库理论 6.3 多值依赖及关系的第四范式多值依赖及关系的第四范式 1.研究多值依赖的必要性 下面先通过
9、一个具体实例来观察含有多值依赖的关系模式会出现什么问题。例如,给定一个关系模式JPW(产品,零件,工序),其中每种产品由多种零件构成,每个零件在装配时需要多道工序。设产品电视机需要的零件和工序如图6-1所示。第第6 6章章 关系数据库理论关系数据库理论 图6-1 JPW数据实例 显像管电视机开关电源焊接调试测试装配调试焊接调试第第6 6章章 关系数据库理论关系数据库理论 将图6-1中的数据输入到JPW关系中,如表6-5所示,可以看出,数据冗余十分明显。但该表由于不存在函数依赖,并且是全码,所以JPW属于BCNF,这说明属于BCNF的关系仍然会存在一些问题。要想消除此类问题,需要研究多值依赖及相
10、关的范式理论。第第6 6章章 关系数据库理论关系数据库理论 表6-5 JPW的一个关系 第第6 6章章 关系数据库理论关系数据库理论 2.多值依赖的定义和性质 定义6-8:设有关系模式RU,U是属性集,X、Y是U的子集。多值依赖具有以下性质:(1)多值依赖具有对称性。(2)函数依赖可以看作是多值依赖的特殊情况。(3)在多值依赖中,若X Y且Z=U-X-Y,则称X Y为非平凡的多值依赖,否则称为平凡的多值依赖。第第6 6章章 关系数据库理论关系数据库理论 多值依赖与函数依赖相比,具有以下两个基本的区别:(1)多值依赖的有效性与属性集的范围有关。(2)多值依赖没有自反律。第第6 6章章 关系数据库
11、理论关系数据库理论 3.4NF的定义 定义6-9:关系模式RU,F(1NF,如果对于R的每个非平凡多值依赖X Y(Y(X),X必含有码,则称RU,F 4NF。第第6 6章章 关系数据库理论关系数据库理论 6.4 关系规范化小结关系规范化小结 在关系数据库中,对关系模式的基本要求是满足第一范式。在此基础上,为了消除关系模式存在插入异常、删除异常、修改复杂和数据冗余等问题,要对关系模式进一步规范化,使之逐步达到2NF、3NF、BCNF、4NF和5NF。规范化过程如图6-2所示。第第6 6章章 关系数据库理论关系数据库理论 图6-2 各种范式及规范化过程 消除决定因素非码的非平凡函数依赖消除非主属性
12、对码的部分函数依赖消除非主属性对码的部分和传递函数依赖消除主属性对码的部分和传递函数依赖消除非平凡且非函数依赖的多值依赖消除不是由候选关键字蕴含的连接依赖1NF2NF3NFBCNF4NF5NF第第6 6章章 关系数据库理论关系数据库理论 习习 题题 6 6.1 解释下列术语:函数依赖,部分函数依赖,完全函数依赖,传递函数依赖,候选关键字,主关键字,全关键字,1NF,2NF,3NF,BCNF,多值依赖,4NF。第第6 6章章 关系数据库理论关系数据库理论 6.2 现在要建立关于系、学生、班级、学会诸信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的
13、学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;描述班级的属性有:班号、专业名、系名、人数、入校年份;描述系的属性有:系名、系号、系办公室地点、人数;第第6 6章章 关系数据库理论关系数据库理论 描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。(1)请写出关系模式。(2)写出每个关系模式的最小函数依赖集,指出是否存在传递依赖。在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分函数依赖。(3)指出各个关系模式的候选关键字、外部关键字,有没有全关键字。第第6 6章章 关系数据库理
14、论关系数据库理论 6.3 有关系模式A(C,T,H,R,S),其中各属性的含义是:C,课程;T,教员;H,上课时间;R,教室;S,学生。根据语义有如下函数依赖集:F=CT,(H,R)C,(H,T)R,(H,S)R。现将关系模式A分解为两个关系模式A1(C,T),A2(H,R,S),则其中A1的规范化程度达到_。A.1NF B.2NF C.3NF D.BCNF第第6 6章章 关系数据库理论关系数据库理论 6.4 设关系模式RA,B,C,D,函数依赖集F=AC,CA,BAC,DAC,BDA。(1)求出R的候选码。(2)求出F的最小函数依赖集。(3)将R分解为3NF,使其既具有无损连接性又具有函数依
15、赖保持性。第第6 6章章 关系数据库理论关系数据库理论 6.5 判断下面的关系模式是不是BCNF,为什么?(1)任何一个二元关系。(2)关系模式选课(学号,课程号,成绩),函数依赖集F=(学号,课程号)成绩。(3)关系模式R(A,B,C,D,E,F),函数依赖集F=ABC,BCA,BCDEF,EC。第第6 6章章 关系数据库理论关系数据库理论 6.6 设关系模式RB,O,I,S,Q,D,函数依赖集F=SD,IS,ISQ,BQ。(1)找出R的主码。(2)把R分解为BCNF,且具有无损连接性和函数依赖保持性。6.7 在关系模式选课(学号,课程号,成绩)中,“学号 课程号”正确吗?为什么?6.8 设有关系模式R(A,B,C),数据依赖集F=ABC,C A,R属于第几范式?为什么?第第6 6章章 关系数据库理论关系数据库理论 6.9 设有关系模式R(A,B,C,D),数据依赖集F=AB,BA,ACD,BCD,AD C,BD C,A CD,B CD。(1)求R的主码。(2)R是否为第四范式?为什么?(3)R是否是BCNF?为什么?(4)R是否是3NF?为什么?