您好,欢迎访问三七文档
第6章关系数据理论意义:提供分析和判断数据库模式好坏的准则;指导设计好的数据库设计。地位:本章是本书最难的部分之一,但对于应用设计十分有用。6.1问题的提出--什么是不好的数据库设计目前为止掌握的知识尚无法解决大量的具体设计问题,即关系模式该如何选择。应用数据库应该由多少个表组成,每个表有哪些字段。本章即从理论上解决关系数据库的逻辑设计问题。一个关系模式应当是一个五元组。R(U,D,DOM,F)关系模式简化为一个三元组:R〈U,F〉当且仅当U上的一个关系r满足F时,r称为关系模式R〈U,F〉的一个关系。关系,作为一张二维表,它有一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。关系的定义数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。最重要的是函数依赖(FunctionalDependency简记为FD)和多值依赖(MultivaluedDependency简记为MVD)。函数依赖函数依赖:例如,描述学生的关系,可以有学号(SNO),姓名(SNAME),系名(SDEPT)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确定了。上述值的确定就象数学函数:自变量x确定之后,相应的函数值f(x)也就唯一地确定。所以说SNO函数决定SNAME和SDEPT,或者说SNAME,SDEPT函数依赖于SNO,记为∶SNO→SNAME,SNO→SDEPT。例如:前面介绍的学生选课模型,可以用一个关系模式表示:SC(Sno,Sname,Sage,SSEX,Sdept,Cno,Cname,Grade)一个可能的关系为:95001赵一18男CS1C语言8095001赵一18男CS2数据库原理8292002钱二19男CS1C语言80……可以看出,该模式存在的主要问题是冗余。冗余是不可避免的。在一定程度内也是合理的。但是,过度的冗余则会给数据库带来三类大的问题:插入异常(学生不选课,其基本信息就无法插入)删除异常(删除学生选课信息,其基本信息也被删除)修改复杂(修改某学生的基本信息,要随选课多次被修改)解决的方法一个大关系分解为若干个小关系。如前面的SC大关系分解为第三章的Student,SC和Course三个小关系,即可消除三类异常。为什么小关系比大关系好呢?现在我们要讨论的就是这个问题。从上面的分解观察到:如果在一个关系模式内,函数依赖形式上如果只有:码-非主属性的形式,冗余就较小,三类异常就没有了。6.1.1规范化目的将具有不合适性质的关系转换为更合适的形式。要求掌握函数依赖的定义及判定;掌握1NF到BCNF的定义及判定;了解多值依赖,理解4NF的定义。6.1.2函数依赖定义6.1设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R的任何一个可能的关系r,r中不可能存在两个元组在X属性值上相等而在Y属性值上不等,则称X函数确定Y或Y函数依赖于X,记作X-Y。X→Y,且YX,则称X→Y是非平凡的函数依赖。若不特别声明,我们总是讨论非平凡的函数依赖。X→Y,但YX则称X→Y是平凡的函数依赖。若X→Y,则X叫做决定因素(Determinant)。若X→Y,Y→X,则记作X←→Y。在这种情况下,X和Y在R(U)中地位相同。若Y不函数依赖于X,则记作X-Y。定义6.3(完全函数依赖和部分函数依赖的定义)在R(U)中,如果X-Y,并且对X的任何一个真子集X’,都有X’-Y,则称Y对X完全函数依赖,记作:X-Y定义4.4(传递函数依赖)在R(U)中,如果X-Y,(YX),Y-X,Y-Z,则称Z对X传递函数依赖。F6.1.3码定义6.4设K为RU,F中的属性或属性组,若K-U,则K为R的候选码。若候选码多于一个,则选定其中一个作为主码。主属性:包含在任何候选码中的属性。非主属性:不包含在任何候选码中的属性。全码:整个属性组都是码6.2.1范式(NORMALFORM)满足最低要求的关系,叫第一范式,简称1NF。关系表的每一分量是不可分的数据项1NF不允许表中出现嵌套或复合的属性5NF4NFBCNF3NF2NF1NF定义6.6若R1NF,对R的每一个非平凡的函数依赖X-Y,要么Y是主属性,要么X不是任何码的真子集,则R2NF。2NF在1NF基础上消除了非主属性对码的部分函数依赖(P175)(单主属性的关系一定是2NF,)。6.2.22NF如果一个关系模式不是2NF的,一定存在过度冗余,带来3类异常。解决方法:分解为多个小表。6.2.33NF定义6.7若R1NF,对R中的每一个非平凡的函数依赖X-Y,要么Y是主属性,要么X中含有码,则R3NF。3NF与2NF相比,条件更强。因为X中含有码,则X不会是任何码的真子集;反之,X不是任何码的真子集,还可能是非主属性组。即3NF在2NF的基础上消除了非主属性对码的传递函数依赖。1)关系R(U,F)2)数据依赖对关系模式的影响:数据冗余度大;更新异常;插入异常;删除异常.3)函数依赖:XY,X-Y4)平凡函数依赖与非平凡函数依赖.5)完全函数依赖与部分函数依赖.X-Y,X-Y6)传递函数依赖X-Y,(YX),Y-X,Y-Z7)码,候选码,主码,主属性,非主属性.8)5NF4NFBCNF3NF2NF1NFFP1)1NF:每个属性都是不可分割属性.2)2NF:不存在非主属性对主属性的部分函数依赖.3)3NF:不存在非主属性对主属性的传递函数依赖.4)1NF2NF-3NF.分解分解6.2.6BCNF由Boyce和Codd共同提出,属于修正的3NF。定义6.8若R1NF,对R中的每一个非平凡的函数依赖X-Y,X中均含有码,则RBCNF。即起决定因素都是含码.BCNF与3NF相比,条件更强。1)所有非主属性都完全函数依赖于每个候选码.2)所有主属性都完全函数依赖于每个不包含它的候选码.3)没有任何属性完全函数依赖于非码的任何一组属性.从3NF到BCNF也是通过分解得到的。到BCNF为止,完全消除由于函数依赖带来的过度冗余及相应的三类异常。1.关系C(CNO,CNAME,PCNO)属于第几范式?码是CNO2.S(SNO,SNAME,SDEPT,SAGE),假如SNAME具有唯一性.码是SNO或SNAME3.SPJ(S,J,P)S表示学生,J表示课程,P表示名次.侯选码(S,J)或(P,J).总结候选码(其属性为主属性),不包含候选码中的属性为非主属性,若候选码多于一个,选其中一个为主码.1NF:关系中的每个属性只包含原子项.2NF:在1NF上,每个非主属性都完全依赖于候选码.3NF:在2NF上,每个非主属性都非传递依赖于候选码.BCNF:F中的每一个依赖的决定因素必定包含R的某个候选码.不允许主属性对码的部分和传递函数依赖.(任何2元关系必定是BCNF)1NF2NF3NFBCNF独立的数据项消除了非主属性对码的部分函数依赖消除了非主属性对码的传递函数依赖(X-Y,X含有主码)例1:假设关系模式R(A,B)属性3NF,下列说法中()是正确的?A.它一定消除了插入和删除异常B.仍存在一定的插入和删除异常C.一定属于BCNF.D.A和C都是例2.关系模型中的关系模式至少是().A.1NFB.2NFC.3NF4.BCNF例3:在关系DB中,任何二元关系模式的最高范式必定是()A.1NF,B.2NFC.3NFD.BCNF例4:当B属性函数依赖于A属性时,属性A与B的联系是()A.1对多B.多对1C.多对多D.以上都不是例5.在关系模式中,如果属性A和B存在1对1的联系,则说().A.A-BB.B-AC.CBD.以上都不是例6:侯选码中的属性称为()A.非主属性B.主属性C.复合属性D.关键属性.例7:关系模式中各级范式之间的关系为().A)3NF2NF1NFB)3NF1NF2NFC)1NF2NF3NFD)2NF1NF3NF例8:关系模式中,满足2NF的模式()A.可能是1NFB.必定是1NFC.必定是3NFD.必定是BCNF例9:关系模式R中的属性全部是主属性,则R的最高范式必定是()A.2NFB.3NFC.4NFD.BCNF例9:消除了部分函数依赖的1NF的关系模式必定是()A.1NFB.2NFC.3NFD.4NF例10:关系模式的侯选吗可以是(),主码有()A.0个B.1个C.1个或多个D.多个例11.侯选码中的属性可以有()A.0个B.1个C.1个或多个D.多个例13.根据关系数据库规范化理论,关系数据库中的关系要满足1NF,下面”部门”关系中,因哪个属性而使它不满足1NF.部门(部门号,部门名,部门成员,部门总经理)A.部门总经理B.部门成员C.部门名D.部门号例14.如下所显示的关系R()A.不是3NFB.是3NF但不是BCNF.C.是3NF但不是2NFD.是BCNF零件号单价P125P28P325P49例15.在关系模式R(A,B,C,D)中,有函数依赖集F={B-C,C-D,D-A},则R能达到()A.1NFB.2NFC.3NFD.以上三者都不行6.2.7规范化小结1NF:每个分量是不可分的数据项。∪2NF:非主属性完全函数依赖于码。∪3NF:非主属性即不部分依赖于码也不传递依赖于码。∪BCNF:所有属性都不部分依赖于码也不传递依赖于码。所有决定因素(属性集)都包含码。函数依赖与属性关系1)如果X和Y之间是1:1关系,则存在函数依赖:X-Y,Y-X2)如果X和Y之间是m:1关系,则存在函数依赖:X-Y.3)如果X和Y之间是m:n关系,则不存在函数依赖.6.3数据依赖的公理系统逻辑蕴含:定义4.11对于关系模式RU,F,其任何一个关系r,若函数依赖X→Y都成立(即r中任意两元组s,t,若t[X]=s[X],则t[Y]=s[Y]),则称函数依赖集F逻辑蕴含X→Y。为了求得给定关系模式的码,为了从一组函数依赖求得蕴含的函数依赖,例如已知函数依赖集F,要问X→Y是否为F所蕴含,就需要一套推理规则,这组推理规则是1974年首先由Armstrong提出来的。它是关系模式分解算法的理论基础。Armstrong公理系统A1自反律:若YXU,则X-Y为F所蕴含(给出平凡的函数依赖)。A2增广律:若X→Y为F所蕴含,且ZU,则XZ→YZ为F所蕴含。A3传递律:如X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。Armstrong公理的推论:合并规则:若X→Y,X→Z,有X→YZ。分解规则:由X→Y及Z包含于Y,有X→Z。伪传递规则:若X→Y,WY→Z,有XW→Z。根据合并规则和分解规则,得到一个重要事实:X→A1A2…AK成立的充分必要条件是X→Ai成立(i=1,2,…,k)。F的闭包:在关系模式R(U,F)中为F所逻辑蕴含的函数依赖的全体叫做F的闭包,记作F+。Armstrong公理是有效的,完备的:有效性:由F出发根据Armstrong公理推导出来的每个函数依赖一定在F+中。完备性:F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来。定义6.13XF+的定义设F是属性集U上的一组函数依赖集,XU,XF+={A|X-A能由F根据Armstrong公理导出}。引理6.2设F为属性集U上的一组函数依赖,X,YU,X-Y能否由F根据Armstrong公理导出的充分必要条件是YXF+算法4.1求XF+的方法。非常重要。要求会求XF+例:设关系模式R(U,F),其中U={A,B,C,D,E,I},F={A-D,AB-E,BI-E,CD-I,E-C}.计算(AE)+解:令X={AE},X(0)=AE.在F中找出左边是AE
本文标题:59关系数据库理论
链接地址:https://www.777doc.com/doc-3604758 .html