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