关系数据库的规范化理论与数据库设计.ppt
《关系数据库的规范化理论与数据库设计.ppt》由会员分享,可在线阅读,更多相关《关系数据库的规范化理论与数据库设计.ppt(84页珍藏版)》请在课桌文档上搜索。
1、三级数据库技术,第7章 关系数据库的规范化理论与数据库设计,2,本部分占总分的8%主要内容:规范化理论概述函数依赖关系模式分解数据库设计过程,了解关系模式设计的常见问题及应对措施,是学习本章的前提和基础函数依赖定义、逻辑蕴含、码、armstrong公理、常用范式和关系模式分解方法考试重点函数依赖、关系模式规范化程度和模式分析等价标准是重中之重,3,学习本章的目的:针对具体应用,数据要存储,需要什么样的关系模式,解决关系数据库的逻辑设计问题(如何建表)要建合适的表,需要学习规范化理论,4,7.1 关系模式中的常见问题,考点1 关系模式设计的常见问题,已知数据库要存储 教师的姓名和地址,还要存储教
2、师教的课程号和课程设计的关系模式:T(TNAME,ADDRESS,CNO,CNAME)其中,TNAME-教师姓名,ADDRESS-教师地址,CNO-任教课程号,CNAME-课程名称。一个教师可以教多门课程,6,该关系模式可能出现如下问题:数据冗余更新异常(多个记录更新,容易产生数据不一致)插入异常:TNAME,CNO码,某个教师没上课,CNO为空,不能插入)删除异常:某个教师课程全部删除,教师的地址姓名信息全部删除,7,如何设计一个好的关系模式,需要学习规范化理论,考题,1、下列哪一条不是由于关系模式设计不当所引起的问题?A)数据冗余 B)插入异常 C)更新异常 D)丢失修改 D 2009.0
3、32、由于关系模式设计不当所引起的插入异常指的是A、两个事务并发地对同一关系进行插入而造成数据库不一致B、由于码值的一部分为空而不能将有用的信息作为一个元组插入到关系中C、没经授权的用户对关系进行插入D、插入操作因为违反完整性约束条件而遭到拒绝B 2008.09 2005.09,8,3、下列哪些条是由于关系模式设计不当引起的问题?I、数据冗余 II、插入异常 III、删除异常IV、丢失修改 V 级联回滚A、仅II和III B、仅I、II和III C、仅I、IV和V D、仅II、III和IVB 2008.044、由于关系模式设计不当所引起的更新异常指的是A、两个事务并发地对同一个数据项进行更新而
4、造成数据库不一致B、关系的不同元组中数据冗余,更新时未能同时更新有关元组而造成数据库不一致C、未经授权的用户对数据进行了更新D、对数据的更新因为违反完整性约束条件而遭到拒绝B 2007.09,9,下列关于规范化理论的叙述中,哪一条是不正确的?A)规范化理论是数据库设计的理论基础 B)规范化理论最主要的应用是在数据库概念结构设计阶段 C)规范化理论最主要的应用是在数据库逻辑结构设计阶段 D)在数据库设计中,有时候会降低规范化程度而追求高查询性能B 2009.04,2008.09,10,考点2 函数依赖,例 在关系模式R(SNO,NAME,AGE)中,根据语义 一个SNO值对应一个AGE值,不可能
5、出现一个SNO值对应两个AGE值,我们称 SNO函数决定AGE,写作SNO-AGE或AGE函数依赖于SNO 如果一个AGE对应一个SNO,但我们决不能认为AGE函数决定SNO,因为它不符合语义,11,函数依赖定义 设R(U)是属性集U上的一个关系模式,X和Y均为U的子集。若对于R(U)的任一个可能的关系r,r中不可能有两个元组在X中的属性值相等,而在Y中的属性值不等,那么称X函数决定Y XY,或Y函数依赖于X X为决定因素,12,一、函数依赖,例如:学生(Sno,Sname,Sdept,Sage),13,由于在所有的元组中,Sno都是唯一的,因此,Sno函数确定Sname 和 Sdept。,如
6、果规定Sname不能重复,那么在所有的元组中Sname也都是唯一的,可以说,Sname函数确定Sdept,或者说,Sdept函数依赖于Sname 记作:Sname Sdept,或者说,Sname 和 Sdept函数依赖于Sno,Sno Sname,Sno Sdept,几个术语和符号,如果 XY,则 X 叫做决定因素(Determinant),14,如果 XY,Y X,则记作:X Y,如果Y不函数依赖于X,则记作:XY,二、平凡函数依赖与非平凡函数依赖,如果 XY,但 Y X,则称 XY 是非平凡的函数依赖,15,如果 XY,但 Y X,则称 XY 是平凡的函数依赖,例:在关系 SC(Sno,C
7、no,Grade)中,,非平凡函数依赖:(Sno,Cno)Grade,平凡函数依赖:(Sno,Cno)Sno,(Sno,Cno)Cno,三、完全函数依赖与部分函数依赖,定义5.2 在关系模式 R(U)中,如果XY,并且对于 X 的任何一个真子集X,都有 X Y,则称 Y 完全函数依赖于 X,记作:X F Y 若XY,但Y不完全函数依赖于X,则称 Y 部分函数依赖于X,记作:X P Y,16,三、完全函数依赖与部分函数依赖,例:在关系 SC(Sno,Cno,Grade)中,用X 表示(Sno,Cno),用Y 表示 Grade,那么,(Sno,Cno)Grade但是 Sno Grade,Cno G
8、rade,因此(Sno,Cno)F Grade,17,四、传递函数依赖,定义5.3 在关系模式R(U)中,如果XY,YZ,且Y X,YX,则称 Z 传递函数依赖于X。注:如果YX,即 XY,则称Z 直接函数依赖于X。例:在关系 Std(Sno,Sdept,Mname)中,有:Sno Sdept,Sdept Mname Mname 传递函数依赖于Sno,18,五、函数依赖的逻辑蕴含,设R是一个关系模式,X,Y是U中属性组,F是函数依赖集,若在R的任何一个满足F中函数依赖的关系r上,都有函数依赖X-Y成立,则称F逻辑蕴含X-Y(F推导出X-Y)例如 关系模式S(SNO,NAME,AGE,DNO,D
9、EAN),其属性组上的函数依赖集为 F=SNO-NAME,SNO-AGE,SNO-DNO,DNO-DEAN SNO-DEAN就是F所逻辑蕴含(推导出)的一个函数依赖在关系模式R中为F所逻辑蕴含的函数依赖全体称为F闭包,F+,19,码,定义 设 K 为关系模式 R中的属性或属性组合。若 K U,并且不存在K的真子集决定U,则 K 称为 R 的一个侯选码(Candidate Key)。若关系模式 R 有多个候选码,则选定其中的一个做为主码(Primary key)。主属性与非主属性全码(ALL KEY):主码为关系模式所有属性,20,例:关系模式CSZ(CITY,ST,ZIP)其属性组上的函数依赖
10、为 F=(CITY,ST)-ZIP,ZIP-CITY 推导后(CITY,ST)和(ST,ZIP)为候选码,所以CITY,ST,ZIP都是主属性,21,Armstrong公理系统(推理规则),设F是属性组U上的一组函数依赖,有如下推理规则自反律:若Y X U,则X-Y为F逻辑蕴含(推导出)增广律:若X-Y为F逻辑蕴含,且Z U,则XZ-YZ为F逻辑蕴含传递律:若X-Y及Y-Z为F所逻辑蕴含,则X-Z为F所逻辑蕴含,22,例:关系模式CSZ(CITY,ST,ZIP)其属性组上的函数依赖为 F=(CITY,ST)-ZIP,ZIP-CITY证明(ST,ZIP)是候选码 1、ZIP-CITY F中已知
11、2、(ST,ZIP)-(ST,CITY)增广律 3、(ST,ZIP)-(ST,CITY,ZIP)增广律,23,Armstrong的推论,合并规则:X-Y,Y-Z,则X-YZ伪传递规则:X-Y,WY-Z,则XW-Z分解规则:X-Y,Z Y,则X-Z关系模式码的确定1、找出F集合的所有决定因素,即-左边属性,组合为U12、从U1中找出最小属性组K,使K-U则K为候选码,再找出其他候选码,24,考题,1、下列哪一条不属于Armstrong公理系统中的基本推理规则?A、若Y X,则X-YB、若X-Y,则XZ-YZC、若X-Y,且Z Y,则X-ZD、若X-Y,且Y-Z,则X-ZA 自反律 B 增广律 C
12、分解律 D 传递律C 2009.03,25,2、Armstrong公理系统中的增广律的含义:设R是一个关系模式,X,Y是U中属性组,若X-Y为F所逻辑蕴含,且Z U,则【1】为F所逻辑蕴含XZ-ZY 2008.093、下列关于部分函数依赖的叙述中,哪条是正确的?A、若X-Y,且存在Y的真子集Y,X-Y,则Y对X部分函数依赖B、若X-Y,且存在Y的真子集Y,X-Y,则Y对X部分函数依赖C、若X-Y,且存在X的真子集X,X-Y,则Y对X部分函数依赖D、若X-Y,且存在X的真子集X,X-Y,则Y对X部分函数依赖C 2007.09,26,3、设有关系模式R(B,C,M,T,A,G),根据语义有如下函数
13、依赖集:F=B-C,(M,T)-B,(M,C)-T,(M,A)-T,(A,B)-G,关系模式R的码是【1】(1)取出函数依赖的左部,B,M,T,C,A(2)找出最小组合决定其他属性,M,A,27,4、下列关于函数依赖的叙述中,哪一条是不正确的?A、若X-Y,Y-Z,则X-ZB、若X-Y,YY,则X-YC、若X-Y,XX,则X-YD、若XX,则X-XA 传递 B 分解 D 自反律C 2007.045、下列关于关系模式的码和外码的叙述中,哪些是正确的I 主码可以是单个属性,也可以是属性组II 外码可以是单个属性,也可以是属性组III 一个关系模式的主码与该关系模式的任何一个外码的交一定为空IV 一
14、个关系模式的主码与该关系模式的所有外码的并一定包含了该关系模式的所有属性A)I和II B)I、II和III C)I、II和IV D)I、III和IVA,28,6、下列关于关系模式的码的叙述中,哪一项是不正确的?A)当候选码多于一个时,选定其中一个作为主码B)主码可以是单个属性,也可以是属性组C)不包含在主码中的属性称为非主属性D)若一个关系模式中的所有属性构成码,则称为全码C 不包含在任何码中的属性,29,考点3 1NF、2NF,3NF,BCNF,关系模式的规范化:解决插入、删除和更新异常,尽量消除数据冗余,消除不合适的数据依赖 这就要求关系模式应该满足一定的条件 关系模式满足不同的条件,称为
15、不同的范式,30,1NF范式 如果关系模式R的所有属性都是不可再分解的,则称R属于第一范式,简称1NF,记做R1NF。满足1NF的关系为规范化的关系,否则为非规范化的关系1NF的模式是关系数据库的最基本要求,不是理想的模式,可能存在部分函数依赖,存在冗余和更新异常,31,例如:学生关系S(学号,姓名,成绩),其中属性成绩又分为英语、数学和语文三个数据项,由于存在属性再分,所以关系模式S不是1NF,即S1NF例题:下列关于1NF的叙述中,哪条不正确A、满足1NF中的关系可以包含复合属性B、满足1NF中的关系不可以包含复合属性C、满足1NF的关系称为规范化关系,否则称为非规范化关系D、不满足1NF
16、的数据库模式不能称为关系数据库A,32,2NF 关系模式R1NF,且每个非主属性完全依赖于码,则称R属于2NF判断关系是否属于2NF关系SC(Sno,Cno,Grade,Sdept)F=(Sno,Cno)-Grade,Sno-Sdept判断步骤(1):找出所有候选码,SC只有一个候选码(Sno,Cno)(2)确定非主属性,Grade,Sdept是关系SC的非主属性(3)看非主属性对码的函数依赖情况:Grade完全依赖码,Sdept依赖于Sno,部分依赖码,所以SC不是2NF如何变为2NF,分为两个表,SG(Sno,Cno,Grad)和S(Sno,Sdept),33,例题 判断关系S是否属于2N
17、F范式 S(SNO,NAME,AGE,DNO,DEAN)F=SNO-NAME,SNO-AGE,SNO-DNO,DNO-DEAN)(1)找所有候选码:F的左部(SNO,DNO),码为最小的属性集,SNO决定其他所有属性,所以SNO为码(2)显然非主属性完全依赖SNO,所以S属于2NF但关系S由于存在传递依赖,仍然存在冗余、更新,插入和删除异常如何消除传递依赖,关系分解SI(SNO,NAME,AGE,DNO)DEPT(DNO,DEAN)变为3NF,34,3NF 若关系模式R2NF,并且每个非主属性都不传递依赖于码,则称R属于3NF 每个非主属性既不部分依赖码也不传递依赖码 不存在非主属性依赖于非主
18、属性,35,考题,1、有关系模式P(C,S,T,R,G),根据语义F=C-T,ST-R,TR-C,SC-G 关系模式P的规范化程度最高达到()2004.9A、1NF B、2NF C、3NF D、BCNF)候选码:F每个函数依赖左部集合(C,S,T,R)(ST)为码(SC为码)不存在部分依赖和传递依赖,所以是3NF,不是BCNF2、设有关系模式R(A,B,C),根据语义有如下函数依赖F=A-B,(B,C)-A),关系模式R的规范化程度最高达到()2006.4A、1NF B、2NF C、3NF D、4NF码为(B,C),(A,C),不存在非主属性,所以最高为3NF,4NF为多值依赖,36,BCNF
19、 若关系模式R1NF,且对于每个非平凡函数依赖X-Y,X必须包含码,则R属于BCNF 其中Y不一定是非主属性判断BCNF,只要决定因素包含码就可以了一个关系只有两个属性,必定为BCNF范式在函数依赖中,BCNF达到最高规范化程度,37,例 CSZ(CITY,ST,ZIP)F=(CITY,ST)-ZIP,ZIP-CITYCSZ是否属于BCNF(1)找码:F的左部(CITY,ST,ZIP),两两组合(CITY,ST),(CITY,ZIP),(ST,ZIP),显示(CITY,ST)和(ST,ZIP)为码,没有主属性所以CSZ至少为3NF由于ZIP-CITY,决定因素不包含码,所以不属于BCNF,38
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 规范化 理论 设计
链接地址:https://www.desk33.com/p-246479.html