数据库讲稿演示第三章(课件).ppt_第1页
数据库讲稿演示第三章(课件).ppt_第2页
数据库讲稿演示第三章(课件).ppt_第3页
数据库讲稿演示第三章(课件).ppt_第4页
数据库讲稿演示第三章(课件).ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

数据库系统基础,1,第三章 关系数据库设计理论,一、规范化问题 二、函数依赖 三、关系范式,数据库系统基础,2,3.1规范化问题,数据库是一组相关数据的集合。它不仅包括数据本身,而且包括关于数据之间的联系,即数据模型。给出一组数据,如何构造一个适合的数据模型,在关系数据库中应该组织成几个关系模式,每个关系模式包括那些属性。这是数据库逻辑设计要解决的问题。,数据库系统基础,3,例:设教师任课的关系模式 教师任课(职工号、姓名、职称、住址、系号、系名、系址、课程号、课程名、教学水平、学分) 详细内容看下表:,数据库系统基础,4,数据库系统基础,5,在这个关系中,只有根据教师号和课程号才能够确定哪位教师讲授哪门课程,因此教师任课的关键字是(T#,C#)。该关系在使用过程中存在下面几个问题: 每当教师开设一门课程时,该教师的职称、地址等信息就重复存储一次。一般每位教师都开设几门课,数据冗余不可避免。一个系有很多教师,使关系中的数据冗余度很大。(数据冗余),数据库系统基础,6, 由于数据的重复存储,会给更新带来麻烦。如果一位任三门课的教师改变了地址,三个元组的地址都要更新,一旦一个元组的地址末修改就会导致数据不一致。如果某个系改变办公地址,所要修改的数据量会更大。(更新异常) 如果学校新调入一个教师,暂时末主讲任何课程。由于缺少关键字的一部分,而关键字不允许出现空值,新教师就不能插入到此关系中去。只有当他开设了课程之后才能插入,这是不合理的。(插入异常),数据库系统基础,7, 与插入异常相反,如果某些教师致力于科研,不担任教学任务了,就要从当前数据库中删除有关记录。那么关于这些教师的其它信息将无法记载,这也是极不合理的现象。(删除异常) 上述在插入、删除或修改元组时将产生的不希望发生的异常情况是由于关系模式设计得不好所造成的。如果用下面四个关系模式代替原来的一个关系模式,上述四方面则可题就基本解决了。,数据库系统基础,8,教师(职工号,姓名,职称,住址,系号) 系(系号,系名,系址) 课程(课程号,课程名,学分) 授课(职工号,课程号,水平) 新关系模型包括四个关系模式,教师和系之间通过教师中的外关键字系号相联系;教师与课程之间多对多的联系通过授课中的外关键字职工号和课程号相联系。需要时再进行自然联接,则恢复了原来的关系。,数据库系统基础,9,3.2函数依赖,现实世界中的事物是彼此联系,互相制约的。这种联系分为二类,一类是实体与实体之间的联系;另一类是实体内部各属性之间的联系。概念模型和数据模型中讨论实体之间的联系,用数据模型来描述概念模型。函数依赖则是讨论属性之间的联系。,数据库系统基础,10,一、属性间的联系 实体内部属性间是互相联系的,属性间的联系也分为三类: 一对一联系 一对多联系 多对多联系,数据库系统基础,11,1.一对一联系 例:在读者关系中,借书证号是唯一的,如果读者没有重名的,姓名与借书证号两个属性之间是1:1联系。姓名可以确定借书证号,借书证号也可以确定姓名。,数据库系统基础,12,2.一对多联系 例:在图书关系中,一本书有若干副本,它们有相同的书名、作者、分类号等,但每本书有唯一的总编号。书名与总编号之间是1:m,即同一个书名,有多个总编号与之对应。,数据库系统基础,13,3. 多对多联系 例:在借阅关系中,一个读者可以借多本书,即同一个借书证号有若干个图书总编号与之对应。由总编号标识的一本书在不同日期可以被不同的读者借阅。,数据库系统基础,14,二、函数依赖 函数依赖反映了实体内部属性之间的联系,是进行关系分解的指导和依据。 函数依赖 完全函数依赖 传递依赖,数据库系统基础,15,1.函数依赖 定义3.1 用U表示属性集的全集A1,A2,.,An,设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的所有具体关系r都满足如下约束:对于X的每一个具体值,Y有唯一的具体值与之对应,则称Y函数依赖于X,或X函数决定Y,记作X Y,X称作决定因素。,数据库系统基础,16,例:有关系R(职工号,基本工资,奖金),一个职工号唯一确定一个基本工资数额或一个奖金额,即一个人不能拿两种工资或奖金。,数据库系统基础,17,设属性A是职工号,属性B是基本工资,属性C是奖金,则每个A的值对应一个B的值和一个C的值。因此,属性B和C都函数依赖于属性A。如基本工资39000对应两个职工号051和054,用符号表示为:A B,A C。,数据库系统基础,18,2.完全依赖 定义3.2 设X Y是关系模式R(U)的一个函数依赖,如果存在X的真子集X,使得XY得成立,则称Y部分依赖于X,记作X Y。否则,称Y完全依赖于X,记作X Y。,数据库系统基础,19,例:设有关系模式选课 SCl(S#,C#,GRADE,CREDIT)其中,S#表示学号,C#表示课程号,GRADE表示成绩,CREDIT表示学分。 在这个选课关系模式中,由于一个学生可以选修多门课程,一门课程可有多个学生选修,因此S#或C#都不能单独确定GRADE。成绩只能由属性组合(S#,C#)来确定。课程学分CREDIT是 C#决定的,CCREDIT。由此可知: (S#,C#) GRADE (S#,C#) CREDIT,S#,C#,GREATE,CREDIT,数据库系统基础,20,3.传递依赖 定义3.3 在同一关系模式R(U)中,如果存在非平凡函数依赖XY,YZ而YX,则称Z传递依赖于X。 定义的条件XY,并强调YX十分必要。如果X、Y互相依赖,实际上处于等价地位,XZ则为直接函数依赖联系,并非传递依赖。,数据库系统基础,21,例:设关系模式S1(S#,SNAME,D#,DNAME,LOCATION)各属性分别代表学号、姓名、所在系、系地址。 存在函数依赖:S#D#,但D#S#,D#LOCATION根据传递依赖的定义,可知S#LOCATION是传递依赖。,数据库系统基础,22,三、关键字 1.候选关键字 定义3.4 在关系模式R(U)中,K是U中的属性或属性组。如果K?U,则称K为关系R(U)的一个候选关键字。 R(U)中若有一个以上的候选关键字,则选定其中一个作为主关键字。如果K是属性组,可称为组合关键字,或合成关键字。 包含在任意一个候选关键字中的属性,称为主属性。不包含在任何候选关键字中的属性称为非主属性。,数据库系统基础,23,候选关键字具有两个性质: 标识的唯一性:对于R(U)中的每一个元组,K的值确定后,该元组就相应确定了。 无冗余性:当K是属性组的情况下,K的任何一部分都不能唯一标识该元组。这是定义中的完全函数依赖的意义。 例:学生选课关系SC(S#,C#,GRADE,CREDIT)中,属性组(S#,C#)是候选关键字,也是主关键字。S#、C#是主属性。GRADE、CREDIT是非主属性。,数据库系统基础,24,2.外关键字 定义3.5 在关系模式R(U)中,若属性或属性组X不是关系R的关键字,但X是其它关系模式的关键字,则称X为关系R(U)的外关键字。 主关键字和外关键字是表示关系之间联系的手段。,数据库系统基础,25,例:在选课关系数据库中,三个关系模式: 学生关系 S(S#,SNAME,SEX,ADDRESS),其中S#为主关键字。 课程关系C(C#,CNAME,CREDIT),其中C#为主关键字。 学生选课关系SC(S#,C#,GRADE),其中(S#,C#)为主关键字,S#和C#分别为外关键字。 学生和课程存在的多对多的联系由选修关系反映出来,三个关系间的关联是通过关系SC的外关键字S#、C#实现的。,数据库系统基础,26,例:在图书管理数据模型中,三个关系模式: 图书(总编号,分类号,书名,作者,出版社,单价),其中总编号为主关键字。 读者(借书证号,姓名,性别,单位,职称,地址),其中借书证号为主关键字。如果姓名没有重名,姓名也可作主关键字。 借阅(借书证号,总编号,借阅日期,备注),其中(借书证号,总编号)为主关键字,借书证号和总编号分别为外关键字。,数据库系统基础,27,3.3关系范式,范式即模式分解标准。 规范化:一个低一级范式的关系模式,通过模式分解转换为若干个高一 级范式的关系模式的集合,这种过程称为规范化。 设计关系数据库时,关系模式不可以随意建立,它们必须满足一定的规范化要求。一个关系模式满足某一指定的约束,称此关系模式为特定范式的关系模式。满足不同程度的要求构成不同的范式级别。,数据库系统基础,28,关系模式有下列几种范式: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BCNF 第四范式(4NF) 第五范式(5NF),数据库系统基础,29,一、第一范式(1NF) 定义3.7 在关系模式只中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。记为RlNF。 不是1NF的关系称为非规范化关系。,数据库系统基础,30,例:将下表规范成1NF,数据库系统基础,31,二、第二范式(2NF) 例:设有关系模式 SCl(S#,C#,GRADE,CREDIT)其中CREDIT表示学分。存在函数依赖:(S#,C#)GRADE, C#CREDIT,关键字是(S#,C#)。,数据库系统基础,32,数据库系统基础,33,上述在插入、删除或修改元组时产生的异常与本章开始时所分析的例子类似。在此例中,原因在于关系模式中的非主属性CREDIT函数依赖于组合关键字(S#,C#)的一部分,而不是全部,即(S#,C#) CREDIT。,数据库系统基础,34,定义3.8 如果关系模式R(U,F)中的所有非主属性都完全函数依赖于任候选关键字,则称关系R是第二范式的。记为R2NF。 将上述非2NF的关系SCl规范化为2NF关系,应设法消除部分依赖。通过投影把它分解为以下两个关系模式:SCl(S#,C#,GRADE),C2(C#,CREDIT),数据库系统基础,35,三、第三范式(3NF) 例:关系模式Sl(S#,SNAME,D#,DNAME,LOCATION),关键字是S#,不存在部分依赖,属于2NF。但仍然存在大量冗余,关于系的重复值随着学生的增加而增加。在插入、删除或修改元组时也将产生类似例3的异常情况。分析其原因,由于关系中存在传递依赖S#LOCATION,(S#D#,D#S#,D#LOCATION)。,数据库系统基础,36,定义3.9 如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递依赖,则称关系只是第三范式的。记为R3NF。 通过投影分解将S1分解成如下两个关系后则满足3NF的要求。S(S#,SNAME,D#),D(D#,DNAME,LOCATION) 必须注意,投影时不能从关系S中遗漏外关键字D#,否则这两个关系之间将失去联系,就不能通过自然联接再恢复原来的关系了。,数据库系统基础,37,由于部分依赖必然是传递依赖,所以如果一个关系模式不存在传递依赖,则必不存在 部分依赖。换言之,满足3NF的关系模式必然满足2NF。,数据库系统基础,38,四、规范化小结 规范化的过程是逐步消除关系模式中不合适的数据依赖的过程,使模型中的各个关系模式达到某种程度的分离。,数据库系统基础,39,数据库系统基础,40,例:教师任课(教师号、教师姓名、职称、教师地址、系、系名称、系地址、课程号码、课程名、教学水平、学分) 根据语义分析函数依赖:(职工号,课程号)的值可以唯一的决定各元组,所以(职工号,课程号)是关键字。,数据库系统基础,41,C#,T#,D#,CREDIT,LEVEL,LOC,函数依赖图,数据库系统基础,42,由于C#(CNAME,CREDIT),T#(TNAME,TITLE,ADDR)存在非主属性对关键字(T#,C#)的部分依赖,因此原关系不属2NF。为了消除部分依赖,将TDC投影分解成三个关系模式: TC(T#,C#,LEVEL) 关键字是(T#,C#) TD(T#,TNAME,ADDR,D#,DNAME,LOC) 关键字是T# C(C#,CNAME,CREDIT) 关键字是C#,数据库系统基础,43,但在 TD中,T#D#,D#T#,D#DNAME,D#LOC,故非主DNAME和LOC传递依赖于关键字T#,所以关系模式TD不是3NF关系。为消除传递依赖,又将TD进一步投影分解成两个关系模式: T(T#,TNAME,ADDR,D#) 关键字是T# D(D#,DNAME,LOC) 关键字是 D#,数据库系统基础,44,可以用下面四个关系模式代替最初的关系模式TDC: T(T#,TNAME,TITLE,ADDR,D#) 关键字是T# D(D#,DNAME,LOC) 关键字是 D# C(C#,CNAME,CREDIT) 关键字是C# TC(T#,C#、LEVEL) 关键字是(T#,C#) 在这四个关系模式组成的关系模型中消除了传递依赖,达到了3NF。,数据库系统基础,45,关系模式的规范化可以小结如下: 目的:规范化目的是使结构合理,清除存储异常使数据冗余尽量小,便于插入、删除和更新。 原则:遵从概念单一化“一事一地”原则,即一个关系模式描述一个实体或实体间的一种联系。规范的实质就是概念单化。 方法:将关系模式投影分解成两个或两个以上的关系模式。,数据库系统基础,46,要求:分解后的关系模式集合应当与原关系模式“等价”,即经过自

温馨提示

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

评论

0/150

提交评论