关系数据库理论-第五章关系数据库理论.ppt
《关系数据库理论-第五章关系数据库理论.ppt》由会员分享,可在线阅读,更多相关《关系数据库理论-第五章关系数据库理论.ppt(137页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 关系数据库理论关系数据库理论(6 6学时)学时)学时)学时)主讲:曹志英主讲:曹志英副教授副教授大连海事大学计算机科学与技术学院大连海事大学计算机科学与技术学院研究方向:软件工程与理论研究方向:软件工程与理论数据库与信息系统数据库与信息系统电话:电话:84729625Email:数据库原理和语言数据库原理和语言数据库原理和语言数据库原理和语言学习要点学习要点(1 1)函数依赖及)函数依赖及ArmstrongArmstrong公理系统;公理系统;(2 2)为什么要对模式进行分解,如何分解?)为什么要对模式进行分解,如何分解?(3 3)如何判断关系模式达到几范式?)如何判断关系模式达
2、到几范式?(4 4)如如何何求求属属性性的的闭闭包包及及如如何何求求最最小小函函数数依依赖赖集集?通过本章的学习,应该重点掌握:通过本章的学习,应该重点掌握:章节目录章节目录5.1问题的提出问题的提出5.2规范化(规范化(Normalization)5.3数据依赖的公理系统数据依赖的公理系统5.1 问题的提出问题的提出 5.1.1规范化规范化问题的提出问题的提出l在现实世界中,进行在现实世界中,进行数据处理数据处理,关键关键是:是:针针对对一一个个具具体体问问题题应应该该如如何何构构造造一一个个适适合合于于它它的的数数据模式据模式,即构造合理的即构造合理的数据逻辑结构数据逻辑结构这就这就需要理
3、论指导需要理论指导。l采用关系模型采用关系模型讨论这个问题的讨论这个问题的理由理由:由于关系模型有严格数学理论基础由于关系模型有严格数学理论基础并且可以向别的数据模型转换并且可以向别的数据模型转换l从而,形成了从而,形成了数据库逻辑设计数据库逻辑设计的一个的一个有力工具有力工具关系数关系数据库的据库的规范化理论规范化理论。l规范化理论规范化理论虽然是以关系模型为背景,但是它虽然是以关系模型为背景,但是它对于对于一般的数据库设计一般的数据库设计同样具有理论上的意义。同样具有理论上的意义。l关系模式关系模式:R R(U U,D D,domdom,F F)一个五元组一个五元组 l其中其中:影影响响关
4、关系系模模式式设设计计合合理理性性的的主主要要因因素素为为U和和F,即:,即:l属性属性l属性间依赖关系,属性间依赖关系,所以,可以简化为所以,可以简化为R(U,F);l数据依赖数据依赖是是通通过过一一个个关关系系中中属属性性间间值值的的相相等等与与否否体体现现出出来来的的数数据据间的相互关系。间的相互关系。是数据是数据内在内在的的性质性质,是一种是一种语义体现语义体现;是是现现实实世世界界中中属属性性间间相相互互联联系系的的抽抽象象;表表示示数数据据间间存存在在的一种的一种限制或制约限制或制约关系。关系。根据根据人们人们对事物对事物的理解的理解判定依赖关系。判定依赖关系。l数据依赖数据依赖有
5、多种有多种类型类型,最重要最重要的是的是函数依赖函数依赖(FunctionalDependency,简称简称FD)多值依赖多值依赖(MultivaluedDependency,简称简称MVD)l关系数据库的规范化理论主要包括三个方面的内容:关系数据库的规范化理论主要包括三个方面的内容:函数依赖函数依赖范式(范式(Normal FormNormal Form)模式设计模式设计l其其中中,函函数数依依赖赖起起着着核核心心的的作作用用,是是模模式式分分解解和和模模式式设设计计的的基础,范式是模式分解的标准。基础,范式是模式分解的标准。5.1.2 5.1.2 关系模式的存储异常问题关系模式的存储异常问
6、题数据库的逻辑设计为什么要遵循一定的规范化理论数据库的逻辑设计为什么要遵循一定的规范化理论?什么是好的关系模式?什么是好的关系模式?某些不好的关系模式可能导致哪些问题?某些不好的关系模式可能导致哪些问题?l实例实例:(P171)现在要建立现在要建立一个一个数据库,来描述数据库,来描述学生学生(Student)的一些情况。的一些情况。l面临的面临的对象对象有:有:学生学生(用学号(用学号SNo描述)描述)系系(用系名(用系名SDept描述)描述)系负责人系负责人(用其姓名(用其姓名MN描述)描述)课程课程(用课程名(用课程名CName描述)描述)成绩成绩(G)StudentGCNameMNSDe
7、ptSNol如果用一个如果用一个关系模式关系模式来来描述描述,则得到:,则得到:U=SNo,SName,SDept,MN,CName,Gl由由现实世界现实世界可得知:可得知:一个系有若干学生,但一个学生只属于一个系。一个系有若干学生,但一个学生只属于一个系。一个系只有一名(正职)负责人。一个系只有一名(正职)负责人。一一个个学学生生可可以以选选修修多多门门课课程程,每每门门课课程程有有若若干干学学生生选修。选修。每个学生学习每一门课程都有一个成绩。每个学生学习每一门课程都有一个成绩。l于是,得到属性组于是,得到属性组U上的一组上的一组函数依赖函数依赖:F=SNOSdept ,SDept MN,
8、(SNO,CName)GSNOCNameSDeptGMN图图5.1Student数据库的函数依赖图示数据库的函数依赖图示l若若只考虑函数依赖只考虑函数依赖这一种数据依赖,就得到:这一种数据依赖,就得到:一个描述学校的一个描述学校的数据库模式数据库模式S,它由一个它由一个单一单一的关系模式构成。的关系模式构成。SNOCNameSDeptGMNSNoSDeptMNCNameGStudentSNoSDeptMNCNameG95001计算机计算机李凌李凌数据库数据库9095001计算机计算机李凌李凌数据结构数据结构8695001计算机计算机李凌李凌编译原理编译原理6795002信息信息王平王平数据库数
9、据库7895003数学数学张旺张旺高等数学高等数学7495003数学数学张旺张旺线性代数线性代数87冗余冗余!l这样的关系模式,这样的关系模式,有如下三个毛病有如下三个毛病:(1)插入异常)插入异常:如果一个系刚成立,尚无学生,如果一个系刚成立,尚无学生,或者虽然有学生,但尚未安排课程,或者虽然有学生,但尚未安排课程,那么就无法把这个系及其负责人的信息存入数据库那么就无法把这个系及其负责人的信息存入数据库。(2)删除异常)删除异常:如果某个系的学生全部毕业了,如果某个系的学生全部毕业了,在在删删除除该该系系学学生生选选修修课课的的同同时时,把把这这个个系系及及其其负负责责人人的的信息也丢了信息
10、也丢了。(3)冗余太大)冗余太大:每每一一个个系系负负责责人人的的姓姓名名要要与与该该系系每每一一个个学学生生的的每每门门功功课课的成绩出现的次数一样多,的成绩出现的次数一样多,这这样样,一一方方面面浪浪费费存存储储,另另一一方方面面系系统统要要付付出出很很大大的的代代价来维护数据库的完整性,价来维护数据库的完整性,比如某系负责人更换后,就必须逐一修改每一个元组。比如某系负责人更换后,就必须逐一修改每一个元组。l为什么产生异常?为什么产生异常?模式模式中的中的函数依赖存在不好的性质函数依赖存在不好的性质;或者说,或者说,数据模式组织不合理数据模式组织不合理。l效果效果:这三个模式都这三个模式都
11、不会发生异常不会发生异常冗余也得到控制冗余也得到控制。是一个是一个好好的关系数据库模式的关系数据库模式SNoSDeptMNCNameGStudent分解为分解为SNoSDeptSCNameGSNoSGMNSDeptDS表达模式表达模式l改进改进:把这个把这个单一单一的模式的模式改造改造,分成分成3个关系模式个关系模式。S(SNo,SDept,SNoSDept)SG(SNo,CName,G,(SNo,CName)G)D(SDept,MN,SDeptMN)结结论论:一一个个好好的的关关系系模模式式应应该该具具备备以以下下四四个个条件:条件:尽可能少的数据冗余。尽可能少的数据冗余。没有插入异常。没有
12、插入异常。没有删除异常。没有删除异常。没有更新异常没有更新异常。l注意:注意:一一个个好好的的关关系系模模式式并并不不是是在在任任何何情情况况下下都都是是最优的,要从最优的,要从实际设计的目标实际设计的目标出发进行设计。出发进行设计。5.2 规范化规范化(Normalization)l作用:作用:规范化理论规范化理论使使数据库设计方法数据库设计方法走向走向完备完备。l起源起源:1971年提出。年提出。l定义:如何按照一定的规范设计关系模式,将结定义:如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好
13、的关系数据库模式,好的关系数据库模式转变为好的关系数据库模式,这就是这就是关系的规范化关系的规范化。l数据库模式的好坏和关系中各属性间的依赖关系数据库模式的好坏和关系中各属性间的依赖关系有关,因此,我们先讨论属性间的依赖关系,然有关,因此,我们先讨论属性间的依赖关系,然后再讨论关系规范化理论。后再讨论关系规范化理论。5.2.1 函数依赖函数依赖5.2.2 码:用函数依赖的概念来定义码。码:用函数依赖的概念来定义码。5.2.3 范式(范式(Normal Form)NF5.2.4 多值依赖多值依赖5.2.5 4NF5.2.1 函数依赖函数依赖 l定定义义1:设设R(U)是是属属性性集集U上上的的关
14、关系系模模式式。X,Y是是U的子集,的子集,若若对对于于R(U)的的任任意意一一个个可可能能的的关关系系r,r 中中不不可可能能存存在在两两个元组个元组t,sl在在X上的属性值相等,即上的属性值相等,即tX=sX;l而在而在Y上的属性值不等,即上的属性值不等,即tY sY;则称则称X函数确定函数确定Y或或Y函数依赖函数依赖于于X,记作:,记作:XY。l或者换个通俗的话或者换个通俗的话对于对于X的一个值,只有唯一的的一个值,只有唯一的Y值与之对应,值与之对应,则称则称XY。xf(x)=yYXf(xi)f(xj)xixjyl函数依赖函数依赖是一个是一个语义范畴语义范畴的的概念概念,如:,如:姓名姓
15、名 年龄年龄,姓名姓名 出生日期出生日期,姓名姓名 籍贯籍贯只能在姓名唯一的假设前提下成立。只能在姓名唯一的假设前提下成立。l当当我我们们确确定定关关系系模模式式R中中的的某某个个函函数数依依赖赖时时,是是指指R的的所所有有可可能能关关系系r都都必必须须满满足足这这个个函函数数依依赖赖;反反之之,如如果果R中中只只要要有有一一个个关关系系r不不满满足足这这个个函函数数依依赖,赖,我们就认为我们就认为R不存在这个函数依赖。不存在这个函数依赖。l函函数数依依赖赖只只能能从从属属性性含含义义上上加加以以说说明明,而而不不能能在在数数学上加以证明。学上加以证明。l只只有有数数据据库库设设计计者者才才能
16、能决决定定是是否否存存在在某某种种函函数数依依赖赖。这这就就使使得得数数据据库库系系统统可可以以根根据据设设计计者者的的意意图图来来维维护护数据库的完整性。数据库的完整性。例例如如:关关系系模模式式R12=学学号号(S),课课程程号号(CB),课课程程名名(CN),学学期期数数(T),学学分分(CG),成成绩绩(G)中中的的函函数数依依赖赖可可 表表 示示 为为:CBT;(S,CB)G;CBCN;CBCG;(S,CB,CN)G等等。等等。几个几个记号记号和和术语术语:若若Y不函数依赖于不函数依赖于X,记作记作XY。XY,但,但X Y,则称则称XY是是平凡的函数依赖平凡的函数依赖。若若XY,则,
17、则X叫做叫做决定因素决定因素(Determinant)。)。若若XY,YX,则记作则记作XY。XY,但,但YX,则称则称XY是是非平凡的函数依赖非平凡的函数依赖。(一般情况下都讨论的是非平凡依赖)。(一般情况下都讨论的是非平凡依赖)。定义定义2:完全依赖完全依赖和和部分依赖部分依赖l例如:例如:关系模式关系模式R12=S,CB,CN,T,CG,G中,中,CBT说明说明T完全函数依赖于完全函数依赖于CB;又因为又因为(S,CB)G,(S,CB,CN)G,则则G部分依赖于(部分依赖于(S,CB,CN)。)。l在实际的一个关系表中:在实际的一个关系表中:-如果主码只有一个属性,则如果主码只有一个属性
18、,则基本上是基本上是完全函数依赖完全函数依赖。-如果主码由若干个属性组成,则如果主码由若干个属性组成,则可能存在可能存在部分依赖部分依赖,也可能是也可能是完全依赖完全依赖。l若若XY,但但Y不不完完全全函函数数依依赖赖于于X(只只依依赖赖于于X的的一一部部分分),则称则称Y对对X部分函数依赖部分函数依赖,记作:,记作:l在在R(U)中中,如如果果XY,并并且且对对于于X的的任任何何一一个个真真子子集集X,都有都有XY,则称则称Y对对X完全函数依赖完全函数依赖。记作:。记作:实例实例1存在以下函数依赖:存在以下函数依赖:l lSNoSName(若无重名)(若无重名)l lSNoSDeptl lS
19、NoSAge年龄年龄系系姓名姓名学号学号SAgeSDeptSNameSNo在关系在关系SS S(S SNONO,S SNameName,S SDeptDept,S SAgeAge )中)中实例实例2l在这里,单个属性不能作为决定因素,但属性在这里,单个属性不能作为决定因素,但属性的组合可以作为决定因素,即:的组合可以作为决定因素,即:成绩成绩课程号课程号学号学号GCNoSNo在关系在关系SS(SNO,CNo,G)中)中SNOCNoCNOSNO(SNO,CNo)GF是决定因素是决定因素SNOGCNOG零件编号零件编号零件名零件名(零件编号,工程编号,规格型号)(零件编号,工程编号,规格型号)数量
20、数量(工程编号,零件编号)(工程编号,零件编号)零件名称,规格型号零件名称,规格型号(零件编号,工程编号)(零件编号,工程编号)实例实例3lPJTP(*工工程程编编号号,工工程程名名称称,*零零件件编编号号,零零件名称,规格型号,数量件名称,规格型号,数量)工程名称工程名称工程编号工程编号工程名称工程名称(工程编号,零件编号)(工程编号,零件编号)数量数量定义定义3:传递依赖传递依赖lR(U)中,如果中,如果XY(YX),YX,YZ,则称则称Z对对X传递函数依赖传递函数依赖。l加上条件加上条件YX是因为如果是因为如果YX,则则XY ,实际上是实际上是 ,是,是直接函直接函数依赖数依赖,而不是传
21、递函数依赖,而不是传递函数依赖。例如:例如:关系模式关系模式R=A,B,C,D,其上的函数依赖集其上的函数依赖集F=AB,BC,AC,ABD,则则AC为传递函数依赖。为传递函数依赖。5.2.2 码:用函数依赖的概念来定义码:用函数依赖的概念来定义码。码。l定义定义4:设:设K为为R(U,F)中属性或属性组合。中属性或属性组合。l主属性主属性(Primeattribute)l非非主主属属性性(Non Prime attribute)或或非非码码属属性性(Non-Key-attribute)l全码全码(allkey):):关系模式中,整个属性组是码。关系模式中,整个属性组是码。l定义定义5:外码外
22、码关系模式关系模式R 中属性或属性组中属性或属性组X并非并非R 的码,但的码,但X X是是另一个关系模式的码,则另一个关系模式的码,则X是是R的的外部码外部码(ForeignKey),),也称也称外码外码。若候选码为多个,则选定其中的一个为若候选码为多个,则选定其中的一个为主码主码(PrimaryKey)。)。若若,但,但不存在不存在K的真子集的真子集K,使得使得则则K为为R的的候选码候选码(CandidateKey),),5.2.3 范式(范式(Normal Form)NF l必要性必要性:关系数据库中:关系数据库中关系要满足一定要求;关系要满足一定要求;满足不同层要求的关系,为不同范式。满
23、足不同层要求的关系,为不同范式。l范式的提出范式的提出:19711972年,系统地提出年,系统地提出1NF,2NF,3NF。1974年年,Codd和和Boyce又又共共同同提提出出了了一一个个新新范范式式BCNF。1976年,年,Fagin提出提出4NF。后来又提出了后来又提出了5NF。l范式范式表示表示关系关系的某一的某一级别级别,现在把范式理解为符合某一种级别的关系模式的集合,现在把范式理解为符合某一种级别的关系模式的集合,则则R为第几范式,可写成为第几范式,可写成R xNF。各种范式之间各种范式之间有如下有如下关系关系一个高一级的范式,必须属于低一级范式。一个高一级的范式,必须属于低一级
24、范式。一个低一级范式的关系模式,通过模式分解,可以转化为若干一个低一级范式的关系模式,通过模式分解,可以转化为若干个高一级范式的关系模式集合。个高一级范式的关系模式集合。这种过程这种过程就叫就叫规范化规范化。规范化的规范化的基本思想基本思想是消除关系模式中的数据冗余,消除数据依是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除赖中的不合适的部分,解决数据插入、删除异常。异常。1NF2NF3NFBCNF4NF5NF5NF 5NF 4NF 4NF BCNF BCNF 3NF 3NF 2NF 2NF 1NF1NF复合数据项复合数据项一、一、1NF 第一范式第一范式l关系模式
25、中每一个关系模式中每一个分量分量,必须是,必须是不可分不可分的数据项,的数据项,l满满足足了了这这个个条条件件的的关关系系模模式式,就就属属于于第第一一范范式式(1NF),即:),即:关系模式中不存在关系模式中不存在复合数据项复合数据项;是是平坦的数据结构平坦的数据结构。l例,职工档案(例,职工档案(非规范的非规范的)工号工号姓名姓名出生时间出生时间受奖情况受奖情况获奖时间获奖时间奖励称号奖励称号获奖等级获奖等级奖励部门奖励部门人们在处理这个问题的时候,人们在处理这个问题的时候,人们在处理这个问题的时候,人们在处理这个问题的时候,不规范的作法不规范的作法不规范的作法不规范的作法是是是是-采用:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 理论 第五
限制150内