第5章-关系数据理论课件.ppt
《第5章-关系数据理论课件.ppt》由会员分享,可在线阅读,更多相关《第5章-关系数据理论课件.ppt(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1、掌握为什么不合适的关系模式会带来插入异常、删除异常、掌握为什么不合适的关系模式会带来插入异常、删除异常、数据冗余、修改困难等严重问题数据冗余、修改困难等严重问题2、深刻理解函数依赖等相关概念、深刻理解函数依赖等相关概念3、掌握关系的、掌握关系的1NF、2NF、3NF、BCNF、4NF的概念和特征的概念和特征4、掌握函数依赖的、掌握函数依赖的Armstrong公理系统、求属性集的闭包算法公理系统、求属性集的闭包算法 以及求极小函数依赖集的方法等以及求极小函数依赖集的方法等5、掌握模式分解的无损连接性和保持函数依赖性以及分解算法、掌握模式分解的无损连接性和保持函数依赖性以及分解算法1 为什么需
2、要对关系模式规范化?为什么需要对关系模式规范化?2 数据依赖数据依赖3 关系的范式关系的范式4 函数依赖的函数依赖的Armstrong公理系统公理系统5 关系模式的分解关系模式的分解本章要求:本章要求:本章内容:本章内容:请选择内容请选择内容返回返回1/12/20231数据库系统 网状、层次模型的数据库设计,主要凭设计者的经验直观网状、层次模型的数据库设计,主要凭设计者的经验直观地选择和确定实体集、属性以及实体间的联系。哪些实体应该地选择和确定实体集、属性以及实体间的联系。哪些实体应该合并或分解以及如何合并和分解、每个实体中应该包括哪些属合并或分解以及如何合并和分解、每个实体中应该包括哪些属性
3、为宜、属性间的联系如何确定和处理等一系列问题的解决是性为宜、属性间的联系如何确定和处理等一系列问题的解决是没有什么固定规则和理论可循的。没有什么固定规则和理论可循的。一个基本的问题:一个基本的问题:给出一组数据,如何构造一个合适的数据给出一组数据,如何构造一个合适的数据模式模式?例如:对关系模型,给了一组数据,应该构造几个关系?每例如:对关系模型,给了一组数据,应该构造几个关系?每个关系由哪些属性组成?个关系由哪些属性组成?这就是数据库逻辑设计问题这就是数据库逻辑设计问题1 问题的提出问题的提出1/12/20232数据库系统关系数据库的规范化理论关系数据库的规范化理论数据库逻辑设计的有力工具数
4、据库逻辑设计的有力工具 要考虑的几个问题:要考虑的几个问题:为什么要规范化?为什么要规范化?怎样规范化?怎样规范化?规范化到什么程度后最合适?规范化到什么程度后最合适?这就是本章的主题这就是本章的主题 本节首先用一个例子来说明对关系模式为什么要规范化,本节首先用一个例子来说明对关系模式为什么要规范化,不经过规范化会产生什么样的结果。不经过规范化会产生什么样的结果。关系数据库的设计是借助近代数学工具而提出来的,关系数据库的设计是借助近代数学工具而提出来的,形成形成了一整套定义、公理、定理及各种实用算法了一整套定义、公理、定理及各种实用算法,产生了确定、评,产生了确定、评价关系数据库模式的好方法。
5、价关系数据库模式的好方法。1/12/20233数据库系统例:假设车间考核职工完成生产定额的关系模式如下:例:假设车间考核职工完成生产定额的关系模式如下:W(工号,日期,姓名,工种,定额,超额,车间,车间主任)(工号,日期,姓名,工种,定额,超额,车间,车间主任)比如设某工号某年月超额完成定额的比如设某工号某年月超额完成定额的20%,其记录的内容为:,其记录的内容为:(1001,05年年11月,张三,车工,月,张三,车工,180,20%,金工车间,李四),金工车间,李四)该关系的主键为?该关系的主键为?工号工号 日期日期该关系模式存在以下该关系模式存在以下四个严重问题四个严重问题:对同一个人来说
6、,其姓名、工种、车间、车间主任等多次重复对同一个人来说,其姓名、工种、车间、车间主任等多次重复 1001,05年年08月,月,张三,车工,张三,车工,180,20%,金工车间,李四金工车间,李四1001,05年年09月,月,张三,车工,张三,车工,180,15%,金工车间,李四金工车间,李四1001,05年年10月,月,张三,车工,张三,车工,180,18%,金工车间,李四金工车间,李四1001,05年年11月,月,张三,车工,张三,车工,180,20%,金工车间,李四金工车间,李四 (1)数据冗余大)数据冗余大1/12/20234数据库系统(2)插入异常)插入异常 若新调来一个职工并将他分配
7、到某个车间,根据上述关若新调来一个职工并将他分配到某个车间,根据上述关系模式,在对该职工统计工作之前,他的信息是装不进数据系模式,在对该职工统计工作之前,他的信息是装不进数据库中的。因为他的日期值是空值,而日期是主键的属性之一,库中的。因为他的日期值是空值,而日期是主键的属性之一,不允许为空。不允许为空。(1005,NULL,天然,车工,天然,车工,NULL,NULL,金工车间,李四),金工车间,李四)应该存储的信息无法存储应该存储的信息无法存储(3)删除异常)删除异常不该删除的信息被删除不该删除的信息被删除 若想删除某人的所有定额完成情况,则该职工的其他信若想删除某人的所有定额完成情况,则该
8、职工的其他信息也都被删除。息也都被删除。比如在比如在05年初要删除年初要删除04年以前的所有定额完成信息,则年以前的所有定额完成信息,则05年由于种种原因未参加现实工作的职工的所有信息全部被年由于种种原因未参加现实工作的职工的所有信息全部被删除。删除。1/12/20235数据库系统(4)修改困难,容易造成数据的不一致性)修改困难,容易造成数据的不一致性若某车间换了主任,则该车间所有职工的上述记录都要修改;若某车间换了主任,则该车间所有职工的上述记录都要修改;又如某人换了车间,则其工种、车间、车间主任等信息都要修改。又如某人换了车间,则其工种、车间、车间主任等信息都要修改。一方面,修改工作量大;
9、一方面,修改工作量大;另一方面,可能漏改或该错,会造成数据的不一致性;另一方面,可能漏改或该错,会造成数据的不一致性;(也称更新异常)(也称更新异常)上例充分说明对关系模式若随意设计,其后果是严重的。上例充分说明对关系模式若随意设计,其后果是严重的。本章将要讨论产生上述问题的原因以及解决办法,即如何改本章将要讨论产生上述问题的原因以及解决办法,即如何改造一个不好的关系模式。这就是规范化理论要解决的主要问题。造一个不好的关系模式。这就是规范化理论要解决的主要问题。1/12/20236数据库系统 比如,对于上述关系模式,若分解成下面三个关系,则前面比如,对于上述关系模式,若分解成下面三个关系,则前
10、面提到的几个问题将全部或部分地得到解决:提到的几个问题将全部或部分地得到解决:职工关系(工号,姓名,工种,车间号)职工关系(工号,姓名,工种,车间号)车间关系(车间号,车间名,车间主任)车间关系(车间号,车间名,车间主任)定额关系(工号,日期,定额,超额,车间号)定额关系(工号,日期,定额,超额,车间号)本节开头本节开头下一节下一节本章开头本章开头1/12/20237数据库系统 数据模型中我们讨论了实体间的联系,同时提到实体内部数据模型中我们讨论了实体间的联系,同时提到实体内部属性间也有联系。事实上上一节中的问题都是属性间也有联系。事实上上一节中的问题都是由于属性间的联由于属性间的联系引起的系
11、引起的。一、数据依赖一、数据依赖1、属性间的联系、属性间的联系:也是也是1:1,1:n,m:n三种三种 1:1联系联系:设:设A、B为某实体集中的两个属性的值集,如为某实体集中的两个属性的值集,如 果对于果对于A中的任一值,中的任一值,B中至多有一个值与之中至多有一个值与之 对应,且反之亦然。对应,且反之亦然。1:n联系联系:设:设A、B为某实体集中的两个属性的值集,如为某实体集中的两个属性的值集,如 果对于果对于A中的任一值,中的任一值,B中有多个值(包括中有多个值(包括0个)个)与之对应;而对于与之对应;而对于B中的任一值,中的任一值,A中至多有中至多有 一个值与之对应。一个值与之对应。2
12、 数据依赖数据依赖如:车间如:车间-主任主任如:班级如:班级-学号学号1/12/20238数据库系统 m:n联系联系:设:设A、B为某实体集中的两个属性的值集,为某实体集中的两个属性的值集,如果对于如果对于A中的任一值,中的任一值,B中有多个值(包中有多个值(包 括括0个)与之对应,且反之亦然。个)与之对应,且反之亦然。如:学号如:学号-课程号课程号实体间的联系表示实体之间相互依赖又相互制约的关系;实体间的联系表示实体之间相互依赖又相互制约的关系;属性间的联系表示属性之间相互依赖又相互制约的关系。属性间的联系表示属性之间相互依赖又相互制约的关系。2、数据依赖、数据依赖 通过一个关系中属性间值的
13、相互关联(主要体现于值的通过一个关系中属性间值的相互关联(主要体现于值的相等与否)体现出来的数据间的相互联系。相等与否)体现出来的数据间的相互联系。两类最重要的数据依赖两类最重要的数据依赖函数依赖函数依赖多值依赖多值依赖(是数据内在的性质,语义的体现)(是数据内在的性质,语义的体现)1/12/20239数据库系统二、关系的形式化定义二、关系的形式化定义1、关系的两个主要方面、关系的两个主要方面 语法:属性的描述语法:属性的描述 语义:数据依赖语义:数据依赖2、关系模式、关系模式:R 关系名关系名 属性组属性组U上的一组数据依赖上的一组数据依赖3、关系:、关系:对关系模式对关系模式 R,当且仅当
14、,当且仅当U上的一个关系上的一个关系r满足满足F时,称时,称r为关系模式为关系模式 R的一个关系。的一个关系。1/12/202310数据库系统三、函数依赖三、函数依赖 不严格地讲,函数依赖指的是一组属性值唯一决定另不严格地讲,函数依赖指的是一组属性值唯一决定另一组属性值的这种数据依赖。一组属性值的这种数据依赖。如学生关系中,当学号确定后,其姓名也就唯一确定了。如学生关系中,当学号确定后,其姓名也就唯一确定了。选课关系中,当学号和课程号确定后,其成绩也就唯一确选课关系中,当学号和课程号确定后,其成绩也就唯一确定了。定了。1、函数依赖、函数依赖(Functional Dependency,缩写,缩
15、写FD):):设设 R(U)是属性集是属性集U上的关系模式,上的关系模式,X、Y是是U的子集。若的子集。若对于对于R中的任意关系中的任意关系 r,对于,对于 r中的任意两个元组中的任意两个元组u、v都有都有 uX=vX uY=vY成立,则称成立,则称X函数决定函数决定Y,或称,或称Y函数依赖于函数依赖于X,记作,记作XY。称称X为为决定因素决定因素。1/12/202311数据库系统 说明:说明:函数依赖类似于变量间的单值函数关系(一个自变量只能函数依赖类似于变量间的单值函数关系(一个自变量只能对应一个对应一个 函数值),因此也称为函数值),因此也称为单值函数依赖;单值函数依赖;若若XY且且YX
16、,则记作,则记作 XY;若若Y不函数依赖于不函数依赖于X,则记作,则记作 X例:对学生关系例:对学生关系 S(Sno,SName,SDept,SAge),有),有 Sno SName,Sno SDept,Sno SAge 对选课关系对选课关系 SC(Sno,Cno,Grade),),有(有(Sno,Cno)GradeYFD要求关系模式的任何一个实例都满足,而不是要求关系模式的任何一个实例都满足,而不是部分实例满足。部分实例满足。FD由具体问题的语义和人为强制约定共同决定。由具体问题的语义和人为强制约定共同决定。1/12/202312数据库系统3、函数依赖分类、函数依赖分类 (1)非平凡的函数依
17、赖非平凡的函数依赖:XY,但,但Y X。(2)平凡的函数依赖平凡的函数依赖:XY,但,但Y X。(3)完全函数依赖:完全函数依赖:XY,且对任意的,且对任意的X X,都有,都有 记作记作 X Yf2、函数依赖与属性间的联系之关系、函数依赖与属性间的联系之关系 (1)若)若X、Y之间是之间是“1:1联系联系”,则存在函数依赖则存在函数依赖XY和和 YX,即即XY.(2)若若X、Y之间是之间是“m:1联系联系”,则存在函数依赖关系则存在函数依赖关系XY。(3)若若X、Y之间是之间是“m:n联系联系”,则则X、Y之间不存在函数依之间不存在函数依赖关系。赖关系。如在如在 SC(Sno,Cno,G)中,
18、()中,(Sno,Cno)G,Y。XG,cnoG,因此(,因此(Sno,Cno)fG。但但sno1/12/202313数据库系统(4)部分部分函数依赖函数依赖:XY,但,但Y不完全函数依赖于不完全函数依赖于X,即存在即存在X X,有,有XY。记作记作 X Yp如在如在 S(S#,SN,SD,SA)中,因为)中,因为 S#SD,(S#,SN)SDp所以所以(5)传递函数依赖传递函数依赖:若:若XY,Y X,YZ,且且Z(X Y)=,则称,则称Z对对X是是传递函数依赖。传递函数依赖。例如,在学生关系模式例如,在学生关系模式 S(Sno,SName,SD,SAge)中,增加属性中,增加属性SL(系的
19、位置),则(系的位置),则 SnoSD,SDSL,SD Sno,所以,所以 Sno SL。传递传递又如:又如:(Sno,Cno)Sdept是部分函数依赖是部分函数依赖注注:如果如果YX,即即XY,则,则Z直接依赖于直接依赖于X。1/12/202314数据库系统四、多值依赖四、多值依赖(教材(教材P178)1、例子、例子:设学校中一门课由多位教员讲授,他们使用相同:设学校中一门课由多位教员讲授,他们使用相同 的参考书,比如:的参考书,比如:“物理物理”,教员为汪洋、大海,参考书为普通物理学、,教员为汪洋、大海,参考书为普通物理学、光学原理、光学原理、物理习题集;物理习题集;“数学数学”,教员为大
20、海、白云,参考书为数学分析、,教员为大海、白云,参考书为数学分析、微分方程、微分方程、高等代数;高等代数;“计算计算”,教员为蓝天、白云,参考书为数学分析、,教员为蓝天、白云,参考书为数学分析、1/12/202315数据库系统用模式为用模式为 TEACH(C,T,B)的关系表示上述数据:)的关系表示上述数据:课程课程C 教师教师T 参考书参考书B物理物理 汪洋汪洋 普通物理学普通物理学物理物理 汪洋汪洋 光学原理光学原理物理物理 汪洋汪洋 物理习题集物理习题集物理物理 大海大海 普通物理学普通物理学物理物理 大海大海 光学原理光学原理物理物理 大海大海 物理习题集物理习题集数学数学 大海大海
21、数学分析数学分析数学数学 大海大海 微分方程微分方程数学数学 大海大海 高等代数高等代数数学数学 白云白云 数学分析数学分析数学数学 白云白云 微分方程微分方程数学数学 白云白云 高等代数高等代数计算计算 白云白云 数学分析数学分析 该关系模式中,任该关系模式中,任何两个属性都不能函何两个属性都不能函数决定第三个属性。数决定第三个属性。该关系模式存在该关系模式存在冗余大、增删不方便冗余大、增删不方便等问题。等问题。没有函数依赖,没有函数依赖,需要另行分析需要另行分析1/12/202316数据库系统课程课程C 教师教师T 参考书参考书B物理物理 汪洋汪洋 普通物理学普通物理学物理物理 汪洋汪洋
22、光学原理光学原理物理物理 汪洋汪洋 物理习题集物理习题集物理物理 大海大海 普通物理学普通物理学物理物理 大海大海 光学原理光学原理物理物理 大海大海 物理习题集物理习题集数学数学 大海大海 数学分析数学分析数学数学 大海大海 微分方程微分方程数学数学 大海大海 高等代数高等代数数学数学 白云白云 数学分析数学分析数学数学 白云白云 微分方程微分方程数学数学 白云白云 高等代数高等代数计算计算 白云白云 数学分析数学分析 在该关系模式中,对在该关系模式中,对于一个(物理,普通物理于一个(物理,普通物理学),有一组教师学),有一组教师汪洋,汪洋,大海大海,而对于另一个,而对于另一个(物理,光学原
23、理),对(物理,光学原理),对应的教师仍是应的教师仍是汪洋,大汪洋,大海海。因此,所对应的教。因此,所对应的教员只与课程的值有关而与员只与课程的值有关而与参考书的值无关。参考书的值无关。这是产生问题的原因吗这是产生问题的原因吗?1/12/202317数据库系统2、多值依赖、多值依赖(MultiValued Dependency,缩写为,缩写为MVD)设设 R(U)是属性集是属性集U上的关系模式,上的关系模式,X、Y、Z是是U的子集,的子集,且且Z=U X Y,多值依赖,多值依赖XY成立当且仅当对成立当且仅当对R(U)的任一的任一关系关系r,任给的一对(,任给的一对(x,z)值有一组)值有一组Y
24、的值,这组值仅仅取决的值,这组值仅仅取决于于x值而与值而与z值无关。值无关。称称X多值决定多值决定Y或或Y多值依赖于多值依赖于X。例如,在关系模式例如,在关系模式TEACH中中 有有 CT物理物理 汪洋汪洋 普通物理学普通物理学物理物理 汪洋汪洋 光学原理光学原理物理物理 汪洋汪洋 物理习题集物理习题集物理物理 大海大海 普通物理学普通物理学物理物理 大海大海 光学原理光学原理物理物理 大海大海 物理习题集物理习题集数学数学 大海大海 数学分析数学分析数学数学 大海大海 微分方程微分方程数学数学 大海大海 高等代数高等代数数学数学 白云白云 数学分析数学分析计算计算 白云白云 数学分析数学分析
25、 直观上看,若直观上看,若XY,则则X的一个值唯一决定一组的一个值唯一决定一组Y值,且这组值与值,且这组值与X、Y之外之外的属性值无关的属性值无关课程课程C 教师教师T 参考书参考书B1/12/202318数据库系统多值依赖的另一等价定义多值依赖的另一等价定义:多值依赖多值依赖XY成立当且仅当对成立当且仅当对R(U)的任一关系的任一关系r,若,若存在元组存在元组s、t使得使得sX=tX,则必存在元组,则必存在元组w、v r(w、v可以与可以与s、t相同),使得相同),使得wX=vX=tX,而,而wY=tY,wZ=sZ,vY=sY,vZ=tZ。X Y ZtswvwYsYtYvYtZvZsZwZ左
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据 理论 课件
限制150内