数据库原理与应用 第3章 关系数据库规划和设计

上传人:E**** 文档编号:89423268 上传时间:2019-05-25 格式:PPT 页数:179 大小:1,017.50KB
返回 下载 相关 举报
数据库原理与应用 第3章  关系数据库规划和设计_第1页
第1页 / 共179页
数据库原理与应用 第3章  关系数据库规划和设计_第2页
第2页 / 共179页
数据库原理与应用 第3章  关系数据库规划和设计_第3页
第3页 / 共179页
数据库原理与应用 第3章  关系数据库规划和设计_第4页
第4页 / 共179页
数据库原理与应用 第3章  关系数据库规划和设计_第5页
第5页 / 共179页
点击查看更多>>
资源描述

《数据库原理与应用 第3章 关系数据库规划和设计》由会员分享,可在线阅读,更多相关《数据库原理与应用 第3章 关系数据库规划和设计(179页珍藏版)》请在金锄头文库上搜索。

1、第3章 关系数据库规划和设计,【本章导读】,本章主要讲述关系数据库的规范化理论、关系数据库的标准语言SQL、关系数据库的设计、关系数据库的保护以及数据库的最新技术。,【本章要点】,关系数据库理论 关系规范化的方法和步骤 SQL的功能 数据库的安全性、完整性、备份和恢复的原理及方法 数据库设计的内容、任务、步骤和方法 数据库技术的发展以及与其他技术的结合,第3章 关系数据库规划和设计,3.1 关系数据库理论 3.2 关系数据库标准语言SQL 3.3 数据库保护 3.4 数据库设计 3.5 数据库新技术,3.1 关系数据库理论,3.1.1 函数依赖 3.1.2 范式 3.1.3 数据依赖的公理系统

2、 3.1.4 关系模式的规范化,3.1.1 函数依赖,1函数依赖 定义3.1 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称X函数确定Y或Y函数依赖于X,记作XY。,说明,(1)函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 (2)函数依赖是语义范畴的概念,只能根据数据的语义来确定函数依赖。 (3)XY,但Y X,则称XY是非平凡函数依赖。XY,但Y X,则称XY是平凡函数依赖。若不特别声明,总是讨论非平凡函数依赖

3、。,说明,(4)若XY,则X称为这个函数依赖的决定属性集。 (5)若XY,并且YX,则记为XY。 (6)若Y不函数依赖于X,则记为X Y。,2完全函数依赖与部分函数依赖,定义3.2 在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y完全函数依赖于X,记作X Y。若XY,但Y不完全函数依赖于X,称Y部分函数依赖于X,记作X Y。,例如,在选课关系SC(学号S#, 课程号C#, 成绩G)中,学生的成绩由学号和课程号共同决定,代表该学生的一次选课,所以函数依赖为:(S#, C#)G,但是单独由学号不能决定一门课的成绩,单独由课程号也不能决定某个学生的成绩,即S# G、C#

4、 G,所以(S#, C#) G。,3传递函数依赖,定义3.3 在关系模式R(U)中,如果XY(Y X),Y X,YZ,则称Z传递函数依赖于X,记作 X Z。 例如,在关系SD(学号S#, 所在系SDEPT, 系主任姓名MNAME)中,学号决定学生所在系,即S#SDEPT,学生所在系决定系主任姓名SDEPTMNAME,则S# MNAME。,传递,传递,4码,定义3.4 设K为关系模式RU, F中的属性或属性组合。若K U,则称K为R的一个候选码(Candidate Key)。若关系模式有多个候选码,则选定其中的一个作为主码(Primary Key)。,举例,学生关系STUDENT(学号SNO,

5、姓名SNAME, 性别SSEX, 年龄SAGE, 所在系SDEPT)的主码是学号SNO,因为学号SNO能决定姓名、性别、年龄、所在系这几个属性,即SNO U。选课关系SC(学号S#, 课程号C#, 成绩G)的主码是(S#, C#),因为(S#, C#) G,则(S#, C#) (S#, C#, G),即(S#, C#) U。,包含在任何一个候选码中的属性称为主属性(Prime Attribute) 不包含在任何候选码中的属性称为非主属性(Nonprime Attribute)或非码属性(Non-key Attribute)。 最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所

6、有属性组都是这个关系模式的候选码,称为全码(All-key)。,例如,选课关系SC(学号S#, 课程号C#, 成绩G)的主码是(S#, C#),主属性是主码的各个属性,即S#、C#,非主属性是G。,3.1.2 范式,范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足的要求不同,则范式不同。 范式的概念最早是由E.F.Codd提出的,他从1971年相继提出了三级规范化形式,即满足最低要求的第一范式(1NF),在1NF基础上又满足某些特性的第二范式(2NF),在2NF基础上再满足一些要求的第三范式(3NF)。,1974年,E.F.Codd和Boyce共同提出了一个新

7、的范式概念,即Boyce-Codd范式,简称BC范式(BCNF)。 1976年Fagin提出了第四范式(4NF),后来又有人定义了第五范式(5NF)。 至此,在关系数据库规范中建立了一个范式系列:1NF、2NF、3NF、BCNF、4NF和5NF。 通常把某一关系模式R为第n范式简记为RnNF。,11NF,定义3.5 如果一个关系模式的所有属性都是不可分的基本数据项,则R1NF。 任何一个关系模式都是1NF,不满足第一范式的数据库模式不能称为关系数据库。 满足第一范式的关系模式不一定是一个好的关系模式。如关系模式SLC(学号SNO, 学生所在系SDEPT, 学生住处SLOC, 课程号CNO, 成

8、绩GRADE),假设每个系的学生住在同一个楼上。SLC满足第一范式,每个属性都不可分。,SLC的码是(SNO, CNO),函数依赖有: (SNO, CNO) GRADE, SNOSDEPT,(SNO, CNO) SDEPT, SNOSLOC,(SNO, CNO) SLOC, SDEPTSLOC。,SLC关系模式存在的问题如下:,(1)插入异常。 (2)删除异常。 (3)更新异常。 (4)冗余度大。,22NF,定义3.6 若关系模式R1NF,并且每一个非主属性都完全函数依赖于R的码,则R2NF。 2NF不允许关系模式的属性之间有这样的函数依赖:XY,其中X是码的真子集,Y是非主属性。显然,码只包

9、含一个属性的关系模式,如果属于1NF,那么它一定属于2NF。,关系模式SLC的码是(SNO, CNO),主属性是SNO和CNO,非主属性是SDEPT、SLOC、GRADE。分析SLC的函数依赖,可以看到: (SNO, CNO) SDEPT (SNO, CNO) SLOC 存在非主属性对码的部分函数依赖,不满足第二范式的要求,所以SLC只能达到1NF。,解决的办法是把关系模式SLC分解成为两个关系模式:SC(SNO, CNO, GRADE)和SL(SNO, SDEPT, SLOC)。 SC的码是(SNO, CNO),函数依赖是(SNO, CNO) GRADE。 SL的码是SNO,函数依赖是SNO

10、SDEPT、SNOSLOC、SDEPTSLOC。 由此可见,分解后的两个关系模式不存在非主属性对码的部分函数依赖,都达到了2NF,即SC2NF,SL2NF。,33NF,定义3.7 如果关系模式RU, F中不存在候选码X、属性组Y以及非主属性Z(Z Y),使得XY(Y X),YZ成立,则R3NF。 由定义3.7可以证明,若R3NF,则R的每一个非主属性既不部分函数依赖于候选码,也不传递函数依赖于候选码。显然,如果R3NF,则R也是2NF。,研究分解后的关系模式SL(SNO, SDEPT, SLOC),SL的码是SNO,主属性是SNO,非主属性是SDEPT和SLOC,存在非主属性SLOC对主属性S

11、NO的传递函数依赖,所以达不到3NF的要求,可以将SL分解为: SD(SNO, SDEPT) DL(SDEPT, SLOC) 分解后的SD和DL不再存在传递函数依赖,所以SD3NF,DL3NF。,4BCNF,BCNF(Boyce Codd Normal Form,鲍依斯科得范式)是由Boyce和Codd共同提出的,比上述的3NF又进了一步,通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。 定义3.8 设关系模式RU, F1NF。若XY且Y X时X必含有码,则RU, F BCNF。 也就是说,关系模式RU, F中,若每一个决定因素都包含码,则RU, FBCNF。,由BCNF的定义可以

12、得到结论,一个满足BCNF的关系模式有: (1)所有非主属性对每一个码都是完全函数依赖。 (2)所有主属性对每一个不包含它的码是完全函数依赖。 (3)没有任何属性完全函数依赖于非码的任何一组属性。,2NF、3NF分别消除了非主属性对码的部分函数依赖和传递函数依赖,而BCNF在3NF的基础上消除了主属性对码的部分函数依赖,因此如果RBCNF,则R3NF,反之则不成立。,假设有系别管理关系DEPT(系别D, 教研室R, 教师数C, 系主任M),其中C表示教研室中的教师数。一个系里只有一个主任,可以有多个教研室。这个数据库表中存在如下函数依赖: (D, R)(M,C),(M, R)(D, C) 所以

13、,(D, R)和(M, R)都是DEPT的候选关键字,表中的唯一非关键字为C,它是符合3NF的。但是,由于存在如下函数依赖: DM,MD 即存在关键字段决定关键字段的情况,所以其不符合BCNF范式。,它会出现如下异常情况: (1)插入异常。当没有提供教研室的信息时,无法插入此系及主任的信息。 (2)更新异常。如果系更换了主任,则表中此系的所有行的主任列都要修改,造成修改操作的复杂化。 (3)删除异常。如果要删除某系所有教研室的信息,则系别和主任的信息也将被删除,造成删除异常。,解决的办法是把DEPT关系表分解为下面两个关系表:系别管理DEPT(D, M)和教研室管理 REAC(D, R, C)

14、。这样的数据库表是符合BCNF范式的,消除了删除异常、插入异常和更新异常。,5多值依赖(Multivalued Dependency,MVD),研究下面的关系模式Teaching(课程C, 教员T, 参考书B),一门课程可以由多个教员讲授,使用相同的一套参考书。一个教员可以讲授多门课程。一本参考书可以供多门课程使用。表3-1所示的示例数据表示了C、T、B之间的关系。,表3-1 Teaching 表,关系模式Teaching具有唯一候选码(C, T, B),即全码。因而TeachingBCNF。 但是当某一课程(如物理)增加一名讲课教员,如李兰时,由于存在多本参考书,所以必须插入多个元组:(物理

15、,李兰,普通物理学)、(物理,李兰,光学原理)、(物理,李兰,物理习题集)。同样,要去掉一门课,也需要删除多个元组。 在这个例子中,存在着称为多值依赖的数据依赖。,定义3.9 设R(U)是属性集U上的一个关系模式。X、Y、Z是U的子集,并且Z=UXY。关系模式R中多值依赖XY成立,当且仅当对于R的任一关系r,给定的一对(x, z)值,有一组y的值,这组值仅仅决定于x值而与z值无关。,在上述的关系模式Teaching中,T多值依赖于C,即CT。即对于一个(物理,光学物理)有一组T值(李勇,王军),这组值仅仅决定于课程C上的值,即物理。这就是多值依赖。 若XY,而Z=F,即Z为空,则称 XY为平凡的多值依赖;反之即为非平凡的多值依赖。,多值依赖的主要性质如下: (1)多值依赖具有对称性。即若XY,则XZ,其中Z=UXY。 (2)多值依赖的传递性。即若XY,YZ,则XZY。 (3)函数依赖可以看作是多值依赖的特殊情况。即若XY,则XY。这是因为当XY时,对X的每一个值x,Y有一个确定的值y与之对应,所以XY。 (4)若XY,XZ,则XYZ。 (5)若XY,XZ,则XYZ。 (6)若XY,XZ,则XYZ,XZY。,64NF,多值依赖对关系模式会产生怎样的影响呢?研究下面的关系模式R=仓库(W),保管员(S),商品(C),假定每个仓库有若干保管员、若干商

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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