数据库原理及应用 第5章关系型设计理论整理_第1页
数据库原理及应用 第5章关系型设计理论整理_第2页
数据库原理及应用 第5章关系型设计理论整理_第3页
数据库原理及应用 第5章关系型设计理论整理_第4页
数据库原理及应用 第5章关系型设计理论整理_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Data Base SystemData Base SystemData Base System 第四章第四章 关系型数据库规范设计关系型数据库规范设计Data Base SystemData Base SystemData Base System 本章主要内容本章主要内容4.1 关系模式的设计问题关系模式的设计问题4.2 函数依赖函数依赖4.3 关系模式的分解特性关系模式的分解特性4.4 关系模式的范式关系模式的范式SQL数据库的体系结构数据库的体系结构SQL用户用户Base TableB1View V1View V2Base TableB2Base TableB3Base TableB4S

2、tored FileS1Stored FileS1Stored FileS1Stored FileS1外模式外模式模式模式内模式内模式SQL语言支持的关系数据库的三级模式结构语言支持的关系数据库的三级模式结构S#、SNAME、SDEPT、C#、CNAME、TIME、 S#、C#、GRADES (S#、SNAME、SDEPT)C(C#、CNAME、TIME)SC(S#、C#、GRADE)S#SNAMESDEPTC#CNAMETIMEGRADECNAME_SNAME_GRADE(C#,S#,GRADE)Data Base SystemData Base SystemData Base System

3、 4.1关系模式的设计问题关系模式的设计问题对于一个现实问题,它有一个属性集对于一个现实问题,它有一个属性集U,U,其中每个其中每个属性属性AiAi对应一个值域对应一个值域DOMDOM(AiAi),它由属性集),它由属性集U U和和U U上成立的数据完整性约束集组成。关系上成立的数据完整性约束集组成。关系r r是是关系模式关系模式R(U)R(U)的当前值,是一个元组的集合。的当前值,是一个元组的集合。这里的关系模式和关系一般称为这里的关系模式和关系一般称为泛关系模式和泛关系模式和泛关系。泛关系。R(S#、SNAME、SDEPT、C#、CNAME、TIME、 S#、C#、GRADE)但是对于许多

4、现实问题,往往但是对于许多现实问题,往往R(U)不是恰当的形式,必须不是恰当的形式,必须用一个关系模式的集合用一个关系模式的集合pR1,R2,Rk来代替来代替R(U),这里的这里的p称为数据库模式。对数据库模式的每一个关系模称为数据库模式。对数据库模式的每一个关系模式赋予一个当前值,就得到一个数据库实例(数据库)。式赋予一个当前值,就得到一个数据库实例(数据库)。S (S#、SNAME、SDEPT) C(C#、CNAME、TIME) SC(S#、C#、GRADE)Data Base SystemData Base SystemData Base System 什么是好的数据库设计什么是好的数据

5、库设计体现客观世界的信息体现客观世界的信息无过度的冗余无过度的冗余无插入异常无插入异常无更新复杂无更新复杂无删除异常无删除异常4.1关系模式的设计问题关系模式的设计问题Data Base SystemData Base SystemData Base System 4.14.1关系模式的设计问题关系模式的设计问题TNAMEADDRESSC#CNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2c5n2t3a3c6n4关系模式关系模式R(TNAME,ADDRESS,C#,CNAME)4.14.1关系模式的设计问题关系模式的设计问题对数据库操作时对数据库操作时, ,会出

6、现以下问题会出现以下问题1 1、数据冗余:数据冗余:( (数据重复存储数据重复存储: :浪费存储空间浪费存储空间, ,数据库维护困难)数据库维护困难) 如一名教师教多门课程,他的地址要重复多次如一名教师教多门课程,他的地址要重复多次2 2、更新异常更新异常:如果一个教师教了三门课程,则如果他的地址变了,:如果一个教师教了三门课程,则如果他的地址变了,三个元组的地址信息都要变。若有一个没变,就会造成地址三个元组的地址信息都要变。若有一个没变,就会造成地址不唯一,产生错误信息。不唯一,产生错误信息。 3 3、插入异常插入异常:主键为空的记录不能存在于数据库:主键为空的记录不能存在于数据库, ,导致

7、不能进行导致不能进行插入操作插入操作 如教师没有分配教学任务,就不能插入数据库。如教师没有分配教学任务,就不能插入数据库。4. 4. 删除异常删除异常:删除操作后:删除操作后, ,会引起一些信息的丢失。会引起一些信息的丢失。 如一个原有教学任务的教师教师现在没有教学任务,要把这个如一个原有教学任务的教师教师现在没有教学任务,要把这个教师的所有元组都删去。这样就把这个教师的姓名和地址也教师的所有元组都删去。这样就把这个教师的姓名和地址也从数据库中删去了,不合理。从数据库中删去了,不合理。TNAMEADDRESSC#CNAMEt1a1c1n1t1a1c2n2t1a1c3n3t2a2c4n4t2a2

8、c5n2t3a3c6n44.14.1关系模式的设计问题关系模式的设计问题解决之道:分解! 分解! 再分解!TNAMEADDRESSt1a1t2a2t3a3TNAMEC#CNAMEt1c1n1t1c2n2t1c3n3t2c4n4t2c5n2t3c6n4分解为两个模式:R1(TNAME,ADDRESS)R2(TNAME,C#,CNAME)考虑为学生的选课信息而设计一个关系模式。考虑为学生的选课信息而设计一个关系模式。过度冗余过度冗余数据重复数据重复更新异常更新异常更新代价大、可能导致数据不一致更新代价大、可能导致数据不一致删除异常删除异常部分信息的删除可能导致信息的丢失部分信息的删除可能导致信息的

9、丢失插入异常插入异常必须有完整信息必须有完整信息怎么分解最佳?4.1关系模式的设计问题关系模式的设计问题Data Base SystemData Base SystemData Base System 4.2 函数依赖函数依赖 (FD, Function Dependence) y=f(x)y=3xData Base SystemData Base SystemData Base System 4.2.1 函数依赖定义函数依赖定义设有关系模式R(A1,A2,.An)或简记为R(U),X,Y是U的子集,r是R的任一具体关系, 如果对r的任意两个元组t1,t2,由t1X=t2X导致t1Y=t2Y,

10、则称X函数决定Y,或Y函数依赖于X, 记为XY。XY为模式R的一个函数依赖。 如如S# Sname, (S#,C#) Grade 该定义理解如下:有一张设计好的二维表,X,Y是表的某些列(可以是一列,也可以是多列),若在表中的第t1行,和第t2行上的X值相等, 那么必有t1行和t2行上的Y值也相等,这就是说Y函数依赖于X。 比如,有如下二维表 Data Base SystemData Base SystemData Base System 在表中,凡成绩相同的,对应的“成绩等级”也必是相同的,因此,“成绩等级”函数依赖于成绩。 但是反过来则不成立。 Notice: (1)在这张表中,任何一行的

11、关系均应符合函数依赖的条件,如果有一行不符合函数依赖的条件,则函数依赖对于这个关系就不成立。 (2)函数依赖是否成立是不可证明的,只能通过属性的含义来判断. Data Base SystemData Base SystemData Base System 表例表例学号学号姓名姓名成绩成绩成绩等级成绩等级0000100001李里李里7777C C0000200002丁力丁力9191A A0000300003李小红李小红8585B B0000400004马琳马琳8585B B0000500005王佳怡王佳怡6666D D0000600006胡林胡林7070C C.Data Base SystemD

12、ata Base SystemData Base System 举例:职工号(A) 基本工资(B)奖金(C) 051390 50 052 420 50 053 390 80A B A C B A C AData Base SystemData Base SystemData Base System 4.2.2 函数依赖几点说明函数依赖几点说明1. 函数依赖是语义范畴的概念.它反映了一种语义完整性约束,只能根据语义来确定一个函数依赖.例如,“姓名”“年龄”这个函数依赖只有在没有同名人的条件下成立,否则,此函数依赖不成立。2. 函数依赖是指关系R模式的所有关系元组均应满足的约束条件,而不是关系模式

13、中的某个或某些元组满足的约束条件。Data Base SystemData Base SystemData Base System 4.2.2 函数依赖几点说明函数依赖几点说明3. 函数依赖与属性间的联系类型有关(1)若属性X和Y之间有“一对一”的联系, 则X Y,Y X,X Y.(如不存在同名的学号和姓名)(2)若属性X和Y之间有“多对一”的联系, 则X Y,但Y X. (3)若属性X和Y之间有“多对多”的联系, 则X与Y之间不存在任何函数依赖.当确定函数依赖关系时当确定函数依赖关系时, ,可从属性间的联系入手可从属性间的联系入手Data Base SystemData Base Syste

14、mData Base System 函数依赖函数依赖 (FD, Function Dependence) y=f(x)问:问:X X、Y Y是谁函数依赖谁?是谁函数依赖谁?是是X X函数依赖函数依赖Y Y?还是?还是Y Y函数依赖函数依赖X X?答:答:Y Y函数依赖函数依赖X X(X X函数决定函数决定Y Y)X=1 y=3;X=2 y=6;y=3 x=1;y=6 x=2;y=x2X=1 y=1;X=-2y=4;y=1 x=1or x=-1;y2=x2y=1 x=1or x=-1;x=1 y=1or y=-1;y=3x问:问:X X、Y Y是谁函数依赖谁?是谁函数依赖谁?是是X X函数依赖函

15、数依赖Y Y?还是?还是Y Y函数依赖函数依赖X X?答:没有任何函数依赖关系答:没有任何函数依赖关系Data Base SystemData Base SystemData Base System 4.2.2 函数依赖几点说明函数依赖几点说明4. 如果X Y,并且Y不是X的子集,则称X Y是非平凡的函数依赖非平凡的函数依赖;如果Y是X的子集,则称XY是平凡的函数依赖; 我们讨论的是非平凡的函数依赖.例如:(S#,SN) SN是平凡的函数依赖5. 函数依赖的存在,决定了自然连接的特性 设关系模式R(X,Y,Z),X,Y,Z为不相交的属性集合,若XY,X Z, 则有R(X,Y,Z)=R(X,Y)

16、 R(X,Z) 即用它们的自然连接可复员原关系模式Data Base SystemData Base SystemData Base System 举例:举例:关系模式关系模式S(S#,SN,C#,G,CN,TN,TA)S(S#,SN,C#,G,CN,TN,TA)主键:主键:(S#,C#)函数依赖:函数依赖:S# SN(每个学生只能有一个姓名)(每个学生只能有一个姓名)C# CN(每个课程号只能对应一门课程每个课程号只能对应一门课程)TN TA(每个教师只能有一个年龄)每个教师只能有一个年龄)(S#,C#) G(每个学生学习一门课程只每个学生学习一门课程只能有一个成绩)能有一个成绩)Data

17、Base SystemData Base SystemData Base System 4.2.2 函数依赖函数依赖ABC142356346738910说明关系是否满足下列函数依赖:说明关系是否满足下列函数依赖:A A B A B A C AB C AB C C C C A AC A AC B B不满足AB,因为(3,5,6)和(3,4,6),t1(A)=t2(A)=3,但是t1(B)=5而t2(A)=4A C AB C C AData Base SystemData Base SystemData Base System 4.2.3 键键定义定义超键超键:设:设X X为关系为关系R R的属性

18、或属性组,的属性或属性组,U U为为R R的元的元组若组若X X U U,则称,则称X X为为R R的超键。的超键。候选键候选键:设:设X X为为R R的超键,若的超键,若X X中不含多余属性,中不含多余属性,则称则称X X为为R R的候选键。的候选键。主键主键:若关系:若关系R R有多个候选键,则可以从中选有多个候选键,则可以从中选定一个作为定一个作为R R的主键。的主键。主属性主属性:包含在任何一个候选键中的属性,称:包含在任何一个候选键中的属性,称作主属性,不包含在任何键中的属性称为非主作主属性,不包含在任何键中的属性称为非主属性。属性。全键全键:关系模式的键由整个属性组构成。:关系模式

19、的键由整个属性组构成。如(如(S#S#,C#C#,T#T#)Data Base SystemData Base SystemData Base System 4.2.3 键键候选键的两个性质候选键的两个性质: :1 1、标识的唯一性标识的唯一性: : 对于对于R(U)R(U)中的每一元组中的每一元组,X,X的值的值确定后确定后, ,该元组就相应确定了该元组就相应确定了. .即:即:X X函数决定该关系的所有其他属性函数决定该关系的所有其他属性(XR)(XR) X X A1A2A1A2AnAnS# S# SD,SS,SBirthdaySD,SS,SBirthday2 2、无冗余性无冗余性: X:

20、 X是属性组的情况下是属性组的情况下,X,X的任何真子集的任何真子集都不能唯一标识该元组都不能唯一标识该元组 即:不存在即:不存在X X的真子集的真子集Y,Y,使得使得Y Y A1A2A1A2AnAn (S#,C#) (S#,C#) GradeGradeData Base SystemData Base SystemData Base System 4.2.3 键键举例:设关系模式R(XYZ),已知FD是X Y,Y Z,那么可以推出X XYZ也在F+中,但X的真子集(此处是空值)不可能函数决定XYZ,所以X是模式R的键。职工关系模式ZG(工号,姓名,年龄,性别,工资)工号工号 ( (工号,姓名

21、,年龄,性别,工资),工号,姓名,年龄,性别,工资),工号没有真子集,所以工号是键。工号没有真子集,所以工号是键。( (工号,姓名)工号,姓名) ( (工号,姓名,年龄,性别,工号,姓名,年龄,性别,工资)工资) ,但不是键。,但不是键。Data Base SystemData Base SystemData Base System 4.3 4.3 关系模式的分解特性关系模式的分解特性我们可以通过把一个关系模式的分解成我们可以通过把一个关系模式的分解成多个关系模式,以解决它的插入、删除多个关系模式,以解决它的插入、删除和更新操作所带来的一些问题。和更新操作所带来的一些问题。为了在分解要保证原来

22、模式所满足的特为了在分解要保证原来模式所满足的特性,要求分解处理具有无损联接和保持性,要求分解处理具有无损联接和保持函数依赖。函数依赖。Data Base SystemData Base SystemData Base System 4.3.1 模式分解中存在的问题模式分解中存在的问题设有关系R=A1A2An,R1,R2Rn是R的子集,R=R1UR2URk,设有关系模式R1,R2Rk的集合用p表示,p R1,R2Rk。用p代替R的过程称为关系模式的分解。P称为R的一个分解,也称为数据库模式。R称为泛关系模式,R对应的当前值称为泛关系。数据库对应的当前值称为数据库实例,它是由数据库模式中的每一个

23、关系模式的当前值组成, r1,r2rk来表示。Data Base SystemData Base SystemData Base System 4.3 .1 模式分解中存在的问题模式分解中存在的问题实际上,关系模式的分解,不仅仅是属性集合的分解,它是对关系模式上的函数依赖集,以及关系模式的当前值的分解的具体表现。4.3.1 模式分解中存在的问题模式分解中存在的问题R(A, B, C)ABC112221AB1122BC1221ABC112221AB(R)BC(R)AB(R)BC(R)R(A, B, C)ABC111212AB1121BC1112ABC111112211212AB(R)BC(R)A

24、B(R)BC(R)有损分解有损分解无损分解无损分解Data Base SystemData Base SystemData Base System 4.3.1 模式分解中存在的问题模式分解中存在的问题关系模式的分解有几个衡量标准:关系模式的分解有几个衡量标准:分解具有无损连接分解具有无损连接分解保持函数依赖分解保持函数依赖分解既要保持依赖,又要具有无损联接分解既要保持依赖,又要具有无损联接达到更高级范式达到更高级范式Data Base SystemData Base SystemData Base System 4.3.2 无损联接无损联接无损连接分解无损连接分解 定义定义关系模式关系模式R,

25、分解成关系模式,分解成关系模式p=R1,R2Rk,F是是R上的一个函数依赖集。上的一个函数依赖集。如果对如果对R中满足中满足F的每一个关系的每一个关系r都有:都有: r=R1(r) R2(r) Rk(r)则称此分解则称此分解p是相对于是相对于F是是“无损连接分解无损连接分解”。即即r为它在为它在Ri上的投影的自然联接。上的投影的自然联接。 Ri(r) 表示关系表示关系r在模式在模式Ri的属性上的投影。的属性上的投影。4.3.2 无损联接的测试无损联接的测试将R(A,B,C)分解为两个模式R1(A,B)和R2(B,C)ABCa1b1c1a2b1c2a7b3c3a8b4c4a9b5c5ABa1b1

26、a2b1a7b3a8b4a9b5BCb1c1b1c2b3c3b4c4b5c5R(A,B,C)关系r1关系r2关系4.3.2 无损联接的测试无损联接的测试ABCa1b1c1a2b1c2a7b3c3a8b4c4a9b5c5R(A,B,C)关系ABCa1b1c1a1b1c2a2b1c1a2b1c2a7b3c3a8b4c4a9b5c5R1(A,B)R2(B,C)所以把所以把R R(A,B,C)A,B,C)分解为两个模式分解为两个模式R1(A,B)R1(A,B)和和R2(B,C)R2(B,C)不是具有无损联接性的分解。不是具有无损联接性的分解。Data Base SystemData Base Syst

27、emData Base System 4.3.2 无损联接的测试无损联接的测试如果一个模式分解不是无损联接分解,如果一个模式分解不是无损联接分解,那么分解不能通过自然联接运算恢复,那么分解不能通过自然联接运算恢复, 因此要求分解时利用属因此要求分解时利用属性间的函数依赖的性质性间的函数依赖的性质,才能保证此分解具有无损联接性。才能保证此分解具有无损联接性。 问题提出:在关系模式的规范化处理过程中,不仅要知道一个给定的函数依赖集合,还要知道由给定的函数依赖集合所蕴涵(或推导出)的所有函数依赖的集合。为此,需要一个有效而完备的公理系统,Armstrong公理系统即是这样的一个系统。Armstron

28、g公理系统 蕴含定义:设F是R上的函数依赖集合, XY是R的一个函数依赖 。如果R的一个关系实例满足F,则必然满足XY,则称F逻辑蕴含(Imply) XY。 Armstrong公理:为从已知的函数依赖推导出其他的函数依赖,Armstrong提出了一套推理规则,称为Armstrong公理(Armstrongs Axioms)。 闭包定义:函数依赖集合F所逻辑蕴含的函数依赖的全体,称为F的闭包(Closure), 记为F+。 (2) 增广律增广律(Augmentation)(Augmentation) :若XY,ZU,则XZYZ。 (1) 自反律自反律(Reflexivity)(Reflexivi

29、ty) :若YXU,则XY。 (3) 传递律传递律(Transitivity)(Transitivity) :若XY和YZ,则XZ。 引理引理 1 1:Armstrong公理是正确的,即:如F成立,则由F根据Armstrong公理所推导的函数依赖总是成立的。 引理引理 2 2:如下三条推理规则是正确的: 公理包含如下三条推理规则: (2) 伪传递规则伪传递规则(Pseudo Transitivity)(Pseudo Transitivity):如果XY,YWZ,则XWZ。 (1) 合并规则合并规则(Union)(Union):如果XY,XZ,则XYZ。 (3) 分解规则分解规则(Decompo

30、sition)(Decomposition):如果XY,ZY,则XZ。 或:如XYZ,则XY,XZ。F的闭包的闭包F+ F=X Y,Y Z, F+计算是NP完全问题,X A1A2.An F+=X , Y , Z , XY , XZ , YZ , XYZ , X X, Y Y, Z Z, XY X, XZ X, YZ Y, XYZ X,X Y, Y Z , XY Y, XZ Y, YZ Z, XYZ Y,X Z, Y YZ, XY Z, XZ Z, YZ YZ, XYZ Z,X XY, XY XY, XZ XY, XYZ XY, X XZ, XY YZ, XZ XZ, XYZ YZX YZ, X

31、Y XZ, XZ XY, XYZ XZ,X ZYZ, XY XYZ, XZ XYZ, XYZ XYZ Data Base SystemData Base SystemData Base System S(学号,系号,宿舍楼号)F=学号系号,系号宿舍楼号显然,S不属于3NF。分解分解0: S01(学号学号),S02(系号系号,宿舍楼号宿舍楼号)Data Base SystemData Base SystemData Base System S(学号,系号,宿舍楼号)F=学号系号,系号宿舍楼号显然,S不属于3NF。显然分解分解0是不可行的。是不可行的。分解分解0 : S01(学号学号), S02(

32、系号系号,宿舍楼号宿舍楼号) 分解分解1: S11(学号学号,宿舍楼号宿舍楼号),S12(系号系号,宿舍楼号宿舍楼号)分解分解2: S21(学号学号,系号系号), S22(学号学号, 宿舍楼号宿舍楼号)分解分解3: S31(学号学号,系号系号), S32(系号系号,宿舍楼号宿舍楼号)显然,都属于3NF(事实上,都属于BCNF、4NF)。Data Base SystemData Base SystemData Base System 学号系号宿舍楼号S1D1AS2D2BS3D2BS4D3A学号宿舍楼号S1AS2BS3BS4A系号宿舍楼号D1AD2BD3A投影操作(投影操作(分解分解1: S11,

33、S12)SData Base SystemData Base SystemData Base System 学号宿舍楼号系号宿舍楼号S1AD1AS1AD2BS1AD3AS2BD1AS2BD2BS2BD3AS3BD1AS3BD2BS3BD3AS4AD1AS4AD2BS4AD3AData Base SystemData Base SystemData Base System 学号系号宿舍楼号S1D1AS1D3AS2D2BS3D2BS4D1AS4D3A学号系号宿舍楼号S1D1AS2D2BS3D2BS4D3ASSSS结论:结论:分解分解1不是不是好的分解好的分解Data Base SystemData

34、 Base SystemData Base System 3个或更多的关系模式的情况下要判别分解是否具有无损连接性要比较复杂的算法。2个则很容易。定理1U1U2U1-U2F+或U1U2U2-U1F+定理2如果FD XY在模式R上成立,且XY=,那么R分解成 =R-Y,XY是无损分解,例如:S(学号,系号,宿舍楼号)F=学号学号系号系号,系号宿舍楼号XY, =R-Y,XYS1(学号,宿舍楼号) S2(学号学号,系号系号)Data Base SystemData Base SystemData Base System 分解分解1: S11(学号学号,宿舍楼号宿舍楼号),S12(系号系号,宿舍楼宿舍

35、楼号号)U1U2=宿舍楼号,宿舍楼号, U1-U2=学号(不成立)学号(不成立)或U1U2=宿舍楼号,宿舍楼号, U1-U2=系号(不成立)系号(不成立)(F=学号系号,系号宿舍楼号, F+ )Data Base SystemData Base SystemData Base System 分解分解2:S21(学号学号,系号系号),S22(学号学号, 宿舍楼号宿舍楼号)U1U2=学号,学号, U1-U2=系号。系号。显然,显然, U1U2U1-U2。结论:分解。结论:分解2具具有无损连接性有无损连接性.但是分解但是分解2也不是好的方案。也不是好的方案。Data Base SystemData

36、Base SystemData Base System 假设学生S3从D2系转到D3系,要修改两个关系,否则数据库中的信息会不一致。这是由于分解得到的两个关系模式不是互相独立造成的。系号宿舍楼号没投影在同一个关系中。于是我们有要求模式分解保持函数依赖这条等价标准。结论:分解2虽然是无损分解,但丢失了函数依赖系号宿舍楼号学号宿舍楼号S1AS2BS3BS4A学号系号S1D1S2D2S3D2S4D3Data Base SystemData Base SystemData Base System 分解分解3: S31(学号学号,系号系号),S32(系号系号,宿舍楼号宿舍楼号) F=学号系号,系号宿舍楼

37、号1:保持函数依赖的。2:根据U1U2U1-U2F+或U1U2U2-U1F+U1U2=系号,系号, U2-U1=宿舍楼号宿舍楼号这一分解也这一分解也具有无损连接性结论:分解分解3是一个好的分解Data Base SystemData Base SystemData Base System 4.3.3 保持函数依赖的分解保持函数依赖的分解保持关系模式分解等价的另一个重要条保持关系模式分解等价的另一个重要条件是关系模式的函数依赖集在分解后仍件是关系模式的函数依赖集在分解后仍在数据库模式中保持不变。在数据库模式中保持不变。即关系模式即关系模式R R 到到 =R1,R2=R1,R2RkRk 的分解,的

38、分解,应使函数依赖集应使函数依赖集F,F,被被F F在这些在这些RiRi上的投影上的投影蕴涵。蕴涵。Data Base SystemData Base SystemData Base System F在在AB,AC,DB,CD上的投影分别为上的投影分别为AB,AC,DC 丢失了丢失了BC,AD, ,所以此分解不保持所以此分解不保持FDFDn设关系模式R(A,B,C,D)F是R上成立的FD集,F=AB,BC,AD,DC, , =AB,AC,BD,CD是R的一个分解。4.3.3 保持函数依赖的分解保持函数依赖的分解Data Base SystemData Base SystemData Base

39、System 4.3.4 模式分解与模式等价问题模式分解与模式等价问题模式分解的两个特性实际上涉及两个数据库模式的等价问题,这种等价数据等价和依赖等价两个方面。1.数据等价是指两个数据库实例应表示同样的信息内数据等价是指两个数据库实例应表示同样的信息内容,用无损分解衡量。容,用无损分解衡量。2.依赖等价是指两个数据库模式应有相同的依赖集闭依赖等价是指两个数据库模式应有相同的依赖集闭包。在依赖集闭包相等的情况下,数据的语义是不包。在依赖集闭包相等的情况下,数据的语义是不会出差错的会出差错的。违反数据等价或语义等价的分解很难说是一个好的分解。但同时达到也不是简单的事情。Data Base Syst

40、emData Base SystemData Base System 4.3.4 关于模式分解的几个事实关于模式分解的几个事实分解具有无损连接性和分解保持函数依赖是两个相互分解具有无损连接性和分解保持函数依赖是两个相互独立的标准。独立的标准。1.具有无损连接性性的分解不一定保持函数依赖例如分解2.2保持函数依赖的分解不一定具有无损连接性如SC(SNO,DNO,CNO,CREDIT)F=SNO DNO,CNO CREDIT分解为两个关系模式:SC1(SNO,DNO)SC2(CNO,CREDIT)这个分解保持函数依赖的分解不具有无损连接性结论:关系模式的一个分解可能具有无损连接性,可能是保持函数依

41、赖,有可能是即具有无损连接性也保持函数依赖Data Base SystemData Base SystemData Base System 4.3.4关于模式分解的几个事实关于模式分解的几个事实n若要求分解具有无损连接性,那么模式分解可以达到BCNF;n若要求分解保持函数依赖,那么模式分解可以达到3NF,但不一定达到BCNF;n若要求分解即具有无损连接性,又保持函数依赖,那么模式分解可以达到3NF,但不一定达到BCNF;Data Base SystemData Base SystemData Base System 4.4 关系模式的范式关系模式的范式 (NF,Normal Form) 第一范

42、式(1NF) 第二范式(2NF) 第三范式(3NF) BCNF 第四范式(4NF) 第五范式(5NF)考核要求:了解考核要求:了解考核要求:领会考核要求:领会Data Base SystemData Base SystemData Base System 为什么要关系规范化?为什么要关系规范化? 关系模式的存储异常关系模式的存储异常: :数据冗余、更新异常、数据冗余、更新异常、 插入异常和删除异常插入异常和删除异常 关系模式的设计:把泛关系模式分解成规范关系模式的设计:把泛关系模式分解成规范化的数据库模式。化的数据库模式。Data Base SystemData Base SystemData

43、 Base System 二维表的例子二维表的例子学号学号姓名姓名专业专业课程号课程号课程名课程名教师教师系系办公室办公室电话电话教室教室成绩成绩01张张计算计算机机CS01数据库数据库陈陈计算计算机机13025894024940989张张计算计算机机CS02数学数学赵赵数学数学30235890323882376张张计算计算机机CS03英语英语陈陈外语外语5034589403050207102王王网络网络CS01数据库数据库陈陈计算计算机机13025894024940973王王网络网络CS02数学数学赵赵数学数学30235890323882388王王网络网络CS03英语英语陈陈外语外语5034

44、5894030502003李李通讯通讯CS01数据库数据库陈陈计算计算机机130258940249409李李通讯通讯CS04C+周周计算计算机机303358903338832李李通讯通讯CS03英语英语陈陈外语外语503458940305020#Data Base SystemData Base SystemData Base System 需要的知识需要的知识理解“非主属性”、“完全函数依赖”、“候选键”、“部分函数依赖”、“传递函数依赖”这五个名词的含义。 (1)候选键:可以唯一决定关系模式R中某元组值且不含有多余属性的属性集。 (2)非主属性:即非键属性,指关系模式R中不包含在任何建中的

45、属性。 (3)完全函数依赖:设R为任意给定关系,x、y其属性集,若xy,且对x中的任何真子集,x都有xy。则称y完全函数依赖于x。 Data Base SystemData Base SystemData Base System (4)部分函数依赖: 设R为任意给定关系,x、y其属性集,若xy,且x中存在一个真子集x ,x满足xy。则称y部分函数依赖于x。 (5)传递函数依赖:设R为任意给定关系,x、y、z其属性集,若xy, yx, yz,则有xz,则称z传递函数依赖于x。Data Base SystemData Base SystemData Base System 1 1NFNF:第一范式

46、第一范式1NF:第一范式 即关系模式中的属性的值域中每一个值都是不可再分解的值。 如果某个数据库模式都是第一范式的,则称该数据库模式是属于第一范式的数据库模式。 Data Base SystemData Base SystemData Base System 第二范式第二范式 如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键, 则称为第二范式模式。 在分析是否为第2范式时,应首先确定候选键,然后把关系模式中的非主属性与键的依赖关系进行考察, 是否都为完全函数依赖,如是,则此关系模式为2NF。 如果如果数据库模式中每个关系模式都是2NF的,则此数据库模式属于2NF的数

47、据库模式。 Data Base SystemData Base SystemData Base System 第三范式第三范式 3NF如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R为第三范式模式。 传递依赖的含义: 在关系模式中,如果YX,XA,且XY(X不决定Y)和AX(A不属于X),那么YA是传递依赖。 Notice:要求非主属性都不传递依赖于候选键。 Data Base SystemData Base SystemData Base System 把泛关系模式R用一组关系模式的集合=R1,R2,.,Rk来表示(R1,R2,.,Rk都是R的子集,就是数据库模式)。

48、 以代替R的过程称为关系模式的分解。 实际上,关系模式的分解不仅仅是属性集合的分解, 它是对关系模式上的函数依赖集、以及关系模式的当前值分解的具体表现。 Data Base SystemData Base SystemData Base System 第一范式第一范式 消去非主属性对键的部分函数依赖消去非主属性对键的部分函数依赖BCNF第二范式第二范式第三范式第三范式 消去非主属性对键的传递函数依赖消去非主属性对键的传递函数依赖消去主属性对键的传递函数依赖消去主属性对键的传递函数依赖普通二维表普通二维表消去重复叠代消去重复叠代Data Base SystemData Base SystemDa

49、ta Base System 不合理的分解会出现以下情况:失去函数依赖、或出现插入、删除异常等情况。 模式分解的衡量标准有三种: (1)分解具有无损联接; (2)分解要保持函数依赖; (3)分解既要保持依赖,又要具有无损 联接。 Data Base SystemData Base SystemData Base System 学院具体情况:一种课由一位老师任教,每种课在一个教室上,每学院具体情况:一种课由一位老师任教,每种课在一个教室上,每位老师有一独立的办公室。位老师有一独立的办公室。学生选课表数据资料初步统计如下:学生选课表数据资料初步统计如下:问题:这是一个关系表吗?问题:这是一个关系表

50、吗?不是不是学号学号姓名姓名专业专业课程号课程号课程名课程名教师教师系系办公室办公室电话电话教室教室成绩成绩01张张计算机计算机CS01数据库数据库陈陈计算机计算机13025894024940989张张计算机计算机CS02数学数学赵赵数学数学30235890323882376张张计算机计算机CS03英语英语陈陈外语外语5034589403050207102王王网络网络CS01数据库数据库陈陈计算机计算机13025894024940973王王网络网络CS02数学数学赵赵数学数学30235890323882388王王网络网络CS03英语英语陈陈外语外语50345894030502003李李通讯通讯

51、CS01数据库数据库陈陈计算机计算机130258940249409李李通讯通讯CS04C+周周计算机计算机303358903338832李李通讯通讯CS03英语英语陈陈外语外语503458940305020#Data Base SystemData Base SystemData Base System 第一范式第一范式 消去非主属性对键的部分函数依赖消去非主属性对键的部分函数依赖BCNF第二范式第二范式第三范式第三范式 消去非主属性对键的传递函数依赖消去非主属性对键的传递函数依赖消去主属性对键的传递函数依赖消去主属性对键的传递函数依赖普通二维表普通二维表消去重复叠代消去重复叠代Data Ba

52、se SystemData Base SystemData Base System 学号学号姓名姓名专业专业课程号课程号课程名课程名教师教师系系办公室办公室电话电话教室教室成绩成绩01张张计算机计算机CS01数据库数据库陈陈计算机计算机1302589402494098901张张计算机计算机CS02数学数学赵赵数学数学3023589032388237601张张计算机计算机CS03英语英语陈陈外语外语5034589403050207102王王网络网络CS01数据库数据库陈陈计算机计算机1302589402494097302王王网络网络CS02数学数学赵赵数学数学302358903238823880

53、2王王网络网络CS03英语英语陈陈外语外语50345894030502003李李通讯通讯CS01数据库数据库陈陈计算机计算机13025894024940903李李通讯通讯CS04C+周周计算机计算机30335890333883203李李通讯通讯CS03英语英语陈陈外语外语503458940305020#去掉重复叠代部分得到如下表:问题:问题:1、这是一个关系表吗?、这是一个关系表吗?3、还存在问题吗?、还存在问题吗?2、这是第几范式?、这是第几范式?是是是第一范式是第一范式Data Base SystemData Base SystemData Base System 问题很多:问题很多:1、

54、插入问题,新同学小赵不能被插入表中,因为、插入问题,新同学小赵不能被插入表中,因为他还没有选课,课程号不能为空(实体完整性他还没有选课,课程号不能为空(实体完整性的要求)。的要求)。2、删除问题,小李不能被删除,因为周老师将被、删除问题,小李不能被删除,因为周老师将被删除。删除。3、更新问题,修改陈老师相关信息很困难。、更新问题,修改陈老师相关信息很困难。如何结决这些问题呢?如何结决这些问题呢?Data Base SystemData Base SystemData Base System 第一范式第一范式 消去非主属性对键的部分函数依赖消去非主属性对键的部分函数依赖BCNF第二范式第二范式第

55、三范式第三范式 消去非主属性对键的传递函数依赖消去非主属性对键的传递函数依赖消去主属性对键的传递函数依赖消去主属性对键的传递函数依赖普通二维表普通二维表消去重复叠代消去重复叠代方法:方法:对关系进行分解!对关系进行分解! Data Base SystemData Base SystemData Base System 学号学号课程号课程号成绩成绩姓名姓名专业专业系系办公室办公室教师教师课程名课程名教室教室电话电话Data Base SystemData Base SystemData Base System 学号学号姓名姓名专业专业01张张计算机计算机02王王网络网络03李李通讯通讯课程号课程

56、号课程名课程名教室教室教师教师系系办公室办公室电话电话CS01数据库数据库9409陈陈计算机计算S02数学数学8823赵赵数学数学30235890323CS03英语英语5020陈陈计算机计算S04C+3033周周计算机计算机88325890333学号学号课程号课程号成绩成绩01CS018901CS027601CS037102CS017302CS028802CS0303CS0103CS0403CS02问题:问题:1、这是一个关系表吗?、这是一个关系表吗?是第二范式是第二范式是是2、这是第几范式?、这是第几范式?3、还存在问题吗?、还存在问题吗?

57、存在,冗余、更新、删存在,冗余、更新、删除问题除问题如何结决这一问题呢?如何结决这一问题呢?Data Base SystemData Base SystemData Base System 学号学号课程号课程号成绩成绩姓名姓名专业专业系系办公室办公室教师教师课程名课程名教室教室电话电话学号学号课程号课程号Data Base SystemData Base SystemData Base System 学号学号课程号课程号成绩成绩姓名姓名专业专业系系办公室办公室教师教师课程名课程名教室教室电话电话学号学号课程号课程号Data Base SystemData Base SystemData Bas

58、e System 第一范式第一范式 消去非主属性对键的部分函数依赖消去非主属性对键的部分函数依赖BCNF第二范式第二范式第三范式第三范式 消去非主属性对键的传递函数依赖消去非主属性对键的传递函数依赖消去主属性对键的传递函数依赖消去主属性对键的传递函数依赖普通二维表普通二维表消去重复叠代消去重复叠代方法:方法:对关系进行进一步的分解!对关系进行进一步的分解! Data Base SystemData Base SystemData Base System 学号学号姓名姓名专业专业01张张计算机计算机02王王网络网络03李李通讯通讯教师教师系系办公室办公室电话电话陈陈计算机计算机130258940

59、24周周计算机计算机88325890333赵赵数学数学30235890323课程号课程号课程名课程名教师教师教室教室CS01数据库数据库陈陈9409CS02数学数学赵赵8823CS03英语英语陈陈5020CS04C+周周3033学号学号课程号课程号成绩成绩01CS018901CS027601CS037102CS017302CS028802CS0303CS0103CS0403CS02问题:这一关系还有问题吗?问题:这一关系还有问题吗?这一关系与原关系等价吗?这一关系与原关系等价吗? 与原关系的信息仍然一致吗?与原关系的信息仍然一致吗?Data Base SystemData Base Syste

60、mData Base System 学号学号姓名姓名专业专业01张张计算机计算机02王王网络网络03李李通讯通讯教师教师系系办公室办公室电话电话陈陈计算机计算周计算机计算机88325890333赵赵数学数学30235890323学号学号课程号课程号成绩成绩01CS018901CS027601CS037102CS017302CS028802CS0303CS0103CS0403CS02学号学号姓名姓名专业专业课程号课程号课程名课程名教师教师系系办公室办公室电话电话教室教室成绩成绩01张张计算机计算机CS01数据库数据库陈陈计算机计算机1302589402494098903

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论