您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 数据库原理与SQL Sever2000第3章 关系数据库理论基础 (第二部分)
数据库原理与SQLSever2000第3章关系数据库理论基础(第二部分)管理013.6关系规范化建立关系数据库应遵循一定的原则,以保证数据库的稳定、灵活,方便。-----关系规范化的问题管理011、关键字1)关键字:在关系中用来唯一标识一元组的一个或一组属性关键字不允许为空可以是一个或多个或者全部属性2)候选关键字:在关系中可以用来唯一标志元组的属性或属性组3)主关键字:在候选关键字中用来指定做主关键字的属性或属性组4)主属性:可作为候选关键字的属性5)非主属性:不能作为候选关键字的属性6)外部关键字:关系中某个或某组属性并非关键字却是另一个关系的主关键字时,称为外部关键字。3.6.1一些重要概念管理012、函数依赖关系规范化是围绕函数依赖进行的。在具体的关系中,函数依赖是刻画关系中各个属性之间相互制约而又相互依赖的关系。其中关键最为重要,它决定了其它的属性值。由于关键字可能为某个属性也有可能为某组属性,因此各属性对关键字存在着不同的依赖。以下给出函数依赖的严格定义并说明不同的依赖情况。3.6.1一些重要概念管理011)函数依赖设R(U)是属性集U上的关系。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,均有x的一个值对应于y的惟一具体值,称为y单值函数依赖于x,或称X函数决定,记作x→y。若进一步,有y→x,则x与y相互依赖,记作x←→y2)完全函数依赖设R(U)是属性集U上的关系。X,y是U的子集,x’是x的真子集。若对于R(U)下的任何一个可能的关系,有x→y但x→y则称y完全函数依赖于x,记作x→y3)部分函数依赖若x→y且x’→y,则称y部分依赖于x,记作x→y只有当x为复合属性组时,才可能有部分信赖情况。3.6.1一些重要概念fp管理014)传递依赖在R(U)中,若x→y,但y→x,若y→z,则x→z,此称为z传递函数依赖于x,记作x→y例1:假设选课关系(学号,课程号,教师号,学生姓名,成绩,课程名称,教师姓名):SCT(xh,kch,jsh,xsxm,cj,kcmc,jsxm)它们之间的依赖关系可以表示为:(sno,cno)→cname(sno,cno)→tnamecno←→cname(假设所有课程均不同名)cno→tname(sno,cno)→grade3.6.1一些重要概念tp\管理01例2(参见P53[例3-9])设车间考核职工完成生产定额关系为:W(日期,工号,姓名,工种,定额,超额,车间,车间主任)它们之间的依赖关系可以表示为:(日期,工号)→超额(日期,工号)→姓名(日期,工号)→工种(日期,工号)→车间工号→工种,工种→定额,所以工号→定额工号→车间,车间→车间主任,所以工号→车间主任3.6.1一些重要概念pfpptt管理013.6.2范式与规范化1、范式关系模式满足的确定约束条件称为范式,根据满足约束条件的级别不同,范式由低到高分为1NF,2NF,3NF,BCNF等。不同的级别范式性质不同。满足最低要求的叫第一范式,简称lNF。在第一范式中满足进一步要求的为第二范式,其余以此类推。R为第几范式就可以写成R∈xNF。对于各种范式之间的联系有BCNF3NF2NFlNF成立。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化管理013.6.2范式与规范化2、范式的判定条件与规范化1)1NF:关系R的所有属性都是不可再分的数据项,则该关系属于第一范式,记作R∈1NF.例1:工资(工号,姓名,工资(基本工资,年绩津贴,煤电补贴))该关系不满足1NF的关系称为非规范化关系。转化方法为:工资(工号,姓名,基本工资,津贴,奖金)管理013.6.2范式与规范化例2:参见P54的表3-26的非规范化的关系转化为表3-27的规范化的关系仅满足1NF,还存在问题,如P53[例3-9]以下一些记录(参见P55的表3-28),缺点所在:数据冗余大:如工人基本信息重复出现修改麻烦:如有人更换工种,则需更改每一条相应的信息。插入异常:日期和工号不能为NULL,若新工人还没工作,则该工人信息不能插入到表中。删除异常:若要删除某人的所有工作记录,则此人基本是不存在。管理013.6.2范式与规范化1NF有数据冗余大、修改麻烦、插入异常、删除异常等缺点,主要原因是因为其不够规范化,对W的约束太少。W关系中存在完全、部分、传递三种不同依赖情况(参见P56图3-4)。改进的办法是消除同时存在于一个关系的不同的依赖情况,因此有2NF。管理013.6.2范式与规范化(2)2NF:若关系R∈1NF,且它的每一非主属性都完全依赖于关键字,则称R属于第二范式。记为:R∈2NF[例3-10]对W关系加以分解,使之满足2NF定义分解:W=W1+W2W1(日期,工号,超额)W2(工号,姓名,工种,定额,车间,车间主任)分解以后的记录参见P56表3-29管理013.6.2范式与规范化表3-29W关系分解为W1和W2管理013.6.2范式与规范化但是W2中仍存在数据冗余,如车工的定额,车间的主任都重复存储了。也存在删除异常的问题,如删除103号工人,则“工具”车间信息也会从数据库被删除。其原因在于W2中存在传递依赖关系。因此产生3NF。(3)3NF:若R∈2NF,且它的每一个非主属性都不传递依赖于关键字,则称R属于第三范式。记为R∈3NF管理013.6.2范式与规范化[例3-11]对W2关系分解,消除其中的传递依赖关系,使其满足3NF。W2关系属性间信赖关系如图所示:W2W21+W22+W23其中:W21(工号,姓名,工种,车间),W22(工程,定额)W23(车间,车间主任)分解后的记录如P57的表3-30表示分解管理013.6.2范式与规范化表3-30管理013.6.2范式与规范化满足3NF的关系数据库,一般情况下能达到要求,但由于直到3NF为上,仅对关系的非主属性与关键字间的依赖作了限制,而对主属性与主关键字间没有给出任何限制,若主属性间也出现了类似非主属性的部分依赖或传递依赖关系,那么也会使关系存在一定的问题,因此提出了BCNF。3、BCNF1)引例SCT(学生,课程,教师)假定SCT中一个学生可选多门课程,一个教师只讲授一门课程,但同一门课程有几个教师担任。学生课程教师张东英语陈明许强英语陈明李伟英语古克刘平C郭节刘平OS方敏王风ST孙侠管理013.6.2范式与规范化分析求关键字:SCT中候选关键字:(学生,课程)或(学生,教师)也即“学生”、“课程”、“教师”均为主属性由于3NF中考虑的是主属性对非主属性的依赖,因此SCT∈3NF。毛病所在:存在信息冗余:如教师、课程两列存在很多的重复信息,如陈明教英语,若有100个学生,则会重复存入100次。插入异常:若某个教师未开课,则此教师信息无法存入数据库删除异常。若学生退学或毕业,可能会将课程信息与教师信息删除。可见,满足3NF的关系,在这种情况下还存在一定的弊端。管理013.6.2范式与规范化(a)中:(学生、课程)→教师,教师→课程(b)中:(学生、教师)→课程,教师→课程对于有两个候选关键字,特别是两个关键字间存在着互相覆盖的属性,关系的性能可能会变坏。需通过BCNF来分解关系学生课程教师学生教师课程(a)(学生、课程)作关键字(b)(学生、教师)作关键字管理013.6.2范式与规范化2)BCNF定义一种:设R是一个规范化的关系,若R的每一个决定因素项都是候选关键字,则R属于BCNF关系,记R∈BCNF另一种:如果关系模式R的所有属性(包括主属性和非主属性)都不传递依赖于R的任何候选关键字,那么称关系R是属于BCNF的。记为R∈BCNF。判定是否为BCNF的步骤:确定候选关键字确定决定因素根据定义,确定每个决定因素是否均为候选关键字说明:BCNF必定属于3NF,但3NF不一定属于BCNF管理013.6.2范式与规范化例判定SCT是否属于BCNF,若SCT∈BCNF,则对其进行分解。解:判定的三个步骤:1.找候选关键字:(学生、课程)和(学生、教师)2.找决定因素:除上面的候选关键字外,“教师”也为决定因素3.因决定因素多于候选关键字,所以SCT∈BCNF分解:SCT→ST+TCST(学生、教师)∈BCNFTC(学生、课程)∈BCNF管理013.6.3关系分解的原则分解的原则:分解必须无损,即分解后不应丢失信息分解后的关系要相互独立(避免对一个关系的修改,影响到另一个关系)分解关系的要点规范化过程是对关系逐步分解的过程规范化过程如按如图所示的步骤:
本文标题:数据库原理与SQL Sever2000第3章 关系数据库理论基础 (第二部分)
链接地址:https://www.777doc.com/doc-4122476 .html