第4章关系数据库设计理论.ppt

上传人:本田雅阁 文档编号:2256107 上传时间:2019-03-11 格式:PPT 页数:79 大小:519.51KB
返回 下载 相关 举报
第4章关系数据库设计理论.ppt_第1页
第1页 / 共79页
第4章关系数据库设计理论.ppt_第2页
第2页 / 共79页
第4章关系数据库设计理论.ppt_第3页
第3页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章关系数据库设计理论.ppt》由会员分享,可在线阅读,更多相关《第4章关系数据库设计理论.ppt(79页珍藏版)》请在三一文库上搜索。

1、1,第4章 关系数据库设计理论,本章要求: 了解数据冗余和更新异常产生的根源 了解函数依赖、多值依赖和键的基本内涵 理解关系模式规范化的途径 了解第四范式、第五范式的概念 掌握第一范式、第二范式、第三范式和BCNF范式的含义、联系与区别,2,第4章 关系数据库设计理论,本章内容:,问题提出,1,3,4.1问题提出,一个基本的问题: 给出一组数据,如何构造一个合适的数据模式? 例如:对关系模型,给了一组数据,应该构造几个关系?每个关系由哪些属性组成? 这就是数据库逻辑设计问题!,4,4.1问题提出,网状、层次模型的数据库设计,主要凭设计者的经验直观地选择和确定实体集、属性以及实体间的联系。哪些实

2、体应该合并或分解以及如何合并和分解、每个实体中应该包括哪些属性为宜、属性间的联系如何确定和处理等一系列问题的解决是没有什么固定规则和理论可循的。,5,4.1问题提出,关系数据库的设计是借助近代数学工具而提出来的,形成了一整套定义、公理、定理及各种实用算法,产生了确定、评价关系数据库模式的好方法。,关系数据库的规范化理论 数据库逻辑设计的有力工具,6,4.1问题提出,要考虑的几个问题: 为什么要规范化? 怎样规范化? 规范化到什么程度后最合适? 本节首先用一个例子来说明对关系模式为什么要规范化,不经过规范化会产生什么样的结果。,7,4.1问题提出,例:假设有一个关于学生选课和住宿情况的关系, 包

3、含:Sno(学生的学号)、Sdept(学生所在系)、 Sloc(学生所住宿舍楼)、Cno(课程号)、 Grade(考试成绩) 如下所示:,8,S-L-C(Sno,Sdept,Sloc,Cno,Grade) 假设每个系的学生都住在一栋楼里, (Sno, Cno)为主码,4.1问题提出,9,4.1问题提出,假设每个系的学生都住在一栋楼里 该关系模式存在以下四个严重问题: 数据冗余 数据库中不必要的重复存储就是数据冗余。此关系中,有关学生所在系和其所对应的宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就要重复存储多少遍。,10,4.1问题提出,插入异常 应该存储的信息无法存储

4、。插入记录时出现不能插入等一些不合理现象。如果某个学生还没有选课,但已经有了Sdept和Sloc信息,我们也不能将此学生的这些已知信息插入到数据库中。因为Cno为空,而Cno为主属性,不能为空,因此也就丢掉了该学生的其他基本信息。,11,4.1问题提出,删除异常 不该删除的信息被删除。如果一个学生只选了一门课,而后来又不选了,则应该删除此学生选此门课程的记录。但由于这个学生只选了一门课,那么删掉此学生的选课记录的同时也删掉了此学生的其他基本信息。,12,4.1问题提出,更新异常 由于数据的重复存储,会给更新带来很多麻烦。可能会导致数据的不一致,这将直接影响系统的质量。若某一学生从计算机系转到信

5、息系,那么不但要修改学生的Sdept列的值,而且还要修改其Sloc列的值,从而使修改复杂化。 一方面,修改工作量大;另一方面,可能漏改或该错,会造成数据的不一致性。,13,4.1问题提出,上例充分说明对关系模式若随意设计,其后果是严重的。 本章将要讨论产生上述问题的原因以及解决办法,即如何改造一个不好的关系模式。 这就是规范化理论要解决的主要问题。包括数据依赖、模式分解和模式设计方法。其中数据依赖是模式分解和模式设计的基础。,14,第4章 关系数据库设计理论,本章内容:,问题提出,2,数据依赖,规范化关系模式设计,3,1,2,综合举例,4,15,4.2 数据依赖,数据模型中我们讨论了实体间的联

6、系,同时提到实体内部属性间也有联系。 事实上,上一节中的问题都是由于属性间的联系引起的。 一、数据依赖属性间的联系: 1:1,1:n,m:n三种 1:1联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中至多有一个值与之对应,且反之亦然。如:车间-主任,16,4.2 数据依赖,1:n联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中有多个值(包括0个)之对应;而对于B中的任一值,A中至多有一个值与之对应。如:班号-学号 m:n联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中有多个值(包括0个)与之对应,且反之亦然。如:学号-课程号,1

7、7,4.2 数据依赖,通过一个关系中属性间值的相互关联(主要体现于值的相等与否)体现出来的数据间的相互联系(是数据内在的性质,语义的体现)为数据依赖。 两类最重要的数据依赖: 函数依赖 多值依赖,18,4.2 数据依赖,二、函数依赖 不严格地讲,函数依赖指的是一组属性值唯一决定另一组属性值的这种数据依赖。 学生关系中,当学号确定后,其姓名也就唯一确定了。 选课关系中,当学号和课程号确定后,其成绩也就唯一确定。 设用U表示关系模式R的属性全集,即 U=A1,A2 ,An,用F表示关系模式R上的函数依赖集,则关系模式R可表示为R(U, F)。,19,4.2 数据依赖,1. 函数依赖(Functio

8、nal Dependency,缩写FD): 设 R(U)是属性集U上的关系模式,X、Y是U的子集。对于r中的任意两个元组u、v都有 uX=vX uY=vY 成立, 则称X函数决定Y,或称Y函数依赖于X,记作XY。称X为决定因素。,20,4.3 规范化的关系模式,假设每个系的学生都住在一栋楼里,X,Y,uX=vX uY=vY,21,4.2 数据依赖,说明: 函数依赖类似于变量间的单值函数关系(一个自变量只能对应一个函数值),因此也称为单值函数依赖; 若XY且YX ,则记作 XY;,函数依赖是指关系模式R的任一关系都要满足的约束条件。,22,4.2 数据依赖,2. 函数依赖与属性间的联系之关系 (

9、1)若X、Y之间是“1:1联系”,则存在函数依赖XY和YX, 即XY. (2)若X、Y之间是“m:1联系”, 则存在函数依赖关系XY。 (3)若X、Y之间是“m:n联系”, 则X、Y之间不存在函数依赖关系。,23,4.2 数据依赖,3.函数依赖分类 非平凡的函数依赖: XY,但Y X。 平凡的函数依赖: XY,但Y X。,24,4.2 数据依赖,部分函数依赖: XY,但Y不完全函数依赖于X,即存在X X,有XY。记作 XY。,p,25,例:关系模式P(学号,系名,系主任)中: 学号系名 系名系主任(假设一个系只有一名系主任),4.2 数据依赖,如果Y X,则X Y,则XY, Z对X实际上是直接

10、函数依赖而不是传递函数依赖.,26,4.2 数据依赖,例:关系模式P(姓名,职务,职务工资)中: 姓名职务 职务职务工资 则,27,4.2 数据依赖,例:关系模式P(学号,课程号,成绩,学分)中:,因为课程号学分,,(学号,课程号)课程号(平凡函数依赖),28,4.2 数据依赖,三、多值依赖 1. 例子:设学校中一门课由多位教员讲授,他们使用相同的参考书,比如: “物理”,教员为汪洋、大海,参考书为普通物理学、光学原理、物理习题集; “数学”,教员为大海、白云,参考书为数学分析、微分方程、高等代数; 用模式为 TEACH(C,T,B)的关系表示上述数据:,29,4.2 数据依赖,课程C 教员T

11、 参考书B 物理 汪洋 普通物理学 物理 汪洋 光学原理 物理 汪洋 物理习题集 物理 大海 普通物理学 物理 大海 光学原理 物理 大海 物理习题集 数学 大海 数学分析 数学 大海 微分方程 数学 大海 高等代数 数学 白云 数学分析 数学 白云 微分方程 数学 白云 高等代数 计算 白云 数学分析 ,30,4.2 数据依赖,该关系模式中,任何两个属性都不能函数决定第三个属性。 该关系模式存在冗余大、增删不方便等问题。 没有函数依赖,需要另行分析 分析:在该关系模式中,对于一个(物理,普通物理学),有一组教员汪洋,大海,而对于另一个(物理,光学原理),对应的教员仍是汪洋,大海。因此,所对应

12、的教员只与课程的值有关而与参考书的值无关。,31,4.2 数据依赖,2. 多值依赖(MultiValued Dependency, 缩写为MVD) 设R(U)是属性集U上的关系模式,X、Y、Z是U的子集,且Z=UXY,多值依赖XY成立当且仅当对R(U)的任一关系r,任给的一对(x,z)值有一组Y的值,这组值仅仅取决于x值而与z值无关。称X多值决定Y或Y多值依赖于X。,32,4.2 数据依赖,课程C 教员T 参考书 物理 汪洋 普通物理学 物理 汪洋 光学原理 物理 汪洋 物理习题集 物理 大海 普通物理学 物理 大海 光学原理 物理 大海 物理习题集 数学 大海 数学分析 数学 大海 微分方程

13、 数学 大海 高等代数 数学 白云 数学分析 数学 白云 微分方程 数学 白云 高等代数 计算 白云 数学分析 ,X,Y,Z,任给的一对(x,z)值有一组Y的值,这组值仅仅取决于x值, 而与z值无关。称X多值决定Y或Y多值依赖于X。,33,多值依赖XY成立当且仅当对R(U)的任一关系r,若存在元组s、t使得sX=tX,则必存在元组w、vr(w、v可以与s、t相同),使得wX=vX=tX,而wY=tY,vY=sY, wZ=sZ,vZ=tZ。,多值依赖的另一等价定义,对于r中在X上值相等的 两个元组s、t,交换它们 的Y值后所得的新元组w、 v仍在r中,X Y Z,34,4.2 数据依赖,平凡的多

14、值依赖: 若X Y,而Z=,即Z为空,则称X Y为平凡的多值依赖。若Z非空,则称X Y 为非平凡的多值依赖,35,4.2 数据依赖,3. 多值依赖的性质: 对称性:若 XY, Z=UXY,则 XZ。 传递性:若 XY , YZ ,则XYZ 。 函数依赖是多值依赖的特例:若 XY,则 XY。,36,4.2 数据依赖,多值依赖的性质: 若 XY ,XZ ,则 XYZ 。 若 XY ,XZ ,则 XYZ, X Z Y。,37,4.2 数据依赖,4. 多值依赖与函数依赖的区别 (1)函数依赖XY的有效性仅取决于X、Y,与X、Y之外的属性无关:,38,4.2 数据依赖,多值依赖XY的有效性与X、Y之外的

15、属性范围有关:若XY在U上成立,则在W( XY W U)上也成立,但反之不然。,可缩小范围但不一定能扩大范围,XY在U上成立,XY在W上也成立,反之 不成立,39,4.2 数据依赖,(2)对函数依赖,若XY,则对Y的任意子集Y,都有XY。对多值依赖,没有上述性质,即不能保证XY成立。,原因:在关系模式R(U)上,函数依赖XY的有效性仅仅取决于X、Y两个属性集合;而在多值依赖中XY在U上是否成立,不仅要检查X、Y上的属性值,而且要检查Z=U-X-Y上的值。,40,4.2 数据依赖,四、键 从函数依赖的角度给关键字一个形式化的定义。 1. 候选关键字和主关键字: 设K是R中的属性或属性组合,,若候

16、选关键字多于一个,则选定其中的一个作为主关键字(主键、主码)。,41,4.2 数据依赖,2. 外键(外部码) 若R中的属性或属性组合X不是R的关键字,但X是另一个关系的关键字,则称X是R的外键。 主键与外键提供了一个表示关系间联系的手段。 例1:S( Sno, Sname, Sage) Sno为主码 SC( Sno, Cno, Grade) Sno为外码,42,4.2 数据依赖,3. 全键(All-key,全码) 若R的整个属性组是关键字,则称U是全键。,43,4.2 数据依赖,例2:R(P,W,A)其中各属性含义分别为: 演奏者,作品和听众。 其语义为:一个演奏者可演奏多个作品,某一作品可被

17、多个演奏者演奏;听众也可欣赏不同演奏者的不同作品。 其候选码为:(P,W,A),因为只有这三者才能确定一场音乐会。我们称全部属性均为主码的表为全码表。,44,4.2 数据依赖,4. 主属性和非主属性 主属性:包含在某个候选关键字中的属性 非主属性:不包含在任何侯选关键字中的属性 例:SC(Sno, Cno, Grade)中, (Sno, Cno)是关键字, 故Sno, Cno是主属性 Grade不包含在任何关键字中, 故Grade是非主属性。,45,第4章 关系数据库设计理论,本章内容:,问题提出,2,数据依赖,规范化关系模式,3,1,2,综合举例,4,46,4.3 规范化的关系模式,本节讨论

18、下述问题: 如何根据关系模式属性间的数据依赖情况来判断该关系模式是否合适? 如何将具有不合适性质的关系模式转换为更合适的形式?,47,4.3 规范化的关系模式,一、规范化 1. 范式(Normal Form) 按关系模式所具有的数据依赖性质对关系模式的分类, 也就是关系的规范化程度。 满足不同程度要求的为不同范式。 2. 规范化 把一个低一级范式的关系模式通过模式分解转化为若干个高一级的关系模式的过程。,48,1NF,2NF,3NF,BCNF,4NF,5NF,4.3 规范化的关系模式,49,4.3 规范化的关系模式,二、第一范式(1NF) 1. 定义:关系的每个分量必须是不可再分的数据项。记作

19、R1NF。(每个属性必须是原子的) 2. 说明: 属性不可再分(不允许出现嵌套的属性定义) 属性下的值不可再分(不允许出现多个值) 这是对关系的最起码的要求,但远远不够。 (满足1NF的关系称为规范关系),50,4.3 规范化的关系模式,不满足1NF范式的关系:,51,4.3 规范化的关系模式,3. 仅属于1NF的关系模式可能会产生的问题: S-L-C(Sno, Sdept, Sloc, Cno, Grade) 假设每个系的学生都住在一栋楼里,(Sno, Cno)为主码,显然S-L-C1NF,但第一节中我们已讨论知它有四个严重问题。 因此仅是第一范式的关系模式完全不能满足需要。,52,4.3

20、规范化的关系模式,SnoSLOC SnoSdept,主码为:(Sno,Cno),在S-L-C中有如下函数依赖:,53,4.3 规范化的关系模式,分析出现问题的原因: Sno函数决定非主属性Sdept、SLOC。因此,关键字(Sno,Cno)部分函数决定这些属性。 这显然是产生冗余的一个主要原因。,54,4.3 规范化的关系模式,三、第二范式(2NF) 1. 定义:若 R1NF,且每一非主属性都完全函数依赖于R的任意一个候选码,则称R是第二范式,记作R2NF。 2. 属于1NF但不属于2NF的例子: 例:S-L-C(Sno,Sdept,Sloc,Cno,Grade)就不是2NF的。因为(Sno,

21、Cno)是主码,而又有:SnoSdept, 因此有:,55,4.3 规范化的关系模式,3. 2NF范式的性质 如果R 2NF,则R 1NF。 如果R的候选关键字是单属性或全键(All-key), 则R2NF,56,4.3 规范化的关系模式,2NF要求实体的非主属性完全依赖于主关键字。如果存在非主属性部分函数依赖主关键字一部分属性,那么这个属性和主关键字的这部分属性应该分离出来形成一个新的实体。即1NF范式中消除非主属性对主关键字的部分函数依赖,即可得到2NF。,57,4. 分解过程为: 用每个决定因素与它完全决定的属性构成一个关系模式,决定因素成为新模式的码。 S-L-C关系模式分解后的形式为

22、: S-L(Sno,Sdept,Sloc)和S-C(Sno, Cno,Grade),4.3 规范化的关系模式,58,4.3 规范化的关系模式,分解前 S-L-C(Sno,Sdept,Sloc,Cno,Grade) 分解后 S-C(Sno, Cno,Grade)S-L(Sno,Sdept,Sloc)分解之后,与S_L_C相比: 数据冗余减小(原来伴随学生所学的每门课都要存储一遍SD、SL的值); 没选课的学生信息可以存储; 删除选课记录不会误删学生其他信息; 冗余数据的减少使得修改变得容易些。 1NF的上述四个问题得到了部分解决,59,4.3 规范化的关系模式,5. 仅属于2NF的关系模式可能会

23、产生的问题 数据冗余 数据冗余仍然较大:Sloc的值重复严重 插入异常 若一个系刚成立但尚无学生,该系名称等无法存储 删除异常 若一个系的学生全部毕业,删除全部学生数据的同时把该系的数据(如系名等)也都删除了 修改困难 数据冗余大势必造成修改困难(这可以说是个必然联系) 可能的原因:存在传递函数依赖SnoSloc,60,4.3 规范化的关系模式,四、第三范式(3NF) 1. 定义:如果R(U,F) 2NF,并且所有非主属性对任何候选关键字都不存在传递依赖,则R(U,F)3NF。 2. 定理:若 R3NF,则 R2NF。 关系模式S-L(Sno, Sdept, Sloc), 因为有: SnoSd

24、ept,SdeptSloc 因此有:Sno传递Sloc 因此,不是3NF的关系模式。,61,3.分解过程为 (1)对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性; (2)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性; (3)将决定因子作为新表的主码。 S-L分解后的关系模式为: S-D(Sno,Sdept)和S-L(Sdept,Sloc) 对S-D,有:Sno fSdept,因此S- D是3NF的 对S-L,有:Sdept fSloc,因此S-L也是3NF的 通常在数据库设计中,一般要求要达到3NF。,62,4.3 规范化的关系模式,4. 仅属于3NF的关系模式可能会产

25、生的问题 由上可知,部分函数依赖和传递函数依赖是产生异常的两个重要原因。 3NF中不存在非主属性对于关键字的部分函数依赖和传递函数依赖,因此具有较好的性质。 通常设计关系模式时至少应该是属于3NF的。 虽说3NF是广泛使用的一种关系范式,但3NF仍然存在某些“异常”。,63,4.3 规范化的关系模式,例:关系模式 R(S,T,J) 函数依赖:(S,J) T;(S,T) J;T J 候选关键字:(S,J);(S,T) R中无非主属性,显然R3NF。,64,4.3 规范化的关系模式,五、Boyce-Codd范式(BCNF) 1. 定义:如果关系模式R中的所有属性包括主属性和非主属性,都不传递依赖于

26、R的任何候选关键字,则称R是BCNF范式。记为R BCNF。 2. 另一种等价的定义: 若R 3NF,且对任何非平凡的函数依赖XY,X必包含候选码。则R BCNF。 如果R3NF,并且不存在主属性对非码的函数依赖,则其是BCNF。,65,4.3 规范化的关系模式,3. 性质 所有非主属性对每一个主码都是完全函数依赖; 所有主属性对每一个不包含它的主码也是完全函数依赖; 没有任何属性完全函数依赖于非主码的任何一组属性。 若RBCNF,则R3NF。(也称BCNF为修正的3NF),66,4.3 规范化的关系模式,在函数依赖的范畴内,BCNF已做到彻底的分离,消除了插入异常、删除异常(3NF的“不彻底

27、性”在于可能存在主属性对关键字的部分函数依赖和传递函数依赖)。,67,4.3 规范化的关系模式,4. 属于3NF但不属于BCNF的例子: 关系模式 STJ(学生S,教师T,课程C) 每个教师只教一门课, 每门课有若干教师, 某一学生选定某门课, 就对应一个固定的教师。 码:(学生S,课程C);(学生S,教师T) 函数依赖:(S,C)T;(S,T)C;TC 因为C部分函数依赖于码(S,T),或T是决定因素,但T不包含码。故R不属于BCNF。,68,4.3 规范化的关系模式,例:有关系模式CSZ(City,Street,Zip),其中各属性分别代表城市、街道和邮政编码。其语义为:城市和街道可以决定

28、邮政编码,邮政编码可以决定城市。因此有: (City,Street)Zip,ZipCity 其候选码为:(City,Street)和(Street,Zip) 此模式不存在非主属性,因此它属于3NF。 存在问题ZipCity, Zip是决定因子,但Zip不是码。所以不是BCNF!。,69,4.3 规范化的关系模式,5.解决办法:消除主属性对码的部分或传递函数依赖,转换BCNF。 将R(学生S, 教师T, 课程C)分解为: R1(学生S, 教师T)和 R2(教师T, 课程C),70,4.3 规范化的关系模式,六、范式小结 1. 规范化的目的 解决数据冗余、插入异常、删除异常、修改困难 等问题 2.

29、 规范化的基本思想 逐步消除不合适的数据依赖,让一个关系描述一个概念、一个实体或实体间的一种联系。即“一事一地”的模式设计原则。,71,4.3 规范化的关系模式,3. 范式,1NF,2NF,3NF,BCNF,4NF,消除决定因素非码的非平凡函数依赖,决定因素非码的非平凡多值依赖,72,4.3 规范化的关系模式,4.规范化的过程 对关系模式分解,把一个低一级关系模式分解成若干个高一级的关系模式。 5.规范化与操作效率 片面追求高级的模式,会使数据库操作效率降低,73,第4章 关系数据库设计理论,本章内容:,问题提出,2,数据依赖,规范化关系模式,3,1,2,综合举例,4,74,4.4 综合举例,

30、例1:设有关系模式W(仓库号,零件号,零件数量,仓库地址),问该关系模式满足第几范式?为什么?,显然关系模式W符合1NF,(仓库号,零件号)构成候选关键字。但是因为 仓库号仓库地址,也就是,所以W不符合2NF。将W分解为两个关系: W1(仓库号,零件号,零件数量) W2(仓库号,仓库地址),75,4.4 综合举例,W1(仓库号,零件号,零件数量) W2(仓库号,仓库地址) 关系模式W1的候选关键字(仓库号, 零件号), 关系模式W2的候选关键字为仓库号,这样, W1和W2中非主属性对候选关键字都是完全函数依赖了。 所以 W12NF,W2 2NF。 W1和W2之间通过仓库号相联系,对他们进行自然

31、联结,可以恢复成原来的关系W。,76,4.4 综合举例,例2:设有关系模式R(A, B, C),关系上存在函数依赖关系有:C B,B A。试写出该关系模式的候选关键字;R是否为3NF?说明理由。,从关系R上存在的函数依赖关系可以推出R的候选关键字是C。 由C B,B A可知,A传递函数依赖于C,所以R不是3NF。将它分解为: R1(C B,) 和 R2(B, A)两个关系,它们都是3NF,而且都满足BCNF范式条件。,77,4.4 综合举例,例3 设有关系模式R(学号, 姓名, 性别, 专业, 年级, 课程成绩(课程号, 课程名, 学时, 学分, 成绩)。试写出关系模式存在的基本函数依赖关系;

32、R是否为2NF?说明理由。 由语义知,关系R中存在如下基本函数依赖:,学号 (学号, 姓名, 性别, 专业, 年级) 课程号(课程名, 学时, 学分) (学号,课程号) 成绩,78,4.4 综合举例,由于课程成绩由(课程号, 课程名, 学时, 学分, 成绩)组成,所以R不是第一范式。但是可以改造成如下关系: R1(学号, 姓名, 性别, 专业, 年级, 课程号, 课程名, 学时, 学分, 成绩) 这样R1就是第一范式了。 由于R1中存在部分函数依赖。因为(学号,课程号)是关系R1的候选码,而R1中存在:,所以R1不是第二范式。,79,4.4 综合举例,将R1分解为: R11(学号, 姓名, 性别, 专业, 年级) R12 (课程号, 课程名, 学时, 学分) R13(学号, 课程号, 成绩),通过分解得到的关系R11,R12,R13都是第二范式了。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1