《数据库系统概论》第5版-王珊-第6章.ppt
《《数据库系统概论》第5版-王珊-第6章.ppt》由会员分享,可在线阅读,更多相关《《数据库系统概论》第5版-王珊-第6章.ppt(123页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、AnIntroductiontoDatabaseSystem数据库系统概论数据库系统概论AnIntroductiontoDatabaseSystem第六章第六章 关系数据理论关系数据理论中国人民大学信息学院中国人民大学信息学院AnIntroductiontoDatabaseSystemv基于某个数据库管理系统设计数据库,如何基于基于某个数据库管理系统设计数据库,如何基于数据库系统编程数据库系统编程n第第6章章关系数据理论关系数据理论n第第7章章数据库设计数据库设计n第第8章章数据库编程数据库编程第二篇第二篇 设计与应用开发篇设计与应用开发篇AnIntroductiontoDatabaseSys
2、tem第六章第六章关系数据理论关系数据理论6.1问题的提出问题的提出6.2规范化规范化6.3数据依赖的公理系统数据依赖的公理系统*6.4模式的分解模式的分解6.5小结小结AnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem6.1问题的提出问题的提出关系数据库逻辑设计关系数据库逻辑设计n针对具体问题,如何构造一个适合于它的数据模式针对具体问题,如何构造一个适合于它的数据模式n数据库逻辑设计的工具数据库逻辑设计的工具关系数据库的规范化理论关系数据库的规范化理论AnIntroductiontoDatabaseSystem*问题的提出
3、(续)问题的提出(续)v关系模式由五部分组成,是一个五元组:关系模式由五部分组成,是一个五元组:R(U,D,DOM,F)n关系名关系名R是符号化的元组语义是符号化的元组语义nU为一组属性为一组属性nD为属性组为属性组U中的属性所来自的域中的属性所来自的域nDOM为属性到域的映射为属性到域的映射nF为属性组为属性组U上的一组数据依赖上的一组数据依赖AnIntroductiontoDatabaseSystem问题的提出(续)问题的提出(续)n由于由于D、DOM与模式设计关系不大,因此在本章中把与模式设计关系不大,因此在本章中把关系模式看作一个三元组:关系模式看作一个三元组:Rn当且仅当当且仅当U上
4、的一个关系上的一个关系r满足满足F时,时,r称为关系模式称为关系模式R的一个关系的一个关系n作为二维表,关系要符合一个最基本的条件:每个分作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(模式就属于第一范式(1NF)AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v数据依赖数据依赖n是一个关系内部属性与属性之间的一种约束关系是一个关系内部属性与属性之间的一种约束关系l通过属性间值的相等与否体现出来的数据间相互联系通过属性间值的相等与否体现出来
5、的数据间相互联系n是现实世界属性间相互联系的抽象是现实世界属性间相互联系的抽象n是数据内在的性质是数据内在的性质n是语义的体现是语义的体现AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v数据依赖的主要类型数据依赖的主要类型n函数依赖(函数依赖(FunctionalDependency,简记为,简记为FD)n多值依赖(多值依赖(Multi-ValuedDependency,简记为,简记为MVD)AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v函数依赖普遍存在于现实生活中函数依赖普遍存在于现实生活中n描
6、述一个学生关系,可以有学号、姓名、系名等属性。描述一个学生关系,可以有学号、姓名、系名等属性。l一个学号只对应一个学生,一个学生只在一个系中学习一个学号只对应一个学生,一个学生只在一个系中学习l“学号学号”值确定后,学生的姓名及所在系的值就被唯一确值确定后,学生的姓名及所在系的值就被唯一确定。定。nSname=f(Sno),Sdept=f(Sno)l即即Sno函数决定函数决定SnamelSno函数决定函数决定Sdeptl记作记作SnoSname,SnoSdeptAnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v例例6.1建立一个描述学校教务的数据库
7、。建立一个描述学校教务的数据库。涉及的对象包括:涉及的对象包括:n学生的学号(学生的学号(Sno)n所在系(所在系(Sdept)n系主任姓名(系主任姓名(Mname)n课程号(课程号(Cno)n成绩(成绩(Grade)AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)n假设学校教务的数据库模式用一个单一的关系模式假设学校教务的数据库模式用一个单一的关系模式Student来表示,则该关系模式的属性集合为:来表示,则该关系模式的属性集合为:USno,Sdept,Mname,Cno,Graden现实世界的已知事实(语义):现实世界的已知事实(语义):l一个
8、系有若干学生,一个系有若干学生,但一个学生只属于一个系;但一个学生只属于一个系;l一个系只有一名(正职)负责人;一个系只有一名(正职)负责人;l一个学生可以选修多门课程,每门课程有若干学生选修;一个学生可以选修多门课程,每门课程有若干学生选修;l每个学生学习每一门课程有一个成绩。每个学生学习每一门课程有一个成绩。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)n由此可得到属性组由此可得到属性组U上的一组函数依赖上的一组函数依赖F:F=SnoSdept,SdeptMname,(Sno,Cno)GradeSnoCnoSdeptMnameGradeAnI
9、ntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)关系模式关系模式Student中存在的问题:中存在的问题:(1)数据冗余)数据冗余n浪费大量的存储空间浪费大量的存储空间l每一个系主任的姓名重复出现,重复次数与该系所有学每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。生的所有课程成绩出现次数相同。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)(2)更新异常()更新异常(UpdateAnomalies)n数据冗余数据冗余,更新数据时,维护数据完整性代价大。更新数据时,维护数据完整性
10、代价大。l某系更换系主任后,必须修改与该系学生有关的每一个某系更换系主任后,必须修改与该系学生有关的每一个元组。元组。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)(3)插入异常()插入异常(InsertionAnomalies)n如果一个系刚成立,尚无学生,则无法把这个系及其如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信息存入数据库。系主任的信息存入数据库。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)(4)删除异常()删除异常(DeletionAnomalies)n如果某个系的学生全部
11、毕业了,如果某个系的学生全部毕业了,则在删除该系学生信则在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。息的同时,把这个系及其系主任的信息也丢掉了。AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v结论结论nStudent关系模式不是一个好的模式。关系模式不是一个好的模式。n一个一个“好好”的模式应当不会发生插入异常、删除异常和更的模式应当不会发生插入异常、删除异常和更新异常,数据冗余应尽可能少。新异常,数据冗余应尽可能少。v原因原因n由存在于模式中的某些数据依赖引起的。由存在于模式中的某些数据依赖引起的。v解决方法解决方法n用规范化理
12、论改造关系模式来消除其中不合适的数据依赖用规范化理论改造关系模式来消除其中不合适的数据依赖AnIntroductiontoDatabaseSystem*问题的提出(续)问题的提出(续)v把这个单一的模式分成三个关系模式:把这个单一的模式分成三个关系模式:nS(Sno,Sdept,SnoSdept);nSC(Sno,Cno,Grade,(Sno,Cno)Grade);nDEPT(Sdept,Mname,SdeptMname);v这三个模式都不会发生插入异常、删除异常的问这三个模式都不会发生插入异常、删除异常的问题,数据的冗余也得到了控制。题,数据的冗余也得到了控制。AnIntroductiont
13、oDatabaseSystem第六章第六章关系数据理论关系数据理论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.平凡函数依赖与非平凡函数依赖平凡函数依
14、赖与非平凡函数依赖3.完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖4.传递函数依赖传递函数依赖AnIntroductiontoDatabaseSystem*1.函数依赖函数依赖v定义定义6.1设设R(U)是一个属性集是一个属性集U上的关系模式,上的关系模式,X和和Y是是U的子集。若对于的子集。若对于R(U)的任意一个可能的关的任意一个可能的关系系r,r中不可能存在两个元组在中不可能存在两个元组在X上的属性值相上的属性值相等,等,而在而在Y上的属性值不等,上的属性值不等,则称则称“X函数确定函数确定Y”或或“Y函数依赖于函数依赖于X”,记作,记作XY。AnIntroductiontoDa
15、tabaseSystem函数依赖(续)函数依赖(续)v例例Student(Sno,Sname,Ssex,Sage,Sdept),假设不允许重名,则有假设不允许重名,则有:SnoSsex,SnoSageSnoSdept,SnoSnameSnameSsex,SnameSageSnameSdept但但SsexSage,SsexSdept若若XY,并且,并且YX,则记为则记为XY。若若Y不函数依赖于不函数依赖于X,则记为则记为XY。AnIntroductiontoDatabaseSystem函数依赖(续)函数依赖(续)SnoSnameSsexSageSdeptS1 张三张三男男20计算机系计算机系S1
16、李四李四女女21自动化系自动化系S3王五王五男男20计算机系计算机系S4赵六赵六男男21计算机系计算机系S5田七田七男男20计算机系计算机系.违背了违背了SnoSnameAnIntroductiontoDatabaseSystem函数依赖(续)函数依赖(续)v由下面的关系表由下面的关系表,能否得出能否得出SnoSnameSnoSnameSsexSageSdeptS1张三张三男男20计算机系计算机系S2李四李四女女21自动化系自动化系S3王五王五男男20计算机系计算机系S4赵六赵六男男21计算机系计算机系S5田七田七男男20计算机系计算机系.函数依赖不是指关系模式函数依赖不是指关系模式R的某个或
17、某些关系实例满足的的某个或某些关系实例满足的约束条件,而是指约束条件,而是指R的所有关系实例均要满足的约束条件。的所有关系实例均要满足的约束条件。AnIntroductiontoDatabaseSystem*函数依赖(续)函数依赖(续)v函数依赖是语义范畴的概念,只能根据数据的语函数依赖是语义范畴的概念,只能根据数据的语义来确定一个函数依赖。义来确定一个函数依赖。n例如例如“姓名姓名年龄年龄”这个函数依赖只有在不允许有同这个函数依赖只有在不允许有同名人的条件下成立名人的条件下成立AnIntroductiontoDatabaseSystem*2.平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函
18、数依赖vXY,但,但Y X则称则称XY是是非平凡的函数依赖非平凡的函数依赖。vXY,但,但Y X则称则称XY是是平凡的函数依赖平凡的函数依赖。对于任一关系模式,平凡函数依赖都是必然成立的,它对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。不反映新的语义。若不特别声明,若不特别声明,我们总是讨论非平凡函数依赖。我们总是讨论非平凡函数依赖。AnIntroductiontoDatabaseSystem*平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续)v若若XY,则,则X称为这个函数依赖的称为这个函数依赖的决定因素决定因素(Determinant)。)。v若若XY,
19、YX,则记作,则记作XY。v若若Y不函数依赖于不函数依赖于X,则记作,则记作XY。AnIntroductiontoDatabaseSystem*3.完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖v定义定义6.2在在R(U)中,如果中,如果XY,并且对于,并且对于X的任的任何一个真子集何一个真子集X,都有都有X Y,则称则称Y对对X完全函数完全函数依赖依赖,记作,记作XY。v若若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y对对X部部分函数依赖分函数依赖,记作,记作XYFPAnIntroductiontoDatabaseSystem*完全函数依赖与部分函数依赖(续)完全函数
20、依赖与部分函数依赖(续)v例例在关系在关系SC(Sno,Cno,Grade)中,有:中,有:n由于:由于:SnoGrade,CnoGrade,因此:因此:(Sno,Cno)Grade(Sno,Cno)Sno(Sno,Cno)CnoFPPAnIntroductiontoDatabaseSystem*4.传递函数依赖传递函数依赖v定义定义6.3在在R(U)中,如果中,如果XY(Y X),YX,YZ,Z Y,则称则称Z对对X传递函数依赖传递函数依赖(transitivefunctionaldependency)。记为:。记为:XZ。n注注:如果如果YX,即即XY,则,则Z直接依赖于直接依赖于X,而不
21、是,而不是传递函数依赖。传递函数依赖。n例例在关系在关系Std(Sno,Sdept,Mname)中,有:中,有:SnoSdept,SdeptMname,Mname传递函数依赖于传递函数依赖于Sno传递传递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规范化小结规范化小结AnIntroductiontoDatabaseSystem*码码v定义定义6.4设设K为为R中的属性或属性组合。若中的属性或属性组合。若
22、KU,则,则K称为称为R的一个的一个候选码候选码(CandidateKey)。n如果如果U部分函数依赖于部分函数依赖于K,即,即KU,则则K称为超码称为超码(Surpkey)。候选码是最小的超码,即)。候选码是最小的超码,即K的任意一个的任意一个真子集都不是候选码。真子集都不是候选码。v若关系模式若关系模式R有多个候选码,则选定其中的一个有多个候选码,则选定其中的一个做为做为主码主码(Primarykey)。FPAnIntroductiontoDatabaseSystem*码(续)码(续)v主属性与非主属性主属性与非主属性n包含在任何一个候选码中的属性包含在任何一个候选码中的属性,称为主属性,
23、称为主属性(Primeattribute)n不包含在任何码中的属性称为非主属性(不包含在任何码中的属性称为非主属性(Nonprimeattribute)或非码属性()或非码属性(Non-keyattribute)v全码:整个属性组是码,称为全码(全码:整个属性组是码,称为全码(All-key)AnIntroductiontoDatabaseSystem*码(续)码(续)例例6.2S(Sno,Sdept,Sage),单个属性,单个属性Sno是码是码SC(Sno,Cno,Grade)中,中,(Sno,Cno)是码是码例例6.3R(P,W,A)P:演奏者:演奏者W:作品:作品A:听众:听众一个演奏者
24、可以演奏多个作品一个演奏者可以演奏多个作品某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品 码为码为(P,W,A),即,即All-KeyAnIntroductiontoDatabaseSystem*码(续)码(续)v定义定义6.5关系模式关系模式R中属性或属性组中属性或属性组X并非并非R的的码,但码,但X是另一个关系模式的码,则称是另一个关系模式的码,则称X是是R的的外部码外部码(Foreignkey)也称)也称外码外码。nSC(Sno,Cno,Grade)中,中,Sno不是码不是码nSno是是S(Sno,Sdept,Sage
25、)的码,则的码,则Sno是是SC的外码的外码v主码与外部码一起提供了表示关系间联系的手段主码与外部码一起提供了表示关系间联系的手段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规范化小结规范化小结AnIntroductiontoDatabaseSystem*6.2.3范式范式v范式是符合某一种级别的关系模式的集合。范式是符合某一种级别的关系模式的集合。v关系数据库中的关系必须满足一定的要求。满足关系数据库
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库系统概论 数据库 系统 概论 王珊
限制150内