关系范式规范化理论.ppt_第1页
关系范式规范化理论.ppt_第2页
关系范式规范化理论.ppt_第3页
关系范式规范化理论.ppt_第4页
关系范式规范化理论.ppt_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,第三章关系数据库规范化理论,2,1.关系代数,概述传统的集合运算专门的关系运算,3,概述,1.关系代数:,一种抽象的查询语言,用对关系的运算来表达查询,3.关系代数运算的三个要素:,2.运算的三要素:,运算对象,运算符,运算结果,4.关系代数运算的分类:,运算对象关系,运算结果关系,运算符四类,传统的集合运算并、差、交、广义笛卡尔积专门的关系运算选择、投影、连接、除,4,表1关系代数运算符,5,1.1关系代数,概述传统的集合运算专门的关系运算,6,1.并(Union),设关系R和S:具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:1)关系R和S的并记为:RS=t|tRtS结果仍为n目关系,由属于R或者属于S的元组组成,7,并(续),R,S,RS,8,2.差(Difference),设关系R和S:具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:2)关系R和S的差记为:R-S=t|tRtS结果仍为n目关系,由属于R而不属于S的元组组成,9,差(续),R,S,R-S,10,3.交(Intersection),设关系R和S:具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域则:3)关系R和S的交记为:RS=t|tRtS用差表示:RS=R(R-S)仍为n目关系,由既属于R又属于S的元组组成,11,交(续),R,S,RS,12,4.广义笛卡尔积(ExtendedCartesianProduct),有2个关系R和S,若关系R:n目关系(有n个属性),有k1个元组关系S:m目关系(有m个属性),有k2个元组则:关系R和S的广义笛卡尔积记作:RS=trts|trRtsS共有k1k2个元组(行),每个元组有nm列:前n列是关系R的一个元组后m列是关系S的一个元组,13,广义笛卡尔积(续),R,S,RS,14,1.2专门的关系运算,概述传统的集合运算专门的关系运算,15,常用的几个记号,(1)R,tR,tAi设关系模式为R(A1,A2,An),它的一个关系设为R。tR表示t是R的一个元组,tAi则表示元组t中相应于属性Ai的一个分量,关系R:学生(学号,姓名,性别,院系)R的一个元组t:(1001,李明,男,信息学院)tA1表示分量1001,tA2表示分量李明,16,常用的几个记号,(2)A,tA,A,若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列;,tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。,17,例如:,R的一个元组t:(1001,李明,男,信息学院)tA=(1001,李明),18,常用的几个记号,R为n目关系,S为m目关系,trR,tsS,称为元组的连接。,它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。(R和S的广义笛卡尔积),19,R,S,20,1.选择(Selection),选择:指的是在关系R中选择满足给定条件的元组,记作:F(R)=t|tRF(t)=真这里,F是逻辑表达式。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。是从行的角度进行的运算:,21,选择(续),举例设有一个学生-课程数据库,包括:学生关系Student课程关系Course选修关系SC,22,选择(续),(a)Student,23,选择(续),(b)Course,24,选择(续),(c)SC,25,选择(续),例1查询信息系(IS系)全体学生,Sdept=IS(Student)或5=IS(Student)结果:,26,选择(续),例2查询年龄小于20岁的学生。,Sage20(Student)或4Sdept,类似于函数,自变量x确定后,函数值f(x)也确定了。,五、数据依赖对关系模式的影响,例:描述学校及其学生的数据库:,学生的学号(Sno)、所在系(Sdept)系主任姓名(Mname)、课程名(Cname)成绩(Grade),USno,Sdept,Mname,Cname,Grade,三元组的关系模式:S(U,F),数据依赖对关系模式的影响(续),由于该数据库中存在以下情况:,一个系有若干学生,一个学生只属于一个系一个系只有一名主任(正主任)一个学生可以选修多门课程,每门课程有若干学生选修每个学生所学的每门课程都有一个成绩。,数据依赖对关系模式的影响(续),得到属性组U上的一组函数依赖F:,FSnoSdept,SdeptMname,(Sno,Cname)Grade,关系模式S中存在的问题,1.数据冗余太大在每个学生元组中,系主任姓名重复出现浪费大量存储空间,2.插入异常如果一个系刚成立尚无学生(没有Sno),就无法把这个系及其系主任的信息存入数据库,另外,如果某个系的系主任换人了,就要更改每个学生的元组,维护代价很大,3.删除异常如果某个系的学生全部毕业了,Sno将被全部删除,同时也把该系及系主任的资料删除了,数据依赖对关系模式的影响(续),结论:,关系模式S不是一个好的模式,因为某些属性之间存在着一些数据依赖关系,解决方法:通过分解关系模式来消除其中不合适的数据依赖。,一个好的模式:不会发生插入异常、删除异常,数据冗余应尽可能少。,数据依赖对关系模式的影响(续),解决方法如下:,把关系模式S分解为3个关系模式:,S(Sno,Sdept,SnoSdept);,SG(Sno,Cname,Grade,(Sno,Cname)Grade);,Dept(Sdept,Mname,SdeptMname),2.2规范化,规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常,和数据冗余问题。,规范化:通过分析关系(关系模式)中存在的弱点,将该关系分解为若干个高一级的关系。,范式:关系规范化的程度称为范式,1NF,2NF,3NF,BCNF,2.3函数依赖,一、函数依赖二、平凡函数依赖与非平凡函数依赖三、完全函数依赖与部分函数依赖四、传递函数依赖,一、函数依赖,定义2.1设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作XY。,一、函数依赖,例如:学生(Sno,Sname,Sdept,Sage),由于在所有的元组中,Sno都是唯一的,因此,Sno函数确定Sname和Sdept。,如果规定Sname不能重复,那么在所有的元组中Sname也都是唯一的,可以说,Sname函数确定Sdept,或者说,Sdept函数依赖于Sname记作:SnameSdept,或者说,Sname和Sdept函数依赖于Sno,SnoSname,SnoSdept,几个术语和符号,如果XY,则X叫做决定因素(Determinant),如果XY,YX,则记作:XY,如果Y不函数依赖于X,则记作:XY,二、平凡函数依赖与非平凡函数依赖,如果XY,但YX,则称XY是非平凡的函数依赖,如果XY,但YX,则称XY是平凡的函数依赖,例:在关系SC(Sno,Cno,Grade)中,,非平凡函数依赖:(Sno,Cno)Grade,平凡函数依赖:(Sno,Cno)Sno,(Sno,Cno)Cno,三、完全函数依赖与部分函数依赖,定义2.2在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y完全函数依赖于X,记作:XFY若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作:XPY,三、完全函数依赖与部分函数依赖,例:在关系SC(Sno,Cno,Grade)中,用X表示(Sno,Cno),用Y表示Grade,那么,(Sno,Cno)Grade但是SnoGrade,CnoGrade,因此(Sno,Cno)FGrade,四、传递函数依赖,定义2.3在关系模式R(U)中,如果XY,YZ,且YX,YX,则称Z传递函数依赖于X。注:如果YX,即XY,则称Z直接函数依赖于X。例:在关系Std(Sno,Sdept,Mname)中,有:SnoSdept,SdeptSno,SdeptMnameMname传递函数依赖于Sno,2.4码,定义2.4设K为关系模式R中的属性或属性组合。若KU,则K称为R的一个侯选码(CandidateKey)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primarykey)。主属性与非主属性全码(ALLKEY),外部码,定义2.5关系模式R中的属性或属性组X不是R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreignkey)也称外码。,主码和外部码一起提供了表示关系间联系的手段,SC(Sno,Cno,Grade)Student(Sno,Sname,Sdept,Sage)Course(Cno,Cname,Cpno,Ccredit),2.5范式,关系数据库中的关系必须满足一定的要求。把满足不同程度要求的关系称为不同的范式。,范式的种类,2.5范式,各种范式之间存在联系:,若某一关系模式R为第n范式,可简记为RnNF例:R1NF,R3NF,2.61NF的定义,1NF的定义如果一个关系模式R的所有属性都是不可再分的基本数据项,则R1NF。,第一范式是对关系模式的最起码的要求。不满足第一范式的数据库不能称为关系数据库,但是满足第一范式的关系模式并不一定是一个好的关系模式。,例:SLC(Sno,Cno,Sdept,Sloc,Grade)1NF,2.61NF的定义,例:SLC(Sno,Sdept,Sloc,Cno,Grade)1NF码为(Sno,Cno),函数依赖如下:,SnoSdept(Sno,Cno)FGradeSnoSloc(Sno,Cno)PSdeptSnoSloc(Sno,Cno)PSlocSdeptSloc,2.61NF的定义,SLC(Sno,Cno,Sdept,Sloc,Grade)1NF,但其中存在很多问题:,1.插入异常一个新生刚报道,学号是2004100,在信息系,住在5楼,但是他还没有选课,即没有Cno属性。由于码(Sno,Cno)不存在,就不能把该学生的信息插入数据库。,2.删除异常学生2004101只选了一门课C1,现在又退选了,那么就要删除C1属性,由于C1是主属性,就必须把C1所在元组全部删除。因此,学生2004101的其他信息也被删除了。,2.61NF的定义,3.修改复杂学生2004100从信息系转到了数学系(MA),只需修改Sdept即可。但是,由于SdeptSloc,同时要修改Sloc属性,即将学生改变住处。另外,如果该学生选了10门课,那么就要把这10个元组中的Sdept和Sloc全部修改,使得修改操作复杂,而且容易出错。,因此SLC(Sno,Sdept,Sloc,Cno,Grade)1NF是不够的,必须进一步规范化。,2.62NF的定义,定义2.6若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码,则R2NF。,例:SLC(Sno,Cno,Sdept,Sloc,Grade)1NF,例:SLC(Sno,Cno,Sdept,Sloc,Grade)2NF,因为:,非主属性Sdept部分依赖于码,模式分解,将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余,通过模式分解,将一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合,这个过程称为规范化。,将SLC(Sno,Sdept,Sloc,Cno,Grade)分解:,2.7第三范式3NF,3NF的定义定义2.7关系模式R中若不存在这样的码X、属性组Y及非主属性Z(ZY),使得XY(YX),YZ,成立,则称R3NF,即:若R1NF,并且每个非主属性都不传递依赖于R的码,则R3NF,若R3NF,则在R中不存在非主属性对码的传递依赖和部分函数依赖。,2.73NF,例,SL(Sno,Sdept,Sloc)2NF1)由于SnoSdept,SdeptSloc,即存在非主属性Sloc对码Sno的传递依赖,因此,SL(Sno,Sdept,Sloc)3NF,2)一个关系模式若不属于3NF,同样会出现很多问题,因此将SL分解为2个3NF的关系模式:SD(Sno,Sdept)3NFDL(Sdept,Sloc)3NF,规范化理论小结,关系模式规范化的基本步骤1NF消除非主属性对码的部分函数依赖消除决定属性2NF集非码的非平消除非主属性对码的传递函数依赖凡函数依赖3NF消除主属性对码的部分和传递函数依赖BCNF,第三章小结,1.掌握以下概念:关系,关系模式,关系数据库,数据库模式,码,外码,主属性,非主属性,范式,规范化关系模式的五元组和三元组表示方法2.掌握函数依赖的有关内容:函数依赖的定义,平凡函数依赖与非平凡函数依赖,完全函数依赖与部分函数依赖,传递函数依赖3.掌握范式有关内容:1NF,2NF,3NF,BCNF的定义及其特点1NF2NF,2NF3NF的转化,关系模式分解的标准,三种模式分解的等价定义分解具有无损连接性分解要保持函数依赖分解既要保持函数依赖,又要具有无损连接性,模式的分解(续),例:SL(Sno,Sdept,Sloc)F=SnoSdept,SdeptSloc,SnoSlocSL2NF存在插入异常、删除异常、冗余度大和修改复杂等问题分解方法可以有多种,模式的分解(续),SLSnoSdeptSloc95001CSA95002ISB95003MAC95004ISB95005PHB,模式的分解(续),1.SL分解为下面三个关系模式:SN(Sno)SD(Sdept)SO(Sloc),分解后的关系为:,SNSDSOSnoSdeptSloc95001CSA95002ISB95003MAC95004PH95005,模式的分解(续),分解后的数据库丢失了许多信息例如无法查询95001学生所在系或所在宿舍。如果分解后的关系可以通过自然连接恢复为原来的关系,那么这种分解就没有丢失信息,模式的分解(续),2.SL分解为下面二个关系模式:NL(Sno,Sloc)DL(Sdept,Sloc)分解后的关系为:NLDLSnoSlocSdeptSloc95001ACSA95002BISB95003CMAC95004BPHB95005B,模式的分解(续),NLDLSnoSlocSdept95001ACS95002BIS95002BPH95003CMA95004BIS95004BPH95005BIS95005BPH,模式的分解(续),NLDL比原来的SL关系多了3个元组无法知道95002、95004、95005究竟是哪个系的学生元组增加了,信息丢失了,第三种分解方法,3.将SL分解为下面二个关系模式:ND(Sno,Sdept)NL(Sno,Sloc)分解后的关系为:,模式的分解(续),NDNLSnoSdeptSnoSloc95001CS95001A95002IS95002B95003MA95003C95004IS95004B95005PH95005B,模式的分解(续),NDN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论