数据库系统原理-ch06.ppt
- 文档编号:2744263
- 上传时间:2022-11-10
- 格式:PPT
- 页数:183
- 大小:611.50KB
数据库系统原理-ch06.ppt
《数据库系统原理-ch06.ppt》由会员分享,可在线阅读,更多相关《数据库系统原理-ch06.ppt(183页珍藏版)》请在冰豆网上搜索。
数据库系统概论数据库系统概论AnIntroductiontoDatabaseSystem第六章第六章关系数据理论关系数据理论第六章第六章关系数据理论关系数据理论l问题的提出问题的提出关系数据库的基本概念关系数据库的基本概念关系模型关系模型关系数据库的标准语言关系数据库的标准语言关系数据库逻辑设计关系数据库逻辑设计针针对对一一个个具具体体问问题题,应应如如何何构构造造一一个个适适合合于于它它的的数数据据模模式式,即即应应该该构构造造几几个个关关系系,每个关系由哪些属性组成等。
每个关系由哪些属性组成等。
数数据据库库逻逻辑辑设设计计的的工工具具关关系系数数据据库库的的规范化理论规范化理论第六章第六章关系数据理论关系数据理论6.1数据依赖数据依赖6.2规范化规范化6.3数据依赖的公理系统数据依赖的公理系统6.4模式的分解模式的分解第六章第六章关系数据理论关系数据理论6.1数据依赖数据依赖6.2规范化规范化6.3数据依赖的公理系统数据依赖的公理系统6.4模式的分解模式的分解6.1数据依赖数据依赖内容提要内容提要l什么是数据依赖什么是数据依赖l数据依赖对关系模式有什么影响数据依赖对关系模式有什么影响l数据依赖的形式化定义数据依赖的形式化定义6.1数据依赖数据依赖6.1.1关系模式中的数据依赖关系模式中的数据依赖6.1.2数据依赖对关系模式的影响数据依赖对关系模式的影响6.1.3有关概念有关概念6.1数据依赖数据依赖6.1.1关系模式中的数据依赖关系模式中的数据依赖6.1.2数据依赖对关系模式的影响数据依赖对关系模式的影响6.1.3有关概念有关概念6.1.1关系模式中的数据依赖关系模式中的数据依赖一、概念回顾一、概念回顾二、关系模式的形式化定义二、关系模式的形式化定义三、什么是数据依赖三、什么是数据依赖四、关系模式的简化表示四、关系模式的简化表示一、概念回顾一、概念回顾l关系关系:
描述实体及其属性、实体间的联系。
:
描述实体及其属性、实体间的联系。
从形式上看,它是一张二维表,是所涉及属从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。
性的笛卡尔积的一个子集。
l关系模式关系模式:
用来定义关系。
:
用来定义关系。
l关系数据库关系数据库:
基于关系模型的数据库,利用关:
基于关系模型的数据库,利用关系来描述现实世界。
系来描述现实世界。
从形式上看,它由一组关系组成。
从形式上看,它由一组关系组成。
l关系数据库的模式关系数据库的模式:
定义这组关系的关系模式:
定义这组关系的关系模式的全体。
的全体。
二、关系模式的形式化定义二、关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:
关系模式由五部分组成,即它是一个五元组:
R(U,D,DOM,F)R:
关系名关系名U:
组成该关系的属性名集合组成该关系的属性名集合D:
属性组属性组U中属性所来自的域中属性所来自的域DOM:
属性向域的映象集合:
属性向域的映象集合F:
属性间数据的依赖关系集合。
即限定属性间数据的依赖关系集合。
即限定了组成关系的各个元组必须满足的完了组成关系的各个元组必须满足的完整性约束条件整性约束条件。
三、什么是数据依赖三、什么是数据依赖1.完整性约束的表现形式完整性约束的表现形式l限定属性取值范围:
例如学生成绩必须限定属性取值范围:
例如学生成绩必须在在0-100之间之间l定义属性值间的相互关连(主要体现于定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,它值的相等与否),这就是数据依赖,它是数据库模式设计的关键是数据库模式设计的关键。
什么是数据依赖(续)什么是数据依赖(续)2.数据依赖数据依赖l是通过一个关系中属性间值的相等与否是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系体现出来的数据间的相互关系l是现实世界属性间相互联系的抽象是现实世界属性间相互联系的抽象l是数据内在的性质是数据内在的性质l是语义的体现是语义的体现什么是数据依赖(续)什么是数据依赖(续)3.数据依赖的主要类型数据依赖的主要类型l函数依赖(函数依赖(FunctionalDependency,简,简记为记为FD)l多值依赖(多值依赖(MultivaluedDependency,简,简记为记为MVD)l连接依赖连接依赖四、关系模式的简化表示四、关系模式的简化表示在关系模式在关系模式R(U,D,DOM,F)中,影响数中,影响数据库模式设计的主要是据库模式设计的主要是U和和F,D和和DOM对其影响不大,为了方便讨论,我们将对其影响不大,为了方便讨论,我们将关系模式简化为一个三元组:
关系模式简化为一个三元组:
R(U,F)当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称称为关系模式为关系模式R(U,F)的一个关系。
的一个关系。
6.1数据依赖数据依赖6.1.1关系模式中的数据依赖关系模式中的数据依赖6.1.2数据依赖对关系模式的影响数据依赖对关系模式的影响6.1.3有关概念有关概念6.1.2数据依赖对关系模式的影响数据依赖对关系模式的影响例:
建立一个描述学校的数据库。
例:
建立一个描述学校的数据库。
涉及的对象包括:
涉及的对象包括:
学生的学号(学生的学号(Sno)所在系(所在系(Sdept)系主任姓名(系主任姓名(Mname)课程名(课程名(Cname)成绩(成绩(Grade)数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)假设学校的数据库模式由一个单一的关假设学校的数据库模式由一个单一的关系模式系模式Student构成,构成,则该关系模式的属性集合为:
则该关系模式的属性集合为:
USno,Sdept,Mname,Cname,Grade数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)现实世界的已知事实告诉我们:
现实世界的已知事实告诉我们:
一个系有若干学生,一个系有若干学生,但一个学生只属于一但一个学生只属于一个系;个系;一个系只有一名主任;一个系只有一名主任;一个学生可以选修多门课程,一个学生可以选修多门课程,每门课程有每门课程有若干学生选修;若干学生选修;每个学生所学的每门课程都有一个成绩。
每个学生所学的每门课程都有一个成绩。
数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)由此可得到属性组由此可得到属性组U上的一组函数依赖上的一组函数依赖F:
FSnoSdept,SdeptMname,(Sno,Cname)GradeSnoCnameSdeptMnameGrade数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)关系模式关系模式Student中存在的问题:
中存在的问题:
数据冗余太大数据冗余太大浪费大量的存储空间浪费大量的存储空间例:
每一个系主任的姓名重复出现,重复次数例:
每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。
与该系所有学生的所有课程成绩出现次数相同。
数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)更新异常(更新异常(UpdateAnomalies)数据冗余数据冗余,更新数据时,维护数据完整性代更新数据时,维护数据完整性代价大。
价大。
例:
某系更换系主任后,系统必须修改与该系例:
某系更换系主任后,系统必须修改与该系学生有关的每一个元组。
学生有关的每一个元组。
数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)插入异常(插入异常(InsertionAnomalies)该插的数据插不进去该插的数据插不进去例,如果一个系刚成立,尚无学生,我们就无例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。
法把这个系及其系主任的信息存入数据库。
数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)删除异常(删除异常(DeletionAnomalies)不该删除的数据不得不删不该删除的数据不得不删例,如果某个系的学生全部毕业了,例,如果某个系的学生全部毕业了,我们在删我们在删除该系学生信息的同时,把这个系及其系主任除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。
的信息也丢掉了。
数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)结论:
结论:
Student关系模式不是一个好的模式。
关系模式不是一个好的模式。
一个一个“好好”的模式应当不会发生插入异常、的模式应当不会发生插入异常、删除异常,更新异常、数据冗余应尽可能少。
删除异常,更新异常、数据冗余应尽可能少。
原因:
原因:
由存在于模式中的某些数据依赖引起的。
由存在于模式中的某些数据依赖引起的。
解决方法:
解决方法:
通过分解关系模式来消除其中不合适通过分解关系模式来消除其中不合适的数据依赖。
的数据依赖。
数据依赖对关系模式的影响数据依赖对关系模式的影响(续续)规范化理论规范化理论正是用来改造关系模式,通正是用来改造关系模式,通过分解关系模式来消除其中不合适的数过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
更新异常和数据冗余问题。
6.1数据依赖数据依赖6.1.1关系模式中的数据依赖关系模式中的数据依赖6.1.2数据依赖对关系模式的影响数据依赖对关系模式的影响6.1.3有关概念有关概念6.1.3有关概念有关概念一、函数依赖一、函数依赖二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖三、完全函数依赖与部分函数依赖三、完全函数依赖与部分函数依赖四、传递函数依赖四、传递函数依赖五、码五、码一、函数依赖一、函数依赖定义定义6.1设设R(U)是一个属性集是一个属性集U上的关系模上的关系模式,式,X和和Y是是U的子集。
若对于的子集。
若对于R(U)的任的任意一个可能的关系意一个可能的关系r,r中不可能存在两中不可能存在两个元组在个元组在X上的属性值相等,上的属性值相等,而在而在Y上的上的属性值不等,属性值不等,则称则称“X函数确定函数确定Y”或或“Y函数依赖于函数依赖于X”,记作,记作XY。
X称为这个称为这个函数依赖的函数依赖的决定属性集决定属性集(Determinant)。
函数依赖(续)函数依赖(续)例例:
Student(Sno,Sname,Ssex,Sage,Sdept)假设不允许重名,则有假设不允许重名,则有:
SnoSsex,SnoSageSnoSdept,SnoSnameSnameSsex,SnameSageSnameSdept但但SsexSage,SsexSdept,错误的错误的Student表表SnoSnameSsexSageSdeptS1张三张三男男20计算机系计算机系S1李四李四女女21自动化系自动化系S3王五王五男男20计算机系计算机系S4赵六赵六男男21计算机系计算机系S5田七田七男男20计算机系计算机系.函数依赖(续)函数依赖(续)说明:
说明:
1.函数依赖不是指关系模式函数依赖不是指关系模式R的某个或某些关系的某个或某些关系实例满足的约束条件,而是指实例满足的约束条件,而是指R的所有关系实的所有关系实例均要满足的约束条件。
例均要满足的约束条件。
2.函数依赖是语义范畴的概念。
只能根据数据的函数依赖是语义范畴的概念。
只能根据数据的语义来确定函数依赖。
语义来确定函数依赖。
例如例如“姓名姓名年龄年龄”这个函数依赖只有在不允这个函数依赖只有在不允许有同名人的条件下成立许有同名人的条件下成立函数依赖(续)函数依赖(续)3.数据库设计者可以对现实世界作强制的规定。
数据库设计者可以对现实世界作强制的规定。
例如设计者可以强行规定不允许同名人出现,例如设计者可以强行规定不允许同名人出现,因而使函数依赖因而使函数依赖“姓名姓名年龄年龄”成立。
但所插成立。
但所插入的元组必须满足规定的函数依赖,若发现有入的元组必须满足规定的函数依赖,若发现有同名人存在,同名人存在,则拒绝装入该元组。
则拒绝装入该元组。
4.若若XY,并且,并且YX,则记为则记为XY。
5.若若Y不函数依赖于不函数依赖于X,则记为则记为XY。
二、平凡函数依赖与非平凡函数依赖二、平凡函数依赖与非平凡函数依赖定义定义6.2在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,如果,如果XY,但
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 原理 ch06
![提示](https://static.bdocx.com/images/bang_tan.gif)