第4章关系数据库设计理论.ppt
《第4章关系数据库设计理论.ppt》由会员分享,可在线阅读,更多相关《第4章关系数据库设计理论.ppt(79页珍藏版)》请在三一文库上搜索。
1、1,第4章 关系数据库设计理论,本章要求: 了解数据冗余和更新异常产生的根源 了解函数依赖、多值依赖和键的基本内涵 理解关系模式规范化的途径 了解第四范式、第五范式的概念 掌握第一范式、第二范式、第三范式和BCNF范式的含义、联系与区别,2,第4章 关系数据库设计理论,本章内容:,问题提出,1,3,4.1问题提出,一个基本的问题: 给出一组数据,如何构造一个合适的数据模式? 例如:对关系模型,给了一组数据,应该构造几个关系?每个关系由哪些属性组成? 这就是数据库逻辑设计问题!,4,4.1问题提出,网状、层次模型的数据库设计,主要凭设计者的经验直观地选择和确定实体集、属性以及实体间的联系。哪些实
2、体应该合并或分解以及如何合并和分解、每个实体中应该包括哪些属性为宜、属性间的联系如何确定和处理等一系列问题的解决是没有什么固定规则和理论可循的。,5,4.1问题提出,关系数据库的设计是借助近代数学工具而提出来的,形成了一整套定义、公理、定理及各种实用算法,产生了确定、评价关系数据库模式的好方法。,关系数据库的规范化理论 数据库逻辑设计的有力工具,6,4.1问题提出,要考虑的几个问题: 为什么要规范化? 怎样规范化? 规范化到什么程度后最合适? 本节首先用一个例子来说明对关系模式为什么要规范化,不经过规范化会产生什么样的结果。,7,4.1问题提出,例:假设有一个关于学生选课和住宿情况的关系, 包
3、含:Sno(学生的学号)、Sdept(学生所在系)、 Sloc(学生所住宿舍楼)、Cno(课程号)、 Grade(考试成绩) 如下所示:,8,S-L-C(Sno,Sdept,Sloc,Cno,Grade) 假设每个系的学生都住在一栋楼里, (Sno, Cno)为主码,4.1问题提出,9,4.1问题提出,假设每个系的学生都住在一栋楼里 该关系模式存在以下四个严重问题: 数据冗余 数据库中不必要的重复存储就是数据冗余。此关系中,有关学生所在系和其所对应的宿舍楼的信息有冗余,因为一个系有多少个学生,这个系所对应的宿舍楼的信息就要重复存储多少遍。,10,4.1问题提出,插入异常 应该存储的信息无法存储
4、。插入记录时出现不能插入等一些不合理现象。如果某个学生还没有选课,但已经有了Sdept和Sloc信息,我们也不能将此学生的这些已知信息插入到数据库中。因为Cno为空,而Cno为主属性,不能为空,因此也就丢掉了该学生的其他基本信息。,11,4.1问题提出,删除异常 不该删除的信息被删除。如果一个学生只选了一门课,而后来又不选了,则应该删除此学生选此门课程的记录。但由于这个学生只选了一门课,那么删掉此学生的选课记录的同时也删掉了此学生的其他基本信息。,12,4.1问题提出,更新异常 由于数据的重复存储,会给更新带来很多麻烦。可能会导致数据的不一致,这将直接影响系统的质量。若某一学生从计算机系转到信
5、息系,那么不但要修改学生的Sdept列的值,而且还要修改其Sloc列的值,从而使修改复杂化。 一方面,修改工作量大;另一方面,可能漏改或该错,会造成数据的不一致性。,13,4.1问题提出,上例充分说明对关系模式若随意设计,其后果是严重的。 本章将要讨论产生上述问题的原因以及解决办法,即如何改造一个不好的关系模式。 这就是规范化理论要解决的主要问题。包括数据依赖、模式分解和模式设计方法。其中数据依赖是模式分解和模式设计的基础。,14,第4章 关系数据库设计理论,本章内容:,问题提出,2,数据依赖,规范化关系模式设计,3,1,2,综合举例,4,15,4.2 数据依赖,数据模型中我们讨论了实体间的联
6、系,同时提到实体内部属性间也有联系。 事实上,上一节中的问题都是由于属性间的联系引起的。 一、数据依赖属性间的联系: 1:1,1:n,m:n三种 1:1联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中至多有一个值与之对应,且反之亦然。如:车间-主任,16,4.2 数据依赖,1:n联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中有多个值(包括0个)之对应;而对于B中的任一值,A中至多有一个值与之对应。如:班号-学号 m:n联系:设A、B为某实体集中的两个属性的值集,如果对于A中的任一值,B中有多个值(包括0个)与之对应,且反之亦然。如:学号-课程号,1
7、7,4.2 数据依赖,通过一个关系中属性间值的相互关联(主要体现于值的相等与否)体现出来的数据间的相互联系(是数据内在的性质,语义的体现)为数据依赖。 两类最重要的数据依赖: 函数依赖 多值依赖,18,4.2 数据依赖,二、函数依赖 不严格地讲,函数依赖指的是一组属性值唯一决定另一组属性值的这种数据依赖。 学生关系中,当学号确定后,其姓名也就唯一确定了。 选课关系中,当学号和课程号确定后,其成绩也就唯一确定。 设用U表示关系模式R的属性全集,即 U=A1,A2 ,An,用F表示关系模式R上的函数依赖集,则关系模式R可表示为R(U, F)。,19,4.2 数据依赖,1. 函数依赖(Functio
8、nal Dependency,缩写FD): 设 R(U)是属性集U上的关系模式,X、Y是U的子集。对于r中的任意两个元组u、v都有 uX=vX uY=vY 成立, 则称X函数决定Y,或称Y函数依赖于X,记作XY。称X为决定因素。,20,4.3 规范化的关系模式,假设每个系的学生都住在一栋楼里,X,Y,uX=vX uY=vY,21,4.2 数据依赖,说明: 函数依赖类似于变量间的单值函数关系(一个自变量只能对应一个函数值),因此也称为单值函数依赖; 若XY且YX ,则记作 XY;,函数依赖是指关系模式R的任一关系都要满足的约束条件。,22,4.2 数据依赖,2. 函数依赖与属性间的联系之关系 (
9、1)若X、Y之间是“1:1联系”,则存在函数依赖XY和YX, 即XY. (2)若X、Y之间是“m:1联系”, 则存在函数依赖关系XY。 (3)若X、Y之间是“m:n联系”, 则X、Y之间不存在函数依赖关系。,23,4.2 数据依赖,3.函数依赖分类 非平凡的函数依赖: XY,但Y X。 平凡的函数依赖: XY,但Y X。,24,4.2 数据依赖,部分函数依赖: XY,但Y不完全函数依赖于X,即存在X X,有XY。记作 XY。,p,25,例:关系模式P(学号,系名,系主任)中: 学号系名 系名系主任(假设一个系只有一名系主任),4.2 数据依赖,如果Y X,则X Y,则XY, Z对X实际上是直接
10、函数依赖而不是传递函数依赖.,26,4.2 数据依赖,例:关系模式P(姓名,职务,职务工资)中: 姓名职务 职务职务工资 则,27,4.2 数据依赖,例:关系模式P(学号,课程号,成绩,学分)中:,因为课程号学分,,(学号,课程号)课程号(平凡函数依赖),28,4.2 数据依赖,三、多值依赖 1. 例子:设学校中一门课由多位教员讲授,他们使用相同的参考书,比如: “物理”,教员为汪洋、大海,参考书为普通物理学、光学原理、物理习题集; “数学”,教员为大海、白云,参考书为数学分析、微分方程、高等代数; 用模式为 TEACH(C,T,B)的关系表示上述数据:,29,4.2 数据依赖,课程C 教员T
11、 参考书B 物理 汪洋 普通物理学 物理 汪洋 光学原理 物理 汪洋 物理习题集 物理 大海 普通物理学 物理 大海 光学原理 物理 大海 物理习题集 数学 大海 数学分析 数学 大海 微分方程 数学 大海 高等代数 数学 白云 数学分析 数学 白云 微分方程 数学 白云 高等代数 计算 白云 数学分析 ,30,4.2 数据依赖,该关系模式中,任何两个属性都不能函数决定第三个属性。 该关系模式存在冗余大、增删不方便等问题。 没有函数依赖,需要另行分析 分析:在该关系模式中,对于一个(物理,普通物理学),有一组教员汪洋,大海,而对于另一个(物理,光学原理),对应的教员仍是汪洋,大海。因此,所对应
12、的教员只与课程的值有关而与参考书的值无关。,31,4.2 数据依赖,2. 多值依赖(MultiValued Dependency, 缩写为MVD) 设R(U)是属性集U上的关系模式,X、Y、Z是U的子集,且Z=UXY,多值依赖XY成立当且仅当对R(U)的任一关系r,任给的一对(x,z)值有一组Y的值,这组值仅仅取决于x值而与z值无关。称X多值决定Y或Y多值依赖于X。,32,4.2 数据依赖,课程C 教员T 参考书 物理 汪洋 普通物理学 物理 汪洋 光学原理 物理 汪洋 物理习题集 物理 大海 普通物理学 物理 大海 光学原理 物理 大海 物理习题集 数学 大海 数学分析 数学 大海 微分方程
13、 数学 大海 高等代数 数学 白云 数学分析 数学 白云 微分方程 数学 白云 高等代数 计算 白云 数学分析 ,X,Y,Z,任给的一对(x,z)值有一组Y的值,这组值仅仅取决于x值, 而与z值无关。称X多值决定Y或Y多值依赖于X。,33,多值依赖XY成立当且仅当对R(U)的任一关系r,若存在元组s、t使得sX=tX,则必存在元组w、vr(w、v可以与s、t相同),使得wX=vX=tX,而wY=tY,vY=sY, wZ=sZ,vZ=tZ。,多值依赖的另一等价定义,对于r中在X上值相等的 两个元组s、t,交换它们 的Y值后所得的新元组w、 v仍在r中,X Y Z,34,4.2 数据依赖,平凡的多
14、值依赖: 若X Y,而Z=,即Z为空,则称X Y为平凡的多值依赖。若Z非空,则称X Y 为非平凡的多值依赖,35,4.2 数据依赖,3. 多值依赖的性质: 对称性:若 XY, Z=UXY,则 XZ。 传递性:若 XY , YZ ,则XYZ 。 函数依赖是多值依赖的特例:若 XY,则 XY。,36,4.2 数据依赖,多值依赖的性质: 若 XY ,XZ ,则 XYZ 。 若 XY ,XZ ,则 XYZ, X Z Y。,37,4.2 数据依赖,4. 多值依赖与函数依赖的区别 (1)函数依赖XY的有效性仅取决于X、Y,与X、Y之外的属性无关:,38,4.2 数据依赖,多值依赖XY的有效性与X、Y之外的
15、属性范围有关:若XY在U上成立,则在W( XY W U)上也成立,但反之不然。,可缩小范围但不一定能扩大范围,XY在U上成立,XY在W上也成立,反之 不成立,39,4.2 数据依赖,(2)对函数依赖,若XY,则对Y的任意子集Y,都有XY。对多值依赖,没有上述性质,即不能保证XY成立。,原因:在关系模式R(U)上,函数依赖XY的有效性仅仅取决于X、Y两个属性集合;而在多值依赖中XY在U上是否成立,不仅要检查X、Y上的属性值,而且要检查Z=U-X-Y上的值。,40,4.2 数据依赖,四、键 从函数依赖的角度给关键字一个形式化的定义。 1. 候选关键字和主关键字: 设K是R中的属性或属性组合,,若候
16、选关键字多于一个,则选定其中的一个作为主关键字(主键、主码)。,41,4.2 数据依赖,2. 外键(外部码) 若R中的属性或属性组合X不是R的关键字,但X是另一个关系的关键字,则称X是R的外键。 主键与外键提供了一个表示关系间联系的手段。 例1:S( Sno, Sname, Sage) Sno为主码 SC( Sno, Cno, Grade) Sno为外码,42,4.2 数据依赖,3. 全键(All-key,全码) 若R的整个属性组是关键字,则称U是全键。,43,4.2 数据依赖,例2:R(P,W,A)其中各属性含义分别为: 演奏者,作品和听众。 其语义为:一个演奏者可演奏多个作品,某一作品可被
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 设计 理论
链接地址:https://www.31doc.com/p-3429889.html