资源描述
AnIntroductiontoDatabaseSystem数据库系统概论数据库系统概论AnIntroductiontoDatabaseSystem第六第六章章 关系数据理论关系数据理论AnIntroductiontoDatabaseSystemv基于某个数据库管理系统设计数据库,如何基于基于某个数据库管理系统设计数据库,如何基于数据库系统编程数据库系统编程n第第6章章关系数据理论关系数据理论n第第7章章数据库设计数据库设计n第第8章章数据库编程数据库编程第二篇第二篇 设计与应用开发篇设计与应用开发篇AnIntroductiontoDatabaseSystem第六章第六章关系数据理论关系数据理论6.1问题的提出问题的提出6.2规范化规范化6.3数据依赖的公理系统数据依赖的公理系统*6.4模式的分解模式的分解6.5小结小结AnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem6.1问题的提出问题的提出关系数据库逻辑设计关系数据库逻辑设计n针对具体问题,如何构造一个适合于它的数据模式针对具体问题,如何构造一个适合于它的数据模式n数据库逻辑设计的工具数据库逻辑设计的工具关系数据库的规范化理论关系数据库的规范化理论AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v关系模式由五部分组成,是一个五元组:关系模式由五部分组成,是一个五元组:R(U,D,DOM,F)n关系名关系名R是符号化的元组语义是符号化的元组语义nU为一组属性为一组属性nD为属性组为属性组U中的属性所来自的域中的属性所来自的域nDOM为属性到域的映射为属性到域的映射nF为属性组为属性组U上的一组数据依赖上的一组数据依赖AnIntroductiontoDatabaseSystem问题的提出(续)问题的提出(续)n由于由于D、DOM与模式设计关系不大,因此在本章中把与模式设计关系不大,因此在本章中把关系模式看作一个三元组:关系模式看作一个三元组:Rn当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为关系模式称为关系模式R的一个关系的一个关系n作为二维表,关系要符合一个最基本的条件:每个分作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(模式就属于第一范式(1NF)AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v数据依赖数据依赖n是一个关系内部属性与属性之间的一种约束关系是一个关系内部属性与属性之间的一种约束关系l通过属性间值的相等与否体现出来的数据间相互联系通过属性间值的相等与否体现出来的数据间相互联系n是现实世界属性间相互联系的抽象是现实世界属性间相互联系的抽象n是数据内在的性质是数据内在的性质n是语义的体现是语义的体现AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v数据依赖的主要类型数据依赖的主要类型n函数依赖(函数依赖(FunctionalDependency,简记为,简记为FD)n多值依赖(多值依赖(Multi-ValuedDependency,简记为,简记为MVD)AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v函数依赖普遍存在于现实生活中函数依赖普遍存在于现实生活中n描述一个学生关系,可以有学号、姓名、系名等属性。描述一个学生关系,可以有学号、姓名、系名等属性。l一个学号只对应一个学生,一个学生只在一个系中学习一个学号只对应一个学生,一个学生只在一个系中学习l“学号学号”值确定后,学生的姓名及所在系的值就被唯一确值确定后,学生的姓名及所在系的值就被唯一确定。定。nSname=f(Sno),Sdept=f(Sno)l即即Sno函数决定函数决定SnamelSno函数决定函数决定Sdeptl记作记作SnoSname,SnoSdeptAnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v例例6.1建立一个描述学校教务的数据库。建立一个描述学校教务的数据库。涉及的对象包括:涉及的对象包括:n学生的学号(学生的学号(Sno)n所在系(所在系(Sdept)n系主任姓名(系主任姓名(Mname)n课程号(课程号(Cno)n成绩(成绩(Grade)AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)n假设学校教务的数据库模式用一个单一的关系模式假设学校教务的数据库模式用一个单一的关系模式Student来表示,则该关系模式的属性集合为:来表示,则该关系模式的属性集合为:USno,Sdept,Mname,Cno,Graden现实世界的已知事实(语义):现实世界的已知事实(语义):l一个系有若干学生,一个系有若干学生,但一个学生只属于一个系;但一个学生只属于一个系;l一个系只有一名(正职)负责人;一个系只有一名(正职)负责人;l一个学生可以选修多门课程,每门课程有若干学生选修;一个学生可以选修多门课程,每门课程有若干学生选修;l每个学生学习每一门课程有一个成绩。每个学生学习每一门课程有一个成绩。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)n由此可得到属性组由此可得到属性组U上的一组函数依赖上的一组函数依赖F:F=SnoSdept,SdeptMname,(Sno,Cno)GradeSnoCnoSdeptMnameGradeAnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)关系模式关系模式Student中存在的问题:中存在的问题:(1)数据冗余)数据冗余n浪费大量的存储空间浪费大量的存储空间l每一个系主任的姓名重复出现,重复次数与该系所有学每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。生的所有课程成绩出现次数相同。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)(2)更新异常()更新异常(UpdateAnomalies)n数据冗余数据冗余,更新数据时,维护数据完整性代价大。更新数据时,维护数据完整性代价大。l某系更换系主任后,必须修改与该系学生有关的每一个某系更换系主任后,必须修改与该系学生有关的每一个元组。元组。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)(3)插入异常()插入异常(InsertionAnomalies)n如果一个系刚成立,尚无学生,则无法把这个系及其如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信息存入数据库。系主任的信息存入数据库。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)(4)删除异常()删除异常(DeletionAnomalies)n如果某个系的学生全部毕业了,如果某个系的学生全部毕业了,则在删除该系学生信则在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。息的同时,把这个系及其系主任的信息也丢掉了。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v结论结论nStudent关系模式不是一个好的模式。关系模式不是一个好的模式。n一个一个“好好”的模式应当不会发生插入异常、删除异常和更的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少。新异常,数据冗余应尽可能少。v原因原因n由存在于模式中的某些数据依赖引起的。由存在于模式中的某些数据依赖引起的。v解决方法解决方法n用规范化理论改造关系模式来消除其中不合适的数据依赖用规范化理论改造关系模式来消除其中不合适的数据依赖AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v把这个单一的模式分成三个关系模式:把这个单一的模式分成三个关系模式:nS(Sno,Sdept,SnoSdept);nSC(Sno,Cno,Grade,(Sno,Cno)Grade);nDEPT(Sdept,Mname,SdeptMname);v这三个模式都不会发生插入异常、删除异常的问这三个模式都不会发生插入异常、删除异常的问题,数据的冗余也得到了控制。题,数据的冗余也得到了控制。AnIntroductiontoDatabaseSystem第六章第六章关系数据理论关系数据理论6.1问题的提出问题的提出6.2规范化规范化6.3数据依赖的公理系统数据依赖的公理系统*6.4模式的分解模式的分解6.5小结小结AnIntroductiontoDatabaseSystem6.2规范化规范化6.2.1函数依赖函数依赖6.2.2码码6.2.3范式范式6.2.42NF6.2.53NF6.2.6BCNF6.2.7多值依赖多值依赖6.2.84NF6.2.9规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.1函数依赖函数依赖1.函数依赖函数依赖2.平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖3.完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖4.传递函数依赖传递函数依赖AnIntroductiontoDatabaseSystem*1.函数依赖函数依赖v定义定义6.1设设R(U)是一个属性集是一个属性集U上的关系模式,上的关系模式,X和和Y是是U的子集。若对于的子集。若对于R(U)的任意一个可能的关的任意一个可能的关系系r,r中不可能存在两个元组在中不可能存在两个元组在X上的属性值相上的属性值相等,等,而在而在Y上的属性值不等,上的属性值不等,则称则称“X函数确定函数确定Y”或或“Y函数依赖于函数依赖于X”,记作,记作XY。AnIntroductiontoDatabaseSystem函数依赖(续)函数依赖(续)v例例Student(Sno,Sname,Ssex,Sage,Sdept),假设不允许重名,则有假设不允许重名,则有:SnoSsex,SnoSageSnoSdept,SnoSnameSnameSsex,SnameSageSnameSdept但但SsexSage,SsexSdept若若XY,并且,并且YX,则记为则记为XY。若若Y不函数依赖于不函数依赖于X,则记为则记为XY。AnIntroductiontoDatabaseSystem函数依赖(续)函数依赖(续)SnoSnameSsexSageSdeptS1 张三张三男男20计算机系计算机系S1李四李四女女21自动化系自动化系S3王五王五男男20计算机系计算机系S4赵六赵六男男21计算机系计算机系S5田七田七男男20计算机系计算机系.违背了违背了SnoSnameAnIntroductiontoDatabaseSystem函数依赖(续)函数依赖(续)v由下面的关系表由下面的关系表,能否得出能否得出SnoSnameSnoSnameSsexSageSdeptS1张三张三男男20计算机系计算机系S2李四李四女女21自动化系自动化系S3王五王五男男20计算机系计算机系S4赵六赵六男男21计算机系计算机系S5田七田七男男20计算机系计算机系.函数依赖不是指关系模式函数依赖不是指关系模式R的某个或某些关系实例满足的的某个或某些关系实例满足的约束条件,而是指约束条件,而是指R的所有关系实例均要满足的约束条件。的所有关系实例均要满足的约束条件。AnIntroductiontoDatabaseSystem*函数依赖(续)函数依赖(续)v函数依赖是语义范畴的概念,只能根据数据的语函数依赖是语义范畴的概念,只能根据数据的语义来确定一个函数依赖。义来确定一个函数依赖。n例如例如“姓名姓名年龄年龄”这个函数依赖只有在不允许有同这个函数依赖只有
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索