书签 分享 收藏 举报 版权申诉 / 82
上传文档赚钱

类型《数据库原理》课件第7章 关系数据库规范化理论.ppt

  • 上传人(卖家):momomo
  • 文档编号:7939029
  • 上传时间:2024-09-06
  • 格式:PPT
  • 页数:82
  • 大小:1.38MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《数据库原理》课件第7章 关系数据库规范化理论.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数据库原理 数据库原理课件第7章 关系数据库规范化理论 数据库 原理 课件 关系 规范化 理论
    资源描述:

    1、2024-9-1优秀的数据库设计优秀的数据库设计是应用成功的基石是应用成功的基石 第第7章章 关系数据库关系数据库规范化理论规范化理论2024-9-2问题的提出问题的提出v关系数据库关系数据库v关系数据模型关系数据模型静态的数据结构描述静态的数据结构描述动态的数据操作集合动态的数据操作集合数据完整性约束数据完整性约束v关系数据库逻辑设计关系数据库逻辑设计针对一个具体问题,应如何构造一个适合于它的数据模式,针对一个具体问题,应如何构造一个适合于它的数据模式,即应该构造几个关系,每个关系由哪些属性组成等。即应该构造几个关系,每个关系由哪些属性组成等。数据库逻辑设计的工具数据库逻辑设计的工具 关系数

    2、据库的规范化理论关系数据库的规范化理论2024-9-3关系模式的设计问题关系模式的设计问题v例例1.考虑为管理职工的工资信息而设计一个关系模式考虑为管理职工的工资信息而设计一个关系模式职工职工级别级别工资工资赵明赵明4500钱广钱广5600孙志孙志6700李开李开5600周祥周祥67002024-9-4v存在问题:存在问题:信息的不可表示问题信息的不可表示问题v插入异常:插入异常:如果没有职工具有如果没有职工具有8级工资,则级工资,则8级工资的工级工资的工资数额就难以插入资数额就难以插入v删除异常:删除异常:如果仅有职工赵明具有如果仅有职工赵明具有4级工资,如果将赵级工资,如果将赵明删除,则有

    3、关明删除,则有关4级工资的工资数额信息也随之删除了级工资的工资数额信息也随之删除了信息的冗余问题信息的冗余问题v数据冗余:数据冗余:职工很多,工资级别有限,每一级别的工资职工很多,工资级别有限,每一级别的工资数额反复存储多次数额反复存储多次v更新异常:更新异常:如果将如果将5级工资的工资数额调为级工资的工资数额调为620,则需要,则需要找到每个具有找到每个具有5级工资的职工,逐一修改级工资的职工,逐一修改麻烦麻烦!麻烦麻烦!好烦好烦!唉,剪不断,理唉,剪不断,理还乱还乱2024-9-5v解决之道:关系模式分解解决之道:关系模式分解级别级别工资工资450056006700分解分解!分解分解!再分

    4、解再分解!哇,原来生活可以如此哇,原来生活可以如此简单简单2024-9-6v分解改进后,分解改进后,好处好处:数据量减少。数据量减少。v设有设有n个职工,个职工,m个工资级别,个工资级别,n m,则分解前原模式有,则分解前原模式有3n个数个数据,改进后新模式共有据,改进后新模式共有2n+2m个数据,显然后者的数据量要少得多。个数据,显然后者的数据量要少得多。表达能力强。表达能力强。v分解前原表中无法进入的信息(如分解前原表中无法进入的信息(如9级工资),在改进后的两个模式级工资),在改进后的两个模式中则可加入;中则可加入;v当删除职工当删除职工C时,也不会丢失时,也不会丢失7级工资信息。级工资

    5、信息。修改方便。修改方便。v改进后,修改某一级别工资时只要修改一处。改进后,修改某一级别工资时只要修改一处。v当然,改进后的关系模式也存在另外一个问题,当查当然,改进后的关系模式也存在另外一个问题,当查询某个职工的工资时,需要将两个关系连接后进行查询某个职工的工资时,需要将两个关系连接后进行查询,而关系的连接代价是很大的。询,而关系的连接代价是很大的。2024-9-7主要内容主要内容v关系模式的冗余和异常问题关系模式的冗余和异常问题v数据依赖数据依赖v*数据依赖的公理系统(了解)数据依赖的公理系统(了解)v码码与闭包算法求码与闭包算法求码v关系模式的规范化关系模式的规范化函数依赖与关系模式的范

    6、式:函数依赖与关系模式的范式:1NF,2NF,3NF,BCNF*多值依赖与多值依赖与4NF(了解)(了解)v*模式的分解(了解)模式的分解(了解)无损连接性分解无损连接性分解保持函数依赖分解保持函数依赖分解2024-9-8数据依赖数据依赖内容提要内容提要v关系模式中的数据依赖关系模式中的数据依赖概念回顾概念回顾关系模式的形式化定义关系模式的形式化定义什么是数据依赖什么是数据依赖关系模式的简化定义关系模式的简化定义v数据依赖对关系模式有什么影响数据依赖对关系模式有什么影响v数据依赖的形式化定义数据依赖的形式化定义2024-9-9概念回顾概念回顾v关系:关系:描述实体及其属性、实体间的联系。描述实

    7、体及其属性、实体间的联系。从形式上看,它是一张二维表,是所涉及属性的从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。笛卡尔积的一个子集。v关系模式:关系模式:用来定义关系。用来定义关系。v关系数据库:关系数据库:基于关系模型的数据库,利用关系来基于关系模型的数据库,利用关系来描述现实世界。描述现实世界。从形式上看,它由一组关系组成。从形式上看,它由一组关系组成。v关系数据库的模式:关系数据库的模式:定义这组关系的关系模式的全体。定义这组关系的关系模式的全体。2024-9-10关系模式的形式化定义关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:关系模式由五部分组成,即它

    8、是一个五元组:R(U,D,DOM,F)R:关系名关系名U:组成该关系的属性名集合组成该关系的属性名集合D:属性组属性组U中属性所来自的域中属性所来自的域DOM:属性向域的映象集合:属性向域的映象集合F:属性间数据的依赖关系集合。即限定了组成属性间数据的依赖关系集合。即限定了组成 关系的各个元组必须满足的完整性约束条件。关系的各个元组必须满足的完整性约束条件。2024-9-11什么是数据依赖什么是数据依赖1.完整性约束的表现形式完整性约束的表现形式v限定属性取值范围:例如学生成绩必须在限定属性取值范围:例如学生成绩必须在0-100之间之间v定义属性值间的相互关连(主要体现于值的定义属性值间的相互

    9、关连(主要体现于值的相等与否),这就是数据依赖,它是数据库相等与否),这就是数据依赖,它是数据库模式设计的关键模式设计的关键。2024-9-12什么是数据依赖(续)什么是数据依赖(续)2.数据依赖数据依赖v是通过一个关系中属性间值的相等与否是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系体现出来的数据间的相互关系v是现实世界属性间相互联系的抽象是现实世界属性间相互联系的抽象v是数据内在的性质是数据内在的性质v是语义的体现是语义的体现2024-9-13什么是数据依赖(续)什么是数据依赖(续)3.数据依赖的主要类型数据依赖的主要类型v函数依赖函数依赖(Functional Depend

    10、ency,FD)v多值依赖(了解)多值依赖(了解)(Multivalued Dependency,MVD)v连接依赖(了解)连接依赖(了解)2024-9-14关系模式的简化表示关系模式的简化表示v在关系模式在关系模式R(U,D,DOM,F)中,影响数据库中,影响数据库模式设计的主要是模式设计的主要是U和和F,D和和DOM对其影响对其影响不大,为了方便讨论,我们将关系模式简化不大,为了方便讨论,我们将关系模式简化为一个三元组:为一个三元组:R(U,F)v当且仅当当且仅当U上的一个关系上的一个关系r满足满足F时,时,r称为关称为关系模式系模式R(U,F)的一个关系。的一个关系。2024-9-15数

    11、据依赖对关系模式的影响数据依赖对关系模式的影响v例例2.建立一个描述学校的数据库。建立一个描述学校的数据库。涉及的对象包括:涉及的对象包括:学生的学号(学生的学号(Sno),所在系(),所在系(Sdept),系主任姓名),系主任姓名(Mname),课程名(),课程名(Cname),成绩(),成绩(Grade)v假设学校的数据库模式由一个单一的关系模式假设学校的数据库模式由一个单一的关系模式Student构成,则该关系模式的属性集合为:构成,则该关系模式的属性集合为:U Sno,Sdept,Mname,Cname,Grade 2024-9-16数据依赖对关系模式的影响(续)数据依赖对关系模式的影

    12、响(续)现实世界的已知事实:现实世界的已知事实:v一个系有若干学生,一个系有若干学生,但一个学生只属于一个系;但一个学生只属于一个系;v一个系只有一名主任;一个系只有一名主任;v一个学生可以选修多门课程,一个学生可以选修多门课程,每门课程有若干学生每门课程有若干学生选修;选修;v每个学生所学的每门课程都有一个成绩。每个学生所学的每门课程都有一个成绩。v由此可得到属性组由此可得到属性组U上的一组函数依赖上的一组函数依赖F:F Sno Sdept,Sdept Mname,(Sno,Cname)Grade 2024-9-17数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)SnoCname

    13、SdeptMnameGrade函数依赖图函数依赖图2024-9-18数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)关系模式关系模式Student中存在的问题:中存在的问题:数据冗余太大数据冗余太大浪费大量的存储空间浪费大量的存储空间 例:每一个系主任的姓名重复出现,重复次数与该系所有学例:每一个系主任的姓名重复出现,重复次数与该系所有学生的所有课程成绩出现次数相同。生的所有课程成绩出现次数相同。更新异常(更新异常(Update Anomalies)数据冗余数据冗余,更新数据时,维护数据完整性代价大。更新数据时,维护数据完整性代价大。例:某系更换系主任后,系统必须修改与该系学生有关

    14、的每例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组。一个元组。2024-9-19数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)插入异常(插入异常(Insertion Anomalies)该插的数据插不进去该插的数据插不进去 例:如果一个系刚成立,尚无学生,我们就无法把这个系及例:如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。其系主任的信息存入数据库。删除异常(删除异常(Deletion Anomalies)不该删除的数据不得不删不该删除的数据不得不删例:如果某个系的学生全部毕业了,例:如果某个系的学生全部毕业了,我们在删除该系学生我们在删

    15、除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。信息的同时,把这个系及其系主任的信息也丢掉了。2024-9-20数据依赖对关系模式的影响(续)数据依赖对关系模式的影响(续)结论:结论:Student关系模式不是一个好的模式。关系模式不是一个好的模式。一个一个“好好”的模式应当不会发生插入异常、删除异的模式应当不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。常、更新异常,数据冗余应尽可能少。原因:原因:由存在于模式中的某些数据依赖引起的。由存在于模式中的某些数据依赖引起的。解决方法:解决方法:通过分解关系模式来消除其中不合适通过分解关系模式来消除其中不合适 的数据依赖。的数据依

    16、赖。2024-9-21如何设计一个合理的关系数据库模式?如何设计一个合理的关系数据库模式?v与实际问题相结合与实际问题相结合例例3.设计一个关系数据模型以存放学生各门课考试成绩设计一个关系数据模型以存放学生各门课考试成绩方案一:方案一:Grade 关系(关系(sno,sname,cno,cname,grade)方案二:方案二:Grade 关系(关系(sno,sname,cno,grade)Course 关系(关系(cno,cname)方案三:方案三:Grade 关系(关系(sno,cno grade)Student关系(关系(sno,sname)Course 关系(关系(cno,cname)v

    17、规范化理论规范化理论2024-9-22v例例4.4.设计教学管理关系数据库模型设计教学管理关系数据库模型 2024-9-23方案一:方案一:SCT(sno,cno,tno,sname,grade,cname,tname)问题分析问题分析关系关系SCT 冗余度高冗余度高 修改困难修改困难 插入问题插入问题 删除问题删除问题产生问题的原因产生问题的原因 属性间约束关系(即数据间的依赖关系)太强属性间约束关系(即数据间的依赖关系)太强2024-9-24方案二:分解成方案二:分解成5个关系模式个关系模式students(sno,sname)、)、courses(cno,cname)enrolls (s

    18、no,cno,grade)teachers(tno,tname)、)、teaching(tno,cno)CnoTnoC1T1C1T4C2T2C3T3C4T4CoursesStudentsEnrollsTeachersTeachCourses2024-9-25什么是关系数据库设计理论?什么是关系数据库设计理论?v关系数据库设计的核心:关系数据库设计的核心:关系模式设计关系模式设计v关系模式的设计:关系模式的设计:按照一定的原则从数量众多而又相互关联的按照一定的原则从数量众多而又相互关联的数据中,构造出一组既能较好地反映现实世数据中,构造出一组既能较好地反映现实世界,而又有良好的操作性能的关系模式

    19、。界,而又有良好的操作性能的关系模式。v关系模式优劣,如何评价,如何改进?关系模式优劣,如何评价,如何改进?本章所要解决的问题本章所要解决的问题 2024-9-26什么是关系数据库设计理论?(续)什么是关系数据库设计理论?(续)v规范化理论规范化理论正是用来改造关系模式,通过分解关系模式来消正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。新异常和数据冗余问题。v数据库语义学的重要内容数据库语义学的重要内容v它借助近代代数工具,提出了一整套严密的理论和实用算法,它借助近代代数工

    20、具,提出了一整套严密的理论和实用算法,把抽象的数学理论和具体的实际问题结合起来把抽象的数学理论和具体的实际问题结合起来v解决如何设计好一个关系数据模式问题解决如何设计好一个关系数据模式问题v是关系数据库设计的指南是关系数据库设计的指南v理论的基础:数据的依赖(数据的相关性)理论的基础:数据的依赖(数据的相关性)2024-9-27数据依赖相关概念数据依赖相关概念v函数依赖(函数依赖(Functional Dependency)v平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖v完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖v传递函数依赖传递函数依赖v码码2024-9-28函数依赖函

    21、数依赖v数据依赖的一种,它反映属性或属性组之间相依存,数据依赖的一种,它反映属性或属性组之间相依存,互相制约的关系,即反映现实世界的约束关系。互相制约的关系,即反映现实世界的约束关系。v定义:定义:设设R(U)是属性)是属性U上的一个关系模式,上的一个关系模式,X和和Y均为均为U=A1,A2,An的子集,的子集,r为为R的任一关系,如的任一关系,如果对于果对于r中的任意两个元组中的任意两个元组u,v,只要有,只要有uX=vX,就有就有uY=vY,则称,则称X函数决定函数决定Y,或称,或称Y函数依赖于函数依赖于X,记为,记为XY,称称X为决定因素。为决定因素。v若若XY,并且,并且YX,则记为则

    22、记为XY。v若若Y不函数依赖于不函数依赖于X,则记为则记为XY。2024-9-29函数依赖(续)函数依赖(续)v函数依赖是语义范畴的概念。只能函数依赖是语义范畴的概念。只能根据语义来确定根据语义来确定函数依赖性的存在与否。函数依赖性的存在与否。例如例如“姓名姓名年龄年龄”这个函数依赖只有在不允许有同名这个函数依赖只有在不允许有同名人的条件下成立。人的条件下成立。v函数依赖反映属性之间的一般规律,必须在关系模函数依赖反映属性之间的一般规律,必须在关系模式下的任一个关系式下的任一个关系r r中都满足约束条件。中都满足约束条件。v数据库设计者可以对现实世界作强制的规定。例如数据库设计者可以对现实世界

    23、作强制的规定。例如规定不允许同名人出现,函数依赖规定不允许同名人出现,函数依赖“姓名姓名年龄年龄”成立。所插入的元组必须满足规定的函数依赖,若成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在,发现有同名人存在,则拒绝装入该元组。则拒绝装入该元组。2024-9-30函数依赖(续)函数依赖(续)v属性间的联系决定函数依赖关系。属性间的联系决定函数依赖关系。v设设X、Y均是均是U的子集,的子集,1.X和和Y间联系是间联系是1:1,则,则XY且且YX,则记为,则记为XY。2.X和和Y间联系是间联系是M:1(M1),则记为,则记为XY。3.X和和Y间联系是间联系是M:N(M,N1),则,则X

    24、、Y间不存在函数依赖,则记为间不存在函数依赖,则记为XY。v关系中函数依赖关系可以用函数依赖图表示。关系中函数依赖关系可以用函数依赖图表示。v例:例:关系模式关系模式SCT(sno,cno,tno,sname,grade,cname,tname)snamecnamesnocnogradetnotname因不允许学生有重名因不允许学生有重名sno snamesname sno因课程名唯一因课程名唯一cno cname(sno,cno)grade(sno,cno)tnotno tname2024-9-31平凡函数依赖与非平凡函数依赖平凡函数依赖与非平凡函数依赖v定义:定义:设设X,Y均为某关系上的

    25、属性集,且均为某关系上的属性集,且XY:若若Y包含于包含于X即即Y X,则称,则称XY为平凡函数依赖;为平凡函数依赖;若若Y不包含于不包含于X即即Y X,则称,则称XY为非平凡函数依赖。为非平凡函数依赖。XYW例:设关系例:设关系X,Y,W为关系为关系R中的三个属性组,属性关系如下中的三个属性组,属性关系如下图所示,问图所示,问XY,XW,WY各属上述何种函数依赖。各属上述何种函数依赖。XY为平凡函数依赖为平凡函数依赖XW,WY为非平凡函数依赖为非平凡函数依赖2024-9-32平凡函数依赖与非平凡函数依赖(续)平凡函数依赖与非平凡函数依赖(续)v例:在关系例:在关系SC(Sno,Cno,Gra

    26、de)中,中,非平凡函数依赖:非平凡函数依赖:(Sno,Cno)Grade 平凡函数依赖:平凡函数依赖:(Sno,Cno)Sno (Sno,Cno)Cnov于任一关系模式,平凡函数依赖都是必然成立的,于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明,我们总是它不反映新的语义,因此若不特别声明,我们总是讨论非平凡函数依赖讨论非平凡函数依赖。2024-9-33完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖v定义:定义:在在R(U)中中,如果如果XY,并且对于并且对于X的任何真子集的任何真子集X都都有有XY,则称则称Y完全依赖于完全依赖于X,记作记作XY;否则,如

    27、果;否则,如果XY,且且X中存在一个真子集中存在一个真子集X,使得,使得XY成立,则成立,则Y部分依部分依赖于赖于X,记作,记作XY。v例:在关系例:在关系SC(Sno,Cno,Grade)中,中,Sno Grade,Cno Grade,因此:,因此:(Sno,Cno)Grade但:但:(Sno,Cno)Sno,(Sno,Cno)Cnov平凡函数依赖必定是部分函数依赖平凡函数依赖必定是部分函数依赖v非平凡函数依赖也可能是部分函数依赖非平凡函数依赖也可能是部分函数依赖ppp2024-9-34完全函数依赖与部分函数依赖(续)完全函数依赖与部分函数依赖(续)v例:例:Student(Sno,Snam

    28、e,Ssex,Sage,Sdept)Sno Sname,Sno Ssex,Sno Sage,Sno Sdept (Sno,Sname)P Sdept,(Sno,Ssex)P Sdept2024-9-35传递函数依赖传递函数依赖v定义:定义:在关系模式在关系模式R(U)中,如果中,如果XY,YZ,且且Y X,YX,则称,则称Z传递函数依赖于传递函数依赖于X。v注:如果注:如果YX,即,即XY,则,则Z直接依赖直接依赖于于X。v例:在关系例:在关系Std(Sno,Sdept,Mname)中,中,有:有:Sno Sdept,Sdept Mname,Mname传递函数依赖于传递函数依赖于Sno。202

    29、4-9-36码的求解码的求解v码的定义码的定义v数据依赖的公理系统数据依赖的公理系统v闭包算法闭包算法v侯选码的求解理论和算法侯选码的求解理论和算法v函数依赖集等价函数依赖集等价v最小函数依赖集最小函数依赖集2024-9-37码的定义码的定义v定义:定义:设设K为关系模式为关系模式R中的属性或属性组合。中的属性或属性组合。若若 K U,则,则K称为称为R的一个侯选码(的一个侯选码(Candidate Key)。)。v若关系模式若关系模式R有多个候选码,则选定其中的一个做为有多个候选码,则选定其中的一个做为主码主码(Primary key)。)。v主属性主属性:包含在每一个候选码中的属性,称作主

    30、属性。包含在每一个候选码中的属性,称作主属性。v码是关系模式中一个重要概念。码是关系模式中一个重要概念。候选码能够唯一地标别关系的元组,是关系模式中候选码能够唯一地标别关系的元组,是关系模式中一组最重要的属性。一组最重要的属性。主码又和外部码一起提供了一个表示关系间联系的主码又和外部码一起提供了一个表示关系间联系的手段手段。f2024-9-38数据依赖的公理系统数据依赖的公理系统v一套推理规则,是模式分解算法的理论基础一套推理规则,是模式分解算法的理论基础v用途用途求给定关系模式的码求给定关系模式的码讨论如何推导函数依赖,即从已知的函数依赖集讨论如何推导函数依赖,即从已知的函数依赖集中推导出其

    31、他隐含的函数依赖。中推导出其他隐含的函数依赖。2024-9-39Armstrong公理系统公理系统vArmstrong公理系统公理系统 设有关系模式设有关系模式 R(U,F),X、Y、Z、W U,则对,则对 R(U,F)有:有:A1(自反律):若(自反律):若Y X,则,则XY;A2(增广律):若(增广律):若XY,则,则XZYZ;A3(传递律):若(传递律):若XY,YZ,则,则XZ。v定理定理 Armstrong公理是正确的。即如果函数依赖公理是正确的。即如果函数依赖F成立,则成立,则由由F根据根据Armstrong公理所推导的函数依赖总是成立的。公理所推导的函数依赖总是成立的。v由由Ar

    32、mstrong公理系统,可以得到以下三个推论:公理系统,可以得到以下三个推论:合成规则:若合成规则:若XY,XZ,则,则XYZ;分解规则:若分解规则:若XY,Z Y,则则XZ;伪传递规则:若伪传递规则:若XY,WYZ,则,则XWZ。v引理引理 XA1A2Ak成立的充分必要条件是成立的充分必要条件是XAi成立成立(i=1,2,k)。)。2024-9-40函数依赖的闭包函数依赖的闭包v定义定义 设关系模式设关系模式R(U,F),U为为R的属性集合,的属性集合,F为为其函数依赖集,则称所有用其函数依赖集,则称所有用Armstrong公理从公理从F推推出的函数依赖出的函数依赖XR中中Ai的属性集合,为

    33、的属性集合,为X的属性闭的属性闭包,记作包,记作X+,读作,读作X关于函数依赖集关于函数依赖集F的闭包的闭包。v引理引理 设关系模式设关系模式R(U,F),U为为R的属性集合,的属性集合,F为为其函数依赖集,其函数依赖集,X、Y U,则从,则从F推出推出XY的充要的充要条件是条件是Y X+。v用途用途 将判定将判定XY是否能由是否能由F根据根据Armstrong公理导出的问题,就公理导出的问题,就转化为求出转化为求出XF+,判定,判定Y是否为是否为XF+的子集的问题。的子集的问题。2024-9-41求解闭包的算法求解闭包的算法v算法算法 求属性集求属性集X(X U)关于)关于U上的函数依赖集上

    34、的函数依赖集F 的闭包的闭包XF+。输入:输入:X,F;输出:输出:XF+步骤:步骤:(1)令令X(0)=X,i=0;(2)求求B,这里这里B=A|(V)(W)(VW FV X(i)A W);(3)X(i+1)=BX(i);(4)判断判断X(i+1)=X(i)吗吗?(5)若相等或若相等或X(i)=U,则则X(i)就是就是XF+,算法终止。算法终止。(6)若否,则若否,则 i=i+l,返回第,返回第(2)步。步。2024-9-42求解闭包的算法(续)求解闭包的算法(续)v算法伪代码表示:算法伪代码表示:(输出结果输出结果XF+存储在变量存储在变量result中)中)result:=X;WHILE

    35、(result发生变化发生变化)DO FOR EACH 函数依赖函数依赖YZ IN F DO BEGIN IF Y result THEN result:=resultZ;END2024-9-43求解闭包示例求解闭包示例v例例1.已知已知U=A,B,C,D;AB,BCD.A+=AB.C+=C.(AC)+=ABCD.ACDB2024-9-44求解闭包示例(续)求解闭包示例(续)v例例2.已知关系模式已知关系模式R,其中,其中U=A,B,C,D,E;F=ABC,BD,CE,ECB,ACB。求(。求(AB)F+。(1)设设X(0)=AB;(2)计算计算X(1):逐一的扫描逐一的扫描F集合中各个函数依

    36、赖,集合中各个函数依赖,找左部为找左部为A,B或或AB的函数依赖。的函数依赖。得到两个:得到两个:ABC,BD。于是于是X(1)=ABCD=ABCD。(3)因为因为X(0)X(1),所以再找出左部为,所以再找出左部为ABCD子集的那些函数子集的那些函数依赖,又得到依赖,又得到ABC,BD,CE,ACB,于是于是X(2)=X(1)BCDE=ABCDE。(4)因为因为X(2)=U,算法终止,算法终止所以(所以(AB)F+=ABCDE。2024-9-45闭包求解与码闭包求解与码v利用闭包算法,能够正确判断一个新的函数依赖能利用闭包算法,能够正确判断一个新的函数依赖能否从给定的函数依赖否从给定的函数依

    37、赖F集合中推导出来。集合中推导出来。v通过闭包算法,可以从关系通过闭包算法,可以从关系R(U,F)中给定的函数依中给定的函数依赖集合赖集合F推导出所有的函数依赖。推导出所有的函数依赖。v还可以得出结论:还可以得出结论:关系关系R(U,F)中,其中某个给定属性集中,其中某个给定属性集K U,当且仅当,当且仅当K关于给定函数依赖集关于给定函数依赖集F的闭包的闭包K+是是R的所有属性集合的所有属性集合U时,时,K即为关系即为关系R的的超码超码。当且仅当属性集当且仅当属性集K中不存在任一真子集中不存在任一真子集K的闭包的闭包(K)+也也是是R的所有属性集合的所有属性集合U时,即属性集时,即属性集K是最

    38、小属性集合构是最小属性集合构成的超码时成的超码时,K就是该关系就是该关系R(U,F)的的候选码候选码。2024-9-46候选码的求解理论和算法候选码的求解理论和算法v对于给定的关系对于给定的关系R R(A1A2A1A2AnAn)和函数依赖集)和函数依赖集F F,可,可将其属性分为将其属性分为4 4类:类:L L类类:仅出现在:仅出现在F F函数依赖左部的属性函数依赖左部的属性R R类类:仅出现在:仅出现在F F函数依赖右部的属性函数依赖右部的属性N N类类:在:在F F函数依赖的左右两部均未出现的属性函数依赖的左右两部均未出现的属性LRLR类类:在:在F F函数依赖的左右两部均出现的属性函数依

    39、赖的左右两部均出现的属性v定理:对于给定的关系模式定理:对于给定的关系模式R R及其函数依赖集及其函数依赖集F F,若,若X X是是R R的的L L类属性,则类属性,则X X必为必为R R的任一侯选码的成员。的任一侯选码的成员。v推论:对于给定的关系模式推论:对于给定的关系模式R R及其函数依赖集及其函数依赖集F F,若,若X X是是R R的的L L类属性,且类属性,且X+X+包含了包含了R R的全部属性,则的全部属性,则X X必为必为R R的唯一侯选码。的唯一侯选码。2024-9-47v例:设有关系模式例:设有关系模式R(A,B,C,D),其函数依赖,其函数依赖集集F=D-B,B-D,AD-

    40、B,AC-D,求,求R的所的所有候选码。有候选码。v解:考察解:考察F发现,发现,A,C两属性是两属性是L类属性,由类属性,由以上的定理可知,以上的定理可知,AC必是必是R的候选码成员,的候选码成员,又因为又因为AC+=ABCD,所以,所以AC是是R的唯一的唯一侯选侯选码。码。2024-9-48v定理:对于给定的关系模式定理:对于给定的关系模式R及其函数依赖集及其函数依赖集F,若,若X是是R的的R类属性,则类属性,则X不是不是R的任何候选码的成员。的任何候选码的成员。v定理:对于给定的关系模式定理:对于给定的关系模式R及其函数依赖集及其函数依赖集F,若,若X是是R的的N类属性,则类属性,则X必

    41、为必为R的任一候选码的成员。的任一候选码的成员。v例:设有关系模式例:设有关系模式R(A,B,C,D,E,P),),R的函数依赖集为的函数依赖集为F=A-D,E-D,D-B,BC-D,DC-A,求,求R的所有候选码。的所有候选码。解:考察解:考察F发现,属性发现,属性E,C是是L类属性,故类属性,故E,C必在必在R的任何的任何候选码中。候选码中。又因为属性又因为属性P是是N类属性,所以类属性,所以P也在也在R的任何候选码中。的任何候选码中。而而CEP+=ABCDEP,所以,所以CEP是是R的唯一候选码。的唯一候选码。v推论:对于给定的关系模式推论:对于给定的关系模式R及其函数依赖集及其函数依赖

    42、集F,如果,如果X是是R的的N类和类和L类组成的属性集,且类组成的属性集,且X+包含了包含了R的全部属性,则的全部属性,则X是是R的唯一候选码。的唯一候选码。2024-9-49示例示例关系模式关系模式S(S#,SN,SD,DMN,C#,G)函数依赖:函数依赖:fpp(S#,C#)GS#SN,(,(S#,C#)SNS#SD,(S#,C#)SDSD DMN候选码:候选码:(S#,C#)2024-9-50函数依赖集等价函数依赖集等价v定义如果定义如果G+=F+,就说函数依赖集,就说函数依赖集F覆盖覆盖G(F是是G的覆盖,或的覆盖,或G是是F的覆盖),或的覆盖),或F与与G等价等价。2024-9-51

    43、最小函数依赖集最小函数依赖集v定义定义 如果函数依赖集如果函数依赖集F满足下列条件,则称满足下列条件,则称F为一个为一个极小函数依赖集极小函数依赖集。亦称为。亦称为最小依赖集最小依赖集或或最小覆盖。最小覆盖。(1)F中任一函数依赖的右部仅含有一个属性。中任一函数依赖的右部仅含有一个属性。(2)F中不存在这样的函数依赖中不存在这样的函数依赖XA,使得,使得F与与F-XA等价。等价。(3)F中不存在这样的函数依赖中不存在这样的函数依赖XA,X有真有真子集子集Z使得使得F-XAZA与与F等价。等价。2024-9-52最小函数依赖集示例最小函数依赖集示例v例例.对于关系模式对于关系模式S,其中:,其中

    44、:U=SNO,SDEPT,DMN,CNAME,G,F=SNOSDEPT,SDEPTDMN,(SNO,CNAME)G 设设F=SNOSDEPT,SNODMN,SDEPTDMN,(SNO,CNAME)G,(SNO,SDEPT)SDEPTF是最小覆盖,而是最小覆盖,而F不是。不是。因为:因为:F SNOMN 与与F等价;等价;F(SNO,SDEPT)SDEPT 也与也与F等价。等价。2024-9-53范式范式v定义定义关系模式满足的确定约束条件称为关系模式满足的确定约束条件称为范式范式,根据满足约束条件的级别,根据满足约束条件的级别不同,范式由低到高分为不同,范式由低到高分为1NF1NF,2NF2N

    45、F,3NF3NF,BCNFBCNF,4NF4NF,5NF5NF等。等。不同的级别范式性质不同。不同的级别范式性质不同。关系模式的规范化关系模式的规范化:把一个低一级的关系模式分解为高一级关系模:把一个低一级的关系模式分解为高一级关系模式的过程。式的过程。1NF2NF3NF4NFBCNF5NFNF5NF4BCNFNF3NF2NF1各种范式之间存在联系:各种范式之间存在联系:2024-9-54范式范式v第一范式(第一范式(1NF)v部分函数依赖与第二范式(部分函数依赖与第二范式(2NF)v传递函数依赖与第三范式(传递函数依赖与第三范式(3NF)v主属性的不良依赖与主属性的不良依赖与BC范式(范式(

    46、BCNF)v多值依赖与第四范式(多值依赖与第四范式(4NF)(了解)(了解)2024-9-55第一范式(第一范式(1NF)v1NF的定义:如果一个关系模式的定义:如果一个关系模式R的所有属性都是的所有属性都是不可分的基本数据项,则不可分的基本数据项,则R1NF。关系中每一分量不可再分,关系中每一分量不可再分,即属性不能再分,是属性项即属性不能再分,是属性项而不是属性组而不是属性组。即不能以集合、序列等作为属性值。即不能以集合、序列等作为属性值。v第一范式是对关系模式的最起码的要求。不满足第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。第一范式的数据库模式不能称

    47、为关系数据库。教工号教工名所在部门 工资基本工资 补贴工资005001王武管理学院 800.00 500.00005002张三计算机学院 900.00 600.002024-9-561NF(续)(续)例例1 1:A A1 1,A,A2 2,A,A3 3,,A Ak k,A,An n A Ak1 k1 A Ak2 k2 例例2 2:工资:工资(工号工号,姓名姓名,工资工资(基本工资基本工资,年绩津贴年绩津贴,煤电补贴煤电补贴)不满足不满足1NF1NF的关系称为的关系称为非规范化关系非规范化关系。关系数据模型不能存储上两个例子(非规范化关系)关系数据模型不能存储上两个例子(非规范化关系),在关系在

    48、关系数据库中不允许非规范化关系的存在数据库中不允许非规范化关系的存在。转化方法转化方法:1)A1)A1 1,A,A2 2,A,A3 3,,A Ak1k1,A Ak2k2,,A,An n2)2)工资工资(工号工号,姓名姓名,基本工资基本工资,津贴津贴,奖金奖金)2024-9-571NF(续)(续)分量是否需要再分,与具体应用有关。如果用到值分量是否需要再分,与具体应用有关。如果用到值的一部分,则需要进一步分割。的一部分,则需要进一步分割。如果只是查询出生日期,则它满足如果只是查询出生日期,则它满足1NF;如果查询两人生日是否相同,则只比较月、日,需如果查询两人生日是否相同,则只比较月、日,需要将

    49、生日分解,就不满足要将生日分解,就不满足1NF。如果比较两人的生肖呢?如果比较两人的生肖呢?姓名生日王军68.7.10张立69.7.10李明80.3.28姓名年月日王军687.10张立697.10李明803.282024-9-58第二范式(第二范式(2NF)关系模式关系模式S(S#,SN,SD,DMN,C#,G)v不良特性不良特性插入异常:如果学生没有选课,关于他的个人信息及所插入异常:如果学生没有选课,关于他的个人信息及所在系的信息就无法插入在系的信息就无法插入删除异常:如果删除学生的选课信息,则有关他的个人删除异常:如果删除学生的选课信息,则有关他的个人信息及所在系的信息也随之删除了信息及

    50、所在系的信息也随之删除了更新异常:如果学生转系,若他选修了更新异常:如果学生转系,若他选修了k门课,则需要修门课,则需要修改改k次次数据冗余:如果一个学生选修了数据冗余:如果一个学生选修了k门课,则有关他的所在门课,则有关他的所在系的信息重复系的信息重复2024-9-59S#C#GSDDMNSSNS的主码是:(的主码是:(S#,C#)关系模式关系模式S(S#,SN,SD,DMN,C#,G)2024-9-602NF(续)(续)v定义定义若若R 1NF,且每个非主属性完全依赖于,且每个非主属性完全依赖于码,则称码,则称R是是第二范式第二范式,简记为,简记为2NF。消除非主属性对码的部分依赖消除非主

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《数据库原理》课件第7章 关系数据库规范化理论.ppt
    链接地址:https://www.163wenku.com/p-7939029.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库