安徽农业大学数据库原理课件第二章关系规范化8.ppt_第1页
安徽农业大学数据库原理课件第二章关系规范化8.ppt_第2页
安徽农业大学数据库原理课件第二章关系规范化8.ppt_第3页
安徽农业大学数据库原理课件第二章关系规范化8.ppt_第4页
安徽农业大学数据库原理课件第二章关系规范化8.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论