版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上海师范大学 计算机系数据库原理与实践数据库原理与实践 (SQL Server)陆黎明陆黎明 王玉善王玉善 陈军华陈军华 编著编著清华大学出版社清华大学出版社 2015.10上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第2页8.1 关系模式规范化设计的必要性关系模式规范化设计的必要性 关系数据库的关系数据库的模式设计为什么要规范化模式设计为什么要规范化?什么是好的关系模什么是好的关系模式式?一个一个“不好不好”的关系模式可能产生哪些问题的关系模式可能产生哪些问题?下面通过?下面通过一个例子来加以分析和讨论。一个例子来加以分析和讨论。例例8.1 假设有一个存放学生选
2、课有关信息的关系,其关系模式如下:假设有一个存放学生选课有关信息的关系,其关系模式如下: R(学号,课程号,课程名,课程类型,学时,学分,选修日期,成绩学号,课程号,课程名,课程类型,学时,学分,选修日期,成绩)通过对某大学的实地调查,通过对某大学的实地调查,已知事实(语义)如下已知事实(语义)如下:(1) 一门课程有唯一的课程名、课程类型、学时和学分,但课程名不唯一;一门课程有唯一的课程名、课程类型、学时和学分,但课程名不唯一;(2) 一门课程可以被多名学生选修;一门课程可以被多名学生选修;(3) 一名学生可以选修多门课程;一名学生可以选修多门课程;(4) 一名学生可以多次选修同一门课程,每
3、选修一次有一个成绩。一名学生可以多次选修同一门课程,每选修一次有一个成绩。一个满足上述语义的关系模式一个满足上述语义的关系模式R的一个实例如表的一个实例如表8.1所示。所示。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第3页8.1 关系模式规范化设计的必要性关系模式规范化设计的必要性 分析表分析表8.1发现该关系存在以下几个方面的问题:发现该关系存在以下几个方面的问题:(1) 数据冗余数据冗余。同一门课程的。同一门课程的课程信息重复出现课程信息重复出现的次数与选修该门课程的学的次数与选修该门课程的学生的人次相同,这将生的人次相同,这将浪费大量的存储空间浪费大量的存
4、储空间。(2) 更新异常更新异常。由于。由于数据冗余数据冗余,当某门课程的,当某门课程的课程类型变更时课程类型变更时,必须修改与,必须修改与该门课程有关的所有选课记录。这不但工作量大,还该门课程有关的所有选课记录。这不但工作量大,还可能可能因为漏改某些因为漏改某些记录而记录而导致数据不一致导致数据不一致。(3) 插入异常插入异常。当一门课程还尚无学生选修,则无法把该门课程的课程信息。当一门课程还尚无学生选修,则无法把该门课程的课程信息插入数据库,即插入数据库,即该插入的数据插不进去该插入的数据插不进去。(4) 删除异常删除异常。当删除选课记录的同时,会把该门课程的课程信息一并删除。当删除选课记
5、录的同时,会把该门课程的课程信息一并删除掉,即在掉,即在删除数据的同时把不该删的也删掉了删除数据的同时把不该删的也删掉了。可以可以得出结论得出结论:关系模式:关系模式R是一个是一个“不好不好”的关系模式的关系模式。因此,。因此,必须对必须对关系模式进行规范化设计关系模式进行规范化设计。一个。一个好的关系模式应当不会发生好的关系模式应当不会发生插入异常、插入异常、删除异常和更新异常,数据冗余应尽可能小。删除异常和更新异常,数据冗余应尽可能小。例如,可以将关系模式例如,可以将关系模式R分解分解为:为:R1(学号,课程号,选修日期,成绩学号,课程号,选修日期,成绩),R2(课程号,课程名,课课程号,
6、课程名,课程类型,学时,学分程类型,学时,学分),这样前面所述的四个问题就都不存在了。,这样前面所述的四个问题就都不存在了。 关系模式关系模式R为什么会产生这些问题为什么会产生这些问题?一个?一个“不好不好”的关系模的关系模式会有哪些不好的性质式会有哪些不好的性质?如何改造如何改造一个一个“不好不好”的模式?的模式? 上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第4页8.2 函数依赖与码函数依赖与码 关系模式可以形式化地表示为:关系模式可以形式化地表示为: R(U,D,DOM,F) 其中,其中,R:关系名,关系名,U:属性名集合,属性名集合, D:值域集合,值域集
7、合,DOM:属性属性向值域的映像集合,向值域的映像集合,F表示属性间数据依赖关系的集合表示属性间数据依赖关系的集合。 本章中把本章中把关系模式简化为关系模式简化为R(U,F)。 数据依赖是数据依赖是一个关系内部属性与属性之间的一个关系内部属性与属性之间的约束关系约束关系,是现,是现实世界属性间相互联系的实世界属性间相互联系的抽象,是数据内在的性质,是语义抽象,是数据内在的性质,是语义的体现的体现。其中函数依赖(。其中函数依赖(FD)是最重要的一种数据依赖类型,)是最重要的一种数据依赖类型,其他的数据依赖有多值依赖(其他的数据依赖有多值依赖(MVD)等类型。)等类型。 1971年年E.F.Cod
8、d提出提出了针对关系数据库模式设计的规范化了针对关系数据库模式设计的规范化理论。这一理论的理论。这一理论的研究表明使得关系模式研究表明使得关系模式“不好不好”的原因是的原因是由于该关系模式中由于该关系模式中存在某些存在某些不合适的数据依赖,不合适的数据依赖,而通过分解而通过分解关系模式关系模式可消除可消除这些不合适的数据依赖。这些不合适的数据依赖。 上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第5页8.2.1 函数依赖的定义及分类函数依赖的定义及分类 定义定义8.1 设设R(U)是属性集是属性集U上的关系模式,上的关系模式,X,Y是是U的子集。的子集。若对于若对于
9、R(U)的任意一个可能的关系的任意一个可能的关系r,r中不可能存在两个元中不可能存在两个元组在组在X上的属性值相等,而在上的属性值相等,而在Y上的属性值不等,则称上的属性值不等,则称“X函函数确定数确定Y”或或“Y函数依赖于函数依赖于X”,记作,记作XY。 对于函数依赖,对于函数依赖,有以下几点说明有以下几点说明:(1) 函数依赖函数依赖不是指不是指关系模式关系模式R的的某个(或某些)实例某个(或某些)实例应满足的应满足的约束条件,而是指约束条件,而是指R的的所有实例所有实例均要满足的约束条件。均要满足的约束条件。(2) 函数依赖函数依赖是语义范畴的概念是语义范畴的概念,只能,只能根据数据的语
10、义来确定根据数据的语义来确定一一个函数依赖,而个函数依赖,而不能按照其形式化定义来证明不能按照其形式化定义来证明一个函数依赖一个函数依赖是否成立。如是否成立。如 “课程名课程名学时学时”成立的条件是课程名不重复。成立的条件是课程名不重复。(3) 数据库设计者数据库设计者可以对现实世界作强制性规定可以对现实世界作强制性规定,如规定课程名,如规定课程名不能同名,使得不能同名,使得“课程名课程名学时学时”函数依赖成立。函数依赖成立。 上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第6页8.2.1 函数依赖的定义及分类函数依赖的定义及分类 术语和记号术语和记号:若若XY,则
11、,则X称为这个函数依赖的决定属性组,也称为称为这个函数依赖的决定属性组,也称为决定因素决定因素。若若XY,YX,则记作,则记作XY。若若Y不函数依赖于不函数依赖于X,则记作,则记作XY。 在在确定函数依赖时确定函数依赖时,可以,可以从属性间的联系入手从属性间的联系入手。函数依赖与。函数依赖与属性间的联系类型有关:属性间的联系类型有关:(1) 若属性若属性X和和Y之间有之间有“一对一一对一”的联系,则的联系,则XY,YX,XY。(2) 若属性若属性X和和Y之间有之间有“多对一多对一”的联系,则的联系,则XY,但,但YX。(3) 若属性若属性X和和Y之间有之间有“多对多多对多”的联系,则的联系,则
12、X与与Y之间不存在任何函数之间不存在任何函数依赖。依赖。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第7页8.2.1 函数依赖的定义及分类函数依赖的定义及分类 定义定义8.2 在在R(U)中,对于中,对于U的子集的子集X和和Y。若。若XY,但,但Y X,则称则称XY是非平凡的函数依赖是非平凡的函数依赖。若。若XY,但,但Y X,则称,则称XY是是平凡的函数依赖平凡的函数依赖。 显然,对于任一关系模式,显然,对于任一关系模式,平凡函数依赖平凡函数依赖都是必然成立的,都是必然成立的,它它不反映新的语义不反映新的语义。若不特别声明,总假定讨论的是非平凡。若不特别声明,总
13、假定讨论的是非平凡的函数依赖。的函数依赖。 定义定义8.3 在在R(U)中,如果中,如果XY,并且对于,并且对于X的任何一个真子的任何一个真子集集X,都有,都有XY, 则称则称Y对对X完全函数依赖完全函数依赖,记作,记作XY。若。若XY,但,但Y不完全函数依赖于不完全函数依赖于X,则称,则称Y对对X部分函数依赖部分函数依赖,记作记作XY。 定义定义8.4 在在R(U)中,如果中,如果XY,YX,YZ(Z Y且且Z X),则称),则称Z对对X传递函数依赖传递函数依赖,记作,记作XZ。 这里加上条件这里加上条件YX,是因为如果,是因为如果YX,则,则XY,实际上,实际上Z对对X是直接函数依赖而不是
14、传递函数依赖。是直接函数依赖而不是传递函数依赖。fpt上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第8页8.2.1 函数依赖的定义及分类函数依赖的定义及分类例如例如,对于,对于关系模式关系模式SMC(学号,专业号,专业名,创办日期,学号,专业号,专业名,创办日期,所属学院,课程号,选修日期,成绩所属学院,课程号,选修日期,成绩) 平凡的函数依赖平凡的函数依赖有:学号有:学号学号,学号, (学号,专业号)(学号,专业号)学号学号 等等等等 ; 非平凡的函数依赖非平凡的函数依赖有:有: 学号学号专业号,专业号, 专业号专业号(专业名,创办日期,所属学院),(专业名,创
15、办日期,所属学院), (学号,课程号,选修日期)(学号,课程号,选修日期)成绩成绩 ; 这三个非平凡的函数依赖这三个非平凡的函数依赖同时也是完全函数依赖同时也是完全函数依赖。 部分函数依赖有部分函数依赖有:(学号,课程号,选修日期):(学号,课程号,选修日期)专业号专业号 ; 传递函数依赖有传递函数依赖有:学号:学号专业名专业名 。pt上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第9页8.2.2 函数依赖的公理系统和推理规则函数依赖的公理系统和推理规则 定义定义8.5 对于满足一组函数依赖对于满足一组函数依赖F的关系模式的关系模式R(U,F),其任,其任何一个关系
16、何一个关系r,若函数依赖,若函数依赖XY都成立,(即都成立,(即r中任意两元组中任意两元组t和和s,若,若tX=sX,则,则tY=sY),则称),则称F逻辑蕴涵逻辑蕴涵XY ,或称或称XY为为F所蕴涵所蕴涵。 给定函数依赖集给定函数依赖集F,问问XY是否为是否为F所蕴涵所蕴涵,需要一套推理,需要一套推理规则,这组推理规则是规则,这组推理规则是Armstrong在在1974年首先提出来的,年首先提出来的,称为称为Armstrong公理系统公理系统。(1) 自反律自反律:若:若Y X U,则,则XY为为F所蕴涵。所蕴涵。(2) 增广律增广律:若:若XY为为F所蕴涵,且所蕴涵,且Z U,则,则XZY
17、Z为为F所蕴涵。所蕴涵。(3) 传递律传递律:若:若XY及及YZ为为F所蕴涵,则所蕴涵,则XZ为为F所蕴涵。所蕴涵。 注意:由自反律所得到的函数依赖均是平凡的函数依赖,注意:由自反律所得到的函数依赖均是平凡的函数依赖,自自反律的使用并不依赖于反律的使用并不依赖于F。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第10页8.2.2 函数依赖的公理系统和推理规则函数依赖的公理系统和推理规则 根据公理系统的三条推理规则又可推出下面根据公理系统的三条推理规则又可推出下面三条推理规则三条推理规则:(4) 合并规则合并规则:若:若XY,XZ,则,则XYZ。(5) 伪传递规则伪传
18、递规则:若:若XY,WYZ,则,则XWZ。(6) 分解规则分解规则:若:若XY及及Z Y,则,则XZ。 引理引理8.l XA1A2Ak成立的充分必要条件是成立的充分必要条件是XAi成立(成立(i=l,2,k)。)。 合并规则、伪传递规则、分解规则以及引理合并规则、伪传递规则、分解规则以及引理8.1的证明作为练的证明作为练习留给读者自己完成。引理习留给读者自己完成。引理8.1中的结论为关系模式设计中各中的结论为关系模式设计中各个关系的码的确定奠定了理论基础。个关系的码的确定奠定了理论基础。 定义定义8.6 在关系模式在关系模式R(U,F)中为中为F所逻辑蕴涵的函数依赖的所逻辑蕴涵的函数依赖的全体
19、称为全体称为F的闭包的闭包,记为,记为F+。 Armstrong公理系统是有效的、完备的公理系统是有效的、完备的。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第11页8.2.3 属性集属性集X关于函数依赖集关于函数依赖集F的闭包的闭包 判定判定XY是否为是否为F所逻辑蕴涵所逻辑蕴涵,即,即判定判定XY是否属于是否属于F+。若。若能能算出算出F+,那么这个判定问题就解决了。但遗憾的是,计算,那么这个判定问题就解决了。但遗憾的是,计算F+是一个是一个NP完全问题完全问题。 为此,人们经过研究提出了一种利用为此,人们经过研究提出了一种利用属性集属性集X关于函数依赖关于函
20、数依赖集集F的闭包的闭包XF+来判定一个来判定一个XY是否为是否为F所逻辑蕴涵所逻辑蕴涵的方法。的方法。 定义定义8.7 设设F为属性集为属性集U上的一组函数依赖,上的一组函数依赖,X U,XF+= A|XA能由能由F根据根据Armstrong公理导出公理导出,则称,则称XF+为属性集为属性集X关于函数依赖集关于函数依赖集F的闭包的闭包。 算法算法8.1 求属性集求属性集X(X U)关于)关于U上的函数依赖集上的函数依赖集F的闭包的闭包XF+ 。 算法的核心思想算法的核心思想:令初值:令初值X(0)=X,不断求,不断求X(i+1)=BX(i),直到直到X(i+1)=X(i)或或X(i)=U,则
21、,则X(i)就是就是XF+ 。其中。其中B是是X(i)能决定能决定的属性集。的属性集。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第12页8.2.3 属性集属性集X关于函数依赖集关于函数依赖集F的闭包的闭包例例8.2 已知关系模式已知关系模式R(U,F),其中,其中U=A,B,C,D,E,F=ABC,BD,CE,ECB,ACB。求。求(AB)F+ 。 由算法由算法8.1,设,设X(0)=AB。 计算计算X(1) :逐一扫描:逐一扫描F集合中各个函数依赖,找左部为集合中各个函数依赖,找左部为A、B或或AB的函的函数依赖:数依赖:ABC,BD。于是。于是X(1)= X
22、(0)CD=ABCD=ABCD。 因为因为X(1)X(0) ,所以再找出左部为,所以再找出左部为ABCD子集的那些函数依赖,又得子集的那些函数依赖,又得到两个到两个CE,ACB。于是。于是X(2)=X(1)BE=ABCDBE=ABCDE。 因为因为X(2)=U,算法终止,算法终止,所以,所以(AB)F+ =ABCDE。 引理引理8.2 设设F为属性集为属性集U上的一组函数依赖,上的一组函数依赖,X U,Y U,XY能由能由F根据根据Armstrong公理导出的公理导出的充分必要条件是充分必要条件是Y XF+。证明略(见教材)证明略(见教材) 引理引理8.2的意义在于的意义在于它将判定它将判定X
23、Y是否为是否为F所逻辑蕴涵,即所逻辑蕴涵,即判判定定XY是否属于是否属于F+的问题,的问题,转化为转化为先求出先求出XF+ ,再判定,再判定Y是否是否为为XF+的子集的问题的子集的问题。而求。而求XF+已经由算法已经由算法8.1解决,且计算解决,且计算XF+的时间复杂度要远远小于计算的时间复杂度要远远小于计算F+的时间复杂度。的时间复杂度。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第13页8.2.4 码码 定义定义8.8 设设K为为R(U,F)中的属性或属性组合。若中的属性或属性组合。若KU,则,则K称为称为R的的侯选码侯选码(Candidate Key)。)。
24、 注意如果注意如果KU,则,则K称为称为超码超码(Superkey)。)。候选码是最候选码是最小的超码小的超码,即,即K的任意一个真子集都不是候选码。的任意一个真子集都不是候选码。 若候选码多于一个,则选定其中的一个若候选码多于一个,则选定其中的一个为主码为主码(Primary Key)。)。 包含在任何一个候选码中的属性称为包含在任何一个候选码中的属性称为主属性主属性;不包含在任何;不包含在任何候选码中的属性称为候选码中的属性称为非主属性或非码属性非主属性或非码属性。 最简单的情况最简单的情况,单个属性是码;,单个属性是码;最极端的情况最极端的情况,整个属性组,整个属性组是码,称为是码,称为
25、全码全码(All-key)。)。 在后面的章节中主码或候选码都简称为码。读者可根据上下在后面的章节中主码或候选码都简称为码。读者可根据上下文加以识别。文加以识别。fp上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第14页8.2.4 码码例如,例如,关系模式关系模式S(Sno, Sname, Ssex, Sage, Major, Address, Mphone)中单个属性中单个属性Sno是是码码,用下划线显示出来,关系模式,用下划线显示出来,关系模式SC(Sno, Cno, Sdate, Score)中属性组合中属性组合(Sno, Cno, Sdate)是是码码。再如
26、再如,关系模式,关系模式R(P, W, A)中,属性中,属性P表示演奏者,表示演奏者,W表示作品,表示作品,A表示表示听众。假设一个演奏者可以演奏多个作品,某一作品可被多个演奏者演听众。假设一个演奏者可以演奏多个作品,某一作品可被多个演奏者演奏,听众也可以欣赏不同演奏者的不同作品,这个关系模式的码为奏,听众也可以欣赏不同演奏者的不同作品,这个关系模式的码为(P, W, A),即,即全码全码。 定义定义8.9 关系模式关系模式R中属性或属性组中属性或属性组X并非并非R的码,但的码,但X是另是另一个关系模式的码,则称一个关系模式的码,则称X是是R的的外部码外部码(Foreign Key),),也称
27、也称外码外码。例如例如,在关系模式,在关系模式SC(Sno, Cno, Sdate, Score)中,中,Sno不是码,但不是码,但Sno是关系模式是关系模式S(Sno, Sname, Ssex, Sage, Major, Address, Mphone)的码,则的码,则Sno是关系模式是关系模式SC的外码的外码。主码与外码提供了一个表示关系间联系的手段主码与外码提供了一个表示关系间联系的手段,如上述的关系模式,如上述的关系模式S与与SC的联系就是通过的联系就是通过Sno来体现的。来体现的。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第15页8.2.5 候选码的快
28、速求解方法候选码的快速求解方法 对于一个给定的关系模式对于一个给定的关系模式R(U,F),快速找出它的候选码的方,快速找出它的候选码的方法首先将关系模式中的法首先将关系模式中的属性分为四类属性分为四类:(1) L类属性:仅在类属性:仅在F中的函数依赖左端出现的属性。中的函数依赖左端出现的属性。(2) R类属性:仅在类属性:仅在F中的函数依赖右端出现的属性。中的函数依赖右端出现的属性。(3) LR类属性:在类属性:在F中的函数依赖的左右两端都出现过的属性。中的函数依赖的左右两端都出现过的属性。(4) N类属性:在类属性:在F中的函数依赖的左右两端都未出现过的属性。中的函数依赖的左右两端都未出现过
29、的属性。 然后根据属性的分类,属性集然后根据属性的分类,属性集U的子集的子集X是否为关系模式是否为关系模式R(U,F)的候选码的的候选码的充分条件充分条件为:为:(1) 若若X是是L类属性,则类属性,则X必为必为R的任一候选码中的属性。的任一候选码中的属性。(2) 若若X是是R类属性,则类属性,则X必不是必不是R的任一候选码中的属性。的任一候选码中的属性。(3) 若若X是是N类属性,则类属性,则X必为必为R的任一候选码中的属性。的任一候选码中的属性。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第16页8.2.5 候选码的快速求解方法候选码的快速求解方法例例8.3
30、设有关系模式设有关系模式R(U,F),其中,其中U=A,B,C,D,F=DB,BD,ACD,找出,找出R的所有候选码。的所有候选码。 考察考察F发现,发现,A、C两属性是两属性是R的的L类属性。由条件类属性。由条件1可知,可知,AC必是必是R的任的任一候选码中的属性,又因为一候选码中的属性,又因为(AC)F+ABCD,所以,所以AC是是R的唯一候选码。的唯一候选码。例例8.4 设有关系模式设有关系模式W(U,F),其中,其中U=C,T,H,R,S,G,这些属性分别表示课程名、任课教师、上课时间、上课教室、这些属性分别表示课程名、任课教师、上课时间、上课教室、学生姓名、成绩,学生姓名、成绩,F=
31、CT,CSG,HRC,HTR,HSR,找出,找出W的所有候选码。的所有候选码。 考察考察F发现发现,H、S两属性是两属性是W的的L类属性。由条件类属性。由条件1可知,可知,HS必是必是W的任的任一候选码中的属性,又因为一候选码中的属性,又因为(HS)F+CTHRSG,所以,所以HS是是W的唯一候选的唯一候选码。码。 推论推论1:对于给定的关系模式:对于给定的关系模式R(U,F),若属性集,若属性集U的子集的子集X是是R的的L类属性,且类属性,且U XF+,则,则X必为必为R的唯一候选码的唯一候选码。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第17页8.2.5 候
32、选码的快速求解方法候选码的快速求解方法例例8.5 设有关系模式设有关系模式R(U,F),其中,其中U=A,B,C,D,E,P,F=AD,ED,DB,BCD,DCA,找出,找出R的所有的所有候选码。候选码。 考察考察F发现发现,C、E两属性是两属性是R的的L类属性。由条件类属性。由条件1可知,可知,CE必是必是R的任的任一候选码中的属性。再次考察一候选码中的属性。再次考察F发现,属性发现,属性P是是R的的N类属性,由条件类属性,由条件3可可知,知,P也必是也必是R的任一候选码中的属性。又因为的任一候选码中的属性。又因为(CEP)F+=ABCDEP,所以,所以CEP是是R的唯一候选码。的唯一候选码
33、。 推论推论2:对于给定的关系模式:对于给定的关系模式R(U,F),若属性集,若属性集U的子集的子集X是是R的的L类属性和类属性和N类属性组成的属性集,且类属性组成的属性集,且U XF+,则,则X是是R的唯一候选码的唯一候选码。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第18页8.2.5 候选码的快速求解方法候选码的快速求解方法例例8.5 设有关系模式设有关系模式R(U,F),其中,其中U=A,B,C,D,E,P,F=AD,ED,DB,BCD,DCA,找出,找出R的所有的所有候选码。候选码。 考察考察F发现发现,C、E两属性是两属性是R的的L类属性。由条件类属性
34、。由条件1可知,可知,CE必是必是R的任的任一候选码中的属性。再次考察一候选码中的属性。再次考察F发现,属性发现,属性P是是R的的N类属性,由条件类属性,由条件3可可知,知,P也必是也必是R的任一候选码中的属性。又因为的任一候选码中的属性。又因为(CEP)F+=ABCDEP,所以,所以CEP是是R的唯一候选码。的唯一候选码。 推论推论2:对于给定的关系模式:对于给定的关系模式R(U,F),若属性集,若属性集U的子集的子集X是是R的的L类属性和类属性和N类属性组成的属性集,且类属性组成的属性集,且U XF+,则,则X是是R的唯一候选码的唯一候选码。上海师范大学 计算机系2022年3月17日星期四
35、第8章 关系数据库设计理论第19页8.3 关系模式的规范化关系模式的规范化 设计出好的设计出好的关系数据库模式,其关系数据库模式,其基本思想是基本思想是通过通过分解关系模式消除分解关系模式消除“不不好好”的关系模式中存在的某些的关系模式中存在的某些不合适的数据依赖不合适的数据依赖,从而消除插入异常、,从而消除插入异常、删除异常、更新异常以及数据冗余太大等问题。删除异常、更新异常以及数据冗余太大等问题。人们把关系数据库的规范化过程中为人们把关系数据库的规范化过程中为衡量关系模式的规范化程度而设立衡量关系模式的规范化程度而设立的标准的标准称为称为范式范式(Normal Form)。根据规范化程度要
36、求的不同,可以)。根据规范化程度要求的不同,可以把范式分为把范式分为1NF、2NF、3NF、BCNF、4NF,直到,直到5NF。各种范式之间各种范式之间存在以下联系存在以下联系: 5NF 4NF BCNF 3NF 2NF 1NF原本原本“第几范式第几范式”表示表示关系的某一种级别,所以常称某一关系模式关系的某一种级别,所以常称某一关系模式R为为第几范式。第几范式。现在则把范式这个概念理解成现在则把范式这个概念理解成符合某一种级别的关系模式的符合某一种级别的关系模式的集合,如果集合,如果R为第为第n范式,就可以写成范式,就可以写成RnNF。一个低一级范式的关系模式通过模式分解可以转换为若干个高一
37、级范式一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程称作规范化的关系模式的集合,这种过程称作规范化(Normalization)。)。 上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第20页8.3.1 第一范式第一范式 第一范式是满足第一范式是满足最低规范化要求的范式最低规范化要求的范式。定义定义8.10 如果一个关系模式如果一个关系模式R的所有属性都是不可再分的基本的所有属性都是不可再分的基本数据项,则称数据项,则称R属于第一范式,记作属于第一范式,记作R1NF。 第一范式是对关系模式的第一范式是对关系模式的最起码要求最起
38、码要求,不满足第一范式的数,不满足第一范式的数据库模式不能称为关系数据库。据库模式不能称为关系数据库。例例8.6 分析关系模式分析关系模式SMC(学号,专业号,专业名,创办日期,所属学院,学号,专业号,专业名,创办日期,所属学院,课程号,选修日期,成绩课程号,选修日期,成绩)中中可能存在的问题可能存在的问题。 由于关系模式由于关系模式SMC中的各个属性都是不可再分的基本数据项,所以中的各个属性都是不可再分的基本数据项,所以它属它属于第一范式于第一范式,码是码是属性集(学号,课程号,选修日期),但属性集(学号,课程号,选修日期),但它存在以下它存在以下几个问题几个问题:(1) 数据冗余:同一专业
39、的专业名、创办日期和所属学院重复出现数据冗余:同一专业的专业名、创办日期和所属学院重复出现 (2) 更新异常:当某学生转专业时,必须修改该学生所有的选课记录更新异常:当某学生转专业时,必须修改该学生所有的选课记录 (3) 插入异常:新生还尚未选课,则无法把新生的专业号等有关信息插入插入异常:新生还尚未选课,则无法把新生的专业号等有关信息插入(4) 删除异常:某学生只选修了一门课程,现在这门课程他也不选了,那么删除异常:某学生只选修了一门课程,现在这门课程他也不选了,那么在删除这个选课记录时会把该学生的专业号等有关信息一并删除掉在删除这个选课记录时会把该学生的专业号等有关信息一并删除掉 上海师范
40、大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第21页8.3.1 第一范式第一范式 关系关系SMC为什么会存在这些问题呢为什么会存在这些问题呢?分析一下关系模式?分析一下关系模式SMC中存在的函数依赖,发现各个中存在的函数依赖,发现各个非主属性对码的函数依赖非主属性对码的函数依赖情况如下情况如下:(学号,课程号,选修日期)(学号,课程号,选修日期)成绩成绩(学号,课程号,选修日期)(学号,课程号,选修日期)专业号专业号(学号,课程号,选修日期)(学号,课程号,选修日期)(专业名,创办日期,所属学院)(专业名,创办日期,所属学院) 由此可见由此可见,关系,关系SMC中既存在非
41、主属性对码的完全函数依赖,中既存在非主属性对码的完全函数依赖,也也存在非主属性对码的部分函数依赖和传递函数依赖存在非主属性对码的部分函数依赖和传递函数依赖。正是。正是由于关系由于关系SMC中存在某些不合适的函数依赖,中存在某些不合适的函数依赖,才导致才导致大量的大量的数据冗余和插入异常、删除异常、更新异常等问题。因此数据冗余和插入异常、删除异常、更新异常等问题。因此有有必要分解必要分解关系模式关系模式SMC,消除不合适的函数依赖消除不合适的函数依赖,向高一级,向高一级的范式转化。的范式转化。 fpt,p上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第22页8.3.2
42、 第二范式第二范式 定义定义8.11 若若R1NF,且每一个,且每一个非主属性完全函数依赖非主属性完全函数依赖于任于任何一个候选码,则何一个候选码,则R2NF。由于关系模式由于关系模式SMC(学号,专业号,专业名,创办日期,所属学院,课程学号,专业号,专业名,创办日期,所属学院,课程号,选修日期,成绩号,选修日期,成绩)中存在非主属性(专业号、专业名等)对码的部分中存在非主属性(专业号、专业名等)对码的部分函数依赖,所以函数依赖,所以SMC 2NF。关系模式中非主属性对码的部分函数依赖是导致关系模式关系模式中非主属性对码的部分函数依赖是导致关系模式“不好不好”的主的主要原因之一要原因之一。将一
43、个。将一个1NF的关系模式的关系模式分解分解为多个为多个2NF的关系模式就的关系模式就能消能消除这种函数依赖除这种函数依赖。例如,可以将关系模式。例如,可以将关系模式SMC分解为两个关系模式:分解为两个关系模式: SC(学号,课程号,选修日期,成绩学号,课程号,选修日期,成绩) 码:码:(学号,课程号,选修日期学号,课程号,选修日期) SM(学号,专业号,专业名,创办日期,所属学院学号,专业号,专业名,创办日期,所属学院) 码:学号码:学号 显然,分解后的关系模式显然,分解后的关系模式SC和和SM都属于都属于2NF,关系模式,关系模式达到了一定程达到了一定程度上的规范化度上的规范化。例。例8.
44、6中所述的关系中所述的关系SMC存在的存在的数据冗余程度减轻了数据冗余程度减轻了,与,与选课有关选课有关的的插入异常、删除异常和更新异常问题消除了插入异常、删除异常和更新异常问题消除了。 但需要说明的是,将但需要说明的是,将一个一个1NF关系模式分解为多个关系模式分解为多个2NF的关的关系模式,系模式,并不能完全消除并不能完全消除关系模式中的各种异常情况和数据关系模式中的各种异常情况和数据冗余问题。冗余问题。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第23页8.3.2 第二范式第二范式例例8.7 分析关系模式分析关系模式SM(学号,专业号,专业名,创办日期,所学
45、号,专业号,专业名,创办日期,所属学院属学院)中中可能存在的问题可能存在的问题。(1) 数据冗余:同一专业的专业名、创办日期和所属学院重复出现数据冗余:同一专业的专业名、创办日期和所属学院重复出现(2) 更新异常:当某专业的所属学院变更时,必须修改该专业的所有学生记录更新异常:当某专业的所属学院变更时,必须修改该专业的所有学生记录(3) 插入异常:当新专业尚无学生,则无法把该专业的专业名等有关信息插入插入异常:当新专业尚无学生,则无法把该专业的专业名等有关信息插入(4) 删除异常:当某专业暂停招生,而属于该专业的在校生全部毕业离校,那删除异常:当某专业暂停招生,而属于该专业的在校生全部毕业离校
46、,那么在删除这些学生记录时,会把停招专业的有关信息一并删除掉么在删除这些学生记录时,会把停招专业的有关信息一并删除掉 关系关系SM为什么会仍存在这些问题呢为什么会仍存在这些问题呢?分析一下关系模式?分析一下关系模式SM中中存在的函数依赖,发现存在存在的函数依赖,发现存在 学号学号 (专业名,创办日期,所属学院)(专业名,创办日期,所属学院) 由此可见由此可见,关系,关系SM中存在中存在非主属性对码的传递函数依赖非主属性对码的传递函数依赖,才才导致导致大量的数据冗余和插入异常、删除异常、更新异常等问题。大量的数据冗余和插入异常、删除异常、更新异常等问题。因此因此有必要继续分解有必要继续分解关系模
47、式关系模式SM,消除不合适的函数依赖消除不合适的函数依赖,向更高一级的范式转化。向更高一级的范式转化。t上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第24页8.3.3 第三范式第三范式 定义定义8.12 若若R1NF,且每一个,且每一个非主属性都不传递函数依赖非主属性都不传递函数依赖于任何一个候选码,则称于任何一个候选码,则称R3NF。 若若R3NF,则每一个非主属性既不传递依赖于码,也不部,则每一个非主属性既不传递依赖于码,也不部分依赖于码。也就是说,若分依赖于码。也就是说,若R3NF,则,则必有必有R2NF。证明。证明如下:如下: 用反证法用反证法。设。设R3
48、NF,但,但R 2NF,则一定存在非主属性,则一定存在非主属性Y、候选码候选码X和和X的真子集的真子集X,使得,使得XY。X是候选码是候选码X的真子的真子集,集,XX,但,但XX。又。又Y是非主属性,是非主属性,Y X且且Y X。这样在这样在R上上存在非主属性存在非主属性Y传递依赖于候选码传递依赖于候选码X,故,故R 3NF,这与假设矛盾,所以这与假设矛盾,所以R2NF。证毕。证毕上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第25页8.3.3 第三范式第三范式关系模式关系模式SC中没有非主属性传递依赖于码,而关系模式中没有非主属性传递依赖于码,而关系模式SM中存在
49、非主中存在非主属性属性“专业名专业名”传递依赖于码,所以传递依赖于码,所以SC3NF,而,而SM 3NF。关系模式关系模式中非主属性对码的传递函数依赖是导致关系模式中非主属性对码的传递函数依赖是导致关系模式“不好不好”的另的另一个主要原因一个主要原因。将一个。将一个2NF的关系模式的关系模式分解分解为多个为多个3NF的关系模式的关系模式就能就能消除这种函数依赖消除这种函数依赖。例如,可以将关系模式。例如,可以将关系模式SM分解为两个关系模式:分解为两个关系模式: S_M(学号,专业号学号,专业号) 码:学号码:学号 M(专业号,专业名,创办日期,所属学院专业号,专业名,创办日期,所属学院) 码
50、:专业号码:专业号 显然,分解后的关系模式显然,分解后的关系模式S_M和和M都属于都属于3NF,关系模式,关系模式达到了更高程达到了更高程度上的规范化度上的规范化。例。例8.7中所述的关系中所述的关系SM存在的存在的四个问题没有了。四个问题没有了。将关系模式将关系模式SMC分解为分解为3NF集集SC,S_M,M后后,例例8.6和例和例8.7中所述中所述的数据冗余和操作异常问题已经全部消除的数据冗余和操作异常问题已经全部消除。部分函数依赖和传递函数依。部分函数依赖和传递函数依赖这两类不合适的函数依赖是产生数据冗余和操作异常的两个主要原因,赖这两类不合适的函数依赖是产生数据冗余和操作异常的两个主要
51、原因,3NF已经消除了这两种依赖已经消除了这两种依赖,也就在,也就在很大程度上消除了很大程度上消除了数据冗余和操作数据冗余和操作异常问题,异常问题,但还不彻底但还不彻底。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第26页8.3.4 BC范式范式因为因为3NF只消除了只消除了非主属性对码的部分函数依赖和传递函数依赖,而非主属性对码的部分函数依赖和传递函数依赖,而没没有考虑主属性对码的依赖关系有考虑主属性对码的依赖关系。如果存在依赖关系,仍然有可能导致数。如果存在依赖关系,仍然有可能导致数据冗余和操作异常问题。据冗余和操作异常问题。BC范式是由范式是由Boyce和和
52、Codd在在1974年共同提出的,通常认为年共同提出的,通常认为BC范式是范式是修修正的第三范式正的第三范式,有时也称为扩充的第三范式。,有时也称为扩充的第三范式。定义定义8.13 若若R1NF,且对于所有的函数依赖,且对于所有的函数依赖XY(Y X),),X必包含必包含R的一个候选码的一个候选码,则称,则称RBCNF。一个属于一个属于BCNF的关系模式的关系模式,它,它具有以下三个性质具有以下三个性质:(1) 所有非主属性对每一个码都是完全函数依赖。所有非主属性对每一个码都是完全函数依赖。(2) 所有的主属性对每一个不包含它的码也是完全函数依赖。所有的主属性对每一个不包含它的码也是完全函数依
53、赖。(3) 没有任何属性完全函数依赖于非码的任何一组属性。没有任何属性完全函数依赖于非码的任何一组属性。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第27页8.3.4 BC范式范式 若若RBCNF,则,则R3NF(严格的证明留给读者自己完成)。(严格的证明留给读者自己完成)。但若但若R3NF,则,则R未必属于未必属于BCNF。例例8.8 在关系模式在关系模式SCP(S,C,P)中,中,S表示学生,表示学生,C表示课程,表示课程,P表示名次。表示名次。假定假定每一个学生选修每一门课程的成绩都有一个名次,每一门课程中每每一个学生选修每一门课程的成绩都有一个名次,每一门
54、课程中每一名次只对应一个学生(假设没有并列名次)。由一名次只对应一个学生(假设没有并列名次)。由语义可得到函数依赖语义可得到函数依赖:(S,C)P 和和 (C,P)S,所以,所以(S,C)和和(C,P)都可以作为候选码都可以作为候选码。也。也就是说这个关系模式中就是说这个关系模式中S,C和和P都是主属性,没有非主属性,所以都是主属性,没有非主属性,所以SCP3NF。由于仅有的两个决定因素。由于仅有的两个决定因素(S,C)和和(C,P)都是候选码,所都是候选码,所以以SCPBCNF。例例8.9 在关系模式在关系模式STC(S,T,C)中,中,S表示学生,表示学生,T表示教师,表示教师,C表示课程
55、。表示课程。假定假定每个教师只教一门课,每门课有若干教师,某一学生选定某门课,每个教师只教一门课,每门课有若干教师,某一学生选定某门课,对应一个固定的教师。由对应一个固定的教师。由语义可得到函数依赖语义可得到函数依赖:TC,(S,T)C 和和 (S,C)T,所以,所以(S,T)和和(S,C)都可以作为候选码都可以作为候选码。也就是说这个关系模式。也就是说这个关系模式中中S,T和和C都是主属性,没有非主属性,所以都是主属性,没有非主属性,所以STC3NF。但由于决定。但由于决定因素因素T中不包含任何一个候选码,所以中不包含任何一个候选码,所以STCBCNF。上海师范大学 计算机系2022年3月1
56、7日星期四第8章 关系数据库设计理论第28页8.3.4 BC范式范式 对于不是对于不是BCNF的关系模式,仍然存在不合适的地方。例如的关系模式,仍然存在不合适的地方。例如STC(S,T,C)不是不是BCNF,存在的毛病有,存在的毛病有:(1) 设有设有“赵亮教赵亮教C程序设计程序设计”这一信息,若没有学生选修赵亮这一信息,若没有学生选修赵亮上的课,则这一信息将无法存储,产生插入异常。上的课,则这一信息将无法存储,产生插入异常。(2) “赵亮教赵亮教C程序设计程序设计”这一信息存储的次数与选赵亮上的课这一信息存储的次数与选赵亮上的课的学生人数一样多,显然冗余太大。的学生人数一样多,显然冗余太大。
57、 不是不是BCNF的关系模式也可以通过分解成为的关系模式也可以通过分解成为BCNF来消除某来消除某些毛病些毛病。例如。例如STC(S,T,C)可可分解分解为为ST(S,T)和和TC(T,C),它们都是它们都是BCNF。但这。但这有可能引起新的问题有可能引起新的问题,例如,例如STC分解分解为为ST和和TC后将后将丢失函数依赖丢失函数依赖 (S,C)T,这将会引起数据,这将会引起数据语义上的矛盾,这一点后面还要详述。语义上的矛盾,这一点后面还要详述。上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第29页8.3.5 规范化小结规范化小结满足最低要求的关系模式(满足最低要
58、求的关系模式(1NF)往往不能很好地描述现实世界,可能)往往不能很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂以及数据冗余等问题,这就是会存在插入异常、删除异常、修改复杂以及数据冗余等问题,这就是规规范化的目的范化的目的。规范化的基本思想是规范化的基本思想是逐步消除数据依赖中不合适的部分,使各关系模式逐步消除数据依赖中不合适的部分,使各关系模式达到某种程度的达到某种程度的“分离分离”。而。而规范化的实现是规范化的实现是通过模式分解把一个低级通过模式分解把一个低级别范式的关系模式逐步转换为若干个高级别范式的关系模式集合来完成别范式的关系模式逐步转换为若干个高级别范式的关系模式集合来完
59、成的。关系模式的。关系模式规范化的基本步骤规范化的基本步骤如下:如下: 1NF 消除非主属性对码的部分函数依赖消除非主属性对码的部分函数依赖 消除决定因素消除决定因素 2NF 非码的非平凡非码的非平凡 消除非主属性对码的传递函数依赖消除非主属性对码的传递函数依赖 函数依赖函数依赖 3NF 消除主属性对码的部分和传递函数依赖消除主属性对码的部分和传递函数依赖 BCNF上海师范大学 计算机系2022年3月17日星期四第8章 关系数据库设计理论第30页8.3.5 规范化小结规范化小结 所谓所谓规范化实质上就是概念的单一化规范化实质上就是概念的单一化。因此,在设计关系模。因此,在设计关系模式时式时应遵
60、循应遵循“一事一地一事一地”的模式设计原则的模式设计原则,即让一个关系描,即让一个关系描述一个概念、一个实体或者实体间的一种联系,若多于一个述一个概念、一个实体或者实体间的一种联系,若多于一个概念就把它概念就把它“分离分离”出去。出去。 前面介绍的前面介绍的2NF、3NF和和BCNF是在函数依赖的条件下对模是在函数依赖的条件下对模式分解所能达到的分离程度的测试。一个数据库模式中的关式分解所能达到的分离程度的测试。一个数据库模式中的关系模式如果系模式如果都属于都属于BCNF,那么,那么在函数依赖的范畴内它在函数依赖的范畴内它已实已实现了彻底的分离,已消除了数据冗余和操作异常等问题。现了彻底的分离
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 3246.2-2026变形铝及铝合金制品组织检验方法第2部分:低倍组织检验方法
- 某地区隔离政策的伦理效果评估报告
- 极端气候事件与口腔急诊病例的关联研究
- 极端天气医疗救援物流能力评估
- 极地环境对人体耳鼻喉系统的生理影响
- 医学26年:内分泌疾病常见误区 查房课件
- 2026年说课稿美术赣美版初中
- 羊水过多孕妇的治疗决策
- 肺结核患者的护理创新
- 高中2025年课题研究探究说课稿说课稿
- 安全管理人员安全培训试题及答案
- 2026年国家电网招聘之通信类考试题库300道及完整答案【历年真题】
- 国开2025年秋《农业推广》实训报告
- 光伏发电系统运维管理制度
- 江苏省软科学课题申报书
- (正式版)DB65∕T 4573-2022 《重大事故隐患治理评估规范》
- 【《基于PLC控制的三工位钻床工作台液压控制系统设计》13000字(论文)】
- 深基坑安全管理培训课件
- 特警相关知识课件
- 油漆安全技术说明书MSDS
- 技术项目研究实验数据分析表
评论
0/150
提交评论