《数据库 第四章精品文稿.ppt》由会员分享,可在线阅读,更多相关《数据库 第四章精品文稿.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、http:/ 第四章第四章第1页,本讲稿共45页【本章要点】本章主要介绍设计关系数据库的有关理论,包括函数依赖、范式和关系模式规范化等方面内容。首先具体讲解了函数依赖、完全函数依赖和传递函数依赖的定义,以及候选关键字和外关键字等概念。之后讨论了以函数依赖为基础的4种关系范式,其中最基本的是1NF,最高级的是BCNF。在1NF中消除非主属性对关键字的部分函数依赖,就得到了2NF;在2NF中消除非主属性对关键字的传递函数依赖,就可得到3NF;在3NF中消除主属性对关键字的部分和传递函数依赖,就可得到BCNF。最后,以实例介绍了关系模式规范化的基本方法和步骤。第2页,本讲稿共45页4.1.1 关系数
2、据库逻辑设计问题 例如:SLC=SNO,SNAME,DEPT,D_LOC,D_DEAN,CNAME,GRADE4.1 问题提出第3页,本讲稿共45页SNOSNAMEDEPTD_LOCD_DEANCNAMEGRADE01001张艺信息系A座陈武软件工程9801001张艺信息系A座陈武数据结构8701001张艺信息系A座陈武Java语言7601002王尔信息系A座陈武软件工程9701002王尔信息系A座陈武数据结构8601002王尔信息系A座陈武Java语言7502001李散自动化系B座胡柳接口技术9802001李散自动化系B座胡柳自动原理8502001李散自动化系B座胡柳数字电路7403001赵
3、斯机械系A座郭奇机械制图98表1-4-1 关系模式SLC第4页,本讲稿共45页存在四个主要的问题:(1)数据冗余(Data Redundancy)(2)插入异常(Insertion Anomaly)(3)删除异常(Deletion Anomaly)(4)修改异常(Modification Anomaly)第5页,本讲稿共45页一个好的关系模式应该具备以下四个条件:尽可能少的数据冗余。没有插入异常。没有删除异常。没有修改异常。第6页,本讲稿共45页4.1.2 规范化理论研究的内容 关系数据库的规范化理论主要包括三个方面的内容:函数依赖(Functional Dependency)范式(Norma
4、l Form)模式设计(Form Design)其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。第7页,本讲稿共45页4.2.1 属性间联系 1一对一联系(1:1)2一对多联系(1:n)3多对多联系(m:n)4.2 函数依赖第8页,本讲稿共45页4.2.2 函数依赖的定义 定义定义4.1 函数依赖(函数依赖(Functional Dependencies):设R(U)是属性集U(如U=A1,An)上的一个关系模式,X,Y为U的子集,如果R(U)的所有关系r 都存在着:对于X的每一个具体值,都有Y的惟一值与之相对应,则称属性Y函数依赖属性X(或属性X函数决定属性Y
5、),记作XY,其中属性X是决定因素(Determinant),属性Y是被决定因素(Dependent);否则,记作X Y称为属性X不能函数决定属性Y。第9页,本讲稿共45页 如果XY和YX同时成立,则记作X Y。当XY,且YX时,称XY是平凡函数依赖(Trivial Functional Dependence);当XY,且YX(Y不包含于X)时,则称XY是非平凡函数依赖(Nontrivial Functional Dependence)。第10页,本讲稿共45页属性之间的三种联系,并不是每一种联系都存在函数依赖(1)若属性或属性集X、Y之间是1:1联系,则存在函数依赖:X Y,例如,在SLC中
6、的SNO SNAME。(2)若属性或属性集X、Y之间是1:n联系,则存在函数依赖:YX,例如,在SLC中的SNAMEDEPT。(3)若属性或属性集X、Y之间是m:n联系,则X、Y之间不存在函数依赖,例如,在SLC中的SNAME和CNAME。第11页,本讲稿共45页定义定义4.2 完全完全/部分函数依赖部分函数依赖:在R(U)中,如果 XY,且X的任一真子集X,都有X Y,则称Y对X完全函数依赖(Full Functioanl Dependence),记作X Y;否则称Y对X是部分函数依赖(Partial Functioanl Dependence),记作X Y。定义定义4.3 传递函数依赖传递
7、函数依赖:在R(U)中,若XY,YZ,且Y X,Z Y,Y X,则称Z对X是传递函数依赖(Transitive Functioanl Dependence),记作X Z。实际上,若加上YX,则X Y,那么X Z。第12页,本讲稿共45页4.2.3 候选关键字和外关键字 定义定义4.4 候选关键字候选关键字(Candidate Key):设K是关系模式R(U,F)中的属性或属性组,K 是K的真子集(即K K),若KU,而不存在K U,则K是R的候选关键字。定义4.5 外关键字(Foreign Key):设有两个关系模式R和S,X是R的属性或属性组,并且X不是R的候选关键字,但X是S的候选关键字,
8、则称X是R的外关键字。第13页,本讲稿共45页若候选键个数多于一个,则选择其中的一个作为主关键字(Primary Key)。没有被选中作为主关键字的其他候选关键字都称为替代关键字(Alternate Key)。属于任一候选关键字的属性都称为主属性(Primary Attribute);不属于任何候选关键字的属性都称为非主属性(Nonprime Attribute)。若候选关键字中只有一个属性,则称为单关键字(Single Key);若整个属性组是一个候选关键字,则称为全关键字(All Key)。第14页,本讲稿共45页4.2.4 逻辑蕴含 定义定义4.6 逻辑蕴含:逻辑蕴含:若F是关系模式R(
9、U,F)上的一函数依赖集合,XY是R的一个函数依赖,若一关系模式满足F,则必然满足XY,称F逻辑蕴含XY。也就是说,若根据给定的函数依赖集F,可以证明其他一些函数依赖也存在,就称这些函数依赖被F逻辑蕴含。定义4.7 闭包(Closure):若F是一个函数依赖集合,则F所逻辑蕴含的函数依赖的全体称为F的闭包,记作F+。第15页,本讲稿共45页4.2.5 函数依赖的推理规则 Armstrong公理系统(公理系统(Armstrongs Axioms)设有关系模式R(U,F),XU,YU,ZU,WU,则对R(U,F)有:(1)A1(自反律Reflexivity)若YX,则XY;(2)A2(增广律Aug
10、mentation)若XY,则XZYZ;(其中XZ表示XZ)(3)A3(传递律Transitivity)若XY,YZ,则XZ。第16页,本讲稿共45页由Armstrong公理系统,可以得到以下四个推理:(1)A4合并律(Union)若XY,XZ,则XYZ;(其中YZ表示YZ)(2)A5分解律(Decomposition)若XYZ,则XY,XZ;(其中YZ表示YZ)(3)A6伪传递律(Pseudo Transitivity)若XY,WYZ,则XWZ;(其中WY表示WY,XW表示XW)(4)A7复合律(Composition)若XY,WZ,则WXYZ。(其中WX表示WX,YZ表示YZ)第17页,本
11、讲稿共45页4.3.1 第一范式 4.3 关系模式的范式 定义定义4.8 第一范式(第一范式(1NF):如果一个关系模式R的所有属性都是不可分的基本数据项,则称关系R满足第一范式,记作R1NF。第18页,本讲稿共45页例如,由学号SNO,姓名SNAME,成绩GRADE组成一个表(一个学生可能有英语和数学两个成绩)表1-4-2 不符合第一范式的关系 SNOSNAMEGRADEENGLISHMATH01001张艺769801002王尔9702001李散9803001赵斯86第19页,本讲稿共45页将其规范成为1NF有三种方法:重复存储SNO和SNAME,此时按规定,只能选定GRADE为候选关键字,
12、但有重复成绩时就会出错了,所有人的所有成绩均不相同是不符合实际情况的,因此这种分解方法是不可取的。以SNO为候选关键字,把GRADE分为ENG_G和MA_G两个属性,此方法基本可行。还是以SNO为候选关键字,但强制每条记录只能有一个GRADE。此时若每个学生确实只有一个成绩,这个方法就可行,但若有学生有两个成绩,则会丢失部分数据。第20页,本讲稿共45页4.3.2 第二范式 定义定义4.9 第二范式(第二范式(2NF):满足第一范式的关系模式R,如果所有非主属性都完全依赖于候选关键字,则称R属于第二范式,记为R2NF。第21页,本讲稿共45页例如,表1-4-1所列关系模式SLC1NF,其中各属
13、性之间的关系如图1-4-1所示。SNOSNAMEDEPTD_LOCD_DEANCNAMEGRADE图4-1关系模式SLC中属性之间的关系 第22页,本讲稿共45页 前面已知SLC的候选关键字是(SNO,CNAME),且(SNO,CNAME)(SNAME,DEPT,D_LOC,D_DEAN),为了消除其中的部分函数依赖,对其进行投影分解,新关系包括两个关系模式,它们可达到第二范式。SD(SNO,SNAME,DEPT,D_LOC,D_DEAN)2NFSC(SNO,CNAME,GRADE)2NF第23页,本讲稿共45页SD虽然属于第二范式但还存在数据冗余和删除异常问题。(1)数据冗余度大 每一系的学
14、生都有多人,关于系的信息就要重复出现,重复次数与系的学生数相同。(2)插入异常 如果某个系因种种原因(如刚成立),目前暂没有在校学生,就无法把这个系的信息存入到数据库中。(3)删除异常 如果某个系的学生全部毕业了,在删除该系学生信息的同时,把这个系的信息也删掉了。(4)修改异常 当学校重新任命系主任时,该系每个学生的D_DEAN信息都必须进行修改,若少修改一处则会出现同系但系主任不同的错误。第24页,本讲稿共45页4.3.3 第三范式 定义定义4.10 第三范式(第三范式(3NF):若关系模式R2NF,且它的任何一个非主属性都不传递依赖于候选关键字,则称关系R满足第三范式,记为R3NF。第25
15、页,本讲稿共45页例如,分析属于第二范式的关系模式SD,其主关键字是SNO,其他属性为非主属性,其中各个属性之间的关系如图1-4-2所示。图4-2关系模式SD中属性之间的关系 SNOSNAMEDEPTD_LOCD_DEAN第26页,本讲稿共45页根据上节可知SNO D_LOC,因此对其进行投影分解,消除其中的传递函数依赖,就可达到第三范式,结果如下:S(SNO,SNAME,DEPT)3NF D(DEPT,D_LOC,D_DEAN)3NF第27页,本讲稿共45页在数据库的模型设计中目前一般采用第三范式,它有非常严格的数学定义。如果从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件:(
16、1)每个属性的值惟一,不具有多义性。(2)每个非主属性必须完全依赖于整个主键,而非主键的一部分。(3)每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。第28页,本讲稿共45页4.3.4 BCNF范式 定义定义4.11 BCNF范式(范式(Boyee-Codd Normal Form):若关系模式R的所有属性都不传递依赖于R的任何候选关键字,则称关系R满足BCNF,记作RBCNF。也可以定义为:设关系模式R(U,F)1NF,若F的任一函数依赖XY(Y X)中X都包含了R的一个候选关键字,则称关系R满足BCNF,记作RBCNF。第29页,本讲稿共45页 推论推论
17、:如果RBCNF,则:R中所有非主属性对每一个候选关键字都是完全函数依赖;R中所有主属性对每一个不包含它的候选关键字,都是完全函数依赖;R中没有任何属性完全函数依赖于非候选关键字的任何一组属性。第30页,本讲稿共45页 例如,在关系模式SCT(S#,C#,T)中,S#为学生号,C#为课程号,T为教师。若规定每个教师只教一门课,每门课有若干教师教,一个学生选定某门课就对应一个教师。则根据上述语义可得如下的函数依赖关系:(S#,C#)T,(S#,T)C#,TC#由于(S#,C#)与(S#,T)都是候选关键字,此关系模式中不存在任何非主属性,则关系模式SCT3NF,但因为属性T是决定因素,却不是候选
18、关键字,所以SCT不是BCNF。此时,对SCT的操作,也会遇到异常问题,例如,在SCT关系模式中删除了某学生选修某课程C1的元组,有可能同时丢失讲授该课程的教师信息。因此,应对SCT进行分解,得到关系模式SC(S#,C#)和CT(C#,T),就不会再有上述的异常问题了,且关系模式SCBCNF,关系模式CTBCNF。第31页,本讲稿共45页 如果一个关系模式是BCNF的话,那么它一定是3NF,反之则不然,BCNF 是在函数依赖的条件下,对一个关系模式进行分解所能达到的最高程度,如果一个关系模式R(U)分解后得到的一组关系模式都属于BCNF,那么在函数依赖范围内,这个关系模式R(U)已经彻底分解了
19、,消除了插入、删除等异常现象。第32页,本讲稿共45页4.3.5 范式之间的关系 各个范式之间的联系可以表示为:BCNF3NF2NF1NF图4-3 各种范式之间的关系BCNF3NF2NF1NF第33页,本讲稿共45页表4-6 各范式的定义比较 范 式条 件第一范式(1NF)元组中每一个分量都必须是不可分割的数据项第二范式(2NF)不仅满足第一范式,而且所有非主属性完全依赖于其候选关键字第三范式(3NF)不仅满足第二范式,而且它的任一个非主属性都不传递于任何候选关键字BC范式(BCNF)不仅满足第三范式,而且它的任一个属性都不传递于任何候选关键字第34页,本讲稿共45页4.4 关系模式的规范化4
20、.4.1 关系模式规范化的目的和基本思想 通过模式分解将一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合的过程称作关系模式规范化(Normalization)。关系模式规范化的目的:解决关系模式中存在的数据冗余、插入、删除和更新异常等问题。第35页,本讲稿共45页 关系模式规范化的基本思想:逐步消除函数依赖中不合适的部分,使模式中的各个关系模式达到某种程度的“分离”,也就是采用“一事一地”的模式设计原则,达到每个规范化的关系应该只有一个主题,即让一个关系描述一个概念、一个实体或实体间的一种联系。若某个关系描述了两个或多个主题,即多于一个概念,就应该将它分解为多个关系,使它们相互“
21、分离”。因此,所谓规范化实质上是概念的单一化。第36页,本讲稿共45页4.4.2 关系模式规范化的步骤 (1)把非规范化关系(含有可分数据项二维表格),分解数据项,规范化为1NF;(2)对1NF关系进行投影,消除原关系中非主属性对候选关键字的函数依赖,将1NF关系转换成为若干个2NF关系;(3)对2NF关系进行投影,消除原关系中非主属性对键的传递函数依赖,从而产生一组3NF关系;(4)对3NF关系进行投影,消除原关系中主属性对键的部分函数依赖和传递函数依赖(也就是说,使决定属性都成为投影的候选键),得到一组BCNF关系。第37页,本讲稿共45页图4-4关系模式规范化的基本步骤 1NF2NF3N
22、FBCNF消除非主属性对候选关键字的部分函数依赖消除非主属性对候选关键字的传递函数依赖消除主属性对候选关键字的部分、传递函数依赖原始表格将所有栏目分解成最小数据项消除决定因素非关键字非平凡的函数依赖第38页,本讲稿共45页4.4.3关系模式规范化的分解准则 定义4.12 模式分解:关系模式R的一个分解是指=R1,R2,Rn,其中U=U1UU2UUUn,并且没有Ui Uj,1i,jn,Fi是F在Ui上的投影。关系模式规范化的方式是进行模式分解,模式分解的原则是与原模式等价,即模式分解必须遵守一定的准则,不能表面上消除了操作异常现象,却留下其他问题。第39页,本讲稿共45页模式分解的标准是:模式分
23、解具有无损连接性。模式分解能够保持函数依赖。模式分解既要保持函数依赖又要具有无损连接性。第40页,本讲稿共45页 定义4.13 无损连接性(Lossless Join):设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),Rn(Un,Fn),其中U=U1U2UN,且不存在Ui Uj,Fi为F在Uj上的投影,如果R与R1,R2,Rn自然连接的结果相等,则称关系模式R的分解具有无损连接性。也就是说,如果模式分解保持无损连接,则分解后的关系通过自然连接可以恢复成原来的关系,即通过自然连接得到的关系与原来的关系相比,既不多出信息,又不丢失信息。判断模式分解保持无损连接性
24、的充分必要条件是:R1R2R1-R2或R1R2R2-R1。第41页,本讲稿共45页 定义4.14 保持函数依赖性(Preserve Dependency):设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),Rn(Un,Fn),其中U=U1U2UN,且不存在Ui Uj,Fi为F在Uj上的投影,如果F所蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所蕴含,则称关系模式R的分解具有函数依赖保持性。也就是说,如果模式分解保持函数依赖,则在模式的分解过程中函数依赖不能丢失特性,即模式分解不能破坏原来的语义。第42页,本讲稿共45页4.4.4 规范化方法 算
25、法-1 原始表格1NF 对原始表格横向或纵向展开,使得该关系模式的每一属性对应的域为简单域,即其域值不可再分,从而得到1NF。第43页,本讲稿共45页算法-2 1NF2NF 对1NF消除非主属性对候选关键字的部分函数依赖,从而得到2NF。算法-3 2NF3NF 对2NF消除非主属性对候选关键字的传递依赖,从而得到3NF。算法-4 3NF BCNF 对3NF消除主属性对候选关键字的传递依赖,从而得到BCNF。第44页,本讲稿共45页4.5 综合举例例1 有关系模式R(U,F),其中U=A,B,C,D,F=ABC,BD,BCA,要求判断R是否属于3NF,若不属于,请分解到3NF。例2 有关系模式 R(U,F),其中U=C#,T#,Time,Room,S#,Grade,F=C#T#,(Time,Room)C#,(Time,S#)Room,(Time,T#)Room,(C#,S#)Grade,C#表示课程号,T#表示教师号,Time表示上课时间,Room表示教室,S#表示学生号,Grade表示成绩。要求判断R是否属于BCNF,若不属于,请分解到BCNF。第45页,本讲稿共45页
限制150内