第5章 关系数据库的规范化设计.ppt_第1页
第5章 关系数据库的规范化设计.ppt_第2页
第5章 关系数据库的规范化设计.ppt_第3页
第5章 关系数据库的规范化设计.ppt_第4页
第5章 关系数据库的规范化设计.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、2020/8/7,1,第五章关系模型的规范化设置修订,软件工程系刘金岭,2020/8/7,2,本章的重要概念,(1)关系模型的冗馀性和异常问题。 (2)与FD的定义、逻辑含义、闭包、推论规则、键码的关联平凡的FD; 属性集闭包推理规则的正确性和完整性FD集的等价最小依赖集。 (3)保持无损分解的定义、性质和测试依赖集的分解。 (4)关系模式的正规形式:1NF、2NF、3NF、BCNF。 一种分解为2NF、3NF模式集的算法,2020/8/7,3,3,如前所述,所谓关系数据库的规范化设定修正,是面对现实问题,如何选择好的关系模式集合,即由哪些属性构成标准化设置修正理论主要包括数据依赖性、标准化和

2、模式设置修正方法三个方面。 其中数据依赖起着核心作用。 数据依赖于研究数据之间的联系,范式是关系模型的标准,模型设定修正方法是自动化设定修正的基础。 规范化设置修订理论对关系数据库结构的设置修订起着重要的作用。 2020/8/7,4、4、4、例4.1中有关系模式R(TNAME、ADDRESS、CNO、CNAME ),其属性分别表示教师名、教师住址、教师课程的编号、课程名。 另外,关系模式r的例子如果在数据库设定修正中一个关系模式没有被正确设定,则会发生文件系统这样的数据的冗馀性、异常、不一致等问题。 关系模式的冗馀和异常问题(1),2020/8/7,5,5,关系模式的冗馀和异常问题(2),该模

3、式出现的问题,(1)数据冗馀:一个教师教了一些课,这个教师的住址必须多次记忆。 (2)操作异常:由于数据的冗长性,在对数数据操作时会引起各种异常:修正异常。 例如,教师t1教三节课,关系就有三个元组。 如果他的地址改变了的话,这三个元组的地址都必须改变。 如果一个元组内的地址未更改,则该教师的地址不唯一,会发生不一致。 插入异常。 如果某教师刚刚调动,还没有被分配授课任务的情况下,把教师的名字和地址存入关系时,属性CNO和CNAME没有值(null值)。 在数据库技术中,中空值的意义非常复杂,对于具有null值的元组的检索和操作也十分麻烦。 删除例外。 为了在图4.1中取消教师t3的教育任务,

4、删除该教师的元组,并且还从表中删除t3的地址信息。 这是不恰当的现象。 2020/8/7,6、6、6、关系模式的冗馀性和异常问题(3)可以说关系模式r不是好的模式。 “好”模式应不发生插入异常、删除异常、更新异常,数据的冗馀性尽可能少。 规范化的原则:“如果有关模式存在操作异常或冗长的问题,将其分解。 ”,是最佳分解吗? 那么,什么样的关系模式是最合适的呢? 标准是什么? 怎样实现? 在2020/8/7,7、7、7、7、本章的符号规则中,英文字母开头的大写字母“a、b、c、d、”,表示各个属性。 英文字母的末尾大写字母“,u,v,w,x,y,z”表示属性集。 大写字母r表示关系模式,而小写字母

5、r表示关系。 属性集合A1、A2、An简记为A1A2 An。 属性集合x和y的和XY简写为XY。 XA简写为XA或AX。 一般来说,在建立和修改关系数据库模型时,必须注意三个问题:必须明确这些数据的联系(实体联系和属性联系)。 尽可能依赖于相互紧密的属性来构成个别模式。 依存关系不密切,特别是不能强行收集具有“排斥”性的属性。2020/8/7、9、9、8、5.2函数依赖性、主内容函数依赖性的定义FD的逻辑包含FD的推论规则FD和密钥代码的联系属性集的闭包FD集的最小依赖性集、2020/8/7、9、函数依赖性的定义(1)、函数依赖性定义5.1是关系模式R(U ),x和y是属性集合u的子集,并且对

6、于R(U )的任何可能的关系r,如果r等于两组在x上的属性值,并且y上的属性值不相等,则x函数依赖于y或y函数FD对于关系模式r的所有可能的关系r进行定义。 对于r中的任意两个元组,如果x值相同,则y值也相同,也就是说,只有一个y值对应于一个x值。 此定义类似于数学中的单值函数定义。 在、图中,左图为: AB右图为:没有AB,函数依赖只由意义决定。 名字的年龄只有在那个部门没有同名人的条件下才依赖于函数。2020/8/7、10、函数依赖的定义(2)、例5.2有关于学生选修课、教师选修课的关系模型: R(SNO、SNAME、CNO、GRADE、CNAME、)每个学生编号只有一个学生名称,每个课程

7、编号只有一个课程每个SNOSNAME CNOCNAME学生上一门课程,如果有成绩,可以写下一张软盘: (sno,CNO)GRADE也可以写其他软盘: (TAGE) TNAMETAGE,注意:函数依赖是关系r满足关系的约束、2020/8/7、11、函数依赖的定义应注意以下三点:函数依赖是基于关系模式的函数概念(不是关系模式的特定实例)。 当关系模式r存在函数依赖性XY时,该模式的所有特定关系必须满足XY。 函数依赖不是属性构成关系的方式(即关系结构),而是依赖于关系所表现的信息本身的语义特性,只有基于该语义信息来决定函数依赖,没有其他方法。 函数依赖是数据库设置修改者对关系模型的断言或决定,除了

8、在设置修改关系数据库时修改关系结构之外,为了定义数据依赖条件,要进入关系的所有元组都满足定义的条件8/7、12、FD的逻辑包含,定义5.2是在关系模式r上成立的函数依赖性的集合,XY是函数依赖性。 如果每个满足f的关系r还满足XY,则f逻辑包含XY且用F XY表示。 定义5.3为函数依存集合,由f逻辑中含有的函数依存全体构成的集合,称为函数依存集合f的闭包(closure ),标记为f。 即F=XY |用FXY表示。 说明:即使小函数依赖集f,闭包f也大,一般总是有。 逻辑内的目的是利用推论的方法从一组已知的函数依赖导出另一组函数依赖,并且找出所有函数依赖f。 2020/8/7,13,FD推论

9、规则(1)可以从已知FD导出另一FD,并且需要一系列推论规则。 设u为关系模式r的属性集合,设f为仅涉及在r上成立的u中的属性的函数依存集合。 FD的推论规则如果是A1(自反性,reflexivity):yxu,则XY在r上成立。 A2(扩展性,augmentation ) :如果xy在r上成立,并且ZU,则XZYZ在r上成立。 A3(传递性,transitivity ) :如果xy和YZ在r上成立,则XZ在r上成立。 目的:通过这些FD推理规则从f中找出f、2020/8/7、14、FD的推理规则(2),结论FD推理规则A1、A2和A3是正确的。 即,如果XY是从f用推论规则导出的,则XY在f

10、中。 FD的其他5个推论规则: (1) A4(合并性,Union): XY,XZ XYZ。 (2) A5(分解性,Decomposition): XY,ZY XZ。 (3) A6(伪传导性):XY、WYZ WXZ。 (4) A7(复合性,合成):xy,WZ XWYZ。 (5) A8(通用一致性):XY、WZ X(WY)YZ。例如,设置关系模式r,其中a、b、c、d、e和f是属性集合的子集,并且r满足以下函数依赖性: F=ABC,CDEF,证明:函数依赖性ADF成立: 证明:如果ABC (已知) AC (分解) ADCD (扩展) CDEF (传输) ADEF (分解),2020/8/7,15,

11、XU在r上成立,那么x被称为r的超耦合。 如果XU在r上成立,但对于x的照片子集w,WU不成立,那么x被称为r上的候选密钥。 例5.4在学生选课,教师担任授课的关系模式中: R(SNO、SNAME、CNO、CNAME、GRADE、TNAME、TAGE )规定:每个学生只有一个成绩。 每个学生只有一个名字每个课程编号只有一个课程名称每个课程只有一个教师根据这些规则,发现(SNO,CNO )能量函数确定r的所有属性且为一个候选密钥。 (SNO、SNAME、CNO、TNAME )函数也可以确定r的所有属性,然而,与其相比,仅仅是一个超键,而不能说是候选键。 因为其中包含着多才多艺的属性。2020/8

12、/7、16、属性集的闭包,定义5.5是关系模式R(U )、U=A1、A2、An、x是u的子集,f是u上的一个函数依存集,全部被称为armsttt,另外XAi是Armstrong公理,从f到例5.5函数解:如果X=A AB,BC (已知) AC (传递性) AA (自反性)=A,b,c (根据定义) X=B BB (自反性) BC (已知),则函数依存集f中FD多,所以平凡的FD 形式的定义将定义5.6设定为属性集合u上的FD集合,并且如果满足,则: f的每个函数所依赖的右端对于作为单个属性的f的任何函数而言都取决于XA,并且F-XA不等于f。 如果f的函数依赖于XA和x的子集z,则F-XAZA

13、不等于f。 f被称为最小函数依赖集,表示为Fmin。 上述三个条件的作用是:保证在各个函数所依赖的右部没有多个属性的条件;保证在f没有多元函数依赖的条件是:保证在函数所依赖的左部没有重复属性。 在假设R(A、b、c、d )、F=AB、BC、CD、CB、G=AC、BD、BD的函数依赖图表中,用f、g和f、g来表示,但由于这两个函数依赖图表完全相同,所以f等效于g 、校正FD组合的最小依赖集合(2)、f和f、g和g、2020/8/7、19、算法4.2函数依赖集合f的最小依赖集合g :第一步骤:基于分解推理规则获得与f等效的FD组合g。 步骤2 :清除g的每个软盘左边的冗馀属性。 步骤3 :在g中删

14、除冗馀软盘。 求F=ABC、BC、AB、ABC、Fmin的解:首先将f中的FD写入右边是单属性形式: F=AB、AC 由于得到的F=AB、AC、BC、ABC为f中的AB与BC能够推断AC,所以AC为冗馀,能够删除。 得到的F=AB、BC、ABC F中的ABC可以从BC中推断出来,所以ABC也可以被删除。 最后是被要求得到F=AB,BC的Fmin。 对于FD集的最小依赖集(4)、2020/8/7、21、5.3关系模式的分解、主要内容模式分解问题可逆分解保持函数依赖分解、2020/8/7、22、模式分解问题,有数据的冗长性、插入定义5.7 F是关系模式R(U )的函数依存集合,标记为R(F,u )

15、。 多个关系模式的集合=R1(U1,F1),R2(U2,F2),Rk(Uk,Fk )时:/*关系模式r的属性全集u是分解后的所有小关系模式的属性集Ui的和集*/的定义5.7实际上给出了模式分解必须满足的基本条件、2020/8/7、23、无损分解(1)、例子5.7为关系模式R(ABC ),分解为=AB、AC。 r,上图分解后的关系可以用自然连接还原。 下图分解后的关系与自然连接后无法恢复原状。 比r多出来的组称为“噪声”,2020/8/7,24,可逆分解(2),定义4.10以r为关系模型,f为r上的FD位置。 r被分解为数据库模式=R1,Rk。 在r中满足f的各关系r时,由于存在r=R1(r)R2(r) Rk(r ),因此分解对f称为“无损耦合分解”,仅称为“无损耦合分解” 例5.7给出了“无损分解”和“损耗分解”的例子。 例如,关系型式R(ABC )分解被设定为=AB和BC。 (a )和(b )分别是模式AB和BC上的值r1和r2,(c )是r1 r2的值

温馨提示

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

评论

0/150

提交评论