数据库原理第6章关系数据库理论

上传人:j****9 文档编号:54637941 上传时间:2018-09-16 格式:PPT 页数:68 大小:335.50KB
返回 下载 相关 举报
数据库原理第6章关系数据库理论_第1页
第1页 / 共68页
数据库原理第6章关系数据库理论_第2页
第2页 / 共68页
数据库原理第6章关系数据库理论_第3页
第3页 / 共68页
数据库原理第6章关系数据库理论_第4页
第4页 / 共68页
数据库原理第6章关系数据库理论_第5页
第5页 / 共68页
点击查看更多>>
资源描述

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

1、第6章 关系数据库理论,本章主要内容,如何判断一个关系模型的“好”与“坏” 如何依据关系数据理论设计出好的关系模型 根据函数依赖、模式分解和关系规范化等内容,讨论什么样的关系是“坏”的关系,如何将“坏”的关系转换为“好”的关系等。,本章学习目标,理解函数依赖、及其相应的概念和术语; 掌握模式分解的准则; 理解关系范式的定义,掌握关系规范化的方法。,本章重点和难点,重点:围绕函数依赖的概念、理解和掌握关系规范化的方法,为以后设计关系数据库奠定一个良好基础。难点:理解最小等价集的概念。,6.1 函数依赖,Y=f(X),函数,Y=sin(X),Y=X+1,Y=X2+2X+1,省=f(城市),姓名=f

2、(学号),?,函数依赖的直观定义:,如果有一个关系模式R(A1,A2,An),X和Y为A1,A2,An的子集,那么对于关系R中的任意一个X值,都只有一个Y值与之对应,则称X函数决定Y,或Y函数依赖于X。,例:院系(编号,名称,负责人,地点),有函数依赖:,编号名称(名称函数依赖于编号) 编号负责人(负责人函数依赖于编号) 名称地点(地点 函数依赖于 名称) 名称编号(编号函数依赖于名称) ,函数依赖的严格形式化定义:,设有关系模式R(A1,A2,An),X和Y均为A1,A2,An的子集,r是R的任一具体关系,t1、t2是r中的任意两个元组;如果由t1X=t2X可以推导出t1Y=t2Y,则称X函

3、数决定Y,或Y函数依赖于X,记为XY。,6.1.2 为什么要讨论函数依赖,数据冗余问题 数据更新问题 数据插入问题 数据删除问题,存在什么问题?,如何将“坏”的关系模式转换成“好”的关系模式?,6.1.3 术语和符号,非平凡函数、平凡函数依赖 不函数依赖于 决定因素 关系模式 主属性、非主属性 函数等价 完全函数依赖、部分函数依赖 传递函数依赖,术语:非平凡函数、平凡函数依赖,如果XY,但Y不包含于X,则称XY是非平凡的函数依赖。,如:(学号,课程号)成绩,如:(学号,学院)学院,非平凡依赖,平凡依赖,举例:,关系模式:学生(学号,姓名,年龄)(学号,姓名)姓名 函数依赖学号姓名 函数依赖,平

4、凡,非平凡,术语:不函数依赖于,术语:决定因素,如果XY,则X称作决定因素。,如学号学院,则学号称作决定因素,用U表示关系模式R的属性全集,即U=A1,A2,An,用F表示关系模式R上的函数依赖集,则关系模式R 可表示为R(U,F ) 。,关系模式,如U=编号,名称,负责人,地点F=编号负责人,编号地点,编号名称,名称编号 则R(U,F)表示院系关系,术语:主属性、非主属性,如果K是关系模式R(U,F)的任一候选关键字,X是任一属性或属性集,如果XK,则X称为主属性;否则称为非主属性。,因为(学号,课程号)是选课关系的关键字,所以学号和课程号均是主属性,而成绩为非主属性。,例如:选课(学号,课

5、程号,成绩),术语:函数等价,如果XY,并且YX,则可记作XY, 这时X和Y可以称做函数等价。,如在院系关系上:编号名称,名称编号 所以在院系关系上编号和名称可以称作函数等价。,如:(学号,课程号)成绩 完全函数依赖,而:(学号,院系)负责人 部分函数依赖,术语:完全函数依赖、部分函数依赖,举例:,1、如果在关系模式R(A,B,C)中存在(A,B)C和BC,则(A,B)C为 函数依赖。2、如果在关系模式R(A,B,C)中存在(A,B)C但不存在BC或AC,则(A,B)C 为 函数依赖。,部分,完全,术语:传递函数依赖,如学号专业,专业院系,则:院系传递函数依赖于学号。,举例:,如果在关系模式R

6、(A,B,C)中存在AC 且存在 AB,BC,则 A C 为 函数依赖,传递,练习,已知关系模式 :学生(学号,姓名,院系,负责人),判断下列函数依赖的类型?学号姓名学号院系学号负责人,6.1.4 函数依赖的逻辑蕴涵,1. 逻辑蕴涵,函数逻辑蕴涵的定义:设有关系模式R(U,F),X U、Y U,如果从F中的函数依赖能够推导出XY,则称F逻辑蕴涵XY,或称XY是F的逻辑蕴涵。,例如有关系模式R(U,F),U=A,B,C,F=AB,BC,问AC是否成立?,2. 推理规则,设有关系模式R(U,F),X、Y、Z均为U的子集,有如下推理规则: 自反律:如果Y X,则XY; 增广律:如果XY,则XZYZ;

7、 传递律:如果XY、YZ,则XZ 。,以上推理规则还有如下3条推论: 合并规则:如果XY、XZ,则XYZ。 分解规则:如果XYZ,则XY、XZ。 伪传递规则:如果XY、YWZ,则XWZ。,3. 函数依赖集闭包,在关系模式R(U,F)中,被F所逻辑蕴涵的函数依赖的全体称作F的闭包,记为F+,闭包计算举例,假设有关系模式F=AB,BC F+ =?,4. 函数依赖集等价,设F和G是两个函数依赖集,如果 和 同时成立,即 ,则称F和G等价。,5. 最小函数依赖等价集,如果函数依赖集F满足如下条件,则称F为一个最小函数依赖集: F中任一函数依赖的右部都仅含有一个属性; F中不存在这样的函数依赖XA,X有

8、真子集Z,使得F与F-XAZA等价; F中不存在这样的函数依赖XA,使得F与F-XA等价。,例:假设有属性集U=A,B,C,D,E,函数依赖集F=AB,BC,ADE和函数依赖集G=AB,AC,BC,ADE,问F和G是否是最小函数依赖集?,答案:F是最小依赖集,G不是最小依赖集。,思考题,在你熟悉的领域列举一些关系,并讨论这些关系上的函数依赖。 用函数依赖的形式化定义证明6.1.4所给出的推理规则(自反律、增广律和传递律)。 用6.1.4所给出的推理规则(自反律、增广律和传递律)证明6.1.4所给出的三条推论(合并规则、分解规则和伪传递规则)。 设有关系模式R(U,F),U=A,B,C,D,E,

9、F=ABE,DEB,BC,CE,EA,能否找出一个它的最小等价集?,6.2 模式分解,“坏”的关系模式,“好”的关系模式,6.2.1 模式分解的准则,模式分解具有无损连接性; 无损连接是指分解后的关系通过自然连接可以恢复成原来的关系。模式分解能够保持函数依赖。 保持函数依赖分解是指在模式的分解过程中,函数依赖不能丢失的特性,即模式分解不能破坏原来的语义。,举例,有关系模式R(U,F),假设将其分解为: R1(U1,F1)和R2(U2,F2), 其中U= U1U2,F +=(F1F2)+,这个分解是保持函数依赖的。 是否保证无损连接分解?,无损连接的形式定义,判断一个分解是否具有无损连接特性法则

10、:关系模式R分解为R1和R2是无损连接分解的充分必要条件是:R1 R2 R1 - R2 或 R1 R2 R2 R1,保持函数依赖的形式定义:,若 ,则R(U,F)的分解 =R1(U1,F1),Rk(Uk,Fk)保持函数依赖。,6.2.2 模式分解举例,设有关系模式R(U,F),U=课程,教师,学院,F =课程教师,教师学院,从F中可以看出,一门课程只能由一名教师负责,一名教师只能属于一个学院。设有如表6-2所示的关系实例r,判断如下的三个分解是否满足无损连接和保持函数依赖的特性:,p1 =R1(课程,),R2(教师, ),R3(学院, ),p2 = R1(课程, 教师, 课程教师 ),R2(课

11、程, 学院, 课程学院 ),p3 = R1(课程, 教师, 课程教师 ),R2(教师, 学院, 教师学院 ),思考题,模式分解为什么要保证无损连接和保持函数依赖? 模式分解的目的就是要消除那些“不好”的函数依赖,为什么又说是保持函数依赖呢? 如何判断一个模式分解是保持函数依赖的? 如何判断一个模式分解是无损连接的?,6.3 关系规范化,目的是要设计“好的”关系数据库模式。 关系模式分为: 第一范式 第二范式 第三范式 BC范式 第四范式 第五范式,第一范式,每个关系模式都应满足最低要求:所有分量都必须是不可分的最小数据项,并把其称为第一范式(1NF)关系。,非规范化表格和规范化表格,第二范式,

12、如果R(U,F) 1NF,并且R中的每个非主属性都完全函数依赖于关键字,则R(U,F) 2NF。,第二范式,判断关系模式是否满足2NF的方法? 主关键字为单个属性时:一定为2NF 主关键字为多个属性时:如果每个非主属性组都完全依赖于主关键字,则为2NF;否则不是2NF。,不满足第二范式,因为存在部分函数依赖,把“选课”关系分解为如下“选课”和“课程”两个关系:选课(学号, 课程号, 考试成绩)课程(课程号, 课程名, 责任教师, 职称),存储冗余、插入异常、更新异常、删除异常等现象是否还存在呢?,第三范式,如果R(U,F) 2NF,并且所有非主属性都不传递依赖于关键字,则R(U,F) 3NF。

13、,第三范式,例如:已知关系模式 R(A,B,C)中存在B C 则此关系模式一定满足? NF,2,第三范式,例如:已知关系模式 R(A,B,C)中不存在B C 和A C则此关系模式一定满足? NF,3,第三范式,例如:已知关系模式 R(A,B,C)则此关系模式一定满足? NF,3,特殊情况,第三范式,如果一个关系模式满足2NF,判断关系模式是否满足3NF的根本是判断非主属性之间是否有函数依赖。若有,则不满足3NF;若无,则满足3NF。如果一个关系模式满足2NF,并且它最多只有一个非主属性,则一定满足3 NF。如果一个关系模式满足1NF,并且没有非主属性,则一定满足 3 NF,满足3NF么?,存在

14、操作异常吗?,把表6-6所示意的课程关系分解成如下两个关系:课程(课程号, 课程名, 责任教师)教师(教师, 职称),满足3NF么?,操作异常还存在吗?,6.3.4 BC范式,第三范式实际上已经解决了大部分操作异常现象,但是有些关系模式可能还会出现这样或者那样的问题。,假设有如下关系模式:R(教师, 教室, 课程) 并且它所包含的语义是: 一名教师可以负责多门课程;一门课程仅由一名教师负责; 每个教师在一个教室只能上一门课程(但是一门课程不同时间会在不同教室上)。,根据以上的语义关系模式R上的函数依赖有: 课程教师 (教师, 教室)课程,所以R 3NF,不存在非主属性对主关键字的 部分函数依赖

15、和传递函数依赖,给出以下几组数据,第一组数据假设教师T1负责课程C1、C2、C3,并且C1课程使用教室M1和M4等:T1C1M1, M4C2M3, M6C3M2, M5, M7,第二组数据假设教师T2负责课程C4、C5,并且C4课程使用教室M1、M3和M4等:T2C4M1, M3, M4C5M2, M6,第三组数据假设教师T3负责课程C6、C7,并且C6课程使用教室M2和M3等:T3C6M2, M3C7M4,将这些数据排列成关系?,是否存在操作异常现象?,原因:存在一个主属性对非主属性的函数依赖(课程教师),BC范式定义:,关系模式R(U,F) 1NF,XY是F上的任意函数依赖,并且Y X,X U,则R(U,F) BCNF。,换句话说,如果R(U,F)中的每个函数依赖的左部都是关键字(或所有的决定因素都是关键字),则R(U,F) BCNF。,也可以说,如果R(U,F) 3NF,并且不存在主属性对非主属性的函数依赖,则R(U,F) BCNF。,为了解决操作异常现象如何进行分解?,

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

最新文档


当前位置:首页 > 生活休闲 > 科普知识

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