关系数据库规范化理论课件.ppt
《关系数据库规范化理论课件.ppt》由会员分享,可在线阅读,更多相关《关系数据库规范化理论课件.ppt(73页珍藏版)》请在三一办公上搜索。
1、1,第7章 关系数据库规范化理论,7.1 函数依赖 7.2 关系规范化 7.3 关系模式的分解准则,2,第7章 关系数据库规范化理论,数据库设计是数据库应用领域中的主要研究课题。关系数据库规范化理论就是数据库设计的一个理论指南。规范化理论研究的是关系模式中各属性之间的数据依赖关系及其对关系模式性能的影响;以及判断关系模式好坏的理论标准范式。如何构造一个合适的关系模式,应构造几个关系模式,每个关系模式由哪些属性组成等,都是数据库设计问题,确切地讲是关系数据库的逻辑设计问题。,3,第7章 关系数据库规范化理论,关系模式的形式化定义 一个完整的关系模式由五部分组成,即它是一个五元组:R(U,D,DO
2、M,F)R:关系名 U:组成该关系的属性名集合 D:属性组U中属性所来自的域 DOM:属性向域的映象集合 F:属性间数据的依赖关系集合,4,第7章 关系数据库规范化理论,什么是数据依赖一个关系内部属性与属性之间的约束关系数据依赖的类型函数依赖(Functional Dependency,简记为FD)多值依赖(Multivalued Dependency,简记为MVD)其他,5,第7章 关系数据库规范化理论,关系模式的简化表示 关系模式五元组R(U,D,DOM,F)可简化为一个三元组:R(U,F)当且仅当属性组U上的一个关系r满足函数依赖关系F时,r称为关系模式 R(U,F)的一个关系。,6,7
3、.1 函数依赖,省=f(城市)只要给出一个具体的城市值就会有唯一一个省值和它对应如“武汉市”在“湖北省”,这里“城市”是自变量X,“省”是因变量或函数值Y。把X函数决定Y,或Y函数依赖于X表示为:XY,7,7.1 函数依赖(续),设有关系模式R(A1,A2,An)X和Y均为A1,A2,An的子集r是R的任一具体关系t1、t2是r中的任意两个元组如果由t1X=t2X可以推导出t1Y=t2Y,则称X函数决定Y,或Y函数依赖于X,记为XY。,8,7.1 函数依赖(续),例:Student(Sno,SName,Sdept,Sage)SnoSNameSnoSdeptSnoSage例:SC(Sno,Cno
4、,Grade)(Sno,Cno)Grade,9,7.1.2 一些术语和符号,平凡函数依赖与非平凡函数依赖 在关系模式R(U)中,对于U的子集X和Y,如果XY,但Y X,则称XY是非平凡的函数依赖 若XY,但Y X,则称XY是平凡的函数依赖例:在关系SC(Sno,Cno,Grade)中,非平凡函数依赖:(Sno,Cno)Grade 平凡函数依赖:(Sno,Cno)Sno(Sno,Cno)Cno如不作特别说明,总是讨论非平凡函数依赖。,10,7.1.2 一些术语和符号,若XY,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。若XY,YX,则记作XY。若Y不函数依赖于X,
5、则记作XY。,11,7.1.2 一些术语和符号,完全函数依赖与部分函数依赖在R(U)中,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作 X F Y。若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X P Y。例:(Sno,Cno)Grade是完全函数依赖,(Sno,Cno)Sdept是部分函数依赖 因为Sno Sdept成立,且Sno是(Sno,Cno)的真子集,12,7.1.2 一些术语和符号,传递函数依赖在R(U)中,如果XY,(Y X),YX YZ,则称Z对X传递函数依赖。记为:X Z注:如果YX,即XY,则Z直接依赖于X。例:在关系S(Sn
6、o,Sname,Dept,Dept_master)中有:Sno dept,Sdept Dept_master Dept_master传递函数依赖于Sno,传递,13,7.1.3 为什么要讨论函数依赖,数据依赖对关系模式的影响 例:建立一个描述学校教务的数据库关系模式:S-L-C(Sno,Sdept,SLOC,Cno,Grade)学生的学号(Sno)、所在系(Sdept)学生所住宿舍楼(SLOC)、课程号(Cno)成绩(Grade)假设每个系的学生都住在一栋楼里,(Sno,Cno)为主码,14,数据示例,15,7.1.3 为什么要讨论函数依赖,关系模式:S-L-C U Sno,Sdept,SLO
7、C,Cno,Grade 属性组U上的一组函数依赖F:F Sno Sdept,Sdept SLOC,(Sno,Cno)Grade,16,7.1.3 为什么要讨论函数依赖,关系模式Student中存在的问题1.数据冗余太大2.更新异常(Update Anomalies)3.插入异常(Insertion Anomalies)4.删除异常(Deletion Anomalies),17,7.1.3 为什么要讨论函数依赖,结论:S-L-C关系模式不是一个好的模式。“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少原因:由存在于模式中的某些函数依赖引起的。解决方法:模式分解,即把一个关系
8、模式分解成两个或多个关系模式,在分解的过程中消除那些“不良”的函数依赖,从而获得良好的关系模式。,18,7.1.3 为什么要讨论函数依赖,分解关系模式把这个单一模式分成3个关系模式:S(Sno,Sdept)Sno SdeptSC(Sno,Cno,Grade)(Sno,Cno)Grade)DEPT(Sdept,SLOC)Sdept SLOC,19,7.2 关系规范化,规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。,20,7.2.1 关系模式中的码,候选码与主码设K为R中的属性或属性组合。若K U,则K称为R的侯选码。
9、若候选码多于一个,则选定其中的一个做为主码。主属性与非主属性包含在任何一个候选码中的属性,称为主属性不包含在任何码中的属性称为非主属性或非码属性全码整个属性组是码,称为全码,F,21,7.2.1 关系模式中的码,例:关系模式S(Sno,Sdept,Sage),单个属性Sno是码SC(Sno,Cno,Grade)中,(Sno,Cno)是码关系模式R(P,W,A)P:演奏者 W:作品 A:听众 一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品 码为(P,W,A),即All-Key,22,例:有关系模式 学生(学号,姓名,性别,身份证号,年龄,所在系)候选码:
10、学号,身份证号。主码:“学号”或“身份证号”。主属性:学号,课程号。非主属性:姓名,性别,年龄,所在系。,23,例有关系模式:选课(学号,课程号,考试次数,成绩)设一个学生对一门课程可以有多次考试,每一次考试有一个考试成绩。候选码:(学号,课程号,考试次数),也为主码。主属性:学号,课程号,考试次数非主属性:成绩。,24,例.有关系模式:授课(教师号,课程号,学年)语义:一个教师在一个学年可以讲授多门不同的课程,可以在不同学年对同一门课程讲授多次,但不能在同一个学年对同一门课程讲授多次。一门课程在一个学年可以由多个不同的教师讲授,同一个学年可以开设多门课程,同一门课程可以在不同学年开设多次。候
11、选码:(教师号,课程号,学年)主码:同候选码。主属性:教师号,课程号,学年非主属性:无称这种候选码为全部属性的表为全码表,25,7.2.1 关系模式中的码,外部码:用于关系表之间建立关联的属性(组)。关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码,也称外码。如在SC(Sno,Cno,Grade)中,Sno不是码,但Sno是关系模式S(Sno,Sdept,Sage)的码,则Sno是关系模式SC的外部码 主码与外部码一起提供了表示关系间联系的手段。,26,7.2.2 范式,范式是符合某一种级别的关系模式的集合关系数据库中的关系必须满足一定的要求
12、。满足不同程度要求的为不同范式(Normal Form)。范式的种类:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF),27,7.2.2 范式,各种范式之间存在联系:某一关系模式R为第n范式,可简记为RnNF。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。,28,1NF,第一范式:如果一个关系模式R的所有属性都是不可分的基本数据项,则R1NF第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库但是满足第一范式的关系模式并不一定是一个好的关系模式,29
13、,1NF,30,2NF,第二范式:如果R(U,F)1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)2NF例:S-L-C(Sno,Sdept,SLOC,Cno,Grade)函数依赖包括:(Sno,Cno)F Grade Sno Sdept(Sno,Cno)P Sdept Sno Sloc(Sno,Cno)P Sloc Sdept Sloc 存在部分函数依赖,不是2NF。,31,2NF(续),S-L-C的码为(Sno,Cno)S-L-C满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno),Sno,Cno,Grade,Sdept,Sloc,S-L-C,32,
14、2NF(续),S-L-C不是一个好的关系模式原因 Sdept、Sloc部分函数依赖于码。解决方法 S-L-C分解为两个关系模式,以消除这些部分函数依赖,33,2NF(续),分解办法首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。然后,将依赖于这些主码的属性放置到相应的表中。最后,去掉只由主码的子集构成的表。S-L-C分解为两个关系模式 SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc),34,2NF(续),分解示例对于S-L-C表,首先分解为如下形式的三张表:S-L(Sno,)C(Cno,)S-C(Sno,Cno,)然后,将依赖于这些主码的属性放置到相应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 规范化 理论 课件
链接地址:https://www.31ppt.com/p-3805836.html