任务2SQLServer数据库概念.ppt

上传人:za****8 文档编号:12854942 上传时间:2020-05-31 格式:PPT 页数:101 大小:451.51KB
返回 下载 相关 举报
任务2SQLServer数据库概念.ppt_第1页
第1页 / 共101页
任务2SQLServer数据库概念.ppt_第2页
第2页 / 共101页
任务2SQLServer数据库概念.ppt_第3页
第3页 / 共101页
点击查看更多>>
资源描述
任务2SQLServer数据库概念,学习目的和要求本任务讲解SQLServer数据库的概念,内容的理论性较强。需要了解:SQLServer的7个系统表。需要牢固掌握:数据库的类别及数据库结构;SQLServer2000的数据库对象;SQLServer系统数据库的概念及作用。难点:SQLServer2000的数据库对象。,任务2关系数据库理论,1.关系模式设计中的问题2.函数依赖3.范式4.关系模式的规范化5.小结,任务2关系数据库理论,关系数据库的规范化理论主要包括三个方面的内容:函数依赖、范式和模式设计。其中函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。,1.关系模式设计中的问题,关系数据库逻辑设计针对具体问题,如何构造一个适合于它的数据模式;数据库逻辑设计的工具关系数据库的规范化理论。,1.关系模式设计中的问题,(1)概念回顾(2)关系模式的形式化定义(3)什么是数据依赖(4)关系模式的简化定义(5)数据依赖对关系模式影响,(1)概念回顾,关系:描述实体、属性、实体间的联系。从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。关系模式:用来定义关系。关系数据库:基于关系模型的数据库,利用关系来描述现实世界。从形式上看,它由一组关系组成。关系数据库的模式:定义这组关系的关系模式的全体。,(2)关系模式的形式化定义,关系模式由五部分组成,即它是一个五元组:R(U,D,DOM,F)R:关系名U:组成该关系的属性名集合D:属性组U中属性所来自的域DOM:属性向域的映象集合F:属性间数据的依赖关系集合,(3)什么是数据依赖,完整性约束的表现形式限定属性取值范围:例如学生成绩必须在0-100之间定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,它是数据库模式设计的关键。,(3)什么是数据依赖,数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系;是现实世界属性间相互联系的抽象;是数据内在的性质;是语义的体现。,(3)什么是数据依赖,数据依赖的类型函数依赖(FunctionalDependency,简记为FD)多值依赖(MultivaluedDependency,简记为MVD)其他(如连接依赖)。,(4)关系模式的简化表示,关系模式R(U,D,DOM,F)简化为一个三元组:R(U,F)当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系,(5)数据依赖对关系模式的影响,例:描述学校的数据库:学生的学号(Sno)、所在系(Sdept)系主任姓名(Mname)、课程名(Cname)成绩(Grade)单一的关系模式:StudentUSno,Sdept,Mname,Cname,Grade,(5)数据依赖对关系模式的影响,学校数据库的语义:一个系有若干学生,一个学生只属于一个系;一个系只有一名主任;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生所学的每门课程都有一个成绩。,(5)数据依赖对关系模式的影响,属性组U上的一组函数依赖F:FSnoSdept,SdeptMname,(Sno,Cname)Grade,关系模式Student(U,F)中存在的问题,1)数据冗余太大浪费大量的存储空间例:每一个系主任的姓名重复出现2)更新异常(UpdateAnomalies)数据冗余,更新数据时,维护数据完整性代价大。例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组。,关系模式Student(U,F)中存在的问题,3)插入异常(InsertionAnomalies)该插的数据插不进去例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。4)删除异常(DeletionAnomalies)不该删除的数据不得不删例,如果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。,(5)数据依赖对关系模式的影响,结论:Student关系模式不是一个好的模式。“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。原因:由存在于模式中的某些数据依赖引起的。解决方法:通过分解关系模式来消除其中不合适的数据依赖。,2.函数依赖,关系模式中各属性之间相互依赖、相互制约的联系称为数据依赖。数据依赖一般分为:函数依赖、多值依赖和连接依赖。,(1)函数依赖的定义及性质,1)函数依赖2)平凡函数依赖与非平凡函数依赖3)函数依赖的几点说明,1)函数依赖,定义3.1设关系模式R(U,F),U是属性集,F是U上的函数依赖集,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,对于X的一个具体值,Y都有唯一的具体值与之对应,则称“X函数确定Y”或“Y函数依赖于X”,记作XY。X称为这个函数依赖的决定属性集,Y为依赖属性集。,说明:,1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立3.数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组。,1)函数依赖,例:Student(Sno,Sname,Ssex,Sage,Sdept)假设不允许重名,则有:SnoSsex,SnoSage,SnoSdept,SnoSname,SnameSsex,SnameSageSnameSdept但SsexSage若XY,并且YX,则记为XY。若Y不函数依赖于X,则记为XY。,2)平凡函数依赖与非平凡函数依赖,在关系模式R(U)中,对于U的子集X和Y,如果XY,但YX,则称XY是非平凡的函数依赖;若XY,但YX,则称XY是平凡的函数依赖。例:在关系SC(Sno,Cno,Grade)中,非平凡函数依赖:(Sno,Cno)Grade平凡函数依赖:(Sno,Cno)Sno(Sno,Cno)Cno,平凡函数依赖与非平凡函数依赖(续),对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明,我们总是讨论非平凡函数依赖。,3)函数依赖的几点说明,函数依赖是语义范畴的概念:我们只能根据语义来确定一个函数依赖,而不能按照其形式定义来证明一个函数依赖是否成立。,3)函数依赖的几点说明,函数依赖与属性之间的联系类型有关:(1)在一个关系中,若属性X和Y有1:1的关系,则存在函数依赖XY,和YX,即XY。例如当学生无重名时,SnoSname(2)若属性X和Y有1:m的关系,则只存在函数依赖XY。(3)若属性X和Y有m:n的关系,则X、Y之间不存在任何函数依赖关系。,3)函数依赖的几点说明,函数依赖的存在与时间无关:因为函数依赖是指关系中所有元组应该满足的约束条件,而不是指关系中某个或某些元组所满足的约束条件,所以,当关系中的元组增加、删除或更新后都不能破坏这种函数依赖。因此,必须根据语义来确定属性之间的函数依赖,而不能单凭某一时刻关系中的实际数值来判断。函数依赖可以保证关系分解的无损连接性。,(2)函数依赖的分类,1)完全函数依赖与部分函数依赖2)传递函数依赖,1)完全函数依赖与部分函数依赖,定义3.2在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y完全函数依赖于X,记作XY。若对于X的任何一个真子集X,都有XY,则称Y部分函数依赖于X,记作XPY。,1)完全函数依赖与部分函数依赖,例:在关系SC(Sno,Cno,Grade)中,由于:SnoGrade,CnoGrade,因此:(Sno,Cno)Grade由定义可知:只有当决定因素是组合属性时,讨论部分函数依赖才有意义。,2)传递函数依赖,定义3.3在关系模式R(U)中,如果XY,YZ,且YX,YX,则称Z传递函数依赖于X。记作:XTY注:如果YX,即XY,则Z直接依赖于X。例:在关系Std(Sno,Sdept,Mname)中,有:SnoSdept,SdeptMnameMname传递函数依赖于Sno,SnoTMname,2.3范式(NormalForm),设计任何一种数据库应用系统,不管是层次的、网状的、还是关系的,都会遇到如何构造合适的数据模式即逻辑结构的问题。即应该构造几个关系,每个关系有哪些属性组成,由于关系模型有严格的数学理论基础,并且可向别的数据模型转换,因此人们以关系模型为背景,形成了数据库逻辑设计的一个有力工具关系数据库的规范化理论。,2.3范式(NormalForm),规范化的基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适部分,解决数据插入、删除时发生的异常情况。这就要求关系数据库设计出来的关系模式要满足一定的条件。我们把不同的规范化标准表示为范式。由于规范化程度的不同,就产生了不同的范式。满足最基本规范化要求的关系模式叫第一范式,在第一范式上满足一定要求的称为第二范式,以此类推。,2.3范式(NormalForm),范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。范式的种类:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF),5NF4NFBCNF3NF2NF1NF,各种范式之间的关系,2.3范式(NormalForm),各种范式之间存在联系:某一关系模式R为第n范式,可简记为RnNF。,1.1NF的定义,定义3.61NF的定义如果一个关系模式R的所有属性均为简单属性,即每个属性都是不可分的基本数据项,则R1NF。第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。但是满足第一范式的关系模式并不一定是一个好的关系模式。,1.1NF的定义,例:关系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc为学生住处,假设每个系的学生住在同一个地方。函数依赖包括:(Sno,Cno)fGradeSnoSdept(Sno,Cno)PSdeptSnoSloc(Sno,Cno)PSlocSdeptSloc,1.1NF的定义,SLC的码为(Sno,Cno)SLC满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno),SLC不是一个好的关系模式,(1)插入异常假设Sno95102,SdeptIS,SlocN的学生还未选课,因课程号是主属性,因此该学生的信息无法插入SLC。(2)删除异常假定某个学生本来只选修了3号课程这一门课。现在因身体不适,他连3号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。,SLC不是一个好的关系模式,(3)数据冗余度大如果一个学生选修了10门课程,那么他的Sdept和Sloc值就要重复存储了10次。(4)修改复杂例如学生转系,在修改此学生元组的Sdept值的同时,还可能需要修改住处(Sloc)。如果这个学生选修了K门课,则必须无遗漏地修改K个元组中全部Sdept、Sloc信息。,1.1NF的定义,原因Sdept、Sloc部分函数依赖于码。解决方法SLC分解为两个关系模式,以消除这些部分函数依赖SC(Sno,Cno,Grade)SL(Sno,Sdept,Sloc),1.1NF的定义,SLC的码为(Sno,Cno)SLC满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno),1.1NF的定义,函数依赖图:,2.2NF的定义,2NF的定义定义3.5若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码,则R2NF。例:SLC(Sno,Sdept,Sloc,Cno,Grade)1NFSLC(Sno,Sdept,Sloc,Cno,Grade)2NFSC(Sno,Cno,Grade)2NFSL(Sno,Sdept,Sloc)2NF,2.2NF的定义,采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。,2.2NF的定义,例:2NF关系模式SL(Sno,Sdept,Sloc)中函数依赖:SnoSdeptSdeptSlocSnoSlocSloc传递函数依赖于Sno,即SL中存在非主属性对码的传递函数依赖。,2.2NF的定义,函数依赖图:,2.2NF的定义,解决方法采用投影分解法,把SL分解为两个关系模式,以消除传递函数依赖:SD(Sno,Sdept)DL(Sdept,Sloc)SD的码为Sno,DL的码为Sdept。,2.2NF的定义,SD的码为Sno,DL的码为Sdept。,3.3NF的定义,定义3.6如果关系模式R2NF,且每一个非主属性都不传递依赖于R的码,则称R属于第三范式(ThirdNormalForm),简称3NF,记作R3NF。3NF是一个可用的关系模式应满足的最低范式。也就是说,一个关系模式如果不服从3NF,实际上它是不能使用的。,3.3NF的定义,例,SL(Sno,Sdept,Sloc)2NFSL(Sno,Sdept,Sloc)3NFSD(Sno,Sdept)3NFDL(Sdept,Sloc)3NF,3.3NF的定义,若R3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。如果R3NF,则R也是2NF。采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。,5.2.6BC范式(BCNF),定义5.9设关系模式R1NF,如果对于R的每个函数依赖XY,若Y不属于X,则X必含有候选码,那么RBCNF。若RBCNF每一个决定属性集(因素)都包含(候选)码;R中的所有属性(主,非主属性)都完全函数依赖于码;R3NF(证明)若R3NF则R不一定BCNF。,BCNF,例:在关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,就确定了一个固定的教师。某个学生选修某个教师的课就确定了所选课的名称:(S,J)T,(S,T)J,TJ,5.2.6BCNF,BCNF,STJ3NF(S,J)和(S,T)都可以作为候选码S、T、J都是主属性STJBCNFTJ,T是决定属性集,T不是候选码,BCNF,解决方法:将STJ分解为二个关系模式:SJ(S,J)BCNF,TJ(T,J)BCNF没有任何属性对码的部分函数依赖和传递函数依赖,3NF与BCNF的关系,如果关系模式RBCNF,必定有R3NF如果R3NF,且R只有一个候选码,则R必属于BCNF。,BCNF的关系模式所具有的性质,所有非主属性都完全函数依赖于每个候选码;所有主属性都完全函数依赖于每个不包含它的候选码;没有任何属性完全函数依赖于非码的任何一组属性。,2.4关系模式的规范化,一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合,这种分解的过程叫做关系模式的规范化(Normalization)。由于低一级的关系模式分解为若干个高一级关系模式的结果不是惟一的,所以有必要讨论分解后的关系模式与原关系模式“等价”的问题。只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义。,1.关系模式规范化的原则,一个关系模式只要其分量是不可分的数据项,就可称它为规范化的关系,但着只是最基本的规范化。规范化的目的使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。规范化要遵循“一事一地”的基本原则,即一个关系只描述一个实体或者实体间的联系。若多于一个实体,就把它分离出来。因此,所谓规范化,实质上是概念的单一化,即一个关系表示一个实体或一种联系。,1nf2nf3nfBcnf4nf5nf,2.关系模式规范化的步骤,规范化是对原关系进行投影,消除决定属性不是候选码的任何函数依赖。,3.关系模式规范化的要求,关系模式的规范化过程是通过对关系模式的投影分解来实现的,但是投影分解方法不是唯一的,不同的投影分解会得到不同的结果。在这些分解方法中,只有能够保证分解后的关系模式与原关系模式等价的方法才是有意义的。所以有必要讨论分解后的关系模式与原关系模式“等价”的问题。,3.关系模式规范化的要求,一般情况下,我们说没有异常弊病的数据库设计是好的数据库设计,一个不好的关系模式也总是可以通过分解转换成好的关系模式的集合。但是在分解时要全面衡量,综合考虑,视实际情况而定。对于那些只要求查询而不要求插入、删除等操作的系统,几种异常现象的存在并不影响数据库的操作。这时便不宜过度分解,否则当要对整体查询时,需要更多的多表连接操作,这有可能得不偿失。在实际应用中,最有价值的是3NF和BCNF,在进行关系模式的设计时,通常分解到3NF就足够了。,3.关系模式规范化的要求,三种模式分解的“等价”定义分解具有无损连接性:信息不失真(不增减信息)分解要保持函数依赖:不破坏属性间存在的依赖关系。分解既要保持函数依赖,又要具有无损连接性,3.关系模式规范化的要求,(1)无损连接性所谓无损连接性是指,对关系模式分解时,原关系模式下的任一合法关系实例,在分解之后,应能通过自然连接运算恢复起来。无损连接性有时也称为无损分解。无损连接反映了模式分解的数据等价原则。,3.关系模式规范化的要求,例:SL(Sno,Sdept,Sloc)F=SnoSdept,SdeptSloc,SnoSlocSL2NF存在插入异常、删除异常、冗余度大和修改复杂等问题分解方法可以有多种,3.关系模式规范化的要求,SLSnoSdeptSloc95001CSA95002ISB95003MAC95004ISB95005PHB,3.关系模式规范化的要求,1)SL分解为下面三个关系模式:SN(Sno)SD(Sdept)SO(Sloc),分解后的关系为:,SNSDSOSnoSdeptSloc95001CSA95002ISB95003MAC95004PH95005,3.关系模式规范化的要求,分解后的数据库丢失了许多信息例如无法查询95001学生所在系或所在宿舍。如果分解后的关系可以通过自然连接恢复为原来的关系,那么这种分解就没有丢失信息。,3.关系模式规范化的要求,2)SL分解为下面二个关系模式:NL(Sno,Sloc)DL(Sdept,Sloc)分解后的关系为:NLDLSnoSlocSdeptSloc95001ACSA95002BISB95003CMAC95004BPHB95005B,模式的分解(续),NLDLSnoSlocSdept95001ACS95002BIS95002BPH95003CMA95004BIS95004BPH95005BIS95005BPH,模式的分解(续),NLDL比原来的SL关系多了3个元组无法知道95002、95004、95005究竟是哪个系的学生元组增加了,信息丢失了。,3.关系模式规范化的要求,3)将SL分解为下面二个关系模式:ND(Sno,Sdept)NL(Sno,Sloc)分解后的关系为:,模式的分解(续),NDNLSnoSdeptSnoSloc95001CS95001A95002IS95002B95003MA95003C95004IS95004B95005PH95005B,模式的分解(续),NDNLSnoSdeptSloc95001CSA95002ISB95003MAC95004CSA95005PHB与SL关系一样,因此没有丢失信息。,3.关系模式规范化的要求,定义3-7无损连接性(LosslessJoin):设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),RK(UK,FK),其中U=U1U2UK,且不存在UiUj,Fi为F在Ui上的投影,如果R与R1,R2,RK自然连接的结果相等,则称关系模式R的分解具有无损连接性。具有无损连接性的分解保证不丢失信息;无损连接性不一定能解决插入异常、删除异常、修改复杂、数据冗余等问题。,3.关系模式规范化的要求,第三种分解方法具有无损连接性问题:这种分解方法没有保持原关系中的函数依赖SL中的函数依赖SdeptSloc没有投影到关系模式ND、NL上,3.关系模式规范化的要求,定义3-8函数依赖保持性(PreserveDependency):设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),RK(UK,FK),其中U=U1U2UK,且不存在UiUj,Fi为F在Ui上的投影,如果F所蕴含的函数依赖一定也有分解到的某个关系模式中的函数依赖Fi所蕴含,则称关系模式R的分解具有函数依赖保持性。,3.关系模式规范化的要求,当对关系模式R进行分解时,R的函数依赖集也按相应的模式进行分解。如果分解后总的函数依赖集与原函数依赖集保持一致,则称保持依赖。保持依赖反映了模式分解的依赖等价原则。依赖等价保证了分解后的模式与原有的模式在数据语义上的一致性。,3.关系模式规范化的要求,实际上在对模式分解时,除考虑数据等价和依赖等价以外,还要考虑效率。因此保留适量冗余,以达到以空间换时间的目的,这也是模式分解的一个重要原则。,第四种分解方法,将SL分解为下面二个关系模式:ND(Sno,Sdept)DL(Sdept,Sloc)这种分解方法就保持了函数依赖。,3.关系模式规范化的要求,无损连接性和函数依赖保持性是两个相互独立的标准。具有无损连接性的分解不一定具有函数依赖保持性。同样,具有函数依赖保持性的分解不一定具有无损连接性。,模式的分解(续),如果一个分解具有无损连接性,则它能够保证不丢失信息。如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖。同样,保持函数依赖的分解也不一定具有无损连接性。,模式的分解(续),第一种分解方法既不具有无损连接性,也未保持函数依赖,它不是原关系模式的一个等价分解;第二种分解方法保持了函数依赖,但不具有无损连接性;第三种分解方法具有无损连接性,但未持函数依赖;第四种分解方法既具有无损连接性,又保持了函数依赖。,4.关系模式分解的方法,关系模式分解的基础是键码和函数依赖。当我们对关系模式中属性之间的内在联系做了深入、准确的分析,确定了键码和函数依赖后采用下述方法进行分解。,4.关系模式分解的方法,方法一部分依赖归子集;完全依赖随键码要使不属于第二范式的关系模式“升级”,就要消除非主属性对键码的部分函数依赖。解决的方法就是对原有模式进行分解。分解的关键在于:找出对键码部分依赖的非主属性所依赖的键码的真子集,然后把这个真子集与所有相应的非主属性组合成一个新模式;对键码完全依赖的所有非主属性则与键码组合成另一个新模式。,4.关系模式分解的方法,例如,对于教学关系模式:U=学号,姓名,年龄,性别,系名,系主任,课程名,成绩;F=学号姓名,学号年龄,学号性别,学号系名,系名系主任,(学号,课程名)成绩,4.关系模式分解的方法,按照完全函数依赖和部分函数依赖的概念,可以看出成绩完全依赖(学号,课程名);姓名,年龄,性别,系名,系主任函数依赖于学号,而对于(学号,课程名)只是部分依赖。学生-系(学号,姓名,年龄,性别,系名,系主任)选课(学号,课程名,成绩)。,4.关系模式分解的方法,方法二基本依赖为基础,中间属性作桥梁。要使不属于第三范式的关系模式“升级”,就要消除非主属性对键码的传递函数依赖。解决的方法非常简单:以构成传递链的两个基本依赖为基础形成两个新的模式,这样既切断了传递链,又保持了两个基本依赖,同时又有中间属性作为桥梁,跨接两个新的模式,从而实现无损的自然连接。,4.关系模式分解的方法,例如方法一中分解后得到的关系模式学生-系中:U=学号,姓名,年龄,性别,系名,系主任;F=学号姓名,学号年龄,学号性别,学号系名,系名系主任.考查学生_系关系,会发现由于学生_系的关系模式中存在:学号系名,系名系主任。则:学号系主任。由于键码“学号”与非主属性“系主任”之间存在传递函数依赖,所以学生_系3NF。如果对学生_系关系按方法二的要求进行分解,分解后的关系模式为:学生(学号,姓名,年龄,性别,系名);教学系(系名,系主任).显然分解后的各子模式均属于3NF。,4.关系模式分解的方法,在这里强调一点:上面介绍的解决部分函数依赖和传递函数依赖的模式的分解方法均为既具有无损连接性,又具有函数依赖保持性的规范化方法。,小结,在本任务中,我们首先由关系模式的存储异常问题引出了函数依赖的概念,其中包括完全函数依赖、部分函数依赖和传递函数依赖,这些概念是规范化理论的依据和规范化程度的准则。规范化就是对原关系进行投影,消除决定属性不是候选键的任何函数依赖。一个关系只要其分量都是不可分的数据项,就可称作规范化的关系,也称作1NF。消除1NF关系中非主属性对键的部分函数依赖,得到2NF,消除2NF关系中非主属性对键的传递函数依赖,得到3NF。在规范化过程中,逐渐消除存储异常,使数据冗余尽量小,便于插入、删除和更新。规范化的基本原则就是遵从概念单一化“一事一地”的原则,即一个关系只描述一个实体或者实体间的联系。规范化的投影分解方法不是唯一的,对于3NF的规范化,分解既要具有无损连接性,又要具有函数依赖保持性。,小结,在关系模式中,并非所有关系的存储质量都是一样的。规范化是把存储质量不太“好”的关系,转化为质量较“好”的关系的过程。函数依赖是属性间的联系。在同一关系中,如果X的值决定Y的值,则Y函数依赖于X,决定因素是位于函数依赖左边的由一个或多个元素组成的属性组。码是能唯一标识一个元组的包含一个或多个属性的属性组,每个关系至少有一个码。,在极端情况下,码是关系中的所有属性构成的集合。码总是唯一的,但函数依赖中的决定因素则不一定。属性是否是码以及属性间的依赖关系是没有规则可言的,而是决定于用户环境的需要和数据库设计人员的理解。为了减少数据冗余和消除更新异常,可以把一个关系分解成两个或多个关系。使它们达到一定的范式。根据定义,每一个规范化的关系都在第一范式中。,如果一个关系的所有非主属性都依赖于整个码,则该关系在第二范式中。如果一个关系在第二范式中,且没有非主属性对码的传递依赖,则该关系在第三范式中。如果一个关系的所有决定因素都是候选码,则该关系在BC范式中。在函数依赖讨论范围内,BC范式是最高范式。,关系的规范化程度并非是越高越好。当一个表分解为两个或多个表时,就产生了表间的关联约束(通过外部码实现)。如果处理两个表及其关联约束的额外费用超过了避免更新异常所带来的好处,则不推荐使用规范化技术。,小结,小结,规范化理论为数据库设计提供了理论的指南和工具也仅仅是指南和工具并不是规范化程度越高,模式就越好必须结合应用环境和现实世界的具体情况合理地选择数据库模式,作业,现在要建立关于系、学生、班级、学会诸信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;描述班级的属性有:班号、专业名、系名、人数、入校年份;描述系的属性有:系名、系号、系办公室地点、人数;描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!