数据库课件 第四章_第1页
数据库课件 第四章_第2页
数据库课件 第四章_第3页
数据库课件 第四章_第4页
数据库课件 第四章_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

数据库课件第四章第一页,共四十五页,编辑于2023年,星期三【本章要点】本章主要介绍设计关系数据库的有关理论,包括函数依赖、范式和关系模式规范化等方面内容。首先具体讲解了函数依赖、完全函数依赖和传递函数依赖的定义,以及候选关键字和外关键字等概念。之后讨论了以函数依赖为基础的4种关系范式,其中最基本的是1NF,最高级的是BCNF。在1NF中消除非主属性对关键字的部分函数依赖,就得到了2NF;在2NF中消除非主属性对关键字的传递函数依赖,就可得到3NF;在3NF中消除主属性对关键字的部分和传递函数依赖,就可得到BCNF。最后,以实例介绍了关系模式规范化的基本方法和步骤。第二页,共四十五页,编辑于2023年,星期三4.1.1

关系数据库逻辑设计问题

例如:SLC={SNO,SNAME,DEPT,D_LOC,D_DEAN,CNAME,GRADE}4.1问题提出第三页,共四十五页,编辑于2023年,星期三SNOSNAMEDEPTD_LOCD_DEANCNAMEGRADE01001张艺信息系A座陈武软件工程9801001张艺信息系A座陈武数据结构8701001张艺信息系A座陈武Java语言7601002王尔信息系A座陈武软件工程9701002王尔信息系A座陈武数据结构8601002王尔信息系A座陈武Java语言7502001李散自动化系B座胡柳接口技术9802001李散自动化系B座胡柳自动原理8502001李散自动化系B座胡柳数字电路7403001赵斯机械系A座郭奇机械制图98表1-4-1关系模式SLC第四页,共四十五页,编辑于2023年,星期三存在四个主要的问题:(1)数据冗余(DataRedundancy)(2)插入异常(InsertionAnomaly)(3)删除异常(DeletionAnomaly)(4)修改异常(ModificationAnomaly)第五页,共四十五页,编辑于2023年,星期三一个好的关系模式应该具备以下四个条件:尽可能少的数据冗余。没有插入异常。没有删除异常。没有修改异常。第六页,共四十五页,编辑于2023年,星期三4.1.2规范化理论研究的内容

关系数据库的规范化理论主要包括三个方面的内容:函数依赖(FunctionalDependency)范式(NormalForm)模式设计(FormDesign)其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。第七页,共四十五页,编辑于2023年,星期三4.2.1属性间联系1.一对一联系(1:1)2.一对多联系(1:n)3.多对多联系(m:n)4.2函数依赖第八页,共四十五页,编辑于2023年,星期三4.2.2函数依赖的定义

定义4.1函数依赖(FunctionalDependencies):设R(U)是属性集U(如U={A1,…,An})上的一个关系模式,X,Y为U的子集,如果R(U)的所有关系r都存在着:对于X的每一个具体值,都有Y的惟一值与之相对应,则称属性Y函数依赖属性X(或属性X函数决定属性Y),记作X→Y,其中属性X是决定因素(Determinant),属性Y是被决定因素(Dependent);否则,记作XY称为属性X不能函数决定属性Y。第九页,共四十五页,编辑于2023年,星期三如果X→Y和Y→X同时成立,则记作XY。当X→Y,且YX时,称XY是平凡函数依赖(TrivialFunctionalDependence);当X→Y,且YX(Y不包含于X)时,则称X→Y是非平凡函数依赖(NontrivialFunctionalDependence)。第十页,共四十五页,编辑于2023年,星期三属性之间的三种联系,并不是每一种联系都存在函数依赖若属性或属性集X、Y之间是1:1联系,则存在函数依赖:XY,例如,在SLC中的SNOSNAME。(2)若属性或属性集X、Y之间是1:n联系,则存在函数依赖:Y→X,例如,在SLC中的SNAME→DEPT。(3)若属性或属性集X、Y之间是m:n联系,则X、Y之间不存在函数依赖,例如,在SLC中的SNAME和CNAME。第十一页,共四十五页,编辑于2023年,星期三定义4.2完全/部分函数依赖:在R(U)中,如果X→Y,且X的任一真子集X',都有X'Y,则称Y对X完全函数依赖(FullFunctioanlDependence),记作XY;否则称Y对X是部分函数依赖(PartialFunctioanlDependence),记作XY。定义4.3传递函数依赖:在R(U)中,若X→Y,Y→Z,且YX,ZY,YX,则称Z对X是传递函数依赖(TransitiveFunctioanlDependence),记作XZ。实际上,若加上Y→X,则XY,那么XZ。第十二页,共四十五页,编辑于2023年,星期三4.2.3候选关键字和外关键字

定义4.4候选关键字(CandidateKey):设K是关系模式R(U,F)中的属性或属性组,K'是K的真子集(即K'K),若K→U,而不存在K'→U,则K是R的候选关键字。定义4.5外关键字(ForeignKey):设有两个关系模式R和S,X是R的属性或属性组,并且X不是R的候选关键字,但X是S的候选关键字,则称X是R的外关键字。第十三页,共四十五页,编辑于2023年,星期三若候选键个数多于一个,则选择其中的一个作为主关键字(PrimaryKey)。没有被选中作为主关键字的其他候选关键字都称为替代关键字(AlternateKey)。属于任一候选关键字的属性都称为主属性(PrimaryAttribute);不属于任何候选关键字的属性都称为非主属性(NonprimeAttribute)。若候选关键字中只有一个属性,则称为单关键字(SingleKey);若整个属性组是一个候选关键字,则称为全关键字(AllKey)。第十四页,共四十五页,编辑于2023年,星期三4.2.4逻辑蕴含

定义4.6逻辑蕴含:若F是关系模式R(U,F)上的一函数依赖集合,X→Y是R的一个函数依赖,若一关系模式满足F,则必然满足X→Y,称F逻辑蕴含X→Y。也就是说,若根据给定的函数依赖集F,可以证明其他一些函数依赖也存在,就称这些函数依赖被F逻辑蕴含。定义4.7闭包(Closure):若F是一个函数依赖集合,则F所逻辑蕴含的函数依赖的全体称为F的闭包,记作F+。第十五页,共四十五页,编辑于2023年,星期三4.2.5函数依赖的推理规则

Armstrong公理系统(Armstrong’sAxioms)设有关系模式R(U,F),XU,YU,ZU,WU,则对R(U,F)有:(1)A1(自反律Reflexivity)若YX,则X→Y;(2)A2(增广律Augmentation)若X→Y,则XZ→YZ;(其中XZ表示X∪Z)(3)A3(传递律Transitivity)若X→Y,Y→Z,则X→Z。第十六页,共四十五页,编辑于2023年,星期三由Armstrong公理系统,可以得到以下四个推理:(1)A4合并律(Union)若X→Y,X→Z,则X→YZ;(其中YZ表示Y∪Z)(2)A5分解律(Decomposition)若X→YZ,则X→Y,X→Z;(其中YZ表示Y∪Z)(3)A6伪传递律(PseudoTransitivity)若X→Y,WY→Z,则XW→Z;(其中WY表示W∪Y,XW表示X∪W)(4)A7复合律(Composition)若X→Y,W→Z,则WX→YZ。(其中WX表示W∪X,YZ表示Y∪Z)第十七页,共四十五页,编辑于2023年,星期三4.3.1第一范式

4.3关系模式的范式定义4.8第一范式(1NF):如果一个关系模式R的所有属性都是不可分的基本数据项,则称关系R满足第一范式,记作R∈1NF。第十八页,共四十五页,编辑于2023年,星期三例如,由学号SNO,姓名SNAME,成绩GRADE组成一个表(一个学生可能有英语和数学两个成绩)表1-4-2不符合第一范式的关系

SNOSNAMEGRADEENGLISHMATH01001张艺769801002王尔9702001李散9803001赵斯86第十九页,共四十五页,编辑于2023年,星期三将其规范成为1NF有三种方法:重复存储SNO和SNAME,此时按规定,只能选定GRADE为候选关键字,但有重复成绩时就会出错了,所有人的所有成绩均不相同是不符合实际情况的,因此这种分解方法是不可取的。以SNO为候选关键字,把GRADE分为ENG_G和MA_G两个属性,此方法基本可行。还是以SNO为候选关键字,但强制每条记录只能有一个GRADE。此时若每个学生确实只有一个成绩,这个方法就可行,但若有学生有两个成绩,则会丢失部分数据。第二十页,共四十五页,编辑于2023年,星期三4.3.2第二范式

定义4.9第二范式(2NF):满足第一范式的关系模式R,如果所有非主属性都完全依赖于候选关键字,则称R属于第二范式,记为R∈2NF。第二十一页,共四十五页,编辑于2023年,星期三例如,表1-4-1所列关系模式SLC∈1NF,其中各属性之间的关系如图1-4-1所示。SNO*SNAMEDEPTD_LOCD_DEANCNAME*GRADE图4-1关系模式SLC中属性之间的关系

第二十二页,共四十五页,编辑于2023年,星期三前面已知SLC的候选关键字是(SNO,CNAME),且(SNO,CNAME)(SNAME,DEPT,D_LOC,D_DEAN),为了消除其中的部分函数依赖,对其进行投影分解,新关系包括两个关系模式,它们可达到第二范式。SD(SNO,SNAME,DEPT,D_LOC,D_DEAN)∈2NFSC(SNO,CNAME,GRADE)∈2NF第二十三页,共四十五页,编辑于2023年,星期三SD虽然属于第二范式但还存在数据冗余和删除异常问题。(1)数据冗余度大每一系的学生都有多人,关于系的信息就要重复出现,重复次数与系的学生数相同。(2)插入异常如果某个系因种种原因(如刚成立),目前暂没有在校学生,就无法把这个系的信息存入到数据库中。(3)删除异常如果某个系的学生全部毕业了,在删除该系学生信息的同时,把这个系的信息也删掉了。(4)修改异常当学校重新任命系主任时,该系每个学生的D_DEAN信息都必须进行修改,若少修改一处则会出现同系但系主任不同的错误。第二十四页,共四十五页,编辑于2023年,星期三4.3.3第三范式

定义4.10第三范式(3NF):若关系模式R∈2NF,且它的任何一个非主属性都不传递依赖于候选关键字,则称关系R满足第三范式,记为R∈3NF。第二十五页,共四十五页,编辑于2023年,星期三例如,分析属于第二范式的关系模式SD,其主关键字是SNO,其他属性为非主属性,其中各个属性之间的关系如图1-4-2所示。图4-2关系模式SD中属性之间的关系SNO*SNAMEDEPTD_LOCD_DEAN第二十六页,共四十五页,编辑于2023年,星期三根据上节可知SNOD_LOC,因此对其进行投影分解,消除其中的传递函数依赖,就可达到第三范式,结果如下: S(SNO,SNAME,DEPT)∈3NF D(DEPT,D_LOC,D_DEAN)∈3NF第二十七页,共四十五页,编辑于2023年,星期三在数据库的模型设计中目前一般采用第三范式,它有非常严格的数学定义。如果从其表达的含义来看,一个符合第三范式的关系必须具有以下三个条件:(1)每个属性的值惟一,不具有多义性。(2)每个非主属性必须完全依赖于整个主键,而非主键的一部分。(3)每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。第二十八页,共四十五页,编辑于2023年,星期三4.3.4BCNF范式

定义4.11BCNF范式(Boyee-CoddNormalForm):若关系模式R的所有属性都不传递依赖于R的任何候选关键字,则称关系R满足BCNF,记作R∈BCNF。也可以定义为:设关系模式R(U,F)∈1NF,若F的任一函数依赖X→Y(YX)中X都包含了R的一个候选关键字,则称关系R满足BCNF,记作R∈BCNF。第二十九页,共四十五页,编辑于2023年,星期三推论:如果R∈BCNF,则:R中所有非主属性对每一个候选关键字都是完全函数依赖;R中所有主属性对每一个不包含它的候选关键字,都是完全函数依赖;R中没有任何属性完全函数依赖于非候选关键字的任何一组属性。第三十页,共四十五页,编辑于2023年,星期三例如,在关系模式SCT(S#,C#,T)中,S#为学生号,C#为课程号,T为教师。若规定每个教师只教一门课,每门课有若干教师教,一个学生选定某门课就对应一个教师。则根据上述语义可得如下的函数依赖关系:(S#,C#)→T,(S#,T)→C#,T→C#由于(S#,C#)与(S#,T)都是候选关键字,此关系模式中不存在任何非主属性,则关系模式SCT∈3NF,但因为属性T是决定因素,却不是候选关键字,所以SCT不是BCNF。此时,对SCT的操作,也会遇到异常问题,例如,在SCT关系模式中删除了某学生选修某课程C1的元组,有可能同时丢失讲授该课程的教师信息。因此,应对SCT进行分解,得到关系模式SC(S#,C#)和CT(C#,T),就不会再有上述的异常问题了,且关系模式SC∈BCNF,关系模式CT∈BCNF。第三十一页,共四十五页,编辑于2023年,星期三如果一个关系模式是BCNF的话,那么它一定是3NF,反之则不然,BCNF是在函数依赖的条件下,对一个关系模式进行分解所能达到的最高程度,如果一个关系模式R(U)分解后得到的一组关系模式都属于BCNF,那么在函数依赖范围内,这个关系模式R(U)已经彻底分解了,消除了插入、删除等异常现象。第三十二页,共四十五页,编辑于2023年,星期三4.3.5范式之间的关系

各个范式之间的联系可以表示为:BCNF3NF2NF1NF图4-3各种范式之间的关系BCNF3NF2NF1NF第三十三页,共四十五页,编辑于2023年,星期三表4-6各范式的定义比较

范式条件第一范式(1NF)元组中每一个分量都必须是不可分割的数据项第二范式(2NF)不仅满足第一范式,而且所有非主属性完全依赖于其候选关键字第三范式(3NF)不仅满足第二范式,而且它的任一个非主属性都不传递于任何候选关键字BC范式(BCNF)不仅满足第三范式,而且它的任一个属性都不传递于任何候选关键字第三十四页,共四十五页,编辑于2023年,星期三4.4关系模式的规范化4.4.1关系模式规范化的目的和基本思想

通过模式分解将一个低一级范式的关系模式转换为若干个高一级范式的关系模式的集合的过程称作关系模式规范化(Normalization)。关系模式规范化的目的:解决关系模式中存在的数据冗余、插入、删除和更新异常等问题。第三十五页,共四十五页,编辑于2023年,星期三

关系模式规范化的基本思想:逐步消除函数依赖中不合适的部分,使模式中的各个关系模式达到某种程度的“分离”,也就是采用“一事一地”的模式设计原则,达到每个规范化的关系应该只有一个主题,即让一个关系描述一个概念、一个实体或实体间的一种联系。若某个关系描述了两个或多个主题,即多于一个概念,就应该将它分解为多个关系,使它们相互“分离”。因此,所谓规范化实质上是概念的单一化。第三十六页,共四十五页,编辑于2023年,星期三4.4.2关系模式规范化的步骤

(1)把非规范化关系(含有可分数据项二维表格),分解数据项,规范化为1NF;(2)对1NF关系进行投影,消除原关系中非主属性对候选关键字的函数依赖,将1NF关系转换成为若干个2NF关系;(3)对2NF关系进行投影,消除原关系中非主属性对键的传递函数依赖,从而产生一组3NF关系;(4)对3NF关系进行投影,消除原关系中主属性对键的部分函数依赖和传递函数依赖(也就是说,使决定属性都成为投影的候选键),得到一组BCNF关系。第三十七页,共四十五页,编辑于2023年,星期三图4-4关系模式规范化的基本步骤1NF2NF3NFBCNF消除非主属性对候选关键字的部分函数依赖消除非主属性对候选关键字的传递函数依赖消除主属性对候选关键字的部分、传递函数依赖原始表格将所有栏目分解成最小数据项消除决定因素非关键字非平凡的函数依赖第三十八页,共四十五页,编辑于2023年,星期三4.4.3关系模式规范化的分解准则定义4.12模式分解:关系模式R<U,F>的一个分解是指={R1<U1,F1>,R2<U2,F2>,…,Rn<Un,Fn>},其中U=U1UU2U…UUn,并且没有UiUj,1≤i,j≤n,Fi是F在Ui上的投影。关系模式规范化的方式是进行模式分解,模式分解的原则是与原模式等价,即模式分解必须遵守一定的准则,不能表面上消除了操作异常现象,却留下其他问题。第三十九页,共四十五页,编辑于2023年,星期三模式分解的标准是:模式分解具有无损连接性。模式分解能够保持函数依赖。模式分解既要保持函数依赖又要具有无损连接性。第四十页,共四十五页,编辑于2023年,星期三定义4.13无损连接性(LosslessJoin):设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2),…,Rn(Un,Fn),其中U=U1U2…UN,且不存在UiUj,Fi为F在Uj上的投影,如果R与R1,R2,…,Rn自然连接的结果相等,则称关系模式R的分解具有无损连接性。也就是说,如果模式分解保持无损连接,则分解后的关系通过自然连接可以恢复成原来的关系,即通过自然连接得到的关系与原来的关系相比,既不多出信息,又不丢失信息。判断模式分解保持无损连接性的充分必要条件是:R1∩R2→R1-R2或R1∩R2→R2-R1。第四十一页,共

温馨提示

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

评论

0/150

提交评论