【数据库原理】关系数据理论_第1页
【数据库原理】关系数据理论_第2页
【数据库原理】关系数据理论_第3页
【数据库原理】关系数据理论_第4页
【数据库原理】关系数据理论_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、本章内容提要 从数据库逻辑设计中如何构成一个好的数据库模式这一问题出发,阐述了关系规范化理论研究的实际背景。 规范化理论:各级范式及可能存在的问题。 关系模式的规范化,第五章 关系数据理论,本章重点: 函数依赖; 各级范式的定义; 关系数据库的规范化理论 关系模式的规范化 本章难点: 关系模式的规范化,第五章 关系数据理论,前面我们已经讨论了关系数据库的基本概念、关系模型的三个部分以及关系数据库的标准语言。但是还有一个很基本的问题尚未涉及,针对一个具体问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成等。这是数据库设计的问题,确切地讲是关系数据库逻辑设计

2、问题。,第五章 关系数据理论 5.1 问题的提出,一个关系模式应当是一个五元组。 R(U, D, DOM, F) 关系名R,它是符号化的元组语义; 一组属性U; 属性组U中属性所来自的域D; 属性到域的映射DOM; 属性组U上的一组数据依赖F。,第五章 关系数据理论 5.1 问题的提出,由于D和DOM对模式设计关系不大,因此我们在本章中把关系模式看作是一个三元组: RU,F与设计有关。 故设计重点转为研究: (1)一个关系模式应该有那些属性; (2)这些属性间存在什么样的联系。 因此,我们的任务是研究模式设计,研究设计一个“好”的(没有“毛病”的)关系模式的办法。,第五章 关系数据理论 5.1

3、 问题的提出,关系,作为一张二维表,我们对它有一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一范式(1NF)。 一个满足1NF的关系模式是否能够满足使用的要求?,第五章 关系数据理论 5.1 问题的提出,第五章 关系数据理论 5.1 问题的提出,例:一个“有毛病”的关系模式 假设有关系模式 借书人(姓名,地址,书名,日期) Borrowers(NAME,ADDR,TITLE,DATE),这个模式有下述三个“毛病”: 1.插入异常 2.删除异常 3.冗余太大 为什么会发生以上问题呢 ? 因为这个模式存在某些不好的性质。,第五章 关系数据理论 5.1 问题的提出

4、,假如把这个单一的模式改造为两个关系模式: 借书人关系: 借书关系: Borrowers(NAME,ADDR) LOADS(NAME,TITLE,DATE),第五章 关系数据理论 5.1 问题的提出,一个模式可能存在哪些不好的性质? 如何改造一个不好的模式,这就是下一节规范化理论讨论的内容。,第五章 关系数据理论 5.1 问题的提出,为了使数据库设计的方法走向完备,人们研究了规范化理论,指导我们设计规范的数据库模式。 讨论首先是从分析一个关系模式的属性间的联系开始的。,第五章 关系数据理论 5.2 规范化,第五章 关系数据理论 5.2 规范化,5.2.1 函数依赖 一、属性间的关系 客观世界中

5、事物间的联系分为: (1)实体与实体间的联系; (2)实体内部各属性间的联系。 属性间的联系是属性间相互依赖与相互制约的关系,它称为数据依赖。 属性间的联系分为: (1) 1-1 (one to one ) (2) 1-M (one to Many ) (3) M-M ( Many to Many ),第五章 关系数据理论 5.2 规范化,数据依赖是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。 现在人们已经提出了许多种类型的数据依赖,其中最重要的是: (1)函数依赖(Functional Dependency简记

6、为FD) (2)多值依赖(Multivalued Dependency简记为MVD)。,第五章 关系数据理论 5.2 规范化,定义5.1 设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。 函数依赖和别的数据依赖一样是语义范畴的概念。我们只能根据语义来确定一个函数依赖。设计者也可以对现实世界作强制的规定。 注意:函数依赖不是指关系模式R的某个或某些关系满足的约束条件,而是指R的一切关系均要满足的约束条件。,第五章 关系数据理论 5.2 规范化,下面

7、介绍一些术语和记号: XY,但Y X则称XY是非平凡的函数依赖。若不特别声明,我们总是讨论非平凡的函数依赖。 XY,但Y X 则称XY是平凡的函数依赖。 若XY,则X叫做决定因素(Determinant)。 若XY,YX,则记作XY。 若Y不函数依赖于X,则记作X Y。,第五章 关系数据理论 5.2 规范化,定义5.2 在R(U)中,如果XY,并且对于X的任何一个真子集X ,都有X Y,则称Y对X完全函数依赖,记作:X F Y 。 若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:X P Y 。 定义5.3 在R(U)中,如果XY,(Y X),Y X,YZ,则称Z对X传递函数依赖。

8、 加上条件Y X,是因为如果YX,则XY,实际上XZ是直接函数依赖而不是传递函数依赖。,第五章 关系数据理论 5.2 规范化,5.2.2 码 定义5.4 设K为RU,F中的属性或属性组合,若 K F U,则K为R的候选码(Candidate key)。若候选码多于一个,则选定其中的一个为主码(Primary key)。 包含在任何一个候选码中的属性,叫做主属性(Prime attribute)。不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute)。最简单的情况,单个属性是码。最极端的情况,整个属性组是码,称为全码(All-k

9、ey)。,第五章 关系数据理论 5.2 规范化,定义5.5 关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称 X是R的外部码(Foreign key)也称外码。 主码与外部码提供了一个表示关系间联系的手段。,第五章 关系数据理论 5.2 规范化,5.2.3 范式 按属性间依赖情况来区分,关系规范化的程度为:第一范式(1NF Normal Form) 第二范式(2NF) 第三范式(3NF) 第四范式(4NF) 等。 各级范式是衡量一个关系模式“优劣”的标准。,第五章 关系数据理论 5.2 规范化,范式即规范化的关系模式。 关系数据库中的关系是要满足一定要求的,满足不同程度要求

10、的为不同范式。满足最低要求的叫第一范式,简称lNF。在第一范式中满足进一步要求的为第二范式,其余以此类推。 R为第几范式就可以写成RxNF。 对于各种范式之间的联系有5NF 4NF BCNF 3NF 2NF lNF成立。 一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。,第五章 关系数据理论 5.2 规范化,各种范式之间的联系,第五章 关系数据理论 5.2 规范化,5.2.4 关系模式的规范化及各级范式的定义 1NF 定义: 关系,作为一张二维表,我们对它有一个最起码的要求:每一个分量必须是不可分的数据项。满足了这个条件的关系模式就属于第一

11、范式(1NF)。 规范化:非规范的关系1NF关系。,第五章 关系数据理论 5.2 规范化,分析:书175页例子 中存在“问题”: (1)存在插入异常; (2)存在删除异常 (3)修改复杂,原因:存在非主属性对码的部分函数依赖。,过程:消除非主属性对码的部分函数依赖,第五章 关系数据理论 5.2 规范化,定义5.6 若RlNF,且每一个非主属性完全函数依赖于码,则R2NF。 满足第二范式的关系模式是否完全解决了存储异常问题呢?,第五章 关系数据理论 5.2 规范化,分析:书175页例子 中仍然存在“问题”: 仍然存在存储异常问题,原因:存在非主属性对码的传递函数依赖。,过程:消除非主属性对码的传

12、递函数依赖,第五章 关系数据理论 5.2 规范化,定义5.7 关系模式RU,F中若不存在这样的码X,属性组Y及非主属性Z (Z Y)使得XY, (Y X)YZ,成立,则称RU,F3NF。 由定义5.7可以证明,若R3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。,第五章 关系数据理论 5.2 规范化,S-L-C关系(SNO,CNO,SDEPT,SLOC,G),分解,SC+S-L关系,消除非主属性对码的部分函数依赖,S-D+D-L关系,消除非主属性对码的传递函数依赖,其中: SC(SNO,CNO,G) S-D(SNO,SDEPT) D-L(SDEPT,SLOC),3NF,第五章 关系数

13、据理论 5.2 规范化,5.2.5 BCNF 处于3NF的关系模式消除了非主属性和主属性间的部分函数依赖和传递函数依赖,解决了存储异常问题,一般情况下都能够满足实际应用的要求,但仍然有“不彻底”性 。,第五章 关系数据理论 5.2 规范化,例 1: 关系模式STJ(S,T,J)中, S表示学生, T表示教师, J表示课程。 每一教师只教一门课。每门课有若干教师, 某一学生选定某门课,就对应一个固定的教师。由语义可得到如下的函数依赖。 (S, J)T;(S,T)J;T J。,第五章 关系数据理论 5.2 规范化,S J,T,S T,J,(S,J) , (S,T)都是候选码。 所以 STJ3NF。

14、,STJ 关系仍然存在问题? 原 因:存在主属性对码的部分依赖和传递依赖 规范化:分解STJ关系为ST(S,T)和TJ(T,J) 过 程:消除主属性对码的传递函数依赖,因为没有任何非主属性对码传递依赖或部分依赖。,第五章 关系数据理论 5.2 规范化,定义5.8 关系模式RU,F1NF。若XY且Y X时X必含有码, 则RU,F BCNF。 也就是说,关系模式RU,F中,若每一个决定因素都包含码,则RU,F BCNF。,第五章 关系数据理论 5.2 规范化,STJ(S,T,J) 关系( (S, J)T;(S,T)J;T J ),分解,ST(S,T)和TJ(T,J),消除了主属性间的部分和传递函数

15、依赖,第五章 关系数据理论 5.2 规范化,由BCNF的定义可以得到以下结论: 一个满足BCNF的关系模式有 1.所有非主属性对每一个码都是完全函数依赖。 2.所有的主属性对每一个不包含它的码,也是完全函数依赖。 3.没有任何属性完全函数依赖于非码的任何一组属性。 由于R BCNF,按定义排除了任何属性对码的传递依赖与部分依赖,所以R 3NF。但是若R 3NF,则R未必属于BCNF。,第五章 关系数据理论 5.2 规范化,例2 关系模式SJP(S,J,P)中, S是学生, J表示课程, P表示名次。 每一个学生选修每门课程的成绩有一定的名次, 每门课程中每一名次只有一个学生(即没有并列名次)。

16、 由语义可得到下面的函数依赖:(S,J)P ,(J,P)S 所以(S,J)与(J,P)都可以作为候选码。这两个码各由两个属性组成,而且它们是相交的。 这个关系模式中显然没有属性对码传递依赖或部分依赖。所以SJP 3NF,而且除(S,J)与(J,P)以外没有其它决定因素,所以SJP BCNF,第五章 关系数据理论 5.2 规范化,一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。,第五章 关系数据理论 5.2 规范化,5.2.7 多值依赖 以上我们完全是在函数依赖的范畴内讨论问题。属于BCNF的关系模式是否就很完美了呢? 下面让我们来看

17、一个例子。 例l 学校中某一门课程由多个教员讲授,他们使用相同的一套参考书。每个教员可以讲授多门课程,每种参考书可以供多门课程使用。(教材P178),第五章 关系数据理论 5.2 规范化,第五章 关系数据理论 5.2 规范化,问题: (1)数据冗余度大。 (2)增加操作复杂。 (3)删除操作复杂。 (4)修改操作复杂。,第五章 关系数据理论 5.2 规范化,关系模型TEACHING(C,T,B)的码是(C,T,B),即A1l_Key。因而TEACHINGBCNF。 但是当某一课程(如物理)增加一名讲课教员时,必须插人多个元组 对数据的增删改很不方便, 数据的冗余也十分明显。仔细考察这类关系模式

18、,发现它具有一种称之为多值依赖(MVD)的数据依赖。,第五章 关系数据理论 5.2 规范化,定义5.9 设R(U)是属性集U上的一个关系模式。X,Y,Z是的U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖XY成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。 若XY,而Z = 即Z为空,则称XY 为平凡的多值依赖。,第五章 关系数据理论 5.2 规范化,多值依赖具有以下性质: 多值依赖具有对称性。即若XY,则XZ,其中ZUXY。 多值依赖的传递性。即若XY,YZ, 则XZY。 函数依赖可以看作是多值依赖的特殊情况。即若XY,则XY。 若XY,XZ,则XYZ。 若XY,XZ,则XYZ。 若XY,XZ,则XYZ,XZY。,第五章 关系数据理论 5.2 规范化,函数依赖和多值依赖是两种最重要的数据依赖。 如果只考虑函数依赖,则属于BCNF的关系模式规范化程度已最高了。 如果考虑多值依赖,则属于4NF的关系模式规范化程度是最高的了。,第五章 关系数据理论 5.2 规范化,5.2.9 规范化小结 在关系数据库中,对关系模式的基本要求是满足1NF,这样的关系模式是合法的允许的。但存在“

温馨提示

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

评论

0/150

提交评论