数据库课件关系数据库设计理论

上传人:宝路 文档编号:48103204 上传时间:2018-07-09 格式:PPT 页数:88 大小:1.08MB
返回 下载 相关 举报
数据库课件关系数据库设计理论_第1页
第1页 / 共88页
数据库课件关系数据库设计理论_第2页
第2页 / 共88页
数据库课件关系数据库设计理论_第3页
第3页 / 共88页
数据库课件关系数据库设计理论_第4页
第4页 / 共88页
数据库课件关系数据库设计理论_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《数据库课件关系数据库设计理论》由会员分享,可在线阅读,更多相关《数据库课件关系数据库设计理论(88页珍藏版)》请在金锄头文库上搜索。

1、 第六章 关系数据库设计理论12问题的提出基本概念34规范化函数依赖的公理系统5模式分解6.1 问题的提出v 针对一个具体问题,设计一个好的关系数据库系 统,关键是要构造一个适合于它的数据模式(数据 库逻辑设计问题)v 数据库逻辑设计主要解决的问题:n 应该构造几个关系模式n 每个关系模式包括哪些属性v 数据库逻辑设计工具关系数据库的规范化理论6.1 问题的提出例:描述电力设备存放管理的数据库数据库: WAE(仓库号,所在区域,区域主管,设备号,数量)语义:一个区域有多个仓库,一个仓库只能属于一个区域 ;一个区域只有一个区域主管;一个仓库可以存放多种设备,每种设备可以存放在多个仓库中;每个仓库

2、的每种设备都有一个库存数量。6.1 问题的提出 数据冗余太大浪费大量的存储空间 更新异常更新代价大,可能导致数据不一致 插入异常该插的数据插不进去 删除异常不该删除的数据不得不删,造成某些数据丢失存在的问题:6.1 问题的提出结论: WAE关系模式不是一个好的模式。 “好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。原因:由存在于模式中的某些数据依赖引起的解决方法:通过分解关系模式来消除其中不合适的 数据依赖。6.1 问题的提出 分解成三个关系模式即可:W(仓库号,所在区域);A(区域,区域主管);WE(仓库号,设备号,数量)6.2 基本概念规范化理论正是用来改造关系模式

3、,通过分解关系模式来消除其中不合 适的数据依赖,以解决插入异常、删除异 常、更新异常和数据冗余等问题。6.2.1 函数依赖定义6.1 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r, 对t1,t2 r,若t1X=t2X,则t1Y=t2Y则称X函数决定Y或Y函数依赖X,记作XY。 如:仓库号 所在区域 所在区域 区域主管(仓库号,设备号) 数量若Y不函数依赖于X, 则记为X Y若XY,并且YX, 则记为XY若XY,则称X为这个函数依赖的决定因素。6.2.1 函数依赖1. 函数依赖是语义范畴的概念,只能根据数据的语 义来确定函数依赖。例:“区域主管所在

4、区域” 只有在不允许有同名 人的条件下成立2. 函数依赖不是指关系模式R的某个或某些关系实例 满足的约束条件,而是指R的所有关系实例均要满 足的约束条件。3.函数依赖存在的时间无关性。说明:6.2.1 函数依赖 函数依赖与属性间的联系类型有关 (1) 若属性X和Y之间有“一对一”的联系则:X Y,Y X,X Y (2) 若属性X和Y之间有“多对一”的联系则:X Y,但Y X (3)若属性X和Y之间有“多对多”的联系则:X与Y之间不存在任何函数依赖注:当确定函数依赖关系时,可从属性间的联系入手6.2.1 函数依赖 平凡函数依赖与非平凡函数依赖定义6.2 在关系模式R(U)中,对于U的子集X和Y:

5、若XY,但Y X,则称XY是非平凡函数依赖.若XY,但Y X,则称XY是平凡函数依赖.例:在关系WAE中,非平凡函数依赖:(仓库号,设备号) 数量平凡函数依赖: (仓库号,设备号)仓库号(仓库号,设备号)设备号注:对任一关系模式,平凡函数依赖必然存在,则一般讨论非平凡函 数依赖。6.2.1 函数依赖 完全函数依赖与部分函数依赖定义6.3 在R(U)中,如果XY,并且对于X的任何一个真子集X ,都有X Y, 则称Y对X完全函数依赖,记作X Y。若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X P Y。例:在关系WAE中,由于: (仓库号,设备号) 数量, 但仓库号数量, 设 备号

6、数量 因此: (仓库号,设备号)数量6.2.1 函数依赖 传递函数依赖与直接函数依赖如果YX, 即XY,则Z对X直接函数依赖。例:在关系wae中有:定义6.4 在R(U)中,如果XY,YZ,且Y X,YX,则称Z对X传递函数依赖,记作X t Z 。仓库号所在区域,所在区域区域主管 可得到传递函数依赖:仓库号 t 区域主管6.2.2 码定义6.5 设K为R中的属性或属性组合。若K F U,则K称为R的一个侯选码。若关系模式R有多个候选码,则选定其中的一个做为主码。 主属性:包含在任何一个候选码中的属性 非主属性:不包含在任何一个码中的属性 全码:整个属性组全是码6.2.2 码定义6.5 关系模式

7、R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码。注:主码和外码一起提供了表示关系间联系的手段。例:在关系SC(Sno, Cno, Grade)中,由于:Sno不是SC的码,但是另一个关系S的码因此:Sno是SC的外码6.3 规范化 范式是对关系数据库的规范化过程中为不同 程度的规范化要求设立的不同标准。 范式是符合某一种级别的关系模式的集合。 范式的种类:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF)6.3 规范化 各种范式之间存在联系:5NF 4NF BCNF 3NF 2NF 1NF 某一关

8、系模式R为第n范式,可简记为RnNF。 通过模式分解将一个低级范式的关系模式转换为若 干个高级范式的关系模式的过程称作规范化。6.3.1 第一范式(1NF) 定义6.7 满足最低要求的范式。如果一个关系模式R的所有属性都是不可分 的基本数据项,则R1NF。 第一范式是对关系模式的最起码要求。 不满足第一范式的数据库模式不能称为关系数据库。 但满足第一范式的关系模式并不一定是一个好的关系模式。6.3.2 第二范式(2NF)定义6.8 若关系模式R1NF,并且每一个非主属 性都完全函数依赖于R的码,则R2NF。 即:消除非主属性对码的部分依赖 如果一个数据库模式中的每个关系模式都是第二范式的, 则

9、称此数据库模式属于第二范式的数据库模式。 从1NF中消除非主属性对候选码的部分函数依赖,则获得 2NF。6.3.2 第二范式(2NF)例: 关系模式WAE中: WAE(仓库号,所在区域,区域 主管,设备号,数量) 码: (仓库号, 设备号) 主属性:仓库号, 设备号 非主属性: 所在区域、区域主管和数量 函数依赖:6.3.2 第二范式(2NF)仓库号设备号数量所在区域区域主管关系WAE码为(仓库号, 设备号)非主属性所在区域和区域主管部分函数依赖于码WAE满足第一范式,但不满足第二范式。6.3.2 第二范式(2NF) 解决方法:将WAE分解为两个关系模式,消除这些部分函 数依赖:即: WE(仓

10、库号,设备号,数量)WA(仓库号,所在区域,区域主管)仓库号设备号数量关系WE关系WA仓库号所在区域区域主管WE2NF, WA2NF6.3.2 第二范式(2NF)注: 采用投影分解法将一个1NF的关系分解为多个2NF的关系 ,可以在一定程度上减轻原1NF关系中存在的插入异常、 删除异常、数据冗余度大、修改复杂等问题。 将一个1NF关系分解为多个2NF的关系,并不能完全消除 关系模式中的各种异常情况和数据冗余。 如:(1) 若某个区域刚刚设立还没有仓库,则所在区域和 区域主管的值无法插入,造成插入异常。(2) 有一定的数据冗余,当多个仓库处于同一个区域 时,区域主管的值被多次存储。(3) 若某区

11、域要更换区域主管,则要逐一地修改该区 域的所有区域主管记录,稍有不慎,就有可能漏改某些记 录,造成更新异常。6.3.3 第三范式(3NF)如果一个数据库模式中的每个关系模式都是第三范 式的,则称此数据库模式属于第三范式的数据库模 式。从2NF中消除非主属性对候选码的传递依赖,则获得 3NF。定义6.9 如果关系模式R2NF,且每个非主属性都不 传递函数依赖于R的候选码,则称R属于第三范式,简称 3NF,记作R3NF。即:消除非主属性对码的部分依赖和传递依赖6.3.3 第三范式(3NF)例: WE(仓库号,设备号,数量)WA(仓库号,所在区域,区域主管) 函数依赖:WE中: (仓库号,设备号)

12、f 数量WA中:仓库号所在区域,所在区域区域主管可得到传递函数依赖:仓库号 区域主管 因此:WE 3NF,而WA 3NF6.3.3 第三范式(3NF) 原因:区域主管传递依赖于码。 解决方法:将WA分解为两个关系模式,消除这些 传递依赖:即: W(仓库号,所在区域)A(所在区域,区域主管)仓库号所在区域关系W关系A所在区域区域主管W3NF, A3NF6.3.3 第三范式(3NF)注: 采用投影分解法将一个2NF的关系分解为多个3NF的 关系,可以在一定程度上减轻原2NF关系中存在的插 入异常、删除异常、数据冗余度大、修改复杂等问 题。 将一个2NF关系分解为多个3NF的关系,并不能完全 消除关

13、系模式中的各种异常情况和数据冗余。表现 在可能存在主属性对码的部分和传递依赖。6.3.4 BC范式(BCNF) BCNF范式是第三范式的改进形式,建立在第一范 式的基础上,消除了主属性对码的部分和传递依赖。定义6.10 设关系模式R1NF,若对于R的每个函数 依赖XY,若Y不属于X,则X必含有候选码,那么 RBCNF。 即:每一个决定因素(决定属性集)都包含码6.3.4 BC范式(BCNF)证明:BCNF 3NF反证:若RBCNF, 但R3NF,则按3NF定义, 一定有非主属性对码的传递依赖。于是存在:R的码X ,属性组Y,以及非主属 性Z(Z Y),使得XY, Y Z,YX成立 。 由YZ,

14、按BCNF定义,Y含有码,则是YX成 立,这与YX矛盾。 所以:R3NF。6.3.4 BC范式(BCNF)注意: 若RBCNF ,则R3NF 若R3NF ,则R不一定属于BCNF若RBCNF 所有非主属性对每一个候选码都是完全函数依赖; 所有主属性对每一个不包含它的候选码都是完全函数 依赖; 没有任何属性完全函数依赖于非码的任何一组属性。6.3.4 BC范式(BCNF)例1: Course(Cno, Creidt, Pcno) 函数依赖:Cno Credit, Cno Pcno即:无部分依赖和传递依赖,且Cno是唯一决定因素 因此:Course 3NF,且Course BCNF 码: Cno

15、即为主属性,决定因素6.3.4 BC范式(BCNF)例2:在关系模式SCP(S, C, P)中,S表示学生 ,C表示课程, P表示名次。说明:每一个学生选修每一门课程都有一个固定的名次: 每一门课程中每一名次只对应一个学生(假设没有相同名次的学生) :(S,C)P(C,P)S6.3.4 BC范式(BCNF)SCPCPS关系SCP 候选码: (S,C) 和(C,P) 即:S,C和P都是主属性 决定因素: (S,C)和(C,P) 结论:SCPBCNF 只有(S,C)和(C,P) 决定因素且包含候选码 ,无其他决定因素SCP3NF S、C、P都是主属性 无部分依赖和传递依赖6.3.4 BC范式(BCNF)例3:在关系模式WES(仓库号,设备号,职工号)中。说明: 1.一个仓库可以有多个职工; 2.一个职工仅在一个仓库工作; 3.每个仓库一种设备仅由一名职工保管,但每名职工可以 保管多种设备. 问:该关系的码?属于第几范式?答:码: (仓库号,设备号) 属于3NF,但不属于BCNF 非BCNF的不良特性 :某位职工刚分配到 一个仓库工作,但 尚未负责具体设备 ,这样的信息就无 法插入。职工号仓库号(仓库号,设备号) 职工号6.3.5 多值依赖与第四范式

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

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

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