资源描述
,下一页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,*,页,上一页,停止放映,*,下一页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,*,页,下一页,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,*,页,上一页,停止放映,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,12,单元,关系数据库及数学基础,第,2,页,教学目标,了解关系数据库有关概念,了解关系运算、关系代数,了解关系模型的数学定义,了解关系的规范化理论,第,3,页,教学要求,了解关系数据库有关概念,数据库记录、字段、类型、值域,了解关系运算、关系代数,选择运算、投影运算、连接运算,关系的并、交、差、选择、投影等运算,了解关系模型的数学定义,了解关系的规范化理论,第一范式、第二范式、第三范式,第,4,页,本单元涉及内容,关系数据库系统基础,1,关系模型的数学定义和关系代数,1 .1,关系模型的数学定义,1 .2,关系代数及关系运算,2,关系数据库理论,2 .1,概述,2.2,数据依赖,2 .3,规范化,第,5,页,一、关系模型的数学定义和关系代数,关系,DB,是建立在关系理论和关系代数严格的数学基础之上。,关系,DB,的特点:,P185,下面对关系数据模型进行数学定义和描述。,第,6,页,1.,关系模型的数学定义,浏览,P186,开始,(1),域、元组和关系,域(,Domain,),同类型值的集合。例如,整数集合、字母集合等。,元组(,Tuple,),设有一组域,D,1,,,D,2,,,D,n,则以下集合,D,1,xD,2,x,xD,n,= (d,1,d,2,d,n,)|d,i,D,i,i=1,2,n,中的每个元素,(d,1,d,2,d,n,),称为一个,元组,(n,元组,);,每个,d,i,值称为一个分量。,关系(,Relation,),D,1,xD,2,x,xD,n,的子集称为域,D,1,,,D,2,,,,,D,n,上的一个关系。,P186,例题,4.3,第,7,页,(2),笛卡尔乘积,设,D,1,,,D,2,,,D,n,为,n,个任意集合。定义,D,1,,,D,2,,,D,n,的笛卡尔乘积为,:,D1xD2,.Dn=(,d,1,d,2,d,n,)|,d,i,D,i,i=1,2,n,笛卡尔乘积中的每一个元素,(d,1,d,2,d,n,),叫做一个,n,元元组,元组中的,di,称为该元组的,第,i,个分量,。,元组中各分量,di,的位置不能任意颠倒,,因为,d,i,D,i,。,第,8,页,举例,设有三个集合:,NAME,、,AGE,、,SEX,NAME AGE SEX NAS,=,刘,王,21,20,男,女,NAME AGE SEX,刘,21,男,刘,21,女,刘,20,男,刘,20,女,王,21,男,王,21,女,王,20,男,王,20,女,NAME,AGE SEX =,(,d1,d2,d3,),|di Di, i=1,2,3,其中,(,刘,21,男,),是一个,元组,刘,21,男分别为,3,个分量,.,一个元组,从,NAS,中选出与刘有关的元组,就构成,一个,关系,。,第,9,页,(3)n,元关系,笛卡尔乘积,D1,D2.Dn,的任何有限子集称为,域,(,集合,)D1,D2,Dn,上的一个,n,元关系。,将,n,元关系看成一个有,n,列元素的二维表,给表中的每一列起一个名字叫,属性(,Attribute,),,则,n,元关系有,n,个属性。在同一个关系中,,属性名必须是唯一的,。属性的取值范围,Di,(,i=1,2,n),称为,值域,。,第,10,页,关键字(,Key,),候选关键字(,Candidate Key,)(候选码),在给定关系中,具有唯一标识特性的一个或多个属性被称为该关系的候选关键字。例如,学生关系中的学号。,主关键字(,Primary Key,)(主码),有时候选关键字多于一个,从中选取一个作为操作的根据,称其为主关键字。,外码,假设有两个关系,第一个关系中除,候选码之外,的一组属性,又成为第二个关系中的,候选码,,则称第一个关系中的这组属性为外码。第一个关系称为,参照关系,,第二个关系称为,被参照关系。,第,11,页,(4),关系模式,一个关系的属性名表称为该关系的关系模式,其记法为:,(,),例如关系,SHOP,各关系模式为,:,SHOP(,店名,地址,经办人,电话,),关系模式的集合,称为关系模型(,关系数据库模式),关系数据库模式,=,数据结构,+,关系操作,+,完整性约束,第,12,页,(5),完整性约束,数据在语义上的约束,称为完整性约束,实体完整性,:一个实体能与其他实体区分开来,要求关系的主属性非空,参照完整性,(引用完整性)一个关系中的属性在另一个关系中也有反映,并且它们的值应该相等。,用户定义完整性,:用户定义的取值条件等。,第,13,页,(6),关系模型,数据模型是用来描述数据的一组概念和定义。,关系模型,是以集合论中的关系的概念发展起来的数据模型,在某数据处理工作中的所有关系模式及其属性名、关键字的汇集。,(,又称,关系数据库模式,),例如,某大学采用计算机管理教学工作。涉及到三类实体:教师、课程、学生,同时,教师和课程、课程和学生,之间都有联系。从而确定了以下关系模式:,teachers,(工作证号、单位、姓名、职称),students,(学号、班级、姓名),subjects,(课程号、课程名称、学分),t_S,(,工作证号、课程号、教室,),s_s,(,学号、课程号、成绩,),及其属性名(班级、姓名等)和关键字(学号等)。,第,14,页,(7),关系数据库,对应于一个关系模型的所有,关系(表),的集合称为,关系数据库(值),。,第,15,页,2.,数据库管理系统中的关系模型,(1),关系模型,是数学化的模型,它把数据看作二维表中的元素,表就是其关系。其,特点,是:,表中每一列属性都是不能再细分的基本单元,不允许有重复的列,不允许有相同的记录,行、列次序均无关,第,16,页,关系概念的图解,关系(库名),SHOP,店 名 地 址 经办人 电话,解放路食品店,解放路,262,号 李国基,2-5036,桃园商场 桃园路,6,号 张山,6-6161,香香瓜果店 北大街,26,号 王宏,3-6201,白塔干鲜果店 西大街,56,号 宋良,3-3637,北大街果品店 北大街,231,号 林青,3-1116,关系框架,或,库结构,元组,或,记录,属性(字段),属性,“电话”的值,第,17,页,(2),关系的其它概念,这样的二维表被称为数据库文件,表中行被称为,记录,(,Record,)或,元组,列称为,字段,(,Field,)或,属性,表的第一行是字段名的集合,被称为,库结构,(,关系框架或库结构),列中的元素为该字段,(,属性,),的值,且值总是限定在某个值域,(domain),内,第,18,页,(3),基本数据类型,数据是程序的必要组成部分,也是程序处理的对象,,数据类型体现数据结构的特点,:,数据间的逻辑关系(线性、非线性的),数据在计算机中的存储方式(顺序存储、链表存储),数据的运算 提供的数据类型越丰富,说明这种语言的数据结构越丰富,处理功能也就越强。,第,19,页,字段类型(,10,种)规则,文本类型,最大长度,255,个字符,用于存放文本数据,备注类型,最大长度,65535,个字符,用于存放不同于文,本数据的文本信息(可以是特殊字符)。,数值类型,长度可以是,1,、,2,、,4,、,8,、,16,个字节,分别用,来存放不同精度要求的数值数据。,日期,/,时间,长度是,8,个字节,用来存放日期和时间,类型,日期形式为:,yy/mm/dd ;,时间形式为:,hh:mm:ss,货币类型,8个字节,最多包含4位小数。,自动编号,4个字节,是/否,1位;存放“,真,”(,True,),和“,假,”(,False,),OLE,对象,最大长度1,GB,;,用于存放超级链接地址。,查阅向导,4个字节,允许使用另一个表中某字段的值来,定义当前字段的值。,第,20,页,3,、关系代数,浏览,P187,开始,同一关系模式(关系框架)填以不同的值所生成的诸关系称为,同类关系,。,同类关系之间可以进行下列运算:,并、交、差运算,选择运算,投影运算,关系的,笛卡尔乘积运算,自然连接运算,补充 萨师煊,E4,2.4,关系代数,概述,传统的集合运算,专门的关系运算,21,集合,运算,符,-,并,差,交,广义笛卡尔积,比较运算符,大于,大于等于,小于,小于等于,等于,不等于,运算符,含义,运算符,含义,表,2.4,关系代数运算符,22,专门的关系,运算符,选择,投影,连接,除,逻辑运算符,非,与,或,运算符,含义,运算符,含义,表,2.4,关系代数运算符(续),23,2.4.1 传统的集合运算,并,差,交,广义笛卡尔积,24,1. 并(Union),R,和,S,具有相同的目,n,(即两个关系都有,n,个属性),相应的属性取自同一个域,R,S,仍为,n,目关系,由属于,R,或属于,S,的元组组成,R,S,= ,t,|,t,R,t,S,25,第,26,页,并运算举例,有同类关系,R,和,S,,如下所示:,名称 颜色 长度,的确良 白,1000,华达呢 黑,2000,名称 颜色 长度,的确良 黑,2000,华达呢 黑,2000,名称 颜色 长度,的确良 白,1000,的确良 黑,2000,华达呢 黑,2000,关系,S,关系,R,S,关系,R,重复元组要合并,26,并(续),A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b1,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,27,2. 差(Difference),R,和,S,具有相同的目,n,相应的属性取自同一个域,R - S,仍为,n,目关系,由属于,R,而不属于,S,的所有元组组成,R,-,S,= ,t,|,t,R,t,S,28,第,29,页,差运算举例,名称 颜色 长度,的确良 白,1000,关系,R,-,S,名称 颜色 长度,的确良 白,1000,华达呢 黑,2000,名称 颜色 长度,的确良 黑,2000,华达呢 黑,2000,关系,S,关系,R,29,差(续),A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b1,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,-,S,30,3. 交(Intersection),R,和,S,具有相同的目,n,相应的属性取自同一个域,R,S,仍为,n,目关系,由既属于,R,又属于,S,的元组组成,R,S,= ,t,|,t,R,t,S,R,S,=,R,(,R,-,S,),31,第,32,页,交运算举例,关系,R,S,名称 颜色 长度,华达呢 黑,2000,名称 颜色 长度,的确良 白,1000,华达呢 黑,2000,名称 颜色 长度,的确良 黑,2000,华达呢 黑,2000,关系,S,关系,R,32,交 (续),A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,A,B,C,a1,b2,c2,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,33,4.,广义笛卡尔积(,Extended Cartesian Product,),R,n,目关系,,k,1,个元组,S,m,目关系,,k,2,个元组,R,S,列:(,n,+,m,)列的元组的集合,元组的前,n,列是关系,R,的一个元组,后,m,列是关系,S,的一个元组,行:,k,1,k,2,个元组,R,S,= ,t,r,t,s,|,t,r,R,t,s,S,34,第,35,页,关系的笛卡尔乘积运算,例,设有关系,R,和,S,如下所示,其笛卡尔乘积为:,质料,颜色,单价,式样,品种,规格,涤 卡 蓝,16.00,华达呢 黑,43.00,毛 涤 褐,20.00,男 中山装 中,女 裤 子 小,女 大 衣 大,35,第,36,页,笛卡尔乘积运算举例,关系,R,S,质 料 颜色 单 价 式样 品 种 规 格,涤 卡 蓝,16.00,涤 卡 蓝,16.00,涤 卡 蓝,16.00,华达呢 黑,43.00,华达呢 黑,43.00,华达呢 黑,43.00,毛 涤 褐,20.00,毛 涤 褐,20.00,毛 涤 褐,20.00,男 中山装 中,女 裤 子 小,女 大 衣 大,男 中山装 中,女 裤 子 小,女 大 衣 大,男 中山装 中,女 裤 子 小,女 大 衣 大,36,广义笛卡尔积 (续),A,B,C,a1,b1,c1,a1,b2,c2,a2,b2,c1,R.A,R.B,R.C,a1,b1,c1,a1,b1,c1,a1,b1,c1,a1,b2,c2,a1,b2,c2,a1,b2,c2,a2,b2,c1,a2,b2,c1,a2,b2,c1,A,B,C,a1,b2,c2,a1,b3,c2,a2,b2,c1,R,S,R,S,S.A,S.B,S.C,a1,b2,c2,a1,b3,c2,a2,b2,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,a1,b2,c2,a1,b3,c2,a2,b2,c1,37,2.4,关系代数,概述,传统的集合运算,专门的关系运算,38,2.4.2 专门的关系运算,选择,投影,连接,除,39,1. 选择(Selection),1),选择又称为限制(,Restriction,),2),选择运算符的含义,在关系,R,中选择满足给定条件的诸元组,F,(,R,) = ,t,|,t,R,F,(,t,)= ,真,F,:选择条件,是一个逻辑表达式,基本形式为:,( ,X,1,Y,1, ),( ,X,2,Y,2, ),:比较运算符(,,,,,或,),X,1,,,Y,1,等:属性名、常量、简单函数;属性名也可以用它的序号来代替;,:逻辑运算符(,或,), ,:表示任选项,:表示上述格式可以重复下去,40,选择(续),3),选择运算是从行的角度进行的运算,4),举例,设有一个学生,-,课程数据库,包括学生关系,Student,、课程关系,Course,和选修关系,SC,。,41,选择(续),学 号,Sno,姓 名,Sname,性 别,Ssex,年 龄,Sage,所 在 系,Sdept,95001,李勇,男,20,CS,95002,刘晨,女,19,IS,95003,王敏,女,18,MA,95004,张立,男,19,IS,(a),Student,42,选择(续),(b),Course,课程号,课程名,先行课,学分,Cno,Cname,Cpno,Ccredit,1,数据库,5,4,2,数学,2,3,信息系统,1,4,4,操作系统,6,3,5,数据结构,7,4,6,数据处理,2,7,PASCAL,语言,6,4,43,选择(续),(c),SC,学 号,课 程 号,成 绩,Sno,Cno,Grade,95001,1,92,95001,2,85,95001,3,88,95002,2,90,95002,3,80,44,选择(续),例,1,查询信息系(,IS,系)全体学生,Sdept,= IS,(Student),或,5 =IS,(Student),结果:,Sno,Sname,Ssex,Sage,Sdept,95002,刘晨,女,19,IS,95004,张立,男,19,IS,属性名也可以用,它的序号来代替,45,选择(续),例,2,查询年龄小于,20,岁的学生,Sage 20,(Student),或,4 20,(Student),结果:,Sno,Sname,Ssex,Sage,Sdept,95002,刘晨,女,19,IS,95003,王敏,女,18,MA,95004,张立,男,19,IS,46,2. 投影(Projection),1,)投影运算符的含义,从,R,中选择出若干属性列组成新的关系,A,(,R,) = ,t,A, |,t,R,A,:,R,中的属性列,47,2. 投影(Projection),2,)投影操作主要是从列的角度进行运算,但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),48,投影(续),3),举例,例,3,查询学生的姓名和所在系,即求,Student,关系上学生姓名和所在系两个属性上的投影,Sname,,,Sdept,(Student),或,2,,,5,(Student),结果:,49,投影(续),Sname,Sdept,李勇,CS,刘晨,IS,王敏,MA,张立,IS,50,投影(续),例,4,查询学生关系,Student,中都有哪些系,Sdept,(Student),结果:,Sdept,CS,IS,MA,但投影之后不仅取消了原关系中的某些列,,而且还可能取消某些元组(避免重复行),51,3. 连接(Join),1,)连接也称为,连接,2,)连接运算的含义,从两个关系的,笛卡尔积中选取,属性间满足一定条件的元组,R S,= |,t,r,R,t,s,S,t,r,A,t,s,B, ,A,和,B,:,分别为,R,和,S,上度数相等且可比的属性组,:比较运算符,连接运算从,R,和,S,的广义笛卡尔积,R,S,中选取(,R,关系)在,A,属性组上的值与(,S,关系)在,B,属性组上值满足比较关系的元组。,A,B,t,r,t,s,52,连接(续),3,)两类常用连接运算,等值连接(,equijoin,),什么是等值连接,为“”的连接运算称为等值连接,等值连接的含义,从关系,R,与,S,的广义笛卡尔积中选取,A,、,B,属性值相等的那些元组,即等值连接为:,R S,= |,t,r,R,t,s,S,t,r,A, =,t,s,B, ,A=B,t,r,t,s,53,连接(续),自然连接(,Natural join,),什么是自然连接,自然连接是一种特殊的等值连接,两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉,自然连接的含义,R,和,S,具有相同的属性组,B,R,S,= | t,r,R,t,s,S,t,r,B, =,t,s,B, ,t,r,t,s,54,连接(续),4,)一般的连接操作是从行的角度进行运算。,自然连接还需要取消重复列,,所以是同时从行和列的角度进行运算。,A,B,R,S,55,连接(续),5,)举例,例,5,A,B,C,a,1,b,1,5,a,1,b,2,6,a,2,b,3,8,a,2,b,4,12,B,E,b,1,3,b,2,7,b,3,10,b,3,2,b,5,2,R,S,C,E,R.B=S.B,写出,R,S R S R S,56,连接(续),R,S,A,R.B,C,S.B,E,a,1,b,1,5,b,2,7,a,1,b,1,5,b,3,10,a,1,b,2,6,b,2,7,a,1,b,2,6,b,3,10,a,2,b,3,8,b,3,10,C,E,57,连接(续),等值连接,R,S,R.B=S.B,A,R.B,C,S.B,E,a,1,b,1,5,b,1,3,a,1,b,2,6,b,2,7,a,2,b,3,8,b,3,10,a,2,b,3,8,b,3,2,不取消重复列,58,连接(续),自然连接,R,S,A,B,C,E,a,1,b,1,5,3,a,1,b,2,6,7,a,2,b,3,8,10,a,2,b,3,8,2,取消重复列,59,第,60,页,60,综合举例(续),例,8,查询选修了,2,号课程的学生的学号。,Sno,(,Cno=2,(,SC,),95001,,,95002,综合举例(续),例,9,查询至少选修了一门其直接先行课为,5,号课程的学生姓名。,答案不唯一,Sname,(,Cpno=5,(Course SC Student),),或,Sname,(,Cpno=5,(Course),SC ,Sno,,,Sname,(Student),或,Sname,(,Sno,(,Cpno=5,(,Course) SC),Sno,,,Sname,(,Student),第,63,页,二、关系的规范化理论基础,P192,如何评价关系模型的好坏,这关系到如何设计关系模型(关系框架)的至关重要的问题。以,SCT,关系为例说明存在的问题:,SCT,关系是由,S#,(学号)、,C#,(课程号),,GRADE,(成绩)、,TNAME,(教师姓名)、,TAGE,(教师年龄)、,OFFICE,(办公室)属性组成。,SCT,关系 (学生课程教师关系),S# C# GRADE TNAME TAGE OFFICE,S1 C1 90,周,45 301,S1 C2 91,刘,39 302,S1 C3 85,刘,39 302,S1 C4 87,王,51 301,S2 C1 92,周,45 301,S3 C1 75,周,45 301,S3 C2 56,刘,39 302,第,64,页,关系模式的,存储异常,问题,在上述,SCT,关系中,至少存在下列问题:,数据冗余,如果某门课程有,100,个学生选修,就要出现,100,个元组(记录),相应的教这门功课的教师的姓名、年龄、办公室也要出现,100,次。,更新异常,对,SCT,关系中的元组进行修改,可能导致出现存储数据不一致的情况。例如,要修改第一元组中的,OFFICE,值时,将,301,改为,303,,会出现周老师的办公室号码不一致,除非修改所有周老师元组(记录)中的办公室号码。,第,65,页,关系模式的,存储异常,问题(续),插入异常,如果某课程决定由张老师担任,但在还不知道哪些学生选修前,无法将张老师的记录插入关系中。因为,在,SCT,关系中(,S#,,,C#,)是主关键字,在,C#,不确定的情况下,根据关系模型的实体完整性规则,不允许主关键字中出现空值。因此,在,C#,不确定的情况下,不能插入该记录。,删除异常,如果要删除某门课程的所有成绩,则会将教这门功课的教师信息也删除掉。例如,若要删除,C4,的元组,结果会丢失王老师的有关信息。显然,这是不希望发生的事情。,第,66,页,关系的规范化举例,显然,,SCT,关系的性能是很差的。如果将,SCT,关系分解为两个子关系,SC,和,CT,,即,SC,(,S#,,,C#,,,GRADE,)、,CT,(,C#,,,TNAME,,,TAGE,,,OFFICE,),上述存储异常问题将消失。,S# C# GRADE,S1 C1 90,S1 C2 91,S1 C3 85,S1 C4 87,S2 C1 92,S3 C1 75,S3 C2 56,SC,关系,C# TNAME TAGE OFFICE,C1,周,45 301,C2,刘,39 302,C3,刘,39 302,C4,王,51 301,CT,关系,第,67,页,产生,存储异常,问题的原因,为什么会产生存储异常的问题呢?,这与每个关系模式中个属性值之间的联系有关。在,SCT,关系中,(,S#,,,C#,)是主关键字,它们的值唯一决定其它所有属性的值,形成一种,依赖关系,。,TANME,、,TAGE,、,OFFICE,的属性值由课程号,C#,决定,与学号,S#,无直接联系。把无直接联系的教师属性和学生学号放在一起,就产生了存储异常的问题。因此,模式设计时强调,“,独立的联系,独立表达,”,。这是一条设计原则。将,SCT,分解为,SC,、,CT,,就符合这条设计原则。,通常,将结构较简单的关系取代结构较复杂关系(简单和复杂是指数据相关性而言)的过程称为关系的规范化。当然,这个过程既不能增加,也不能丢失信息,称之为,“,无损连接,”,。,第,68,页,例,1,:关系,BORROW,8212102,陆华 自控,86,女生宿舍,206 6201,自控原理,0621,张山 自控教研室 花园路,312,号,6201,自控原理,10.03.02,0621,张山 自控教研室 花园路,312,号,3104,数据处理,0621,张山 自控教研室 花园路,312,号,5112,晶体管电路,8212103,何白 自控,86,女生宿舍,206 5112,晶体管电路,借书证号 姓名 单位 住址 书号 书名 日期,第,69,页,例,2,:关系,BICYCLE,品 名 厂 家 厂 长 产 地 年产量 单 价,黄山牌,26,男车 黄山自行车厂 刘同利 合肥,20000 336.00,黄山牌,26,坤车 黄山自行车厂 刘同利 合肥,23000 326.00,红旗牌,24,坤车 海河自行车厂 王山 天津,76000 310.00,大象牌,28,男车 生发自行车厂 丁三元 广州,10000 310.00,大象牌,28,加重 生发自行车厂 丁三元 广州,50000 340.00,大象牌,28,跑车 生发自行车厂 丁三元 广州,10000 371.00,大象牌,26,男车 生发自行车厂 丁三元 广州,30000 320.00,大象牌,26,坤车 生发自行车厂 丁三元 广州,50000 320.00,大象牌,24,坤车 生发自行车厂 丁三元 广州,10000 305.00,第,70,页,数据依赖,概念,:描述同一关系内各属性之间的相互关系被称为数据依赖。,类型,:数据依赖有许多种类型,这里只介绍,函数依赖,、,完全函数依赖,和,传递依赖,的概念。,第,71,页,函数依赖,定义,:在关系,R,中,如果每个属性(或属性组),A,的值只有一个属性,B,的值与之对应,就称属性,B,函数依赖于属性(或属性组),A,, (,p192,),记为:,A B,。,读作,:,“,A,函数决定,B,”,或,“,B,函数依赖于,A,”,。,例关系,BORROW,中,各属性之间的函数依赖可描述为:,借书证号 姓名,借书证号 单位,借书证号 住址,书号 书名,(借书证号,书号) 日期,第,72,页,主属性、非主属性,定义: 主码的属性为,主属性,,反之则为,非主属性,。,例如关系,BORROW,中,候选关键字只有一个(,借书证号,书号,),所以,,“,借书证号,”,和,“,书号,”,组是,主属性,,其它属性都是,非主属性,。,第,73,页,完全函数依赖,定义另一种形式:设在关系,R,中,,A,和,B,是,R,的不同属性子集,,C,是,A,的真子集,若对于,R,中的任一可能关系,有,A B,,但,C B,,则称,B,完全函数依赖,于,A,。 (,p192,),A B,若,A B,,且,A,的真子集,C B,,则称,B,部分函数依赖,于,A,。,第,74,页,完全函数依赖举例,关系,BORROW,中,只有属性,“,日期,”,完全函数依赖于关键字(,借书证号,书号,),其它非主属性都是部分函数依赖于关键字。,这里,借书证号,书号,是主属性,,”,日期,“,是非主属性,,“,借书证号,“,和,”,书号,“,都是,借书证号,书号,的真子集,因有,借书证号,书号,日期,而,借书证号 日期, 书号 日期(不函数依赖),所以,,借书证号,书号, ,日期,第,75,页,传递函数依赖,定义,: 设有关系模式,R,,而,X,、,Y,、,Z,是,R,的三个不同属性子集,并且有:如果,X Y,,,Y X,,,Y Z,,则称,Z,传递函数依赖于,X,。,记为:,X Z,举例,,关系,BICYCLE,中的,“,厂长,”,和,“,产地,”,,传递函数依赖于,“,品名,”,。,因为,,品名 厂家,厂家 厂长,品名 厂家,厂家 产地,所以,厂长、产地传递函数依赖于品名。,t,品名, 厂长, 品名 产地,t,t,第,76,页,关系规范化,范式,关系规范化有不同的标准,将规范标准称之为,范式,。可以把范式看成是满足某种条件的关系模式的集合(或用范式定义消除数据冗余的程度)范式分为:,(,范式:规范标准,),第一范式,1NF,第二范式,2NF,第三范式,3NF,Boyce-Codd,范式,BCNF,第四范式,4NF,第五范式,5NF,它们满足下列关系:,5NF 4NF BCNF 3NF 2NF 1NF,SEE PPT93,图,第,77,页,第一范式,1NF,定义,:所有符合关系定义(二维表格)的关系被称为规范关系,或称为第一范式,记为,1NF,。,或曰:,每个属性都必须是原子值,即仅仅是一个简单值而,不含内部结构,。,P193,如果关系模式,R,的每个关系的各个属性值都是基本数据项,则称,R,为第一范式。,为了与规范关系相互区别,将关系的某些属性有,重复组或空白值,的关系(二维表)称为非规范关系。去掉重复组,填写空白值,就可以变为,1NF,的关系。,(,P193,),第,78,页,表示借书关系的表,8212102,陆华 自控,86,女生宿舍,206 6201,自控原理,0621,张山 自控教研室 花园路,312,号,6201,自控原理,10.03.02,3104,数据处理,5112,晶体管电路,8212103,何白 自控,86,女生宿舍,206 5112,晶体管电路,借书证号 姓名 单位 住址 书号 书名 日期,该关系是非规范化的关系,第,79,页,1NF,的关系,BORROW,8212102,陆华 自控,86,女生宿舍,206 6201,自控原理,0621,张山 自控教研室 花园路,312,号,6201,自控原理,10.03.02,0621,张山 自控教研室 花园路,312,号,3104,数据处理,0621,张山 自控教研室 花园路,312,号,5112,晶体管电路,8212103,何白 自控,86,女生宿舍,206 5112,晶体管电路,借书证号 姓名 单位 住址 书号 书名 日期,该关系是,1NF,的关系,关系,BORROW,第,80,页,规范化为,1NF,的举例,S# CITY P#,S1,北京,P1,P2,S2,上海,P1,P2,S# CITY P#,S1,北京,P1,S1,北京,P2,S2,上海,P1,S2,上海,P2,属性,P,有,重复组的,处理,S2,上海,P1,S2,上海,P2,S2,上海,P1,S2,上海,P2,S2,上海,P1,S2,上海,P2,姓名 地址 电话,林,A4 326910,王,A1 326831,吴,A3,张,A2,姓名 地址,林,A4,王,A1,吴,A3,张,A2,姓名 电话,林,326910,王,326831,属性电话,有空白值,的处理,第,81,页,第一范式的讨论,关系,BORROW,虽然满足了,1NF,,但还存在不规范的问题。,数据冗余,一个学生要借,10,本书,他的有关信息要重复存放,10,次;,插入问题,若某学生没借过书,则有关信息无法插入;因为,作为主关键字(借书证号,书号)的,“,书号,”,无值;,删除问题,若某学生归还了借阅的全部图书,则有关他的信息将全被删除(丢失)。,结论:,作为关系模式来说,在某些应用中,只满足,1NF,还不够,还要进一步规范化。,第,82,页,第二范式,2NF,P194,定义,:,如果关系模式,R,为第一范式,并且任一非主属性都完全函数依赖于,R,的主属性,则称,R,为第二范式,,记为,2NF(,或曰,:,满足,1NF,且每个非关键字属性都由整个关键字决定,而不是由关键字的部分来决定,).,关系,BORROW,不是第二范式,因为其属性,”,姓名,“,、,“,单位,”,、,”,住址,“,、,”,书名,“,都不完全函数依赖于唯一的候选关键字,借书证号,书号,。,作下列投影运算,就可将其分解为,2NF,的关系:,READER = ,借书证号、姓名、单位、住址,(,BORROW,),BOOK = ,书号、书名,(,BORROW,),BORROW = ,借书证号、书号、日期,(,BORROW,),第,83,页,2NF,的关系,(,a,),READER,关系,借书证号 姓 名 单 位 住 址,8612101,陆华 自控,86,女生宿舍,206,0621,张山 自控教研室 花园路,312,号,8612103,何白 自控,86,女生宿舍,206,8603211,李维 自控,86,男生宿舍,101,第,84,页,2NF,的关系,(,b,)关系,BOOK,书号 书 名,6201,自控原理,3104,数据处理,5112,晶体管电路,0116,机械制造,0229,金相分析,第,85,页,2NF,的关系,(,c,)关系,BORROW,借书证号 书 号 日 期,第,86,页,第三范式,3NF,如果关系模式,R,满足,2NF,,并且其任何一个非主属性都不传递函数依赖于主属性,则称,R,为第三范式,记为,3NF,。,例关系,BICYCLE,满足第二范式,但不满足第三范式,因为:,品名 厂长, 品名 产地,去掉其中的传递函数依赖关系,即可得到满足第三范式的关系。,例如, (,b,)新关系,BICYCLE,和,(,c,)新关系,BICYCLE_PLANT,。,t,t,第,87,页,第三范式,3NF,举例,品 名 厂 家 厂 长 产 地 年产量 单 价,黄山牌,26,男车 黄山自行车厂 刘同利 合肥,20000 336.00,黄山牌,26,坤车 黄山自行车厂 刘同利 合肥,23000 326.00,红旗牌,24,坤车 海河自行车厂 王山 天津,76000 310.00,大象牌,28,男车 生发自行车厂 丁三元 广州,10000 310.00,大象牌,28,加重 生发自行车厂 丁三元 广州,50000 340.00,大象牌,28,跑车 生发自行车厂 丁三元 广州,10000 371.00,大象牌,26,男车 生发自行车厂 丁三元 广州,30000 320.00,大象牌,26,坤车 生发自行车厂 丁三元 广州,50000 320.00,大象牌,24,坤车 生发自行车厂 丁三元 广州,10000 305.00,(a),关系,BICYCLE,第,88,页,第三范式,3NF,举例,经投影操作:,BICYCLE= ,品名、厂家、年产量、单价,(,BICYCLE,),得,品 名 厂 家 年产量 单 价,黄山牌,26,男车 黄山自行车厂,20000 336.00,黄山牌,26,坤车 黄山自行车厂,23000 326.00,红旗牌,24,坤车 海河自行车厂,76000 310.00,大象牌,28,男车 生发自行车厂,10000 310.00,大象牌,28,加重 生发自行车厂,50000 340.00,大象牌,28,跑车 生发自行车厂,10000 371.00,大象牌,26,男车 生发自行车厂,30000 320.00,大象牌,26,坤车 生发自行车厂,50000 320.00,大象牌,24,坤车 生发自行车厂,10000 305.00,(b),新关系,BICYCLE,第,89,页,第三范式,3NF,P195,经投影操作:,BICYCLE_PLANT=,厂家,厂长,产地,(BICYCLE),得,厂 家 厂 长 产 地,黄山自行车厂 刘同利 合肥,海河自行车厂 王山 天津,生发自行车厂 丁三元 广州,(c),新关系,BICYCLE_PLANT,新关系,(b)BICYCLE,和,(c)BICYCLE_PLANT,满足第三范式的关系。,第,90,页,综合举例,-SCT,关系,SCT,关系是由,S#,(学号)、,C#,(课程号),,GRADE,(成绩)、,TNAME,(教师姓名)、,TAGE,(教师年龄)、,OFFICE,(办公室)属性组成。,SCT,关系 (学生课程教师关系),S# C# GRADE TNAME TAGE OFFICE,S1 C1 90,周,45 301,S1 C2 91,刘,39 302,S1 C3 85,刘,39 302,S1 C4 87,王,51 301,S2 C1 92,周,45 301,S3 C1 75,周,45 301,S3 C2 56,刘,39 302,SCT,是,1NF,而不是,2NF,。因为(,S#,,,C#,)是,SCT,的候选关键字,,TNAME,是非主属性,,C#,是(,S#,,,C#,)的一个真子集,,C#,TNAME,。,第,91,页,SCT,从,1NF,分解为,2NF,将,SCT,关系进行无损连接分解为两个子关系,SC,和,CT,,即,SC,(,S#,,,C#,,,GRADE,)、,CT,(,C#,,,TNAME,,,TAGE,,,OFFICE,),,即得到两个,2NF,关系。,S# C# GRADE,S1 C1 90,S1 C2 91,S1 C3 85,S1 C4 87,S2 C1 92,S3 C1 75,S3 C2 56,SC,关系,C# TNAME TAGE OFFICE,C1,周,45 301,C2,刘,39 302,C3,刘,39 302,C4,王,51 301,CT,关系,CT,还有冗余,,TAGE,传递依赖于,C#,,可再进行分解。,第,92,页,CT,从,2NF,分解为,3NF,对,CT,再作投影分解:两个新关系,CT=,C#,,,TNAME,(,CT,),,TO= ,TNAME,,,TAGE,OFFICE,(,CT,),得两个满足,3NF,的关系:,CT,关系,TO,关系,C# TNAME,C1,周,C2,刘,C3,刘,C4,王,TNAME TAGE OFFICE,周,45 301,刘,39 302,王,51 301,第,93,页,总结,5NF,4NF,BCNF,3NF,1NF,2NF,关系世界(规范与非规范关系),一般而言,分解到,3NF,就能满足应用需要。范式级别越高,产生的新关系就越多,数据查询时就不得不进行大量的,连接,运算。,非规范关系消去重复组或空白,变为,1NF,关系;,1NF,关系中消去非主属性对候选,关键字的部分依赖变为,2NF,关系;,再消去非主属性对候选关键字的,传递依赖变成,3NF,;,随之消去所有部分依赖就变成,BCNF,关系;,若消去函数依赖以外的所有多值,依赖,就变成,4NF,关系;,最后,消去所有不按候选关键字,进行连接运算的连接相关性,得,到,5NF,关系。,第,94,页,思考题,p207,思考题,萨师煊书中习题,
展开阅读全文