第六章 关系数据理论

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

6.1问题的提出关系数据库逻辑设计:–针对具体问题,如何构造一个适合于它的数据模式–数据库逻辑设计的工具──关系数据库的规范化理论•关系:描述实体、属性、实体间的联系。--从形式上看,它是一张二维表•关系模式:对关系的描述,用来定义关系。•关系数据库:基于关系模型的数据库,利用关系来描述现实世界。--从形式上看,它由一组关系组成。•关系数据库的模式:定义这组关系的关系模式的全体。概念回顾关系模式,记为R(U,D,DOM,F);其中:R为关系名,U为属性集,D为U所对应的域的集合,DOM为属性向域的映象集合,F为属性间数据依赖关系的集合。把关系模式看作一个三元组:R(U,F)当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系数据依赖是一个关系内部属性与属性之间的一种约束关系•这种约束关系是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系•是现实世界属性间相互联系的抽象•是数据内在的性质•是语义的体现1.什么是数据依赖数据依赖的类型•函数依赖(FunctionalDependency,简记为FD)•多值依赖(MultivaluedDependency,简记为MVD)•其他2.关系模式的冗余和异常问题TNAMEADDRESSCnoCNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4例:有一个关系模式R(TNAME,ADDRESS,Cno,CNAME)出现的问题数据冗余操作异常①修改异常②插入异常③删除异常结论:关系模式R的设计不是一个合适的设计解决的办法:用下面的两个关系模式R1和R2代替RR1(TNAME,ADDRESS)R2(TNAME,Cno,CNAME)TNAMEADDRESSTNAMECnoCNAMEt1a1t1c1n1t2a2t1c2n2t3a3t1c3n3t2c4n4t2c5n2t3c6n4图关系模式分解的实例(a)关系模式R1的实例(b)关系模式R2的实例6.2规范化规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。1、函数依赖定义6.1设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。对于关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应,或者说Y值由X值决定,因而这种依赖称为函数依赖。例d4c4b1a3d3c3b2a2d2c2b1a1d1c1b1a1DCBAd4c4b2a3d3c3b2a2d2c2b2a1d1c1b1a1DCBA例设有关系模式R(A,B,C,D)。A—B(a)(b)结论:当关系模式上存在函数依赖时,对其关系中的值将有严格的限制Student(Sno,Sname,Ssex,Sage,Sdept)假设不允许重名,则有:Sno→Sname,Sno→Ssex,Sno→Sage,Sno→Sdept,Sname→Sno,Sname→Ssex,Sname→SageSname→Sdept但Ssex→Sage若X→Y,并且Y→X,则记为X←→Y。若Y不函数依赖于X,则记为X→Y。若X→Y,则X称为这个函数依赖的决定属性组(决定因素)例:说明:1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立3.数据库设计者可以对现实世界作强制的规定。实体内部各属性间的联系也分为1:1、1:n和m:n三类。例:职工(职工号,姓名,身份证号码,职称,部门)•一对一关系(1:1)职工号与身份证号码之间就是一对一关系•一对多关系(1:n)职称与职工号之间就是一对多的关系。•多对多关系(m:n)职称与部门之间就是多对多的关系补充:属性间关系与函数依赖属性间的三种关系,并不是每种关系中都存在着函数依赖。•如果X、Y间是1:1关系,则存在函数依赖:X←→Y•如果X、Y间是1:n关系,则存在函数依赖:Y→X(多方为决定因素)•如果X、Y间是m:n关系,则不存在函数依赖。2、平凡函数依赖与非平凡函数依赖在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但YX,则称X→Y是非平凡的函数依赖若X→Y,但YX,则称X→Y是平凡的函数依赖例:在关系SC(Sno,Cno,Grade)中,非平凡函数依赖:(Sno,Cno)→Grade平凡函数依赖:(Sno,Cno)→Sno(Sno,Cno)→Cno二、范式满足一定条件的关系模式,称为范式(NormalForm)。范式的种类:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)•各种范式之间存在联系:•某一关系模式R为第n范式,可简记为R∈nNF。NF5NF4BCNFNF3NF2NF11.第一范式(1NF)定义:如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(firstnormalform,简记为1NF)的模式。满足1NF的关系称为规范化的关系,否则称为非规范化的关系。关系数据库研究的关系都是规范化的关系。第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。但是满足第一范式的关系模式并不一定是一个好的关系模式。例关系模式R(NAME,ADDRESS,PHONE)(续)2.第二范式(2NF)局部依赖、完全依赖定义:对于FDX→Y,如果存在X1X有X1→Y成立,那么称X→Y是局部函数依赖(Y部分函数依赖于X);否则称X→Y是完全函数依赖。完全依赖也称为“左部不可约依赖”。完全函数依赖,记作:X→Y局部函数依赖,记作:X→Y∩PF候选码、主码定义:如果A是关系模式R的候选码中属性,那么称A是R的主属性;否则称A是R的非主属性。主属性、非主属性定义:设K为RU,F中的属性或属性组合,若K→U,则K为R的候选码。若关系模式R有多个候选码,则选定其中的一个做为主码(Primarykey)。第二范式(2NF)定义:如果关系模式R是1NF,且每个非主属性完全函数依赖于码,那么称R是第二范式(2NF)的模式。(续)如果数据库模式中每个关系模式都是2NF,则称数据库模式为2NF的数据库模式。关系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc为学生住处,假设每个系的学生住在同一个地方。码为(Sno,Cno)•函数依赖包括:(Sno,Cno)FGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc结论:不是2NF模式例:SLC不是一个好的关系模式(1)插入异常(2)删除异常(3)数据冗余度大(4)修改复杂•原因Sdept、Sloc部分函数依赖于码。•解决方法SLC分解为两个关系模式,以消除这些部分函数依赖SC(Sno,Cno,Grade)SL(Sno,Sdept,Sloc)消除局部依赖的算法算法将关系模式R分解成2NF模式集。设有关系模式R(U),主码是W,R上还存在FDX→Z,其中Z是非主属性和XW,则W→Z就是一个局部函数依赖。此时应把R分解成两个模式:R1(XZ),主码是X;R2(Y),其中Y=U-Z,主码仍是W,外码是X∩如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中每一个关系模式都是2NF为止。说明:将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。3.第三范式(3NF)定义:如果X→Y,Y→A,且Y→X和A∈Y,那么称X→A是传递函数依赖(A传递函数依赖于X)。传递函数依赖定义:如果关系模式R是1NF,且每个非主属性都不传递依赖于R的码,那么称R是第三范式(3NF)的模式。第三范式(3NF)例:SC(Sno,Cno,Grade)SL(Sno,Sdept,Sloc)例SC是2NF模式,而且也已是3NF模式SL是2NF模式,却不是3NF模式。分析:SL存在FDSno→Sdept,Sdept→Sloc,那么Sno→Sloc就是一个传递依赖。即SL中存在非主属性对码的传递函数依赖。例把SL分解为两个关系模式,以消除传递函数依赖:SD(Sno,Sdept)DL(Sdept,Sloc)消除非主属性对主码传递依赖的算法算法将关系模式R分解成3NF模式集设关系模式R(U),主码是W,R上还存在FDX→Z。并且Z是非主属性,ZX,X不是候选码,这样W→Z就是一个传递依赖。此时应把R分解成两个模式:R1(XZ),主码是X;R2(Y),其中Y=U-Z,主码仍是W,外码是X如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中每一个关系模式都是3NF为止。定理定理如果R是3NF模式,那么R也是2NF模式。证明:只要证明模式中局部函数依赖的存在蕴涵着传递函数依赖即可。K→A是个局部依赖,存在K’,K’K,有K’→A又有K→K’因此,K→A是一个传递依赖∩违反3NF的传递依赖的三种情况码属性集X属性A码属性集X属性A码属性集X属性A(a)(b)(c)如果R是3NF模式,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。如果R是3NF模式,那么R也是2NF模式。将一个关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。但,并不能完全消除关系模式中的各种异常情况和数据冗余说明:4.BCNF(Boyce–CoddNF)在3NF模式中,并未排除主属性对候选码的传递函数依赖。码属性A属性集X码属性A属性集X(a)(b)定义:如果关系模式R是1NF,且每个属性都不传递依赖于R的候选码,那么称R是BCNF的模式。BCNF定义如果数据库模式中每个关系模式都是BCNF,则称为BCNF的数据库模式。•定义设关系模式RU,F∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。若R∈BCNF•每一个决定属性集(因素)都包含(候选)码•R中的所有非主属性都完全函数依赖于码•R中的所有主属性对每一个不包含它的候选码,也是完全函数依赖•没有任何属性完全函数依赖于非码的任何一组属性•R∈3NF例:在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。•每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称:T→J(S,J)→T(S,T)→J分析•(S,J)和(S,T)都可以作为候选码•S、T、J都是主属性•STJ∈3NF•STJ不是BCNF•原因:T→J,T是决定属性集,T不包含候选码解决方法:将STJ分解为二个关系模式:SJ(S,J)∈BCNF,TJ(T,J)∈BCNF没有任何属性对码的部分函数依赖和传递函数依赖SJSTTJTJ三、多值依赖例:学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教师可以讲授多门课程,每种参考书可以供多门课程使用。课程C教员T参考书B物理数学李勇王军李勇张平普通物理学光学原理物理习题集数学分析微分方程高等代数用二维表表示关系模式Teaching(C,T,B)普通物理学光学原理物理习题集普通物理学光学原理物理习题集数学分析微分方程高等代数数学分析微分方程高等代数…李勇李勇李勇王军王军王军李勇李勇李勇张平张平张平…物理物理物理物理物理物理数学数学数学数学数学数学…参考书B教员T课程C实例分析1)Teaching具有唯一候选码(C,T,B),即

1 / 107
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功