数据库原理之关系数据库理论课件

上传人:仙*** 文档编号:241431115 上传时间:2024-06-25 格式:PPT 页数:126 大小:833.54KB
返回 下载 相关 举报
数据库原理之关系数据库理论课件_第1页
第1页 / 共126页
数据库原理之关系数据库理论课件_第2页
第2页 / 共126页
数据库原理之关系数据库理论课件_第3页
第3页 / 共126页
点击查看更多>>
资源描述
数据库原理之关系数据库理论第六章关系数据理论6.1问题的提出6.2规范化6.3数据依赖的公理系统*6.4模式的分解6.5小结AnIntroductiontoDatabaseSystem6.1问题的提出关系数据库逻辑设计关系数据库逻辑设计针对具体问题,如何构造一个适合于它的数据模式针对具体问题,如何构造一个适合于它的数据模式 即应该构造几个关系模式,每个关系有哪些属性组成等。即应该构造几个关系模式,每个关系有哪些属性组成等。数据库逻辑设计的工具数据库逻辑设计的工具关系数据库的规范化理论关系数据库的规范化理论AnIntroductiontoDatabaseSystem问题的提出一、概念回顾一、概念回顾二、关系模式的形式化定义二、关系模式的形式化定义三、什么是数据依赖三、什么是数据依赖四、关系模式的简化定义四、关系模式的简化定义五、数据依赖对关系模式影响五、数据依赖对关系模式影响AnIntroductiontoDatabaseSystem一、概念回顾v关系:描述实体、属性、实体间的联系。关系:描述实体、属性、实体间的联系。v从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。v关系模式:用来定义关系。关系模式:用来定义关系。v关系数据库:基于关系模型的数据库,利用关系来描述现实世界。关系数据库:基于关系模型的数据库,利用关系来描述现实世界。v从形式上看,它由一组关系组成。从形式上看,它由一组关系组成。v关系数据库的模式:定义这组关系的关系模式的全体。关系数据库的模式:定义这组关系的关系模式的全体。AnIntroductiontoDatabaseSystem二、关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它是一个五元组:R(U,D,F)R:关系名关系名U:组成该关系的属性名集合组成该关系的属性名集合D:属性组属性组U中属性所来自的域中属性所来自的域:属性向域的映象集合属性向域的映象集合F:属性间数据的依赖关系集合属性间数据的依赖关系集合AnIntroductiontoDatabaseSystem三、关系模式的简化表示v关系模式关系模式R(U,D,F)v 简化为一个三元组:简化为一个三元组:v R(U,F)v当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为关系模式称为关系模式 R(U,F)的一个关系)的一个关系AnIntroductiontoDatabaseSystem四、什么是数据依赖1.完整性约束的表现形式完整性约束的表现形式限定属性取值范围:例如学生成绩必须在限定属性取值范围:例如学生成绩必须在0-100之间之间定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,它是数据库模定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,它是数据库模式设计的关键式设计的关键AnIntroductiontoDatabaseSystem什么是数据依赖(续)2.数据依赖数据依赖一个关系内部属性与属性之间的约束关系一个关系内部属性与属性之间的约束关系现实世界属性间相互联系的抽象现实世界属性间相互联系的抽象数据内在的性质数据内在的性质语义的体现语义的体现AnIntroductiontoDatabaseSystem什么是数据依赖(续)3.数据依赖的类型数据依赖的类型函数依赖(函数依赖(,简记为),简记为)多值依赖(多值依赖(,简记为),简记为)其他其他AnIntroductiontoDatabaseSystem五、数据依赖对关系模式的影响例例1建立一个描述学校教务的数据库:建立一个描述学校教务的数据库:学生的学号()、所在系()学生的学号()、所在系()系主任姓名()、课程名()系主任姓名()、课程名()成绩()成绩()单一的关系模式单一的关系模式:U ,AnIntroductiontoDatabaseSystem数据依赖对关系模式的影响(续)属性组属性组U上的一组函数依赖上的一组函数依赖F:F ,(,)SnoCnameSdeptMnameGradeAnIntroductiontoDatabaseSystem关系模式中存在的问题1.1.数据冗余太大数据冗余太大2.2.浪费大量的存储空间浪费大量的存储空间3.3.例:每一个系主任的姓名重复出现例:每一个系主任的姓名重复出现4.4.2.2.更新异常(更新异常()5.5.数据冗余数据冗余 ,更新数据时,维护数据完整性代价大。,更新数据时,维护数据完整性代价大。6.6.例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组AnIntroductiontoDatabaseSystem关系模式中存在的问题 插入异常(插入异常()该插的数据插不进去该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。删除异常(删除异常()不该删除的数据不得不删不该删除的数据不得不删例,如果某个系的学生全部毕业了,例,如果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这个系及其我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。系主任的信息也丢掉了。AnIntroductiontoDatabaseSystem数据依赖对关系模式的影响(续)结论:结论:关系模式不是一个好的模式。关系模式不是一个好的模式。“好好”的模式:的模式:不会发生插入异常、删除异常、更新异常,不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少数据冗余应尽可能少原因:由存在于模式中的某些数据依赖引起的原因:由存在于模式中的某些数据依赖引起的解决方法:通过分解关系模式来消除其中不合适解决方法:通过分解关系模式来消除其中不合适 的数据依赖的数据依赖AnIntroductiontoDatabaseSystem分解关系模式v把这个单一模式分成把这个单一模式分成3个关系模式:个关系模式:v S(,)(,)v (,)(,)(,)(,)v (,)(,)AnIntroductiontoDatabaseSystem第六章关系数据理论6.1 问题的提出问题的提出6.2 规范化规范化6.3 数据依赖的公理系统数据依赖的公理系统*6.4 模式的分解模式的分解6.5 小结小结AnIntroductiontoDatabaseSystem6.2规范化 规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。插入异常、删除异常、更新异常和数据冗余问题。AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.1函数依赖v函数依赖函数依赖v平凡的函数依赖与非平凡的函数依赖平凡的函数依赖与非平凡的函数依赖v完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖v传递函数依赖传递函数依赖AnIntroductiontoDatabaseSystem一、函数依赖定义定义6.1 设设R(U)是一个属性集是一个属性集U上的关系模式,上的关系模式,X和和Y是是U的子集。的子集。若对于若对于R(U)的任意一个可能的关系的任意一个可能的关系r,r中不可能存在两个元组在中不可能存在两个元组在X上的属性值相等,上的属性值相等,而在而在Y上的上的属性值不等,属性值不等,则称则称“X函数确定函数确定Y”或或 “Y函数依赖于函数依赖于X”,记作,记作XY。AnIntroductiontoDatabaseSystem说明:1.函数依赖不是指关系模式函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均的所有关系实例均要满足的约束条件。要满足的约束条件。2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如例如“姓名姓名年龄年龄”这个函数依赖只有在不允许有同名人的条件下成立这个函数依赖只有在不允许有同名人的条件下成立3.数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名姓名年年龄龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组。则拒绝装入该元组。AnIntroductiontoDatabaseSystem二、平凡的函数依赖与非平凡的函数依赖二、平凡的函数依赖与非平凡的函数依赖二、平凡的函数依赖与非平凡的函数依赖二、平凡的函数依赖与非平凡的函数依赖在关系模式在关系模式R(U)中,对于中,对于U的子集的子集X和和Y,如果如果XY,但,但Y X,则称,则称XY是非平凡的函数依赖是非平凡的函数依赖若若XY,但,但Y X,则称则称XY是平凡的函数依赖是平凡的函数依赖例:在关系例:在关系(,)中,中,非平凡函数依赖:非平凡函数依赖:(,)平凡函数依赖:平凡函数依赖:(,)(,)AnIntroductiontoDatabaseSystem平凡函数依赖与非平凡函数依赖(续)若若XY,则,则X称为这个函数依赖的决定属性组,也称为决定因素()。称为这个函数依赖的决定属性组,也称为决定因素()。若若XY,YX,则记作,则记作XY。若若Y不函数依赖于不函数依赖于X,则记作,则记作XY。AnIntroductiontoDatabaseSystem三、完全函数依赖与部分函数依赖定义定义6.2 在在R(U)中,如果中,如果XY,并且对于,并且对于X的任何一个真子集的任何一个真子集X,都有,都有X Y,则称则称Y对对X完完全函数依赖,记作全函数依赖,记作 X F Y。若若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y对对X部分函数依赖,记作部分函数依赖,记作X P Y。AnIntroductiontoDatabaseSystem完全函数依赖与部分函数依赖(续)例例1 中中()是完全函数依赖,是完全函数依赖,()是部分函数依赖是部分函数依赖 因为因为 成立,且是(,)的真子集成立,且是(,)的真子集 FPAnIntroductiontoDatabaseSystem四、传递函数依赖定义定义6.3 在在R(U)中,如果中,如果XY,(Y X)X YZ,则称则称Z对对X传递函数依赖。传递函数依赖。记为:记为:X Z 注注:如果如果YX,即即XY,则,则Z直接依赖于直接依赖于X。例例:在关系在关系(,)中,有:中,有:,传递函数依赖于传递函数依赖于传递AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.2码定义定义6.4 设设K为为R中的属性或属性组合。若中的属性或属性组合。若K U,则则K称为称为R的侯选码(的侯选码()。)。若候选码多于一个,则选定其中的一个做为主码(若候选码多于一个,则选定其中的一个做为主码()。)。FAnIntroductiontoDatabaseSystem码(续)v主属性与非主属性主属性与非主属性v包含在任何一个候选码中的属性包含在任何一个候选码中的属性,称为主属性(,称为主属性()v不包含在任何码中的属性称为非主属性(不包含在任何码中的属性称为非主属性()或非码属性()或非码属性()v全码全码v整个属性组是码,称为全码()整个属性组是码,称为全码()AnIntroductiontoDatabaseSystem码(续)例例2 关系模式关系模式S(),单个属性是码,单个属性是码,(,)中,(,)是码(,)中,(,)是码例例3 关系模式关系模式R(P,W,A)P:演奏者:演奏者 W:作品:作品 A:听众:听众 一个演奏者可以演奏多个作品一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品听众可以欣赏不同演奏者的不同作品关系模式关系模式R的码为的码为(P,W,A),即,即 AnIntroductiontoDatabaseSystem外部码定义定义6.5 关系模式关系模式 R 中属性或属性组中属性或属性组X 并非并非 R的码,但的码,但 X 是另一个关系模式的码,则称是另一个关系模式的码,则称 X 是是R 的外部码(的外部码()也称外码)也称外码如在(,)中,不是码,但是关系模式如在(,)中,不是码,但是关系模式S(,)的码,则是关系模式的外部码(,)的码,则是关系模式的外部码 主码与外部码一起提供了表示关系间联系的手段主码与外部码一起提供了表示关系间联系的手段AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.3范式v范式是符合某一种级别的关系模式的集合范式是符合某一种级别的关系模式的集合v关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式v范式的种类:范式的种类:v第一范式第一范式(1)v第二范式第二范式(2)v第三范式第三范式(3)v范式范式()v第四范式第四范式(4)v第五范式第五范式(5)AnIntroductiontoDatabaseSystem6.2.3范式v各种范式之间存在联系:各种范式之间存在联系:v某一关系模式某一关系模式R为第为第n范式,可简记为范式,可简记为R。v一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化这种过程就叫规范化 AnIntroductiontoDatabaseSystem54321各种范式之间的联系AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.42v1的定义的定义v 如果一个关系模式如果一个关系模式R的所有属性都是不可分的基本数据项,则的所有属性都是不可分的基本数据项,则R 1v第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库v但是满足第一范式的关系模式并不一定是一个好的关系模式但是满足第一范式的关系模式并不一定是一个好的关系模式AnIntroductiontoDatabaseSystem2(续)例例4 关系模式关系模式(,)为学生住处,假设每个系的学生住在同一个地方为学生住处,假设每个系的学生住在同一个地方函数依赖包括:函数依赖包括:(,)F (,)P (,)P AnIntroductiontoDatabaseSystem2(续)的码为的码为(,)满足第一范式。满足第一范式。非主属性和部分函数依赖于码非主属性和部分函数依赖于码(,)AnIntroductiontoDatabaseSystem不是一个好的关系模式(1)插入异常插入异常假设假设95102,N的学生还未选课,因课程号是主属性,因此该学生的信息无法插入。的学生还未选课,因课程号是主属性,因此该学生的信息无法插入。(2)删除异常删除异常 假定某个学生本来只选修了假定某个学生本来只选修了3号课程这一门课。现在因身体不适,他连号课程这一门课。现在因身体不适,他连3号课程也不选修了。因号课程也不选修了。因课程号是主属性,此操作将导致该学生信息的整个元组都要删除。课程号是主属性,此操作将导致该学生信息的整个元组都要删除。AnIntroductiontoDatabaseSystem不是一个好的关系模式(3)数据冗余度大数据冗余度大 如果一个学生选修了如果一个学生选修了10门课程,那么他的和值就要重复存储了门课程,那么他的和值就要重复存储了10次。次。(4)修改复杂修改复杂 例如学生转系,在修改此学生元组的值的同时,还可能需要修改住处()。如果这个学生例如学生转系,在修改此学生元组的值的同时,还可能需要修改住处()。如果这个学生选修了选修了K门课,则必须无遗漏地修改门课,则必须无遗漏地修改K个元组中全部、信息。个元组中全部、信息。AnIntroductiontoDatabaseSystem不是一个好的关系模式(续)v原因原因v 、部分函数依赖于码。部分函数依赖于码。v解决方法解决方法v 分解为两个关系模式,以消除这些部分函数依赖分解为两个关系模式,以消除这些部分函数依赖 v (,(,)v (,(,)AnIntroductiontoDatabaseSystem2(续)函数依赖图:SnoCnoGradeSCS-LSnoSdeptSlocv关系模式的码为(,)v关系模式的码为v这样非主属性对码都是完全函数依赖 AnIntroductiontoDatabaseSystem2(续)v2的定义的定义v定义定义6.6 若若R 1,且每一个非主属性完全函数依赖于码,则,且每一个非主属性完全函数依赖于码,则R 2。v 即消除非主属性对码的部分依赖。即消除非主属性对码的部分依赖。v例:例:(,)1v (,)2 v (,(,)2v (,(,)2AnIntroductiontoDatabaseSystem2(续)v采用投影分解法将一个采用投影分解法将一个1的关系分解为多个的关系分解为多个2的关系,可以在一定程度上减轻原的关系,可以在一定程度上减轻原1关系中存在关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。的插入异常、删除异常、数据冗余度大、修改复杂等问题。v将一个将一个1关系分解为多个关系分解为多个2的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.53v3的定义的定义v定义定义6.7 关系模式关系模式R 中若不存在这样的码中若不存在这样的码X、属性组、属性组Y及非主属性及非主属性Z(Z Y),使得使得XY,YZ成立,成立,v Y X,则称,则称R 3。v若若R 3,则每一个非主属性既不部分依赖于码也不传递依赖于码。,则每一个非主属性既不部分依赖于码也不传递依赖于码。v 即即(2基础上基础上)消除非主属性对码的传递依赖。消除非主属性对码的传递依赖。AnIntroductiontoDatabaseSystem3(续)例:例:2关系模式关系模式(,)中中函数依赖:函数依赖:可得:可得:,即中存在非主属性对码的传递函数依,即中存在非主属性对码的传递函数依 赖,赖,3传递AnIntroductiontoDatabaseSystem3(续)函数依赖图:S-LSnoSdeptSlocAnIntroductiontoDatabaseSystem3(续)v解决方法解决方法v 采用投影分解法,把分解为两个关系模式,以消除传递函数依赖:采用投影分解法,把分解为两个关系模式,以消除传递函数依赖:v (,(,)v (,)(,)v的码为,的码为,的码为。的码为。v分解后的关系模式与中不再存在传递依赖分解后的关系模式与中不再存在传递依赖 AnIntroductiontoDatabaseSystem3(续)的码为,的码为SnoSdeptS-DSdeptSlocD-Lv(,)2v(,)3v(,)3v(,)3AnIntroductiontoDatabaseSystem3(续)v采用投影分解法将一个采用投影分解法将一个2的关系分解为多个的关系分解为多个3的关系,可以在一定程度上解决原的关系,可以在一定程度上解决原2关系中存在关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。的插入异常、删除异常、数据冗余度大、修改复杂等问题。v 将一个将一个2关系分解为多个关系分解为多个3的关系后,仍然不能完全消除关系模式中的各种异常情况和数据的关系后,仍然不能完全消除关系模式中的各种异常情况和数据冗余。冗余。AnIntroductiontoDatabaseSystem学号姓名年龄性别系号系名1001王静18女1通信工程2001张路19女2电子工程2002李远20男2电子工程3001王烨21男3计算机3004张路20女3计算机3005孙小明19男3计算机习题习题1 1:如下表学生关系如下表学生关系S S,试问,试问S S是否属于是否属于3?3?为什么?为什么?若不是,它属于第几范式?并将其规范化为若不是,它属于第几范式?并将其规范化为3 3。AnIntroductiontoDatabaseSystemv解:关系模式v S(学号,姓名,年龄,性别,系号,系名)v 函数依赖:学号姓名,学号年龄,学号性别,v 学号系号,学号系名v 系号系名v 不存在非主属性对码的部分依赖,但存在非主属性对码的传递依赖,所以S2,但S 3。v 模式分解为:S1(学号,姓名,年龄,性别,系号)v S2(系号,系名)AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.6范式()v定义定义6.8 关系模式关系模式R1,若,若XY且且Y X时时X必含有码,则必含有码,则R。v等价于:每一个决定属性因素都包含码。等价于:每一个决定属性因素都包含码。v 即(即(3基础上)消除主属性对码的部分和传递依赖。基础上)消除主属性对码的部分和传递依赖。AnIntroductiontoDatabaseSystem(续)v若若R v所有非主属性对每一个码都是完全函数依赖所有非主属性对每一个码都是完全函数依赖v所有的主属性对每一个不包含它的码,也是完全函数依赖所有的主属性对每一个不包含它的码,也是完全函数依赖v没有任何属性完全函数依赖于非码的任何一组属性没有任何属性完全函数依赖于非码的任何一组属性vR R 3充分不必要AnIntroductiontoDatabaseSystem(续)例例5 关系模式关系模式C(,)(,)C 3C 例例6 关系模式关系模式S(,)(,)假定假定S有两个码,有两个码,S 3。S AnIntroductiontoDatabaseSystem(续)例例7关系模式(关系模式(S,J,P)S表示学生,表示学生,J表示课程,表示课程,P表示名次表示名次函数依赖:(函数依赖:(S,J)P;(J,P)S(S,J)与()与(J,P)都可以作为候选码,属性相交)都可以作为候选码,属性相交3,AnIntroductiontoDatabaseSystem(续)例例8在关系模式(在关系模式(S,T,J)中,)中,S表示学生,表示学生,T表示教师,表示教师,J表示课程。表示课程。函数依赖:函数依赖:(S,J)T,(S,T)J,TJ(S,J)和和(S,T)都是候选码都是候选码AnIntroductiontoDatabaseSystem(续)JSJTSTSTJ中的函数依赖中的函数依赖AnIntroductiontoDatabaseSystem(续)v3v没有任何非主属性对码传递依赖或部分依赖vvT是决定因素,T不包含码AnIntroductiontoDatabaseSystem(续)v解决方法:将分解为二个关系模式:解决方法:将分解为二个关系模式:v (S,T),(T,J)v v没有任何属性对码的部分函数依赖和传递函数依赖没有任何属性对码的部分函数依赖和传递函数依赖STSTTJTJAnIntroductiontoDatabaseSystem3与的关系vRR3v如果R3,且R只有一个候选码vRR3充分不必要充分必要AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.7多值依赖例例9 学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教员可学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。以讲授多门课程,每种参考书可以供多门课程使用。AnIntroductiontoDatabaseSystem课课程程C教教员员T参参考考书书B物理物理数学数学计算数学计算数学李李勇勇王王军军李李勇勇张张平平张张平平周周峰峰普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析.多值依赖(续)多值依赖(续)v非规范化关系非规范化关系AnIntroductiontoDatabaseSystem普通物理学普通物理学光学原理光学原理物理习题集物理习题集普通物理学普通物理学光学原理光学原理物理习题集物理习题集数学分析数学分析微分方程微分方程高等代数高等代数数学分析数学分析微分方程微分方程高等代数高等代数李李 勇勇李李 勇勇李李 勇勇王王 军军王王 军军王王 军军李李 勇勇李李 勇勇李李 勇勇张张 平平张张 平平张张 平平 物物 理理物物 理理物物 理理物物 理理物物 理理物物 理理数数 学学数数 学学数数 学学数数 学学数数 学学数数 学学 参考书B教员T课程C多值依赖(续)v用二维表表示AnIntroductiontoDatabaseSystem多值依赖(续)v v具有唯一候选码具有唯一候选码(C,T,B),即全码即全码v AnIntroductiontoDatabaseSystem多值依赖(续)模式中存在的问题模式中存在的问题(1)数据冗余度大数据冗余度大(2)插入操作复杂插入操作复杂(3)删除操作复杂删除操作复杂(4)修改操作复杂修改操作复杂存在多值依赖AnIntroductiontoDatabaseSystem多值依赖(续)v定义定义6.9 v 设设R(U)是一个属性集是一个属性集U上的一个关系模式,上的一个关系模式,X、Y和和Z是是U的子集,并且的子集,并且ZUXY。关。关系模式系模式R(U)中多值依赖中多值依赖 XY成立,当且仅当对成立,当且仅当对R(U)的任一关系的任一关系r,给定的一对(,给定的一对(x,z)值,)值,有一组有一组Y的值,这组值仅仅决定于的值,这组值仅仅决定于x值而与值而与z值无关值无关v例例 (C,T,B)AnIntroductiontoDatabaseSystem多值依赖(续)v平凡的多值依赖和非平凡的多值依赖平凡的多值依赖和非平凡的多值依赖v若若XY,而,而Z,则称,则称v XY为平凡的多值依赖为平凡的多值依赖v否则称否则称XY为非平凡的多值依赖为非平凡的多值依赖AnIntroductiontoDatabaseSystem多值依赖(续)例例10关系模式(关系模式(W,S,C)W表示仓库,表示仓库,S表示保管员,表示保管员,C表示商品表示商品 假设每个仓库有若干个保管员,有若干种商品假设每个仓库有若干个保管员,有若干种商品 每个保管员保管所在的仓库的所有商品每个保管员保管所在的仓库的所有商品 每种商品被所有保管员保管每种商品被所有保管员保管 AnIntroductiontoDatabaseSystem多值依赖(续)WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5AnIntroductiontoDatabaseSystem多值依赖(续)WS且且WC用下图表示这种对应用下图表示这种对应AnIntroductiontoDatabaseSystem多值依赖的性质(1)多值依赖具有对称性)多值依赖具有对称性若若XY,则,则XZ,其中,其中ZUXY(2)多值依赖具有传递性)多值依赖具有传递性若若XY,YZ,则则XZ Y(3)函数依赖是多值依赖的特殊情况。)函数依赖是多值依赖的特殊情况。若若XY,则,则XY。(4)若)若XY,XZ,则,则XY Z。(5)若)若XY,XZ,则,则XYZ。(6)若)若XY,XZ,则,则X,XZ。AnIntroductiontoDatabaseSystem多值依赖与函数依赖的区别(1)多值依赖的有效性与属性集的范围有关多值依赖的有效性与属性集的范围有关(2)若若XY在在U上成立则在上成立则在W(W U)上一定成立;反之则不然,即上一定成立;反之则不然,即XY在在W(W U)上成立,在)上成立,在U上并不一定成立。这是因为多值依赖的定义中不仅涉及属性组上并不一定成立。这是因为多值依赖的定义中不仅涉及属性组X和和Y,而且涉及而且涉及U中其余属性中其余属性Z。(3)(2)若函数依赖若函数依赖XY在在R(U)上成立,则对于任何)上成立,则对于任何Y Y均有均有XY 成立。成立。(4)而多值依赖而多值依赖XY若在若在R(U)上成立,不能断言对于任何上成立,不能断言对于任何Y Y有有XY 成立。成立。AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.84v定义定义6.10 关系模式关系模式R1,如果对于,如果对于R的每个非平凡多值依赖的每个非平凡多值依赖XY(Y X),),X都含有码,则都含有码,则R4。v如果如果R 4,则则R v不允许有非平凡且非函数依赖的多值依赖不允许有非平凡且非函数依赖的多值依赖v允许的非平凡多值依赖是函数依赖允许的非平凡多值依赖是函数依赖v即消除非平凡且非函数依赖的多值依赖。即消除非平凡且非函数依赖的多值依赖。AnIntroductiontoDatabaseSystem6.2.84(续)函数依赖非函数依赖平凡非平凡消除非平凡且非函数依赖的多值依赖消除非平凡且非函数依赖的多值依赖 (即即要要么么是是平平凡凡的的多多值值依依赖赖,要要么么是是函函数数依依赖赖;4所所允允许许的的非非平平凡凡的的多多值值依依赖赖实实际上是函数依赖。)际上是函数依赖。)AnIntroductiontoDatabaseSystem4(续)例:例:()4 存在非平凡的多值依赖存在非平凡的多值依赖CT,且,且C不是码不是码用投影分解法把分解为如下两个关系模式:用投影分解法把分解为如下两个关系模式:(C,T)4 (C,B)4 CT,CB是平凡多值依赖是平凡多值依赖 AnIntroductiontoDatabaseSystem4(续)v函数依赖和多值依赖是两种最重要的数据依赖。v如果只考虑函数依赖,则属于的关系模式规范化程度已经是最高了。v如果考虑多值依赖,则属于4的关系模式规范化程度是最高的。AnIntroductiontoDatabaseSystem6.2规范化6.2.1 函数依赖函数依赖6.2.2 码码6.2.3 范式范式6.2.4 26.2.5 36.2.6 6.2.7 多值依赖多值依赖6.2.8 46.2.9 规范化小结规范化小结AnIntroductiontoDatabaseSystem6.2.9规范化小结v关系数据库的规范化理论是数据库逻辑设计的工具关系数据库的规范化理论是数据库逻辑设计的工具v目的:尽量消除插入、删除异常,修改复杂,数据冗余目的:尽量消除插入、删除异常,修改复杂,数据冗余v基本思想:逐步消除数据依赖中不合适的部分基本思想:逐步消除数据依赖中不合适的部分v实质:概念的单一化实质:概念的单一化AnIntroductiontoDatabaseSystem规范化小结(续)v关系模式规范化的基本步骤关系模式规范化的基本步骤v 1v 消除非主属性对码的部分函数依赖消除非主属性对码的部分函数依赖v消除决定因素消除决定因素 2v 非码的非平非码的非平 消除非主属性对码的传递函数依赖消除非主属性对码的传递函数依赖v凡函数依赖凡函数依赖 3v 消除主属性对码的部分和传递函数依赖消除主属性对码的部分和传递函数依赖v v 消除非平凡且非函数依赖的多值依赖消除非平凡且非函数依赖的多值依赖v 4AnIntroductiontoDatabaseSystem规范化小结(续)v不能说规范化程度越高的关系模式就越好不能说规范化程度越高的关系模式就越好v在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式一个合适的、能够反映现实世界的模式v上面的规范化步骤可以在其中任何一步终止上面的规范化步骤可以在其中任何一步终止AnIntroductiontoDatabaseSystem第六章关系数据理论6.1 问题的提出问题的提出6.2 规范化规范化6.3 数据依赖的公理系统数据依赖的公理系统*6.4 模式的分解模式的分解6.5 小结小结AnIntroductiontoDatabaseSystem6.3数据依赖的公理系统v逻辑蕴含逻辑蕴含v定义定义6.11 对于满足一组函数依赖对于满足一组函数依赖 F 的关系模式的关系模式R,其任何一个关系,其任何一个关系r,若函数依,若函数依赖赖XY都成立都成立,(即(即r中任意两元组中任意两元组t,s,若,若tXX,则,则tYY),则称),则称F逻辑蕴含逻辑蕴含X YAnIntroductiontoDatabaseSystem1.公理系统关系模式R来说有以下的推理规则:A1.自反律():若YXU,则XY为F所蕴含。A2.增广律():若XY为F所蕴含,且ZU,则为F所蕴含。A3.传递律():若XY及YZ为F所蕴含,则XZ为F所蕴含。AnIntroductiontoDatabaseSystem2.导出规则1.根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:合并规则:由XY,XZ,有X。(A2,A3)伪传递规则:由XY,Z,有Z。(A2,A3)分解规则:由XY及ZY,有XZ。(A1,A3)AnIntroductiontoDatabaseSystem导出规则2.根据合并规则和分解规则,可得引理6.1引理6XA1A2成立的充分必要条件是X成立(,2,k)AnIntroductiontoDatabaseSystem3.函数依赖闭包定义62在关系模式R中为F所逻辑蕴含的函数依赖的全体叫作F的闭包,记为。定义6.13设F为属性集U上的一组函数依赖,XU,=A能由F根据公理导出,称为属性集X关于函数依赖集F的闭包AnIntroductiontoDatabaseSystemF的闭包XY,YZX,Y,Z,XX,YY,ZZ,X,X,Y,X,XY,Y Z,Y,Y,Z,Y,XZ,Y,Z,Z,Z,X,X,X,X,XA1,X的闭包计算是一个完全问题AnIntroductiontoDatabaseSystem关于闭包的引理v引理6.2v设F为属性集U上的一组函数依赖,X,YU,XY能v由F根据公理导出的充分必要条件是Yv用途v将判定XY是否能由F根据公理导出的问题,转化为求出、判定Y是否为的子集的问题AnIntroductiontoDatabaseSystem例1已知关系模式R(),,AB,DC,E,B。求()F()F解:(1)设X(0)。计算X(1)逐一扫描F中的各个函数依赖,寻找左部为A、E或的函数依赖,找到一个AB,故有X(1)。计算X(2)逐一扫描F中的各个函数依赖,寻找左部为或子集的函数依赖,因为找不到这样的函数依赖,所以,X(2)=X(1),算法终止。()F=。(2)同理求得)同理求得()F=。属性的闭包AnIntroductiontoDatabaseSystem函数依赖闭包例例2 已知关系模式已知关系模式R,其中,其中A,B,C,D,E;C,BD,CE,B,B。求()求()。解:解:设设X(0););(1)X(1)。(2)X(0)X(1)X(2)()(1)。(3)X(2),算法终止),算法终止()()。AnIntroductiontoDatabaseSystem4.候选码的求解方法给定关系模式R(),A1,A2,,F是R的函数依赖集,那么,可以将属性分为如下四类:(1)L:仅出现在函数依赖集F左部的属性。(2)R:仅出现在函数依赖集F右部的属性。(3):在函数依赖集F左右部都出现的属性。(4):在函数依赖集F左右部都未出现的属性。候选码相关定理:若X是L类属性,则X必为R的任一候选码的成员。若X是L类属性,则X必为R的唯一候选码。若X是R类属性,则X不是R的任一候选码的成员。若X是类属性,则X必为R的任一候选码的成员。若X是L类和类属性组成的属性集,且,则X必为R的唯一候选码。AnIntroductiontoDatabaseSystem例2设关系模式R(),,AC,CB,B,求R的候选码。解(1)确定各属性类别:L(A,D),R(B)(C),()(2)根据属性闭包算法,求得()F=,而在中不存在一个真子集能决定全属性,故为R的候选码。练习AnIntroductiontoDatabaseSystem例3 设关系模式R()上成立的集为BC,CD,那么关系模式R的码为。例4 设关系模式R()上成立的集为AC,BE,那么关系模式R的码为 。练习AnIntroductiontoDatabaseSystem5.最小依赖集定义6.15如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。(1)F中任一函数依赖的右部仅含有一个属性。(2)F中不存在这样的函数依赖XA,使得F与XA等价。(3)F中不存在这样的函数依赖XA,X有真子集Z使得XAZA与F等价。AnIntroductiontoDatabaseSystem最小依赖集例2关系模式S,其中:,(,)设F=,(,),(,)F是最小覆盖,而F不是。因为:F-与F等价F-(,)也与F等价AnIntroductiontoDatabaseSystem6.极小化过程定理6.3每一个函数依赖集F均等价于一个极小函数依赖集。此称为F的最小依赖集。证明:构造性证明,找出F的一个最小依赖集。AnIntroductiontoDatabaseSystem极小化过程(续)(1)逐一检查F中各函数依赖:XY,若1A2,k2,则用X1,2,k来取代XY。(2)逐一检查F中各函数依赖:XA,令XA,若A,则从F中去掉此函数依赖。(3)逐一取出F中各函数依赖:XA,设1B2,逐一考查(,2,m),若A(),则以取代X。AnIntroductiontoDatabaseSystem极小化过程(续)例3F=AB,BA,BC,AC,CA1、2都是F的最小依赖集:1=AB,BC,CA2=AB,BA,AC,CAF的最小依赖集不唯一极小化过程(定理6.3的证明)也是检验F是否为极小依赖集的一个算法AnIntroductiontoDatabaseSystem第六章关系数据理论6.1问题的提出6.2规范化6.3数据依赖的公理系统*6.4模式的分解6.5小结AnIntroductiontoDatabaseSystem6.4模式的分解v把低一级的关系模式分解为若干个高一级的关系模式的方法不是唯一的v只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义AnIntroductiontoDatabaseSystem关系模式分解的标准三种模式分解等价的定义:分解具有无损连接性分解要保持函数依赖分解既要保持函数依赖,又要具有无损连接性这三个定义是实行分解的三条不同准则。按照不同的分解准则,模式分解能达到的分离程度各不相同,各种范式就是对分离程度的测度。AnIntroductiontoDatabaseSystem模式的分解(续)例:(,),2分解方法可以有多种:1.分解为三个关系模式:()()()2.将分解为下面二个关系模式:(,)(,)3.将分解为(,)(,)AnIntroductiontoDatabaseSystem分析分析1.1.S1S1D1D1A AS2S2D1D1A AS3S3D2D2B BS4S4D3D3C C假设分解为(),(),()则r1=S1234 r2=D123 r3=分解后的数据库,要回答“S1在哪个系学习”已不可能了,丢失了原来的信息不能恢复。AnIntroductiontoDatabaseSystem分析分析2.S1S1D1D1S2S2D1D1S3S3D2D2S4S4D3D3S1S1A AS2S2A AS3S3B BS4S4C C ,所以对的分解能恢复原来的信息,具有无损连接性。但原R中的函数依赖,现在在和中都不存在了。因此不保持函数依赖。AnIntroductiontoDatabaseSystem分析分析3.S1S1D1D1S2S2D1D1S3S3D2D2S4S4D3D3D1D1A AD2D2B BD3D3C C该分解既具有无损连接性,又保持函数依赖。它解决了更新异常,又没有丢失原数据库的信息,这是所希望的分解。函数依赖集:F1=,F2=AnIntroductiontoDatabaseSystem模式的分解(续)v如果一个分解具有无损连接性,则它能够保证不丢失信息v如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况v分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。AnIntroductiontoDatabaseSystem模式的分解(续)第1种分解方法既不具有无损连接性,也未保持函数依赖,它不是原关系模式的一个等价分解第2种分解方法具有无损连接性,但未保持函数依赖第3种分解方法既具有无损连接性,又保持了函数依赖AnIntroductiontoDatabaseSystem分解算法v算法6.2判别一个分解的无损连接性v算法6.3(合成法)转换为3的保持函数依赖的分解。v算法6.4转换为3既有无损连接性又保持函数依赖的分解v算法6.5(分解法)转换为的无损连接分解v算法6.6达到4的具有无损连接性的分解AnIntroductiontoDatabaseSystem模式的分解(续)v如何判断分解后的关系模式是否具有无损连接性和v保持函数依赖?v定义1若=(F1F2)+,则R()的分解v=R1(U11),()保持函数依赖。v定理1(只适合分解为两个关系模式的情况)v关系模式R()的一个分解v=R1(U11),R2(U22)具有无损连接性的充分必要条件是:U1U2U12v或U1U2U21AnIntroductiontoDatabaseSystem判别无损连接性的算法例8 关系模式R(),其中,E,ED,AB,BD。判断如下分解是否无损连接。(1)1=R1(),R2(),R3()(2)2=R1(),R2(),R3()解(1)ABCDER1()a1b12a3b14b15R2()b21b22b23a4a5R3()a1a2b33b34b35属性模式结论:分解结论:分解1是有损的。是有损的。AnIntroductiontoDatabaseSystemv解(2)2=R1(),R2(),R3()vE,ED,AB,BDABCDER1()R2()R3()属性模式AnIntroductiontoDatabaseSystem习题:设关系模式R()上成立的函数依赖集 AB,CD,试把R分解成3模式集,且具有无损连接和保持函数依赖两个特性。练习AnIntroductiontoDatabaseSystem答案解:确定R的码为()。判断R只属于1,根据函数依赖集将R分解为 R1()和R2()。验证是否具有无损连接性和保持函数依赖两个特性。ABCDR1()a1a2b13b14R2()b21b22a3a4属性模式结论:不具有无损连接性结论:不具有无损连接性AnIntroductiontoDatabaseSystemv增加关系模式增加关系模式R3()R3(),即将,即将R R分解为分解为v R1()R1(),R2()R2(),R3()R3()。v v v 经验证既保持无损连接性又保持函数依赖且都属于经验证既保持无损连接性又保持函数依赖且都属于3 3。ABCDR1()a1a2b13b14R2()b21b22a3a4R3()a1b32a3b34属性模式AnIntroductiontoDatabaseSystem第六章关系数据理论6.1问题的提出6.2规范化6.3数据依赖的公理系统*6.4模式的分解6.5小结AnIntroductiontoDatabaseSystem6.5小结函数依赖(平凡的函数依赖、非平凡的函数依赖函数依赖(平凡的函数依赖、非平凡的函数依赖 部分函数依赖、完全函数依赖、传递函数依赖)部分函数依赖、完全函数依赖、传递函数依赖)码(候选码、主码、全码、外码、主属性、非主属性)码(候选码、主码、全码、外码、主属性、非主属性)规范化(规范化(1、2、3、4的条件)的条件)候选码的求解方法候选码的求解方法最小依赖集最小依赖集判断分解保持函数依赖判断分解保持函数依赖判断分解保持无损连接性判断分解保持无损连接性AnIntroductiontoDatabaseSystem小结(续)v规范化理论为数据库设计提供了理论的指南和工具规范化理论为数据库设计提供了理论的指南和工具v也仅仅是指南和工具也仅仅是指南和工具v并不是规范化程度越高,模式就越好并不是规范化程度越高,模式就越好v必须结合应用环境和现实世界的具体情况合理地选择数据库模式必须结合应用环境和现实世界的具体情况合理地选择数据库模式AnIntroductiontoDatabaseSystem下课了。休息一会儿。休息一会儿。AnIntroductiontoDatabaseSystem谢谢观赏谢谢观赏
展开阅读全文
相关资源
相关搜索

最新文档


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


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

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


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