第5章 关系数据库规范化理论_第1页
第5章 关系数据库规范化理论_第2页
第5章 关系数据库规范化理论_第3页
第5章 关系数据库规范化理论_第4页
第5章 关系数据库规范化理论_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第5章关系数据库规范化理论5.1 数据依赖5.1.1 问题的提出5.1.2 函数依赖的基本概念5.1.3 候选码5.1.1 问题的提出现假定有一个描述学生成绩管理的数据库,用一个单一的关系模式XSCJ来表示。XSCJ关系模式表示为:XSCJ(Sno,SName,Sdept,Director,Cno,Cname,Cscore)其中:各属性代表的中文含义依次为:学生、学生姓名、所在系名、系主任、课程号、课程名、课程成绩。并且,该关系模式有如下数据语义规定:系与学生之间是1:n的联系,即:一个系有多名学生,而一名学生只属于一个系;系与系主任之间是1:1的联系,即:一个系只有一名主任,一名系主任也只在一个系任职;学生与课程之间是m:n的联系,即:一名学生可选修多门课程,而每门课程有多名学生选修;每个学生学习一门课程有一个成绩。5.1.1 问题的提出现假设有如表5-1所示的关系模式XSCJ的一个具体实例。表5-1XSCJ表SnoSnameSdeptDirectorCnoCnameCscoreS1张强计算机系李军C01数据库85S2王红电子系宋鹏C01数据库90S3周颖计算机系李军C01数据库75S1张强计算机系李军C02数据结构80S2王红电子系宋鹏C02数据结构565.1.1 问题的提出1. 插入异常(InsertionAnomalies)所谓插入异常,表现为向关系中插入元组却插不进去。从上述XSCJ关系模式可以看出:由于学号决定系,要想插入学生所在系的信息,则必须先有学生的学号,但是,如果该系还未招生,就没有学生,于是该系的信息就无法插入。2. 删除异常(DeletionAnomalies)删除异常表现为删除某一数据信息连带删除了其它不应该删除的信息。例如如果某个系的学生全部毕业了,于是,在删除该系学生信息的同时,该系及其系主任的信息也随之被删除了。3. 数据冗余(DataRedundancy)比如,每一个系主任的姓名在每一个元组中都重复出现,其重复次数与与该系每一个学生的每一门功课的成绩出现的次数一样多。存在大量的数据冗余,从而浪费大量的存储空间。4. 更新异常(UpdateAnomalies)由于存在大量数据冗余,系统要付出很大代价来维护数据库的完整性。否则就带来数据不一致的危险。比如,当某系的系主任更换后,系统必须修改与该系学生有关的每个元组。所谓数据依赖(DataDependency),是指一个关系内部属性与属性之间的一种约束关系,这种约束关系是通过关系中属性间值的相等与否体现出来的数据间的相互关系。这种数据依赖是现实世界中属性间相互联系的抽象,是数据内在的性质,是语义的体现。数据依赖有很多种,其中最重要的是函数依赖(FunctionalDependency,简称FD)和多值依赖(MultivaluedDependency,简称MVD)。5.1.2 函数依赖的基本概念定义5.1设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中任意两个元组t1和t2,如果t1[X]=t2[X],则t1[Y]=t2[Y],那么称X函数地确定Y,或Y函数地依赖于X,记作:X→Y。下面介绍一些术语和记号。X→Y,但则称X→Y是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。X→Y,但YX则称X→Y是平凡的函数依赖。若X→Y,则X叫做决定因素(Determinant)。若X→Y,Y→X,则X与Y一一对应,记作X←→Y。若Y函数不依赖于X,则记作定义5.2设R是一个具有属性集合U的关系模式,如果X→Y,并且对于X的任何一个真子集X’,X’→Y都不成立,则称Y完全函数依赖于X。记作:若X→Y,但Y不完全函数依赖于X,则称Y对X是部分函数依赖,记作:定义5.3设R是一个具有属性集合U的关系模式,X、Y、ZU,如果(),且,,则称Z对X传递依赖,记作:加上条件,是因为如果Y→X,则X←→Y,实际上是X→Z,是直接函数依赖而不是传递函数依赖。5.1.3 候选码定义5.4

设R是一个具有属性集合U的关系模式,,如果K满足:则称K为R的候选码(Candidatekey)。主码一个关系的候选码不一定只有一个。若候选码多于一个.则选定其中的一个作为主码。因此一个关系的主码是惟一的。主属性包含在任何一个候选码中的属性,叫做主属性。非主属性不包含在任何一个候选码中的属性,叫做非主属性。定义5.5

关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreignkey),也称外码。在选课关系中,(学生号,课程号)是该关系的码,学生号、课程号又分别是组成主码的属性(但单独不是码),它们分别是学生关系和课程关系的主码,所以是选课关系的两个外码。5.2 关系模式的规范化5.2.1 关系与范式5.2.2 第一范式(1NF)5.2.3 第二范式(2NF)5.2.4 第三范式(3NF)5.2.5 BCNF5.2.6 规范化小结5.2.1 关系与范式规范化的基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除与修改时发生的异常现象。这就要求关系数据库设计出来的关系模式要满足一定的条件。关系数据库的规范化过程中为不同程度的规范化要求设立的不同的标准或准则称为范式。满足最低要求的叫第一范式,简称1NF。在第一范式中满足进一步要求的为第二范式(2NF),其余以此类推。R为第几范式就可以写成R∈xNF(x表示某范式名)。各个范式之间存在一种包含的关系,即:1NF2NF3NFBCNF4NF5NF5.2.2 第一范式(1NF)定义5.6

设R是一个关系模式。如果R的每个分量都是不可再分的数据项,则称该关系模式R属于第一范式,记作R1NF。几乎所有商用DBMS都规定:关系的属性是原子的,即要求关系均为第一范式。因此关系最起码必须规范化为第一范式。5.2.3 第二范式(2NF)定义5.7若R1NF,且每一个非主属性完全函数依赖于码,则称该关系模式R属于第二范式,记作R2NF。换言之,2NF关系中不存在非主属性对候选码的部分函数依赖。若出现了非主属性对候选码的部分函数依赖.该模式就不满足2NF的条件。5.2.4 第三范式(3NF)1、3NF的定义定义5.8如关系模式R2NF,且它的任何非主属性都不传递依赖于任何候选码,则称R属于第三范式,记作R3NF。因此从定义可以得出,3NF是从1NF消除非主属性对码的部分函数依赖和从2NF消除传递函数依赖而得到的关系模式。也就是说,一个关系模式R3NF,则每一个非主属性极不部分依赖于码也不传递依赖于码。5.2.5 BCNF定义5.9若关系模式R是1NF,如果对于R的每一个非平凡函数依赖X→Y,X必含有一个候选码,则称R属于BCNF范式。由BCNF的定义可以得出以下结论:若R∈BCNF,则所有非主属性对每一个码都是完全函数依赖所有的主属性对每一个不包含它的码,也是完全函数依赖没有任何属性完全函数依赖于非码的任何一组属性若R属于BCNF,则R必定属于3NF,反之,若R属于3NF,则R未必属于BCNF。5.2.6 规范化小结规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”,即“一事一地”的模式设计原则。让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去。因此所谓规范化实质上是概念的单一化。关系模式规范化的基本步骤如图5-1所示。5.2.6 规范化小结5.3 模式分解上一节讨论的规范化的过程实际上就是模式分解的过程,即把一个关系模式分解为几个子关系模式,使得这些子模式具有指定的规范化形式。把低一级的关系模式分解为若干个高一级的关系模式的方法不是唯一的,只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义。要保证分解后的关系模式与原关系模式等价。有三种标准:分解具有无损连接性。分解要保持函数依赖。分解既要保持函数依赖,又要保持无损连接性。5.3 模式分解无损连接是指分解后的关系通过自然连接可以恢复成原来的关系,即分解后的关系通过自然连接得到的关系与原来的关系相比,既不多出信息,又不丢失信息。这是进行模式分解必须满足的条件。如果一个分解具有无损连接性,则它能够保证不丢失信息;如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况。分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有无损连接性的分解不一定能够保持函数依赖;同样,保持函数依赖的分解也不一定具有无损连接性。5.3 模式分解定义5.10设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2)…..Rn(Un,Fn),(其中U=U1∪U2……∪Un,且不存在Ui

包含于Uj中,Ri为F在Ui上的投影),若R与R1,R2..…Rn自然连接的结果相等,则称关系模式R的分解具有无损连接性。5.3 模式分解定义5.11设关系模式R(U,F)被分解为若干个关系模式R1(U1,F1),R2(U2,F2)…..Rn(Un,Fn),(其中U=U1∪U2……∪Un,且不存在Ui包含于Uj中,Ri为F在Ui上的投影),若F所逻辑蕴含的函数依赖一定也由分解得到的某个关系模式中的函数依赖Fi所逻辑蕴含,则称关系模式R的分解具有保持函数依赖性。5.3 模式分解若要求分解具有无损连接性,则模式的分解一定能够达到4NF;若要求分解保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF范式;若要求既具有无损连接性,又保持函数依赖,则模式分散一定能够达到3NF,但不一定能够达到BCNF。习题1. 理解并给出下列术语的含义:函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、候选码、外码、主属性、2NF、3NF、BCNF。2. 关系模式可能存在的异常有哪些?引起这些异常的原因是什么?3. 判断下列模式分别属于第几范式?并说明理由。R1(A,B,C,D),F1={A→B,AC→D}R2(A,B,C,D),F2={AB→C,AC→D,C→B}R3(A,B,C,D,F3={AB→CD,C→A,D→B}R4(A,B,C,D),

温馨提示

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

评论

0/150

提交评论