关系数据理论备课讲稿

上传人:yulij****0329 文档编号:137942633 上传时间:2020-07-12 格式:PPT 页数:74 大小:827KB
返回 下载 相关 举报
关系数据理论备课讲稿_第1页
第1页 / 共74页
关系数据理论备课讲稿_第2页
第2页 / 共74页
关系数据理论备课讲稿_第3页
第3页 / 共74页
关系数据理论备课讲稿_第4页
第4页 / 共74页
关系数据理论备课讲稿_第5页
第5页 / 共74页
点击查看更多>>
资源描述

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

1、关系数据理论,要点,关系规范化理论研究背景 数据依赖 规范化(Normalization)理论 1NF、2NF、3NF、BCNF、4NF等范式 关系模式规范化的必要性及方法,5.1 问题的提出,问题提出: 针对一个具体问题,如何构造合适的(更好的)数据模式,即如何更好地设计数据的逻辑结构? 关系数据理论的研究背景 关系模型建立在严格的数据理论基础上,并可向别的数据模型转换,因此常以关系模型为背景来讨论这个问题,背景知识,数据模式(schema) 数据库中全体数据的逻辑结构和特征描述,如数据记录的构成,数据间的联系,安全性、完整性要求等。常以某一种数据模型为基础 关系模型的形式化定义:R(U,D

2、,dom,F),本章简化为R(U, F) 关系模型R的一个关系r:U上的一个关系r满足F,属性组,一组数据依赖,问题和改进,该模式存在的问题 插入异常:一个系无学生或未安排课程时,无法存入系与负责人删除异常:删除一个系的所有学生信息时,系与负责人也丢失 冗余太大:负责人姓名重复存入 更新异常:当某系负责人更换时,须更新该系所有学生信息中的信息,更新不完全时,易造成数据不一致 原因:数据依赖存在一些不合适的性质,需寻找更好的模式,如 S(SNO, SDEPT, ) SG(SNO, CNAME, G, ) DEPT(SDEPT, MN, ),5.2 规范化,意图 讨论一个关系属性间不同的依赖情况

3、讨论如何根据属性间依赖关系来判定关系是否有某些不合适的性质 数据依赖概念 反映客观世界数据间的相互关联 通过一个关系中属性间值的相等与否来体现 两种重要的数据依赖 函数依赖(Functional Dependency, FD) 多值依赖(Multivalued Dependency, MVD),5.2.1 函数依赖,定义1 设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作 术语和记号 ,但 ,则称 是非平凡的函数依赖 ,但 ,则称 是平凡的函数依赖 若

4、 ,则X叫做决定因素 若 , ,则记作 若Y不函数依赖于X,则记作,对函数依赖的说明,换句话说:任何时候若某一关系中的两个元组中的X属性组的值相等,则元组中对应的属性组Y的值也相等,类似于函数概念,Y = f(X) 需要指出的是:关系R中,如果属性组X是一个候选码或码,则属性组Y一定函数依赖于X(这与候选码的定义一致) 事实上:如果关系R上有函数依赖XY,而属性X不是一个候选码,则R中可能存在一些数据冗余 例如:R(Sno, Sdept, MN, Cname, Grade)中有函数依赖Sdept-MN,而Sdept并不是候选码,表中数据有大量冗余出现,函数依赖,定义2 在R(U)中,如果 ,并

5、且对于X的任何一个真子集X, 都有 ,则称Y对X完全函数依赖,记作 若 ,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作 定义3 在R(U)中,如果 ,( ) , , , 则称Z对X传递函数依赖,记作,F,P,传递,5.2.2 码,用函数依赖的概念来定义码 定义4 设K为R(U,F)中的属性或属性组合,若 则K为R的候选码(Candidate Key)。 若候选码多于一个,则选定其中的一个为主码(Primary Key) 相关术语 包含在任何一个候选码中的属性,叫做主属性 不包含在任何码中的属性,叫做非主属性 整个属性组是码,称为全码,F,码,定义5 关系模式R中属性或属性组X并非R的码

6、,但X是另一个关系模式的码,则称X是R的外部码(Foreign Key),也称为外码 主码与外码提供了一个表示关系间联系的手段 SC(Sno,Cno,Grade) Studen(Sno,Sname,.) Course(Cno, Cname,.),5.2.3 范式,范式:符合某种级别(条件、要求)的关系模式 范式种类 1NF, 2NF, 3NF, BCNF, 4NF,5NF 按级别(条件、要求)由低到高: 1NF 2NF 3NF BCNF 4NF 5NF 通常称某一关系模式R为第几范式,记作R xNF,1NF(First Normal Form),定义:关系R中每个分量都是不可分割的数据项,则R

7、 1NF 说明:1NF是关系模式的基本要求 举例: 关系模式S-L-C(学号SNO, 系SDEPT, 住处SLOC, 课程CNO, 成绩G)是1NF,5.2.4 2NF,定义:若R 1NF, 且每个非主属性完全依赖于码,则R 2NF 说明:不存在非主属性部分依赖于码的关系为2NF 举例:关系模式 S-L-C(SNO, SDEPT, SLOC, CNO, G) 函数依赖图,关系模式S-L-C是不是2NF?,不是,因为SDEPT和SLOC部分依赖于码,前面的实例是不是2NF?,不是2NF可能出现的问题,插入异常 某学生没有选课时,无法插入其系、住处等信息 删除异常 某学生所有的选课信息都删除后,其

8、系、住处等信息也被删除 修改复杂(更新异常) 学生转系时,除了修改其系名外,还需修改其住处信息;另外,若该学生选修了多门课程,则其对应的重复存储的系、住处等信息需一一修改 冗余 同系的所有学生的住处信息重复存储,同一学生选多门课程时,其系、住处信息重复存储,解决办法,模式分解 依赖关系分析 上例中的模式分解为下列两个模式,该模式是2NF SC(SNO, CNO, G) (SNO, CNO)G S-L(SNO, SDEPT, SLOC) SNO SDEPT, SNO SLOC, SDEPT SLOC,分解说明,一个1NF,但非2NF的关系总是可以被分解成为一组2NF的关系 规范化过程中通过一组投

9、影运算消除部分依赖,建议作如下分解(第一步分解) 已知关系R(A,B,C,D), (A,B)为主码,即(A,B)-C, (A,B)-D,且A-D, 则将R分解成为两个投影: R1(A,D), A为主码 R2(A,B,C), (A,B)为主码,A为外码 这样,R可以通过R1和R2的自然连接运算得以恢复,即满足分解的无损连接性,5.2.5 3NF,定义:若R2NF, 且它的任何一个非主属性都不传递依赖于任何候选码,则R 3NF 说明:即不存在非主属性部分依赖和传递依赖于码的关系为3NF 推论:不存在非主属性的模式为3NF 上例中得到的关系模式是2NF SC(SNO, CNO, G); S-L(SN

10、O, SDEPT, SLOC);,S-L中存在传递传递依赖,故该模式不是3NF,可能问题? 如何改造?,不是3NF可能存在的问题,插入异常 只有当知道某学生的系时才能插入其住处信息 删除异常 当删除某系对应的所有学生时,有关该系学生住处的信息也被删除掉了 修改异常 一个系及其住处信息重复出现,只更新一个元组中对应的系及其住处时可能导致数据不一致 冗余 同系学生的住处重复存储,解决方法,继续模式分解 如上例中的模式可分解为3NF SC(SNO, CNO, G); (SNO, CNO) G S-D(SNO, SDEPT); SNO SDEPT D-L(SDEPT, SLOC); SDEPT SLO

11、C,SNO,SDEPT,SLOC,SDEPT,分解说明,一个2NF,但非3NF的关系总是可以被分解成为一组3NF的关系 规范化过程中通过一组投影运算消除传递依赖,建议作如下分解(第二步分解) 已知关系R(A,B,C), A为主码(A-B, A-C),且B-C, 则将R分解成为两个投影: R1(B,C), B为主码 R2(A,B), A为主码,B为外码 这样,R可以通过R1和R2的自然连接运算得以恢复,分解满足分解的无损连接性,3NF的进一步说明,在不考虑主属性对码的部分依赖和传递依赖时,可以认为是实现了彻底的分离,已消除了插入异常,删除异常,修改异常,冗余等问题 但是,当关系中存在两个或更多的

12、候选码时,尤其是有几个候选码、且候选码内的属性又有部分复合或交迭时,仅仅满足3NF仍有问题,需要进一步分解成BCNF,5.2.6 BCNF,(Boyce/Codd Normal Form) 定义:若每一个决定因素都包含(或是)码,则R BCNF 说明 BCNF中所有的依赖都是包含码的依赖 一个BCNF范式必是3NF,但一个3NF范式不一定是BCNF (3NF中可能存在主属性对码的部分和传递依赖) BCNF是在函数依赖范畴内对关系模式的彻底分离,已消除了插入和删除异常 通常认为BCNF是扩充的第三范式,一般数据库设计达到BCNF已足够,实例,例1: SJP(学生S, 课程J, 名次P) (S,J

13、)和(J,P) 均为候选码 函数依赖为(S,J)P, (J,P) S 其中,两个决定因素均包含(是)候选码 可见SJP BCNF 例2: STJ(学生S, 教师T, 课程J) (S,T)和(S,J) 均为候选码 函数依赖为(S,J) T, (S,T) J, T J 其中,T为决定因素,但不包含任何一个候选码 可见STJ 3NF, 但STJ BCNF,例子,前例是3NF, 也是BCNF SC(SNO, CNO, G); (SNO, CNO) G S-D(SNO, SDEPT); SNO SDEPT D-L(SDEPT, SLOC); SDEPT SLOC,SNO,SDEPT,SLOC,SDEPT

14、,5.2.7 多值依赖,属于BCNF的关系模式是不是很完美了呢? 教材P178例子 存在问题? 如何解决?,5.2.8 4NF,4NF就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖 如果一个关系模式是4NF,必定为BCNF 一个关系模式是BCNF,但不是4NF,依然有不好的性质,可以用投影分解的办法解决 例:WSC(仓库W, 保管员S, 商品C) 全码(W,S,C) 存在多值依赖WS, WC,WSC 4NF 可进一步分解使之满足4NF: WS(W,S), WC(W,C) 4NF是多值依赖范畴内最高程度的规范化,5.2.9 规范化理论,规范化 概念:将一个低一级范式的关系模式分解

15、为若干个高一级范式的关系模式的过程 目的:设计正确、良好的关系模式 基本思想:逐步消除关系模式的数据依赖中不合适的部分,使模式达到一定程度的分离,但又不丢失原模式中的信息 模式分解的实质:投影,几个事实,模式分解可以消除冗余,解决更新异常等问题,但也要付出做连接运算等昂贵的代价 需要强调的是:对已知关系模式的范式等级是语义上的,而不仅仅是看某个时刻关系中的数据值,必须考察数据间的依赖 即便是知道了数据依赖,也不能证明一个关系是否3NF。我们只能首先假设这个关系是3NF,而去验证给出的关系中没有违反数据依赖的情形,规范化理论,如何辨别一个关系模式的“好坏”? 不存在部分和传递函数依赖等“不好”的

16、性质的模式是“好”模式,否则会出现冗余和插入、删除、更新等异常现象 规范化过程是用于设计好的数据库的有力辅助,但并不是唯一的方法 最初的设计中尽量做到“概念单一化”,即做到让一个关系描述一个概念、一个实体或实体间的一种联系,这样所设计的关系模式将会接近或达到第三范式,甚至达到BCNF,规范化过程小结,练习一,设计关于供应商供应零件的数据库,要求达到3NF 最初的设计: R(S#, Sname, City, Status, P#, Pname, Color, Weight, QTY) 主码:(S#, P#) 函数依赖: S#Sname, S# Status, S# City, City Status, P# Pname, P# Color, P# Weight 可见,其中有部分依赖,还有传递依赖。该模式仅为1NF,分解,第一步分解,消除部分依赖,得到: R1(S#, P#, QTY),(S#, P#)为码 R2(S#, Sname, Ci

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

最新文档


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

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