第六章数据库规范化理论

上传人:仙*** 文档编号:191774859 上传时间:2023-03-04 格式:PPT 页数:35 大小:2.15MB
返回 下载 相关 举报
第六章数据库规范化理论_第1页
第1页 / 共35页
第六章数据库规范化理论_第2页
第2页 / 共35页
第六章数据库规范化理论_第3页
第3页 / 共35页
点击查看更多>>
资源描述
An Introduction to Database Systems 2011-08-24数据库系统概论数据库系统概论 An Introduction to Database Systems内蒙古大学鄂尔多斯学院内蒙古大学鄂尔多斯学院戴琼洁戴琼洁 An Introduction to Database Systems An Introduction to Database Systems 本章讲述本章讲述关系数据库规范化理论关系数据库规范化理论,这是数据库逻辑设计的,这是数据库逻辑设计的理论依据。理论依据。要求了解规范化理论的研究动机及其在数据库设计中的作用掌握函数依赖的有关概念第一范式、第二范式、第三范式和BC范式的定义重点掌握并能够灵活运用关系模式规范化的方法和关系模式分解的方法,这也是本章的难点An Introduction to Database Systems 数数据据库库表(关系)表(关系)属性属性属性1属性n属性2An Introduction to Database Systems 要求设计一个学校教务管理数据库,学校的实际情况如下:要求设计一个学校教务管理数据库,学校的实际情况如下:1.一个系有若干个学生,但一个学生只属于一个系;2.一个系只有一名系主任,但一个系主任可以同时兼几个系的系主任;3.一个学生可以选修多门功课,每门课程可有若干学生选修;4.每个学生学习课程有一个成绩。An Introduction to Database Systems 其中有一位同学呢设计的数据库模式其中有一位同学呢设计的数据库模式SCDSCD如下:如下:SCD(SCD(SNOSNO,SNAME,AGE,DEPT,MN,SNAME,AGE,DEPT,MN,CNOCNO,SCORE),SCORE)SNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C170S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C7 70S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193An Introduction to Database Systems 1.1.数据冗余数据冗余 每个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,数据的冗余度很大,浪费了存储空间。SNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C7 70S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193An Introduction to Database Systems 2.2.插入异常插入异常 当某个学生尚未选课,则学生信息不能插入。因为在这个关系模式中,(SNO,CNO)是主关系键 即CNO未知,实体完整性约束还规定,主关系键的值不能部分为空,同样不能进行插入操作。SNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C7 70S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193An Introduction to Database Systems 3.3.删除异常删除异常 某系学生全部毕业而没有招生时,删除全部学生的记录则系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。SNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C7 70S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193An Introduction to Database Systems 4.4.更新异常更新异常如果学生改名,则该学生的所有记录都要逐一修改SN;如某系更换系主任,则属于该系的学生记录都要修改MN的内容,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据的完整性。SNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C7 70S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193An Introduction to Database Systems 由于存在以上问题,由于存在以上问题,SCDSCD是一个不好的关系模式是一个不好的关系模式。关系的规范化:关系的规范化:如何按照一定的规范设计关系模式,将结构复杂的关系如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式。数据库模式。什么样的关系模式是一个好的关系模式?什么样的关系模式是一个好的关系模式?如何将不好的关系模式转换为好的关系模式?如何将不好的关系模式转换为好的关系模式?An Introduction to Database Systems 关系数据库的规范化理论主要包括三个方面的内容:关系数据库的规范化理论主要包括三个方面的内容:函数依赖范式(Normal Form)模式设计An Introduction to Database Systems 1.1.函数依赖函数依赖关系模式中的各属性之间相互依赖、相互制约的联系称为关系模式中的各属性之间相互依赖、相互制约的联系称为数据依赖。数据依赖。数据依赖一般分为数据依赖一般分为:函数依赖函数依赖 多值依赖多值依赖 连接依赖连接依赖 其中其中,函数依赖函数依赖是最重要的数据依赖。是最重要的数据依赖。函数依赖(函数依赖(Functional DependencyFunctional Dependency)是关系模式中属性之间的)是关系模式中属性之间的一种一种逻辑依赖关系逻辑依赖关系。An Introduction to Database Systems 定义定义6.1 6.1 函数依赖的形式化定义函数依赖的形式化定义 设设R(U)R(U)是一个属性集是一个属性集U U上的关系模式,上的关系模式,X X和和Y Y是是U U的子集。若对于的子集。若对于R(U)R(U)的任意一个可能的关系的任意一个可能的关系r r,r r中不可能存在两个元组在中不可能存在两个元组在X X上的属上的属性值相等,性值相等,而在而在Y Y上的属性值不等,上的属性值不等,则称则称“X X函数确定函数确定Y”Y”或或 “Y Y函数依赖于函数依赖于X”X”,记作,记作XYXY。例:例:学号学号姓名姓名 (学号学号,课名课名)分数分数函数依赖仅仅是语义范畴的概念函数依赖仅仅是语义范畴的概念,只能根据其语义确定属性之间的函数只能根据其语义确定属性之间的函数依赖。依赖。An Introduction to Database Systems 术语和记号术语和记号 非平凡的函数依赖非平凡的函数依赖:若若XY,但但YX,则称则称XY为非平凡函数依赖。为非平凡函数依赖。平凡的函数依赖平凡的函数依赖:若若XY,但但YX,则称则称XY为平凡函数依赖。为平凡函数依赖。例:在关系例:在关系SC(Sno,Cno,Grade)中,中,非平凡函数依赖:非平凡函数依赖:(Sno,Cno)Grade 平凡函数依赖:平凡函数依赖:(Sno,Cno)Sno (Sno,Cno)Cno 决定因子决定因子:若若XY,则则X叫做决定因子。叫做决定因子。互相依赖:互相依赖:若若XY,且且YX,则称互相依赖则称互相依赖,记作记作YX。不依赖不依赖:若若Y不依赖于不依赖于X,则记作则记作XY.An Introduction to Database Systems 定义定义6.2 6.2 完全依赖和部分依赖完全依赖和部分依赖 在在R(U)中中,如果如果XY,并且对于并且对于X的任何一个真子集的任何一个真子集X,都有都有XY,则则称称Y对对X完全函数依赖完全函数依赖,记作:记作:X Y Full 若若XY,但但Y不完全函数依赖于不完全函数依赖于X,则称则称Y对对X部分函数依赖部分函数依赖,记作记作 X Y Part例:例:(Sno,CnoSno,Cno)Grade)Grade是完全函数依赖,是完全函数依赖,(Sno,CnoSno,Cno)SdeptSdept是部分函数依赖是部分函数依赖 因为因为SnoSno SdeptSdept成立,且成立,且SnoSno是(是(SnoSno,CnoCno)的真子集。)的真子集。FPAn Introduction to Database Systems 定义定义6.3 6.3 传递函数依赖传递函数依赖 在在R(U)R(U)中,如果中,如果XYXY,(Y(Y X),YX YZX),YX YZ,则称则称Z Z对对X X传递传递函数依赖。函数依赖。记为:记为:X ZX Z 注注:如果加上条件如果加上条件YXYX,即即XYXY,则,则Z Z直接依赖于直接依赖于X X。例例:在关系在关系Std(SnoStd(Sno,SdeptSdept,MnameMname)中,有:中,有:SnoSno SdeptSdept,SdeptSdept MnameMname MnameMname传递函数依赖于传递函数依赖于SnoSnoAn Introduction to Database Systems 例例:关系模式关系模式 S-L-S-L-C(SnoC(Sno,SdeptSdept,SlocSloc,CnoCno,Grade),Grade),SlocSloc为学为学生住处,假设每个系的学生住在同一个地方生住处,假设每个系的学生住在同一个地方 请分析分析关系模式请分析分析关系模式S-L-CS-L-C的函数依赖的函数依赖An Introduction to Database Systems 例例:关系模式关系模式 S-L-S-L-C(SnoC(Sno,SdeptSdept,SlocSloc,CnoCno,Grade),Grade)Sloc为学生住处,假设每个系的学生住在同一个地方 关系模式关系模式S-L-CS-L-C的函数依赖的函数依赖 (SnoSno,CnoCno)Grade )Grade SnoSno SdeptSdept (SnoSno,CnoCno)SdeptSdept SnoSno SlocSloc (SnoSno,Cno)Cno)SlocSloc SdeptSdept SlocSlocPFPSnoCnoGradeSdeptSlocS-L-CAn Introduction to Database Systems 2.2.范式范式我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为范式(Normal Form)。由于规范化的程度不同,就产生了不同的范式。从1971年起,Codd相继提出了关系的三级规范化形式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。1974年,Codd和Boyce以共同提出了一个新的范式的概念,即Boyce-Codd范式,简称BC范式。1976年Fagin提出了第四范式,后来又有人定义了第五范式 An Introduction to Database Systems 至此在关系数据库规范中建立了一个范式系列各个范式之间的联系可至此在关系数据库规范中建立了一个范式系列各个范式之间的联系可以表示为:以表示为:5NF4NFBCNF3NF2NF1NF 一级比一级有更严格的要求。一级比一级有更严格的要求。若某一关系满足第n范式,我们可以称某一关 系模式R为第n范式,可简记为RnNFRnNF。一个低一级范式的关系模式,通过模式分解模式分解 可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化规范化。5NF5NF规范化理论范式4NF3NF2NF1NFBCNF5NFAn Introduction to Database Systems(1 1)第一范式)第一范式 (1NF1NF)第一范式(First Normal Form)是最基本的规范形式,即关系中每个属性都是不可再分的简单项。定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NFR1NF。第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。但是满足第一范式的关系模式并不一定是一个好的关系模式。An Introduction to Database Systems 数据库模式数据库模式SCDSCD如下:如下:SCD(SCD(SNOSNO,SNAME,AGE,DEPT,MN,SNAME,AGE,DEPT,MN,CNOCNO,SCORE),SCORE)SNOSNAGEDEPTMNCNOSCORES1赵亦17计算机刘伟C170S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C7 70S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193An Introduction to Database Systems(2 2)第二范式)第二范式 (2NF2NF)若若R1NFR1NF,且每一,且每一个个非主属性非主属性完全完全函数依赖于码,则函数依赖于码,则R2NFR2NF。An Introduction to Database Systems 例例:关系模式关系模式 S-L-S-L-C(SnoC(Sno,SdeptSdept,SlocSloc,CnoCno,Grade),Grade)Sloc为学生住处,假设每个系的学生住在同一个地方 关系模式关系模式S-L-CS-L-C的函数依赖的函数依赖 (SnoSno,CnoCno)Grade )Grade SnoSno SdeptSdept (SnoSno,CnoCno)SdeptSdept SnoSno SlocSloc (SnoSno,Cno)Cno)SlocSloc SdeptSdept SlocSlocPFPSnoCnoGradeSdeptSlocS-L-CAn Introduction to Database Systems(1)(1)插入异常插入异常(2)(2)删除异常删除异常(3)(3)数据冗余度大数据冗余度大(4)(4)修改复杂修改复杂解决方法解决方法 S-L-C分解为两个关系模式,消除部分函数依赖 SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)An Introduction to Database Systems 函数依赖图函数依赖图关系模式SC的码为(Sno,Cno)关系模式S-L的码为Sno这样非主属性对码都是完全函数依赖 SnoCnoGradeSCS-LSnoSdeptSlocAn Introduction to Database Systems S-L-S-L-C(SnoC(Sno,SdeptSdept,SlocSloc,CnoCno,Grade)1NF,Grade)1NF S-L-S-L-C(SnoC(Sno,SdeptSdept,SlocSloc,CnoCno,Grade)2NF,Grade)2NF SC SC (SnoSno,CnoCno,GradeGrade)2NF2NF S-L S-L(SnoSno,SdeptSdept,SlocSloc)2NF2NF采用投影分解法将一个采用投影分解法将一个1NF1NF的关系分解为多个的关系分解为多个2NF2NF的关系,可以在的关系,可以在一定一定程度上程度上减轻原减轻原1NF1NF关系中存在的插入异常、删除异常、数据冗余度大、关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。修改复杂等问题。An Introduction to Database Systems(3)第三范式第三范式(3NF)定义定义:若若R中不存在这样的码中不存在这样的码X,属性组属性组Y及非主属性及非主属性Z(ZY),使得使得XY,YZ,XZ成立成立,则称则称R3NF.消除非主属性对码的传递函数依赖消除非主属性对码的传递函数依赖.分析分析S-S-L(SnoL(Sno,SdeptSdept,SlocSloc)S-L 3NF存在的问题存在的问题插入异常,删除异常,修改异常,冗余度大解决办法:解决办法:模式分解模式分解S-LSnoSdeptSlocAn Introduction to Database Systems 分解结果分解结果采用投影分解法,把采用投影分解法,把S-LS-L分解为两个关系模式,以消除传递函数依赖:分解为两个关系模式,以消除传递函数依赖:S-DS-D(SnoSno,SdeptSdept)D-LD-L(SdeptSdept,SlocSloc)S-DS-D的码为的码为SnoSno,D-LD-L的码为的码为SdeptSdept。分解后的关系模式分解后的关系模式S-DS-D与与D-LD-L中不再存在传递依赖中不再存在传递依赖 An Introduction to Database Systems STJ(S,T,J)其中:其中:S:学生学生,T:教师教师,J:课程课程每个教师只教一门课每个教师只教一门课,每门课有若干个教师每门课有若干个教师.某一学生选修了某门课程某一学生选修了某门课程,就对应一个固定的教师就对应一个固定的教师.请分析分析函数依赖关系?请分析分析函数依赖关系?An Introduction to Database Systems(3)BCNF BCNF是由是由Boyce和和Codd提出来的提出来的,也叫修正的也叫修正的3NF.定义定义:消除主属性对码的部分依赖和传递依赖消除主属性对码的部分依赖和传递依赖.关系模式关系模式R属于属于1NF,XY且且YX时时,X必含有码必含有码,则则RBCNF.等价于:等价于:BCNF要求每一个决定因素都包含码要求每一个决定因素都包含码.若若RBCNF,则:则:所有非主属性对每一个码都完全函数依赖;所有主属性对每一个不包含它的码,也完全函数依赖;没有任何属性完全函数依赖于非码的任何一组属性.An Introduction to Database Systems 例:例:不属于不属于BCNFBCNF的例子的例子STJ(S,T,J)其中:其中:S:学生学生,T:教师教师,J:课程课程每个教师只教一门课每个教师只教一门课,每门课有若干个教师每门课有若干个教师.某一学生选修了某门课程某一学生选修了某门课程,就对应一个固定的教师就对应一个固定的教师.由语义可得下列函数依赖:由语义可得下列函数依赖:TJ;(;(S,J)T;(;(S,T)J侯选码:侯选码:(S,T)和和(S,J)主属性:主属性:S,T,JSTJ3NF由于由于J只依赖于只依赖于T即可:即可:TJ;而而T本身不是决定因素本身不是决定因素,所以所以J部分函数依部分函数依赖于码赖于码(S,T),故故STJ BCNF.An Introduction to Database Systems 例:例:属于属于BCNF的例子的例子SJP(S,J,P)其中:其中:S:学生学生,J:课程课程,P:名次名次每个学生选修每门课程的成绩有一定的名次每个学生选修每门课程的成绩有一定的名次.每门课程中的每一个名次只有一个学生每门课程中的每一个名次只有一个学生(无并列名次无并列名次).由语义可得到下面的函数依赖:由语义可得到下面的函数依赖:(S,J)P;(J,P)S(S,J)和和(J,P)都是都是侯选码侯选码.S,J和和P都是都是主属性,主属性,故故SJP3NF.此例无主属性对码的部分和传递函数依赖此例无主属性对码的部分和传递函数依赖,故故SJPBCNFAn Introduction to Database Systems 分解方法:模式分解分解方法:模式分解
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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