数据库系统概论第六章.ppt_第1页
数据库系统概论第六章.ppt_第2页
数据库系统概论第六章.ppt_第3页
数据库系统概论第六章.ppt_第4页
数据库系统概论第六章.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理与应用,数据库系统概论 第四版 王 珊 萨师煊,第6章 关系数据理论,数据库设计的一个最基本的问题是怎样建立一个好的数据库模式。Codd提出了一套关系数据库设计理论关系的规范化理论,根据现实世界存在的数据依赖进行关系模式的规范化处理,从而得到一个好的数据库设计。,6.1 问题的提出,1、问题的提出 关系的描述:R(U,D,DOM,F) 关系是一个五元组。R为关系名,U为属性集合,D为属性组U中属性所来自的域,DOM为属性到域的映射集合,F为属性间数据的依赖关系集合。,6.1 问题的提出(续),2、数据依赖 属性间数据的依赖关系集合F是描述关系的元组语义,限定关系内部属性与属性间必须满足的约束条件。 数据依赖是通过一个关系中属性间值的依赖与否体现出来的数据间的相互关系。 最重要的数据依赖是函数依赖(FD)和多值依赖(MVD),6.1 问题的提出(续),实例:建立一个数据库,涉及的对象包括:学生的学号(Sno)、所在系(Sdept)、系主任姓名(Mn)、课程名(Cname)、成绩(Grade)。要求如下: (1)一个系有若干学生,但一个学生只属于一个系; (2)一个系只有一个系主任; (3)一个学生可以选多门课程,每门课程有若干学生选修; (4)每个学生学习每一门课程有个成绩。,建立关系模式: Student(SNO,SDEPT,MN,CNAME,GRADE),这个关系模式存在4个问题: (1)数据冗余:一个学生选修多门课程,所在系和系主任就重复存储多次。 (2)更新异常:当更新某些数据时,容易造成存储数据的不一致性。如换系主任了,则必须修改与该系学生有关的每一个元组。 (3)插入异常:若某个学生未学习课程,则他的信息就无法插入。 (4)删除异常:当要删除学生所有成绩时,将所有关于该学生的信息都删除了。,F=SNOSDEPT,SDEPT MN,(SNO,CNAME) G,原因:由存在于模式中的某些数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适的数据依赖,F=SNOSDEPT,SDEPT MN,(SNO,CNAME) G,S(SNO,SDEPT) SG(SNO,CNAME,Grade) DEPT(SDEPT,MN),6.2 规范化,规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。,1、函数依赖 定义 设R(U)是属性集U上的关系模式,X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。 几点说明: (1)函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 (2)函数依赖和别的数据之间的依赖关系一样,是语义范畴的概念。我们只能根据数据的语义来确定函数依赖。 (3)数据库设计者可以对其做出强制的规定。,6.2 规范化(续),1、函数依赖 基本术语和符号 若XY,但YX,则称XY是非平凡的函数依赖,反之称为平凡的函数依赖。 若XY,则X叫做决定因素 若XY,YX,则记作XY 若Y不函数依赖于X,则记作X Y,6.2 规范化(续),1、函数依赖 三种函数依赖 完全函数依赖: 在R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y对X完全函数依赖,记作: X F Y,6.2 规范化(续),1、函数依赖 三种函数依赖 部分函数依赖: 若XY,但Y不完全依赖于X,则称Y对X部分函数依赖,记作:X P Y,6.2 规范化(续),1、函数依赖 三种函数依赖 传递函数依赖: 在R(U)中,如果XY(YX),YX,YZ,则称Z对X传递函数依赖。记作:X Z,6.2 规范化(续),传递,分析关系模式: STUDENT(学号,姓名,出生日期,系名,班号,宿舍区),学生属于某个班级,班级属于某个系,其中一个系的学生分在一个宿舍区,指出其候选关键字,函数依赖关系和存在的传递函数依赖。,6.2 规范化(续),2、码 定义:设K为R(U,F)中的属性或属性组合,若KU,则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。 主属性:包含在任何一个候选码中的属性(Prime attribute)。 非主属性:不包含在任何码中的属性称为非主属性或非码属性。 定义:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码。,F,关系模式S(Sno,Sdept,Sage),单个属性Sno是码, SC(Sno,Cno,Grade)中,(Sno,Cno)是码,关系模式R(P,W,A),其中:P为演奏者,W为作品, A为听众。 (1)一个演奏者可以演奏多个作品 (2)某一作品可被多个演奏者演奏 (3)听众可以欣赏不同演奏者的不同作品 码为(P,W,A),即全码(All-Key),举例:,6.2 规范化(续),3、范式(NF) 关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式,目前主要有六种范式: 5NF 4NF BCNF 3NF 2NF 1NF 一个低一级的范式,通过分解,可以转换为若干个高一级范式的关系模式的集合,这个过程就叫规范化。,6.2 规范化(续),3、范式(NF) 第一范式 如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF。 即当表中每一行的每一列只具有唯一值时,表被认为是符合第一范式(1NF)的。 1NF是对关系的最低要求,不满足1NF的关系是非规范化的关系。,分解方法:非规范化关系转化为满足1NF的规范化关系方法很简单,只要将表分别从横向、纵向展开即可。,举例:,规范化,练习,练习,答案:,6.2 规范化(续),3、范式(NF) 第二范式 若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。,分解方法: 找出并抹去函数依赖于码的一部分而不是整个码的属性,将它们放到不同的表中。 组合剩余的属性。,规范化过程:消除非主属性对码的部分函数依赖,关系S(学号,系名,宿舍区,课程号,成绩),举例:,码(学号,课程号) 函数依赖集: (学号,课程号)成绩 学号系名 学号宿舍区 (学号,课程号) P系名 (学号,课程号) P宿舍区,解决: SC(学号,课程号,成绩) S-L(学号,系名,宿舍区),将下面的R关系规范化到第二范式,练习:,答案:,练习:,6.2 规范化(续),SC(学号,课程号,成绩) S-L(学号,系名,宿舍区)仍然存在问题: (1)插入异常,若某个系因种种原因,还未有学生,则无法将该系的信息存入数据库。 (2)删除异常,如果某个系的学生全部毕业了,在删除该系学生的信息的同时,该系的信息也丢掉了。 (3)数据冗余度大,每个系的学生都住在同一个地方,关于系的住处的信息却重复出现。 (4)修改复杂,当调整学生住处时,需要更改大量学生的属性。,出现上述问题的原因是因为在关系模式中仍然存在有传递函数依赖关系。,6.2 规范化(续),3、范式(NF) 第三范式 关系模式R(U,F)中若不存在这样的码X、属性组Y及非主属性Z(Z Y),使得XY,YZ成立,则称R(U,F) 3NF。,分解方法: 发现和抹去函数依赖于不是主属性的非主属性。把它们放入不同的表格; 组合剩余的属性。,3NF消除2NF的非主属性的传递函数依赖,2NF关系模式S-L(学号,系名,宿舍区)中 函数依赖:学号系名,系名学号 学号宿舍区 学号宿舍区, S-L中存在非主属性对码的传递函数依赖,则S-L3NF,举例:,传递,对S-L(SNO,SDEPT,SLOC)分解 SD(SNO,SDEPT) DL(SDEPT,SLOC),将下面的R关系规范化到第三范式,练习:,答案:,练习:,6.2 规范化(续),但是满足3NF的关系模式也未必就是好的关系模式。 如:关系模式STC(S,T,C)中,S表示学生,T表示教师,C表示课程。假设每个教师只教一门课,每门课由若干教师教,某一学生选定某门 课,就对应一个固定的教师。 函数依赖集:(S,T) C,(S,C) T,TC, S C (S,T)、 (S,J) 都是候选码。 T,S只是主属性,既不是候选码,也不包含候选码,原因是TC,SC,即主属性C部分函数依赖于(S,T) 。解决办法是将STC分解。 因此,引入一个新的范式, BCNF 范式,称为修正的或扩充的第三范式。,6.2 规范化(续),3、范式(NF) Boyce-Codd(BCNF)范式 关系模式R(U,F)1NF,若XY且YX时X必包含码,则R(U,F) BCNF。 即:关系中的每一个决定因素都包含码。 一个满足BCNF的关系模式有: 所有非主属性对每个码都是完全函数依赖 所有的主属性对每一个不包含它的码,也是完全函数依赖 没有任何属性完全函数依赖于非码的任何一组属性,6.2 规范化(续),3、范式(NF) Boyce-Codd(BCNF)范式 解决办法: 发现和抹去具有函数依赖关系主属性 把候选键的一部分和与它有函数依赖关系的属性放入另外的表中 组合剩余的项为一个表,将关系STC分解为ST(S,T) TJ(T,C),配件管理表如下,其中一个仓库由若干名管理员管理,一个管理员只管理一个仓库,他们管理所在仓库的所有商品。,练习:,答案: 函数依赖集包括: 职工编号仓库编号, (仓库编号,配件编号)数量, (职工编号,配件编号)数量 (职工编号,配件编号)仓库编号 码为: (职工编号,配件编号),练习:,答案:,练习:,6.2 规范化(续),3、范式(NF) 多值依赖 设关系模式R(U),X,Y,Z是U的子集,并且Z=U-X-Y。若对于R(U)的任一关系r,给定的一对(X,Z)值,存在一组Y的值与之对应,并且这组值仅仅决定于X值而与Z值无关,称为Y多值依赖于X或者X多值决定Y,记作XY。 若XY,若Z,则XY是非平凡的多值依赖;若Z=,则是平凡的多值依赖。,6.2 规范化(续),3、范式(NF) 多值依赖 多值依赖与函数依赖的区别: (1)函数依赖中,xy的有效性由x,y两个属性集决定;多值依赖xy不仅与x,y两个属性集有关,而要检查其余属性z。因此,多值依赖的有效性与属性集的范围有关。 (2)若函数依赖xy成立,则对于y的任一子集y均有xy成立。而多值依赖却不能确定。,6.2 规范化(续),3、范式(NF) 第四范式 关系模式R(U,F)1NF,如果对于R的每个非平凡多值依赖XY(YX),X都含有码,则称R(U,F) 4NF。 4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖。,关系模式仓库管理(仓库号,管理员,商品名)中, (仓库号,商品名)管理员,仓库号管理员 对于仓库号管理员,决定因素仓库号不包含码,仓库管理4NF 缺点:数据冗余度大,举例:,解决: 分解为仓库管理1(仓库号,管理员) 仓库管理2(仓库号,商品名),4、规范化小结 规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的分离,即“单一化”的模式设计原则。让一个关系去描述一个概念、一个实体或实体间的一种联系。若多于一个概念就把它“分离”出去。 分解的基本原则:无损分解,6.2 规范化(续),6.2 规范化(续),规范化过程概括:,指出下列关系模式是第几范式 (1)R(X,Y,Z) FD=XYZ (2)R(X,Y,Z) FD=YZ,XZY (3)R(X,Y,Z) FD=YZ,YX,XYZ (4)R(X,Y,Z) FD=XY,XZ (5)R(W,X,Y,Z) FD=XZ,WXY (6)R(A,B,C) FD=AB,BA,CA,练习1:,假设某商业集团数据库中有一关系模式R(商店编号,商品编号,数量,部门编号,负责人),若规定: 每个商店的每种商品只在一个部门销售; 每个商店的每个部门只有一个负责人; 每个商店的每种商品只有一个库存数量; 解答: (1)写出关系R的基本函数依赖 (2)找出R的候选码 (3)判断R的所属范式,若不属于3NF,则分解为3NF,练习2:,有这样一个关系模式 Student(学号,姓名,系别,课程编号,课程名,成绩) (1)学号是候选码吗?说明理由。 (2)该关系模式的主码是什么? (3)该关系模式是否存在部分函数依赖?如果存在,请写出两个。 (4)该关系模式满足第几范式? (5)将该关系模式分解为3NF。,练习3:,设有关系模式: TEACHER(教师编号,教师姓名,电话,所在部门,借阅图书编号,书名,借

温馨提示

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

评论

0/150

提交评论