关系数据库设计理论

上传人:re****.1 文档编号:563930779 上传时间:2023-09-17 格式:DOCX 页数:9 大小:38.42KB
返回 下载 相关 举报
关系数据库设计理论_第1页
第1页 / 共9页
关系数据库设计理论_第2页
第2页 / 共9页
关系数据库设计理论_第3页
第3页 / 共9页
关系数据库设计理论_第4页
第4页 / 共9页
关系数据库设计理论_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《关系数据库设计理论》由会员分享,可在线阅读,更多相关《关系数据库设计理论(9页珍藏版)》请在金锄头文库上搜索。

1、第 6章 关系数据库设计理论本章主要讲解在关系数据库的设计过程中,如何减少数据冗余,避免出现异常,该如何 对数据库模式进行中心设计。1深入理解函数依赖和键码的概念。学会计算属性的封闭集。2模式设计是本章的重点。了解数据冗余和更新异常产生的根源;理解关系模式规范 化的途径;准确理解第一范式、第二范式、第三范式和BC范式的含义、联系与区别;深入理解模式分解的原则;熟练掌握模式分解的方法,能正确而熟练的将一个关系模式 分解成属于第三范式或BC范式的模式。3.了解多值依赖和第四范式的概念,掌握把关系模式分解成属于第四范式的模式的方 法。本章主要的知识点包括:知识点 1 函数依赖知识点 2 模式设计知识

2、点 3 多值依赖学习要点1、函数依赖1.1 函数依赖的定义如果关系R的两个元组在属性A, A2,An上一致(也就是,两个元组在这些属性 所对应的各个分量具有相同的值),则它们在另一个属性B上也一致。那么,我们就说在关 系R中属性B函数依赖于属性AA2.An。记做AA2A B,也可以说“A A2, An函数决定B”。AA2.An称为决定因素。举例:学生关系 Student 的实例如下:SNoSNameSdeptMnameCnameGrade99230贺小华计算机周至光数据库系统7899239金谦计算机周至光计算机网络8799239金谦计算机周至光操作系统8699238陈冈U建筑王勇建筑原理729

3、9236口 吕木自动化李霞电路基础8299236口 吕木自动化李霞自动化涉及85在这个关系中,学号确定后,学生的姓名及所在的系就都确定了。属性中的这种依赖关 系就是函数依赖。在本例中存在下列函数依赖。Sno - SNameSno SdeptSdept MnameSno Cname Grade1.2关系的键码如一个或多个属性的集合A,,An满足如下条件,称该集合为关 系 R 的键码:1. 这些属性函数决定该关系的所有其它属性。2. A,,An的任何真子集都不能函数决定R的所有其它属性,键码必须是最小的。1.3 超键码 包含键码的属性集称为“超键码” 。因此,每个键码都是超键码。某些超键码不是(最

4、小的)键码。每个超键码都满足键码的第一个条件 :函数决定它所在的关系的所有其它属性。超键 码不必满足键码的第二个条件:最小化条件。1.4 函数依赖规则分解/合并规则可以把每个函数依赖右边的属性分解,从而使其右边只出现一个属性。同样,我们也可 以把左边相同的依赖的聚集用一个依赖来表示,该依赖的左边没变,而右边则为所有属性组 成的一个属性集。两种情况下,新的依赖集都等价于旧的依赖集。平凡依赖规则对于函数依赖AA2.An B来说,如果B是A中的某一个,我们就称之为“平凡的”对于函数依赖 AA2.An BB2.Bm,如果B是A的子集,则称该依赖为平凡的。如果B中至少有一个属性不在A中,则称该依赖为非平

5、凡的。如果B中没有一个属性 在 A 中,则称该依赖为完全非平凡的。函数依赖A、A An Bf .Bm等价于A、A An CiC2.Ck,其中C是B 的子集,但不在A中出现。我们称这个规则为“平凡依赖规则”。 举例:学生关系 Student 的实例如下:SNoSNameSdeptMnameCnameGrade99230贺小华计算机周至光数据库系统7899239金谦计算机周至光计算机网络8799239金谦计算机周至光操作系统8699238陈冈U建筑王勇建筑原理7299236口 吕木自动化李霞电路基础8299236口 吕木自动化李霞自动化涉及85面三个函数依赖关系中Sno Cname Grade C

6、name Grade右边属性集是左边属性集的子集,根据平凡依赖的定义,这个函数依赖属于平凡依赖。 (设计人员注意:请用动画表示黄色字和蓝色字。)Sno Cname Cname Grade右边的Cname属性在左边的属性集Z中,而Grade属性不在左边的属性集中,这个函 数依赖是非平凡依赖。(设计人员注意:请用动画表示黄色字和蓝色字。)Sno Cname k Sname Grade右边的属性都不在左边的属性集中,这个函数的依赖是完全非平凡依赖。传递规则传递规则使我们能把两个函数依赖级联成一个新的函数依赖。如果AA+.An B】B .Bm和B】B .Bm CiC2.Ck,在关系R中成立,则AA2.

7、AnCC2.Ck在R中也成立。这个规则就称为传递规则。举例:对于关系Student,有如下两个依赖:Sno SdeptSdept k Mname根据传递规则,可以得到一个新的依赖Sno Mname学习要点 2 模式设计2.1问题的提出设计关系数据库模式时,特别是从面向对象的ODL设计或从E/R设计直接向关系数据库模式转换时,很容易出现的问题是冗余性,即一个事实在多个元组中重复 造成这种冗余的最常见的原因是,企图把一个对象的单值和多值特性包含在一个关系 中。当我们企图把太多的信息存放在一个关系时,就会出现数据冗余和更新异常等问题。主 要表现如下:1数据冗余。2修改异常。3删除异常。4插入异常。举

8、例:学生关系 Student 的实例如下:SNoSNameSdeptMnameCnameGrade99230贺小华计算机周至光数据库系统7899239金谦计算机周至光计算机网络8799239金谦计算机周至光操作系统8699238陈冈U建筑王勇建筑原理7299236口 吕木自动化李霞电路基础8299236口 吕木自动化李霞自动化设计851数据冗余:学生所在的系和系主任。2 修改异常:修改了一个学生对应的系主任,其他的没有修改。SNoSNameSdeptMnameCnameGrade99230贺小华计算机王华数据库系统7899239金谦计算机周至光计算机网络8799239金谦计算机周至光操作系统8

9、699238陈冈U建筑王勇建筑原理7299236口 吕木自动化李霞电路基础8299236口 吕木自动化李霞自动化设计853 删除异常。删除一个学生选修的课程可能导致这个学生的全部信息丢失。4 插入异常。如果缺少键码属性集合中的元素,会导致不合理情况的发生。例如无法对数据库进行插 入、更新等操作。2.2 问题的根源关系的键码函数决定该关系的所有其它属性。由于键码能唯一确定一个 元组,所以,也可以说关系的键码函数决定该关系的所有属性。一个关系中的所有属性都函 数依赖于该关系的键码。不同的属性在关系模式中所处的地位和扮演的角色是不同的。把键 码所在的属性称为主属性,而把键码属性以外的属性称为非主属性

10、。不同的属性对键码函数 依赖的性质和程度是有差别的。有的属于直接依赖,有的属于间接依赖(通常称为传递依赖)。当键码由多个属性组成时,有的属性函数依赖于整个键码属性集,而有的属性只函数依赖于键码属性集中的一部分属性。完全依赖与部分依赖 对于函数依赖W A,如果存在V W(V是W的真子集)而函数依赖VA成立,则称A部分依赖于W;若不存在这种V,则称A完全依赖于W。 当存在非主属性对键码部分依赖时,就会产生数据冗余和更新异常。若非主属性对键码 完全函数依赖,则不会出现类似问题。传递依赖对于函数依赖X Y,如果丫宀 X(X不函数依赖于Y)而函数依赖Y Z成 立,则称Z对X传递依赖。如果X Y,且YX,

11、则X,Y相互依赖,这时Z与X之间就不是传递依赖,而是直接依赖了。我们以前所讨论的函数依赖大多数是直接依赖。 举例:SNoSNameSdeptMnameCnameGrade99230贺小华计算机王华数据库系统7899239金谦计算机周至光计算机网络8799239金谦计算机周至光操作系统8699238陈冈U建筑王勇建筑原理7299236口 吕木自动化李霞电路基础8299236口 吕木自动化李霞自动化设计85其中Sno, Cname为键码,函数依赖集如下:Sno Sname,Sdept;Sdept Mname;Sno Mname;PSno, Cname Sname,Sdept,Mname;fSno,

12、Cname k Grade分析可得:Sname, Sdept, Mname函数依赖于Sno,部分依赖于键码;Grade 完全依赖于键码。则 对键码完全依赖的 Grade 没有任何冗余; 对键码部分依赖的属性 Sname, Sdept, Mname 存在大量的数据冗余,并且有可能出现 更新异常。Mname传递依赖于Sno,当一个学生选修多门课程的时候,系主任的名字会多次重复出 现,并有可能出现更新异常。结论:(1)在一个关系模式中,当存在非主属性对键码的部分依赖时,就会产生数据冗余和 更新异常。(2)在一个关系模式中,当存在非主属性对键码的传递依赖时,就会产生数据冗余和 更新异常。(3)主属性对

13、键码的部分依赖和传递依赖也会导致产生数据冗余和更新异常。2.3 解决的途径 部分依赖和传递依赖有一个共同之处,这就是,二者都不是基本的函 数依赖,而都是导出的函数依赖。部分依赖是以对键码的某个真子集的依赖为基础;传递依赖的基础则是通过中间属性联系在一起的两个函数依赖。 导出的函数依赖在描 述属性之间的联系方面并没有比基本的函数依赖提供更多的信息。在一个函数依赖集中,导 出的依赖相对于基本的依赖而言,虽然从形式上看多一种描述方式,但从本质上看,则完全 是冗余的。正是由于关系模式中存在对键码的这种冗余的依赖导致数据库中的数据冗余和更新异 常。解决的途径消除关系模式中各属性对键码的冗余的依赖。2.4

14、 范式范式就是符合某 一种级别的关系模式的集合。目前主要有六种范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范 式。第一范式需满足的要求最低,在第一范式基础上满足进一步要求的为第二范式:1NF 二 2NF 二 3NF n BCNF 二 4NF =5NF通过分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合,这一 过程称为规范化。第一范式(1NF)如果一个关系模式R的所有属性都是不可分的基本数据项,则这个关 系属于第一范式。在任何一个关系数据库系统中,第一范式是对关系模式的一个最起码的要求。不满足第 一范式的数据库模式不能称为关系数据库。第二范式(2NF)若关系模式R属于第一范式,且每个非主属性都完全函数依赖于键码, 则 R 属于第二范式。第二范式就是不允许关系

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号