自考_互联网数据库_第四章_关系数据库设计理论概要课件.ppt

上传人:牧羊曲112 文档编号:3298910 上传时间:2023-03-12 格式:PPT 页数:95 大小:618.50KB
返回 下载 相关 举报
自考_互联网数据库_第四章_关系数据库设计理论概要课件.ppt_第1页
第1页 / 共95页
自考_互联网数据库_第四章_关系数据库设计理论概要课件.ppt_第2页
第2页 / 共95页
自考_互联网数据库_第四章_关系数据库设计理论概要课件.ppt_第3页
第3页 / 共95页
自考_互联网数据库_第四章_关系数据库设计理论概要课件.ppt_第4页
第4页 / 共95页
自考_互联网数据库_第四章_关系数据库设计理论概要课件.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《自考_互联网数据库_第四章_关系数据库设计理论概要课件.ppt》由会员分享,可在线阅读,更多相关《自考_互联网数据库_第四章_关系数据库设计理论概要课件.ppt(95页珍藏版)》请在三一办公上搜索。

1、第四章 关系数据库设计理论,4.1 数据依赖4.2 范式4.3 关系模式的规范化,2/95,4.1 数据依赖,关系数据库是以关系模型为基础的数据库,它利用关系描述现实世界。一个关系既可以用来描述一个实体及其属性,也可用来描述实体间的一种联系。关系模式是用来定义关系的,一个关系数据库包含一组关系,定义这组关系的关系模式的全体就构成了该数据库的模式。,3/95,4.1.1 关系模式中的数据依赖,关系模式是对关系的描述,为了能够清楚地刻划出一个关系,它需要由五部分组成,即应该是一个五元组:R(U,D,DOM,F)其中:R关系名 U属性名集合 D属性组U中属性所来自的域 DOM属性向域的映象集合 F属

2、性间数据的关系集合,4/95,关系模式中的数据依赖续一,属性间数据的依赖关系集合F实际上就是描述关系的元组语义,限定组成关系的各个元组必须满足的完整性约束条件。在实际当中,这些约束或者通过对属性取值范围的限定,或者通过对属性值间的相互关连(主要体现值的相等与否)反映出来,后者称为数据依赖,它是数据库模式设计的关键。,5/95,关系模式中的数据依赖续二,关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,关系是动态的,不同时刻关系模式中的关系可能会有所不同,但它们都必须满足关系模式中数据依赖关系集合F所指定的完整性约束条件。,6/95,关系模式中的数据依赖续三,由于在关系模式R(U,

3、D,DOM,F)中,影响数据库模式设计的主要是U和F,D的DOM对其影响不大,为了方便讨论,将关系模式简化为一个三元组:R(U,F)当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系。,7/95,4.1.2 数据依赖对关系模式的影响,数据依赖是通过一个关系中属性间值的相等与否体现出来的的数据间的相互关系。数据依赖的类型很多,其中最重要的是函数依赖(functional dependency,简记为FD)和多值依赖(multivalued dependency,简记为MVD)。,8/95,数据依赖对关系模式的影响续一,函数依赖普遍地存在于现实生活中。例:学生关系中的学号(Sn

4、o)、姓名(Sname)、所有系(Sdept)等几个属性,其中:SnoSname SnoSdept Sno函数决定Sname和Sdept;反之,Sname和Sdept函数依赖于Sno。,9/95,数据依赖对关系模式的影响续二,例:描述学校的数据库 学号(Sno)、所在系(Sdept)、系主任名(Mname)、课程名(Cname)和成绩(Grade)。假设学校的数据库模式由一个单一的关系模式student构成,即:student(Sno,Sdept,Mname,Cname,Grade),10/95,数据依赖对关系模式的影响续三,例:描述学校的数据库 由常识可知:(1)一个系有若干学生,但一个学生

5、只属于一个系;(2)一个系只有一名主任;(3)一个学生可以选修多门课程,每门课程有若干学生选修;(4)每个学生所学的每门课程都有一个成绩。,11/95,数据依赖对关系模式的影响续四,该关系模式的属性集合为:U=Sno,Sdept,Mname,Cname,Grade从上述事实可以得到属性组U上的一组函数依赖F为:F=SnoSdept,SdeptMname,(Sno,Cname)Grade,12/95,数据依赖对关系模式的影响续五,13/95,数据依赖对关系模式的影响续六,只考虑函数依赖这一数据依赖,学生关系模式student存在以下问题:数据冗余太大;更新异常;插入异常;删除异常。,14/95,

6、数据依赖对关系模式的影响续七,一个关系模式之所以会产生上述问题,是由存在于模式中的某些数据依赖引起的。规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。,15/95,4.1.3 相关概念,1.函数依赖【定义4.1】设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作XY。,16/95,函数依赖续一,对于函数依赖的几点说明:(1)函数依赖不是指关系模式R的某个或

7、某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。(2)函数依赖和别的数据之间的依赖关系一样,是语义范畴的概念。我们只能根据数据的语义来确定函数依赖。例:姓名年龄,17/95,函数依赖续二,对于函数依赖的几点说明:(3)数据库设计者可以对现实世界作强制的规定,例:“姓名年龄”。这样当插入某个元组时这个元组上的属性值必须满足规定的函数依赖,若发现有同名人存在,则拒绝装入该元组。,18/95,函数依赖续三,(4)若XY,则X称为这个函数依赖的决定属性集(Determinant)。(5)若XY,并且YX,则记为XY。(6)若Y不函数依赖于X,则记为XY。,19/95,相关概念续二

8、,2.平凡函数依赖与非平凡函数依赖【定义4.2】在关系模式R(U)中,对于U的子集X和Y,如果XY,但 Y X,则XY是非平凡的函数依赖。若Y X,则称XY称为平凡函数依赖。,/,20/95,相关概念续三,3.完全函数依赖与部分函数依赖【定义4.3】在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y完全函数依赖于X,记作X Y。若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X Y。,21/95,相关概念续四,4.传递函数依赖【定义4.4】在关系模式R(U)中,如果XY,YZ,且Y X,YX,则称Z传递函数依赖于X。例:SnoSdept SdeptMna

9、me Sno Mname,/,22/95,相关概念续五,5.码【定义4.5】设K为关系模式R(U,F)中的属性或属性组合。若K U,则K称为R的一个候选码(Candidate Key)。若关系模式有多个候选码,则选定其中的一个作为主码(Primary Key)。,23/95,相关概念续六,5.码【定义4.6】关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreign Key),也称外码。例:关系模式R(城市,街道,邮编)城市,街道邮编,邮编城市 候选键是?,24/95,4.2 范式,关系数据库中的关系必须满足一定的规范化要求,对于不同的规范化程序可用范式

10、来衡量。范式是符合某一种级别的关系模式的集合,是衡量关系模式规范化程度的标准,达到范式的关系才是规范化的。,25/95,范式续一,目前主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。各种范式之间存在联系:,范式:Normal Form,26/95,范式续二,通常把某一关系模式R为第n范式简记为RnNF。在所有范式中,最重要的是3NF和BCNF,它们是进行规范化的主要目标。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级模式的关系模式的集合,这个过程称为规范化。,27/95,4.2.1 第一范式,【定义4.7】如果一个关系模式R的所有属性都是不可分的基本数

11、据项,则R1NF。第一范式是对关系模式的一个最起码的要求,不满足第一范式的数据库模式不能称为关系数据库。,28/95,第一范式续一,满足第一范式的关系模式不一定是一个好的关系模式,例:SLC(Sno,Sdept,Sloc,Cno,Grade)函数依赖有:(Sno,Cno)Grade,SnoSdept,(Sno,Cno)Grade,SnoSloc,(Sno,Cno)Sloc,SdeptSloc,29/95,第一范式续二,30/95,第一范式续三,SLC关系存在以下4个问题:(1)插入异常:如果要插入一个学生信息Sno=99102,Sdept=IS,Sloc=N,但还因为没有选课信息,所以无法插入

12、。((Sno,Cno)是主码,不允许为空。),应插入的信息无法插入,31/95,第一范式续四,SLC关系存在以下4个问题:(2)删除异常:学号为99022的学生只选修了3号课程,如果现在他不选修3号课程,则该元组整个被删除,从而删除了99022的其他信息。,不应删除的信息被删除了,32/95,第一范式续五,SLC关系存在以下4个问题:(3)数据冗余度大:如果一个学生选修了多门课程,那么他的Sdept和Sloc值就要重复存储多次。,33/95,第一范式续六,SLC关系存在以下4个问题:(4)修改复杂:如果一个学生转系,除了修改Sdept外,还要修改Sloc的值。如果该学生选修了多门课程,那么这些

13、元组中的所有Sdept和Sloc值都需要修改。,因此,SLC不是一个好的关系模式,34/95,4.2.2 第二范式,SLC出现上述问题的原因是Sdept、Sloc对码的部分函数依赖。为了消除这些部分函数依赖,可以采用投影分解法,把SLC分解为两个关系模式:SC(Sno,Cno,Grade)SL(Sno,Sdept,Sloc),消除非主属性对码的部分函数依赖,35/95,第二范式续一,36/95,第二范式续二,2NF就是不允许关系模式的属性之间有这样的函数依赖XY,其中X是码的真子集,Y是非主属性。码只包含一个属性的关系模式如果属于1NF,那么它一定属于2NF。因为它不可能存在非主属性对码的部分

14、函数依赖。,37/95,第二范式续三,2NF并不能完全消除关系模式中的各种异常情况和数据冗余。例如:SL(Sno,Sdept,Sloc)是2NF,其中有下列函数依赖:SnoSdept SdeptSloc SnoSloc,传递函数依赖,38/95,第二范式续四,SL(Sno,Sdept,Sloc)中存在非主属性对码的传递函数依赖,依然存在各种问题:(1)插入异常:刚建的系无学生,无法插入系的信息。(2)删除异常:如果删除某个系的全部学生信息,将会同时删除系信息。,39/95,第二范式续五,SL(Sno,Sdept,Sloc)中存在非主属性对码的传递函数依赖,依然存在各种问题:(3)数据冗余度大:

15、同一个系的住处信息将多次存放。(4)修改复杂:某个系学生全部换住处时,所有相关学生信息都要修改。,40/95,4.2.3 第三范式,SL出现上述问题的原因是Sloc传递函数依赖于Sno。为了消除该传递函数依赖,可以采用投影分解法,把SL分解为两个关系模式:SD(Sno,Sdept)DL(Sdept,Sloc),消除非主属性对码的传递函数依赖,41/95,第三范式续一,【定义4.8】如果关系模式R(U,F)中不存在候选码X、属性组Y以及非主属性Z(Z Y),使得XY,YX和YZ成立,则R3NF。可以证明,若R3NF,则R2NF。,/,42/95,第三范式续二,部分依赖,传递依赖,不传递依赖,不部

16、分依赖,3NF模式,2NF模式,如果R是3NF模式,那么R也是2NF模式。,43/95,第三范式续三,将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。例:关系模式STJ(S,T,J)中S表示学生,T表示教师,J表示课程。若每、一教师只教一门课,每门课由若干教师教,某一学生选定某门课,就确定了固定的教师。,44/95,第三范式续四,函数依赖为:(S,J)T(S,T)J TJ候选码为:(S,J)或(S,T)。STJ关系模式中没有非主属性对码的传递或部分函数依赖,所以STJ3NF。,45/95,第三范式续五,3NF的STJ关系模式也存在一些问题:插入异常;

17、删除异常;数据冗余度大;修改复杂。,46/95,4.2.4 BC范式,STJ出现上述问题的原因在于主属性对码的传递依赖。解决这一问题仍然可以采用投影分解法,将STJ分解为两个关系模式:ST(S,T)TJ(T,J),消除主属性对码的传递函数依赖,47/95,BC范式续一,【定义4.9】设关系模式R(U,F)1NF,如果对R的每个函数依赖XY,若Y X,则X必含有候选码,那么RBCNF。换句话说,在关系模式R(U,F)中,如果每一个决定属性集都包含候选码,则RBCNF。,/,48/95,BC范式续二,BCNF(Boyce Codd Normal Form)是由Boyce和Codd提出的。如果一个关

18、系数据库中的所有关系模式都属于BCNF,那么在函数依赖范畴内,它已实现了模式的彻底分解,达到了最高的规范化程度,消除了插入异常和删除异常。,49/95,4.2.5 多值依赖与第四范式,如果仅考虑函数依赖这一种数据依赖,属于BCNF的关系模式已经很完美了。但如果考虑其他数据依赖,如多值依赖,属于BCNF的关系模式仍存在问题,不能算作是一个完美的关系模式。,50/95,多值依赖与第四范式续一,例:关系模式Teach(C,T,B),其中C表示课程,T表示教师,B表示参考书。,51/95,多值依赖与第四范式续二,52/95,多值依赖与第四范式续三,Teach具有唯一候选码(C,T,B),即全码,因而T

19、eachBCNF。但Teach模式中存在一些问题:数据冗余度大;增加操作复杂;删除操作复杂;修改操作复杂。,53/95,多值依赖与第四范式续四,BCNF的关系模式Teach之所以会产生上述问题,是因为参考书的取值和教师的取值是彼此独立毫无关系的,它们的取值只取决于课程名。也就是说,关系模式Teach中存在一种称之为多值依赖的数据依赖。,54/95,多值依赖,【定义4.10】设R(U)是一个属性的一个关系模式,X、Y和Z是U的子集,并且Z=U-X-Y,多值依赖XY成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关。若XY,而Z=,则称XY为平凡

20、的多值依赖,否则称XY为非平凡的多值依赖。,55/95,多值依赖续一,例:在Teach关系中,每个(C,B)上的值对应一组T值,而这种对应与B无关。(C,B)T(物理,光学原理)李勇,王军(物理,普通物理学)李勇,王军 C T,56/95,多值依赖续二,【定义4.11】在关系模式R(U)的任一关系r中,如果对于任意两个元组t,s有tX=sX,就必存在元组w,vr(w和v可以与s和t相同),使得wX=vX=tX而wY=tY,wZ=sZ,vY=sY,vZ=tZ,即交换s,t元组的Y值所得的两个新元组必在r中,则称Y多值依赖于X,记为XY。,57/95,多值依赖的性质,(1)多值依赖具有对称性。即若

21、XY,则XZ,其中Z=U-X-Y。(2)多值依赖具有传递性。即若XY,YZ,则XYZ。(3)函数依赖可以看作是多值依赖的特殊情况。即若XY,则XY。,58/95,多值依赖的性质续一,(4)若XY,XZ,则XYZ(5)若XY,XZ,则XYZ(6)若XY,XZ,则XY-Z,XY-Z,59/95,多值依赖的性质续二,(7)多值依赖的有效性与属性集的范围有关。即若XY在U上成立,则在W上(XY W U)上一定成立;但XY在W上(W U)成立,在U上并不一定成立。,60/95,多值依赖的性质续三,(8)若多值依赖XY在R(U)上成立,对于Y Y,并不一定有XY成立。但是如果函数依赖XY在R上成立,则对于

22、任何Y Y均有XY成立。,61/95,第四范式,【定义4.12】关系模式R(U,F)1NF,如果对于R的每个非平凡多值依赖XY(Y X),X都含有候选码,则R4NF。4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖,所允许的非平凡多值依赖实际上是函数依赖。,62/95,4.3 关系模式的规范化,一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。,63/95,关系模式的规范化续一,关系模式规范化时一般应遵循的原则(1)关系模式进行无损连接分解。关系模式分解过程中数据不能丢失或增加,必须把全局关系模式中的所有数据无损地

23、分解到各个子关系模式中,以保证数据的完整性。,64/95,关系模式的规范化续二,关系模式规范化时一般应遵循的原则(2)合理选择规范化程度。考虑到存取效率,低级模式造成的冗余度很大,既浪费了存储空间,又影响了数据的一致性;考虑到查询效率,低级范式比高级范式好,连接运算的代价较小。,65/95,关系模式的规范化续三,关系模式规范化时一般应遵循的原则(3)正确性与可实现性原则。,66/95,4.3.1 关系模式规范化的步骤,规范化程序过低的关系不一定能够很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂、数据冗余等问题,解决方法就是对其进行规范化,转换成高级的范式。,67/95,关系模式规范

24、化的步骤续一,68/95,关系模式规范化的步骤续二,(1)对1NF关系进行投影,消除原关系中非主属性对码的部分函数依赖,将1NF关系转换为若干个2NF关系。(2)对2NF关系进行投影,消除原关系中非主属性对码的传递函数依赖,从而产生一组3NF关系。,69/95,关系模式规范化的步骤续三,(3)对3NF关系进行投影,消除原关系中主属性对码的部分函数依赖和传递函数依赖,得到一组BCNF。以上三步也可以合并为一步:对原关系进行投影,消除决定属性不是候选码的任何函数依赖。,70/95,关系模式规范化的步骤续四,(4)对BCNF关系进行投影,消除原关系中非平凡且非函数依赖的多值依赖,从而产生一组4NF关

25、系。(5)对4NF关系进行投影,消除原关系中不是由候选码所蕴含的连接依赖,即可得到一组5NF关系。5NF是最终范式。,71/95,4.3.2 关系模式的分解,关系模式的规范化过程是通过对关系模式的分解来实现的。把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的。在这些分解方法中,只有能够保证分解后的关系模式与原关系模式等价的方法才有意义。,72/95,关系模式的分解续一,关系模式分解的三个定义:分解具有“无损连接性”;分解要“保持函数依赖”;分解既要“保持函数依赖”,又要具有“无损连接性”。,73/95,关系模式的分解续二,例:对于关系模式SL(Sno,Sdept,Sloc),S

26、L中有下列函数依赖:SnoSdept SdeptSloc SnoSloc 此关系模式的主码是什么?最高属于第几范式?为什么?,74/95,关系模式的分解续三,由于SL2NF,该关系模式存在很多问题,因此需要分解该关系模式,使其成为更高范式的关系模式。分解方法有很多种。假设该关系模式的一个关系为:,75/95,关系模式的分解续四,第一种分解方法 将SL分解为以下3个关系模式:SN(Sno)SD(Sdept)SO(Sloc),SD,SN,SO,不可取,76/95,关系模式的分解续五,第二种分解方法 将SL分解为以下两个关系模式:NL(Sno,Sloc)DL(Sdept,Sloc),77/95,关系

27、模式的分解续六,第二种分解方法,NL DL,多余元组,不可取,损失连接,78/95,关系模式的分解续七,第三种分解方法 将SL分解为以下两个关系模式:ND(Sno,Sdept)NL(Sno,Sloc),79/95,关系模式的分解续八,第三种分解方法,ND NL,无损连接,80/95,无损连接,设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),Rn(Un,Fn)(其中U=U1U2Un,且不存在 Ui Uj,F为F在Ui上的投影),若R与R1,R2,Rn自然连接的结果相等,则称关系模式R的这个分解具有无损连接性。只有具有无损连接性的分解才能够保证不丢失信息。,81

28、/95,关系模式的分解续九,第三种分解方法 将SL分解为以下两个关系模式:ND(Sno,Sdept)NL(Sno,Sloc),丢失函数依赖:SdeptSloc,不可取,82/95,保持函数依赖,设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),Rn(Un,Fn)(其中U=U1U2Un,且不存在 Ui Uj,F为F在Ui上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的。,83/95,关系模式的分解续十,第四种分解方法 将SL分解为以下两个关系模式:ND(Sno,Sdept)DL

29、(Sdept,Sloc),是否无损分解?是否保持函数依赖?,84/95,关系模式的分解续十一,判断对关系模式的一个分解是否与原关系模式等价可以有三种不同的标准分解具有无损连接性;分解要保持函数依赖;分解既要保持函数依赖,又要具有无损连接性。,85/95,关系模式的分解续十二,规范化理论提供了一套完整的模式分解算法,按照这套算法可以做到:(1)若要求分解具有无损连接性,那么模式分解一定能够达到4NF。(2)若要求分解保持函数依赖,那么模式一定能够达到3NF,但不一定能够达到BCNF。,86/95,关系模式的分解续十三,规范化理论提供了一套完整的模式分解算法,按照这套算法可以做到:(3)若要求分解

30、既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF。,87/95,关系模式的分解续十四,88/95,补充例题,假设某商业集团数据库中有一关系模式R如下:R(商店编号,商品编号,数量,部门编号,负责人)如果规定:(1)每个商店的每种商品只在一个部门销售;(2)每个商店的每个部门只有一个负责人;(3)每个商店的每种商品只有一个库存数量。,89/95,补充例题续一,试回答下列问题(1)根据上述规定,写出关系模式R的基本函数依赖;,(商店编号,商品编号)部门编号(商店编号,部门编号)负责人(商店编号,商品编号)数量,90/95,补充例题续二,试回答下列问题(2)找

31、出关系模式R的候选码;,(商店编号,商品编号)+=商店编号,商品编号,部门编号,负责人,数量(商店编号,商品编号)是候选码,91/95,补充例题续三,试回答下列问题(3)判断R最高可达到第几范式?为什么?,属性不可再分没有非主属性对码的部分函数依赖存在非主属性对码的传递函数依赖,92/95,补充例题续四,(商店编号,商品编号)部门编号(商店编号,部门编号)负责人,(商店编号,商品编号)部门编号(商店编号,商品编号)商店编号(商店编号,商品编号)(商店编号,部门编号)负责人,93/95,补充例题续五,试回答下列问题(4)给出一个可能的3NF分解。,R1(商店编号,商品编号,数量,部门编号)R2(商店编号,部门编号,负责人),94/95,分解成3NF模式集的算法,设关系模式R(U),主码是W,R上还存在FD XZ。并且Z是非主属性,Z不是X的子集,X不是候选键,这样WZ就是一个传递依赖,此时应把R分解成两个模式:R1(XZ),主码是X;R2(Y),其中Y=U-Z,主码是W,外码是X。,95/95,分解成3NF模式集的算法续,R1(XZ),主码是XR2(Y),Y=U-Z,主码是W,外码是X,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号