版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 关系数据库的规范化理论,本章内容,1、问题的提出 2、函数依赖 3、 关系范式 4、 函数依赖理论 5、 关系分解原则,4.1 问题的提出,出现的问题: 1、数据冗余 2、修改异常 3、插入异常 4、删除异常,例:教学关系S1实例,出现问题的原因: 有太多相互之间相联系的属性保存在了同一个关系模式中,这就造成因一种信息被捆绑在其他信息上而产生的信息之间相互依附存储的问题数据依赖,解决问题的方法:将相互之间有太多依赖关系的属性分别存放在不同的关系中。 分解后的三个关系,学生 S1,系 S2,选修 S3,现在的主要问题是: p106,4.2关系模式的函数依赖,4.2.1 函数依赖的相关定义
2、 (1)函数依赖 定义4.1 设一个关系为R(U),X、Y是属性集U的子集。若对于元组中X上的每个值都有Y上的一个唯一值与之对应, 则称X和Y具有函数依赖关系,并称X函数决定Y,或称Y函数依赖于X,记作XY,称X为决定因素。(同书上的概念p106) 例1:设一个职工关系为(职工号,姓名,性别,年龄,职称) 职工号为决该函数依赖的决定因素 例2: U=(学号,姓名,性别,班级,系,课程号,成绩) 则其函数依赖情况是: F学号姓名,学号性别,学号班级,学号系,班级系,(学号,课程号)成绩 注意:几点说明,4.2.2 函数依赖的类型,(1)平凡函数依赖与非平凡函数依赖 定义4.3 对于函数依赖XY,
3、如果满足 ,则称此函数依赖为非平凡函数依赖, 否则称之为平凡函数依赖。 例如:学号姓名,学号性别,(学号,课程号)成绩 等都是非平凡函数依赖。 例如: (学号,课程号)学号,(学号,课程号)课程号 是平凡函数依赖 对于任一关系模式,平凡函数依赖必然是成立的。 通常讨论的都是非平凡函数依赖。,(2)完全函数依赖与部分函数依赖 定义4.4 对于函数依赖XY,若Y函数依赖于X,但不依赖于X的任意一个真子集 ,则称Y完全函数依赖于X。记作: 例:(学号,课程号) 成绩 定义4.4 若Y函数依赖于X,但并非完全依赖于X,则称Y部分函数依赖于X,或称Y函数依赖于X的某个真子集。 记作: 例:(学号,课程号
4、)姓名 (学号,课程号) 姓名,而对于每个学生都有唯一的学号值,所以 学号姓名。因此(学号,课程号) 姓名 是部分函数依赖。,(3)传递函数依赖 定义4.5 如果XY,( ), , YZ,则称Z传递依赖于X。记作: 例:学号班级,班级系,学号 系 例:有以下班级关系: 班级(班号,专业名,系名,人数,入学年份) 其中,主码是班号。 经分析,有:班号专业名,班号人数,班号入学年份,专业名系名。 又因为:班号专业名,专业名 班号,专业名系名,所以有:班号 系名。,4.2.3 关键字的相关定义,1、关键字 定义:在关系模式R(U)中,若 ,且满足 ,则称K为R的候选键或候选关键字。 2、候选关键字、
5、主关键字 3、主属性、非主属性、主属性集、非主属性集,4.2.4 函数依赖的推理规则,1、函数依赖的逻辑蕴涵 2、Armstrong 公理系统 3、函数依赖推理规则的完备性 4、闭包的计算,4.2 函数依赖理论 一个关系模式可能存在很多个函数依赖,它们构成了该关系模式的函数依赖集。 该集合是很大的,如果仅依靠语义分析的方法去找出一个关系模式的所有函数依赖是一件很不 容易的事情,实际上也没有必要。 1,逻辑蕴涵:用推理的方法,从一个已知的函数依赖集去推导出另一个函数依赖集,这样两个函数依赖集之间的互为因果关系称之为逻辑蕴涵。 因此,我们给出一个函数依赖集闭包的定义。,定义:所有被一个已知函数依赖
6、集(F)逻辑蕴涵的那些函数依赖的集合称为F的闭包。 P109 如何由一个已知函数依赖集找出它的闭包呢?1974年,Armstrong提出了用推理方法计算闭包的一套规则,具体包括三个推理规则和三条推论,及一定的算法。,函数依赖的一些常用规则: 自反性: 增广性 传递性 合并规则 分解规则 伪传递性 P109p110,实际上计算推导出函数依赖集的闭包是一件非常繁琐复杂的事情,所以引入的属性集闭包的概念。,定义4.9 设F是属性集合U上的一个函数依赖集,XU,称 为属性集X关于F的闭包。 P110 引理4.2 设F是属性集U上的函数依赖集,X,Y是U的子集,则XY能由F根据Armstrong公理导出
7、的充分必要条件是 。,求属性集X关于函数依赖集F的闭包的算法 P111,4.2.6函数依赖集的等价与覆盖 每个函数依赖集至少存在一个最小依赖集,但并不唯一。 最小函数依赖集的定义 最小函数依赖集的计算方法 函数依赖集极小化的作用,定理4.7 每个函数依赖集F都有最小覆盖。 定义:设一个关系为R(U),X 和Y为U的子集,若X Y,并且为完全非平凡函数依赖,同时Y为单属性,则称X Y为R的最小函数依赖。由R中所有最小函数依赖构成R的最小函数依赖集,其中不含有冗余的传递函数依赖。 最小函数依赖集的计算方法 P113,最小函数依赖集的计算方法: 1、 Fmin中任一函数依赖的右部都是单个属性,故先把
8、F中的函数依赖的右部化为单属性的形式。 2、 Fmin中不存在冗余的FD(即不存在这样的FD:X A,使得 FXA与F等价;故消去冗余的FD。 3、消去左边冗余的属性:对F中的任一函数依赖X A,若Z X,则(FXA)ZA与F不等价。 每一个函数依赖集至少存在一个最小函数依赖集,但并不一定唯一。,4.3 关系范式,分解前后模式的好坏,是用什么标准来衡量呢? 关系模式的规范化标准(范式) 关系规范化的条件可以分为几级,每一级称为一个范式,记为XNF。 NF(Normal Form),范式即关系模式满足的条件。 范式的概念,4.3.1 范式的定义及规范化,1、第一范式(1NF) 定义:如果一个关系
9、模式R的每个属性的值都是不可再分的基本数据项,则称R属于第一范式。 2、第二范式(2NF) 定义:如果一个关系模式R属于1NF,且它的任一非主属性都完全函数依赖于任一候选关键字,则称R满足第二范式。 2NF不允许关系模式中的非主属性部分函数依赖于关键字。 例:书P122 分析可知:部分依赖必然带来数据冗余和操作异常。 如何消除部分依赖,使一个只满足1NF的关系模式变为属于2NF的关系模式?,通过模式分解,使任一非主属性都完全函数依赖于它的任一候选关键字。 对于一个关系R(U),假定W、X、Y、Z是U的互不相交的属性子集,其中(W、X)是主码,且X Y,(W,X)Z,Z中不包含依赖于X的属性,则
10、把R(U)分解为两个关系R1(X,Y)和R2(W,X,Z)后就取消了Y对(W,X)的部分依赖。,3、第三范式(3NF) 定义:如果一个关系模式R属于1NF,且每一个非主属性不传递依赖于任一候选关键字,则称R满足第三范式。 消除关系的传递函数依赖也是通过关系分解的方法来实现的。 设一个关系R(U),假定X、Y、Z 、W是U的互不相交的属性子集,其中 X是主码,YZ是直接函数依赖(也可能包含部分函数依赖), XZ 是传递函数依赖,则把 R(U)分解为两个关系R1(Y,Z)和R2(X,Y,W),其中Y是R1的主码,R2的外码,这样就消除了Z对X的传递依赖。,4、Boyce-Codd范式(BCNF)
11、定义:设有关系模式R及其函数依赖集F,X和A是R的属性集会,且 。如果只要R满足X A,X就必包含R的一个候选关键字,则称R满足BCNF。 或:若一个关系为R(U),它是满足1NF的,当R中不存在任何属性对候选码的传递函数依赖时,则称R是符合BCNF的。 或:若R中的所有属性都完全直接依赖于候选码,或说R的所有函数依赖的决定因素都是候选码。 没有任何属性完全函数依赖于非码的任何一组属性。,定理 如果一个关系模式R BCNF,则它必满足3NF。反之,不一定成立。 3NF和BCNF是在函数依赖的条件下对模式分解所能达到的分离程度的测度。 一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内
12、,它已实现了彻底的分离,已消除了插入和删除的异常。 3NF的“不彻底”性表现在可能存在主属性对码的部分依赖和传递依赖。,4.3.2 关系规范化小结 规范化的基本思想是逐步消除数据依赖中不适合的部分,使各关系模式达到某种程度的“分离”,即“一事一地”的模式设计原则。尽量让一个关系描述一个概念、一个实体或一种联系。 若有多于一个概念的,就把它“分解”出去。因此,所谓规范化实质上是概念的单一化。,4.3. 2关系模式规范化步骤,4.4 关系分解原则 研究函数依赖规范化理论以及Armstrong公理等的目的是为了更有效地规范关系模式。 通过关系模式的分解,使之满足某种规范化条件。 但是分解处理中又会涉及一些新问题: 书上的例子:,假设有一个成绩关系(学号,课程,教师,成绩),如表5-1所示,成绩关系的函数依赖集F 如下: (学号,课程) 教师,成绩 (学号,教师) 课程,成绩 教师课程 表5-1,分解: 表5-2和5-3,当需查询某位教师上什
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论