安徽农业大学数据库原理课件第二章关系规范化.ppt

上传人:tian****1990 文档编号:12852945 上传时间:2020-05-31 格式:PPT 页数:46 大小:284.81KB
返回 下载 相关 举报
安徽农业大学数据库原理课件第二章关系规范化.ppt_第1页
第1页 / 共46页
安徽农业大学数据库原理课件第二章关系规范化.ppt_第2页
第2页 / 共46页
安徽农业大学数据库原理课件第二章关系规范化.ppt_第3页
第3页 / 共46页
点击查看更多>>
资源描述
2020/5/31,1,第二章关系规范化(关系数据库设计理论),2020/5/31,2,关系数据库设计理论是设计一个好的数据库系统的指南,研究面对一个现实问题如何选择比较好的关系模式集合。关系规范化基础是关系模式分解转换的过程,其目的使关系模式更合理、更规范。,2020/5/31,3,一、讨论范围1、数据库逻辑设计要解决的问题给出一组数据,如何构造一个适合的数据模型,在关系数据库中应该组织成几个关系模式,每个关系模式包括哪些属性。,第一节规范化问题,2020/5/31,4,2、在以关系模型为基础的数据库中,用关系来描述现实世界。关系具有概念单一性特点,一个关系既可以描述一个实体,也可以描述实体间的联系。一个关系模型包括一组关系模式,各个关系不是完全孤立的。只有它们相互间存在关联,才能构成一个模型。这些关系模式的全体定义构成关系数据库模式。,2020/5/31,5,3、关系数据库设计理论主要包括三方面的内容:数据依赖(设计依据)范式(NormalForm)(设计标准)模式设计方法(方法)数据依赖在此起着核心的作用。,2020/5/31,6,二、存储异常问题通过下例分析某些不恰当的关系模式可能导致的问题。例如:有教师任课关系模式TDC:TDC(T#,TNAME,TITLE,ADDR,D#,DNAME,LOC,C#,CNAME,LEVEL,CREDIT)其中属性分别表示教师号、教师姓名、职称、教师地址、系号、系名称、系地址、课程号码、课程名、教学水平、学分。,2020/5/31,7,在这个关系中,只有根据教师号和课程号才能够确定哪位教师讲授哪门课程,因此关系TDC的关键字是(T#,C#),表示方式为(T#,C#)。该关系在使用过程中存在下面几个问题:,2020/5/31,8,1、数据冗余每当教师开设一门课程时,该教师的职称、地址等信息就重复存储一次。一般每位教师都开设几门课,数据冗余不可避免。一个系有很多教师,使关系中的数据冗余度很大。,2020/5/31,9,2、更新异常由于数据的重复存储,会给更新带来麻烦。如果一位任三门课的教师改变了地址,三个元组的地址都要更新,一旦一个元组的地址未修改就会导致数据不一致。如果某个系改变办公地址,所要修改的数据量会更大。,2020/5/31,10,3、插入异常如果学校新调入一个教师,暂时未主讲任何课程。由于缺少关键字的一部分,而关键字不允许出现空值,新教师就不能插入到此关系中去。只有当他开设了课程之后才能插入,这是不合理的。,2020/5/31,11,4、删除异常与插入异常相反,如果某些教师致力于科研,不担任教学任务了,就要从当前数据库中删除有关记录。那么关于这些教师的其它信息将无法记载,这也是极不合理的现象。,2020/5/31,12,上述在插入、更新、删除或修改元组时将产生的不希望发生的异常情况是由于关系模式设计得不好所造成的。如果用下面四个关系模式代替原来的一个关系模式,上述四方面的问题就基本解决了。T(T#,TNAME,TITLE,ADDR,D#)D(D#,DNAME,LOC)C(C#,CNAME,CREDIT)TC(T#,C#,LEVEL),2020/5/31,13,新关系模型包括四个关系模式,教师T和系D之间通过T中的外关键字D#相联系,教师T与课程C之间多对多的联系通过TC中的外关键字(T#,C#)相联系。,2020/5/31,14,函数依赖反映了数据之间的内在联系,是进行关系分解的指导和依据,是本章讨论的中心问题。,第二节函数依赖,2020/5/31,15,现实世界中的事物是彼此联系,互相制约的。这种联系分为二类:一类是实体与实体之间的联系;另一类是实体内部各属性之间的联系。任何一种数据模型都不仅描述实体及其属性,还要描述实体间的联系。下面讨论属性之间的联系。,2020/5/31,16,一、属性间的联系1、一对一联系(1:1)借书证号和学号(读者关系):在读者关系中,借书证号是唯一的,学号也是唯一的,借书证号与学号两个属性之间是1:1联系。学号可以确定借书证号,借书证号也可以确定学号。,2020/5/31,17,2、一对多联系(1:m)书名和总编号(图书关系):在图书关系中,一本书有若干副本,它们有相同的书名、作者、分类号等,但每本书有唯一的总编号。书名与总编号之间是1:m,即同一个书名,有多个总编号与之对应。,2020/5/31,18,3、多对多联系(n:m)借书证号和总编号(借阅关系):在借阅关系中,一个读者可以借多本书,即同一个借书证号有若干个图书总编号与之对应。由总编号标识的一本书在不同日期可以被不同的读者借阅。,2020/5/31,19,三类联系之间存在着包含关系,1:1是1:m的特例,1:m又是m:n的特例。关系中属性值之间这种相互依赖又相互制约的联系称为数据依赖。数据依赖主要有两种:函数依赖和多值依赖。本课程只介绍函数依赖。Y=x2y2=x,2020/5/31,20,二、函数依赖1、函数依赖的概念用U表示属性集的全集(A1,A2,An),设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的所有具体关系r都满足如下约束:对于X的每一个具体值,Y有唯一的具体值与之对应,则称Y函数依赖于X,或X函数决定Y,记作XY,X称作决定因素。,2020/5/31,21,如果XY,并且Y不是X的子集,则称XY是非平凡的函数依赖。只讨论非平凡的函数依赖。全体总是能够决定部分的,若Y是X的子集,则称XY是平凡的函数依赖。,2020/5/31,22,例:有关系R(职工号,基本工资,奖金),一个职工号唯一确定一个基本工资数额或一个奖金额,即一个人不能拿两种工资或奖金,但几个人的工资可能相同。具体数字如下表所示。,2020/5/31,23,2020/5/31,24,设属性A是职工号,属性B是基本工资,属性C是奖金,可以看出,每个A的值对应一个B的值,一个C的值。因此,属性B和C都函数依赖于属性A。但反过来则不存在这种联系,如基本工资390.00对应两个职工号051和054。,2020/5/31,25,定义中所谓“对应唯一的具体值”是指唯一确定值是什么,而不是说该值不能与其它值相等。FD的确切语义表示了关系模式中属性集X的值与Y的值之间的多对一联系。从数值上看,“多方”函数决定“一方”。例如,在图书关系中,总编号(分类号,书名,作者,出版社),2020/5/31,26,根据函数依赖的定义,可以找出下面规律:(1)在一个关系模式中,如果属性X、Y有1:1联系,则存在函数依赖XY、YX。可记作XY.(2)如果属性X、Y是m:1的联系,则存在函数依赖XY,反之不成立。(3)如果属性X、Y是n:m的联系,则X与Y之间不存在任何函数依赖。,2020/5/31,27,2、完全函数依赖设XY是关系模式R(U)的一个函数依赖,如果存在X的真子集X,使得XY成立,则称Y部分依赖于X,记作XY。否则,称Y完全依赖于X,记作XY。,p,f,2020/5/31,28,例子:在关系模式SC1(S#,C#,GRADE,CREDIT)中,(S#,C#)GRADE(S#,C#)CREDIT,f,p,2020/5/31,29,2020/5/31,30,3、传递依赖在同一关系模式R(U)中,如果存在非平凡函数依赖XY,YZ,而YX,则称Z传递依赖于X。(XZ),2020/5/31,31,例子:在关系模式SC1(S#,D#,dname,dlocation)中存在:S#D#D#(dname,dlocation)D#S#,结果:S#(dname,dlocation),2020/5/31,32,三、关键字1、候选关键字(1)定义:在关系模式R(U)中,K是U中的属性或属性组。如果KU,则称K为关系R(U)的一个候选关键字。R(U)中若有一个以上的候选关键字,则选定其中一个作为主关键字。如果K是属性组,可称为组合关键字,或合成关键字。,f,2020/5/31,33,包含在任意一个候选关键字中的属性,称为主属性。不包含在任何候选关键字中的属性称为非主属性。(2)候选关键字的两个性质A、标识的唯一性:对于R(U)中的每一个元组,K的值确定后,该元组就相应确定了。B、无冗余性:当K是属性组的情况下,K的任何一部分都不能唯一标识该元组。这是定义中的完全函数依赖的意义。,2020/5/31,34,例子:在关系SC(S#,C#,GRADE.,CREDIT)中,属性组(S#,C#)是候选关键字,也是主关键字。S#、C#是主属性,GRADE,CREDIT是非主属性。在关系借阅(借书证号,总编号,借阅日期,备注)的关键字也是组合关键字(借书证号,总编号),借阅日期、备注为非主属性。,2020/5/31,35,最简单的情况,也是最普遍的情况,单个属性作为关键字。如,图书中的总编号、读者中的借书证号、课程里的C#、学生中的S#等。在现实世界中,人们已经非常习惯于为区别实体起一个专用的标识。如,身份证号、医疗证号、工作证号。在极端的情况下,关系模式的整个属性组U作为关键字,称为全关键字。此时,关系中没有非主属性。,2020/5/31,36,2、外关键字在关系模式R(U)中,若属性或属性组X不是关系R的关键字,但又是其它关系模式的关键字,则称X为关系R(U)的外关键字。主关键字和外关键字是表示关系之间联系的手段。例子:T(T#,TNAME,TITLE,ADDR,D#)D(D#,DNAME,LOC),2020/5/31,37,一个关系模式满足某一指定的约束,称此关系模式为特定范式的关系模式。关系模式有下列几种范式(NormalForm,NF):第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BCNF、第四范式(4NF)和第五范式(5NF)。关系规范化:把一个低一级范式的关系模式通过模式分解转换为一组高一级范式的关系模式的过程。,第三节关系的范式,2020/5/31,38,一、第一范式在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。记为R1NF。不是1NF的关系称为非规范化关系。数据库理论研究的都是规范化关系。,2020/5/31,39,例1:将下表规范成1NF.,2020/5/31,40,将上表规范成INF可以有三种方法。第一种方法是重复存储职工号和姓名。第二种方法是,保留职工号的关键字地位,把电话号码拆分成单位电话和住宅电话两个属性。第三种方法是,保留职工号的关键字地位。维持原模式不变,但强制每个元组只能录入一个电话号码。以上三种选择,第一种最不可取,后两种选择可根据应用需要确定一种。,2020/5/31,41,例2.将下表规范成1NF,2020/5/31,42,如果各单位只有一个副主任,可将关系模式设计成:单位(单位名称,地址,主任,副主任)。若有一个以上的副主任,则应按需要并列副主任1,副主任2,几个单独属性。或者只允许输入一个副主任。,2020/5/31,43,二、第二范式如果关系模式R(U)中的所有非主属性都完全函数依赖于任一候选关键字(即设法消除部分依赖),则称关系R是第二范式的关系,记为R2NF。,2020/5/31,44,例子:设有关系模式SC(S#,C#,GRADE,CREDIT),关键字是(S#,C#)。存在函数依赖:(S#,C#)GRADE(S#,C#)CREDIT,通过投影把它分解为以下两个关系模式:SC1(S#,C#,GRADE)2NFSC2(C#,CREDTT)2NF,f,p,2020/5/31,45,三、第三范式如果关系模式R(U)中的所有非主属性对任何候选关键字都不存在传递依赖,则称关系R是第三范式的关系,记为R3NF。,2020/5/31,46,例子:在关系模式SC1(S#,D#,dname,dlocation)中不存在部分依赖,但存在传递依赖:S#D#D#(dname,dlocation)D#S#,结果:S#(dname,dlocation)通过投影把它分解为以下两个关系模式:S(S#,D#)3NFD(D#,dname,dlocation)3NF,t,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


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

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


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