同济大学数据库关系模型和关系运算理论课件

上传人:仙*** 文档编号:242858871 上传时间:2024-09-09 格式:PPT 页数:118 大小:2.29MB
返回 下载 相关 举报
同济大学数据库关系模型和关系运算理论课件_第1页
第1页 / 共118页
同济大学数据库关系模型和关系运算理论课件_第2页
第2页 / 共118页
同济大学数据库关系模型和关系运算理论课件_第3页
第3页 / 共118页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1,第,2,章 关系数据库,2,本章重要概念,(,1,)基本概念,关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,,(,2,)关系代数,五个基本操作,四个组合操作,.,(3),理论知识,关系模型设计理论,关系数据库设计过程。,3,本章概要,本章先介绍关系模型的基本概念;然后介绍关系运算的三种理论:关系代数、关系演算;最后介绍,关系模型设计理论,关系数据库设计过程,。,4,关系模型和关系运算理论,3.1,关系模型的基本概念,3.2,关系代数,3.3,关系模型设计理论,3.4,关系数据库设计过程,返回,5,3.1,关系模型的基本概念,3.1.1,基本术语,3.1.2,关系的定义和性质,3.1.3,关系模型的三类完整性规则,3.1.4,关系模型的三级体系结构,3.1.5,关系模型的形式定义和优点,3.1.6,关系查询语言和关系运算,返回,6,3.1.1,基本术语,(1),定义,3.1,用二维表格表示实体集,用关键码进行数据导航的数据模型称为关系模型(,relational Model,)。这里数据导航,(data navigation),是指从已知数据查找未知数据的过程和方法。,图,3.1,职工登记表,7,3.1.1,基本术语,(2),在关系模型中,字段称为属性,字段值称为属性值,记录类型称为关系模式。在图,3.2,中,关系模式名是,R,。记录称为元组(,tuple,),元组的集合称为关系(,relation,)或实例(,instance,)。一般用大写字母,A,、,B,、,C,、,表示单个属性,用大写字母,、,X,、,Y,、,Z,表示属性集,用小写字母表示属性值,有时也习惯称呼关系为表或表格,元组为行,(row),,属性为列,(column),。,关系中属性个数称为“元数”(,arity,),元组个数为“基数”,(cardinality),。,8,3.1.1,基本术语,(3),关系元数为,5,,基数为,4,。,一般术语,关系模型术语,字段、数据项属性,记录类型关系模式,记录,1,元组,1,记录,2,元组,2,记录,3,元组,3,记录,4,元组,4,字段值属性值,图,3.2,关系模型的术语,文,件,关,系,9,3.1.1,基本术语,(4),关键码,(key,简称键,),由一个或多个属性组成。在实际使用中,有下列几种键。,(,1,)超键(,Super Key,),(,2,)候选键(,Candidate Key,),(,3,)主键,(Primary Key),在图,3.1,中,(工号,姓名)是模式的一个超键,但不是候选键,而(工号)是候选键。在实际使用中,如果选择(工号)作为删除或查找元组的标志,那么称(工号)是主键。,(,4,)外键(,Foreign Key,),返回,10,3.1.2,关系的定义和性质,定义,3.2,关系是一个属性数目相同的元组的 集合。,在关系模型中,对关系作了下列规范性限制:,(,1,)关系中每一个属性值都是不可分解的;,(,2,)关系中不允许出现重复元组(即不允许出现 相同的元组);,(,3,)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序;,(,4,)元组中的属性在理论上也是无序的,,但使用时按习惯考虑列的顺序。,返回,11,3.1.3,关系模型的完整性规则,(1),实体完整性规则(,entity integrity rule,),要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标识元组的作用。,12,3.1.3,关系模型的完整性规则,(2),参照完整性规则(,reference integrity rule,),定义,3.3,参照完整性规则的形式定义如下:,如果属性集,K,是关系模式,R1,的主键,,K,也是关系模式,R2,的外键,那么在,R2,的关系中,,K,的取值只允许两种可能,或者为空值,或者等于,R1,关系中某个主键值。,这条规则的实质是“不允许引用不存在的实体”。,在上述形式定义中,关系模式,R1,的关系称为“参照关系”,关系模式,R2,的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。,13,3.1.3,关系模型的完整性规则,(3),例,3.1,下面各种情况说明了参照完整性规则在关系中如何实现的。, 在关系数据库中有下列两个关系模式:,S,(,S#,,,SNAME,,,AGE,,,SEX,),SC,(,S#,,,C#,,,GRADE,),这里带 线者为主键, 带 线者为外键。据规则要求关系,SC,中的,S#,值应该在关系,S,中出现。如果关系,SC,中有一个元组(,S7,C4,80,),而学号,S7,却在关系,S,中找不到,那么我们就认为在关系,SC,中引用了一个不存在的学生实体,这就违反了参照完整性规则。,另外,在关系,SC,中,S#,不仅是外键,也是主键的一部分,因此这里,S#,值不允许空。,14,3.1.3,关系模型的完整性规则,(4),设工厂数据库中有两个关系模式:,DEPT(D#,,,DNAME),EMP(E#,,,ENAME,,,SALARY,,,D# ),车间模式,DEPT,的属性为车间编号、车间名,职工模式,EMP,的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在,EMP,中,由于,D#,不在主键中,因此,D#,值允许空。,15,3.1.3,关系模型的完整性规则,(5),设课程之间有先修、后继连系。模式如下:,R,(,C#,,,CNAME,,,PC#,),其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式,R,的主键是,C#,,外键是,PC#.,。这里参照完整性在一个模式中实现。即每门课程的直接先修课必须在关系中出现,。,16,3.1.3,关系模型的完整性规则,(6),用户定义的完整性规则,在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。,例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在,15,30,岁之间:,CHECK,(,AGE BETWEEN 15 AND 30,),返回,17,3.1.5,关系模型的三级体系结构,-,关系模式,在关系模型中,记录类型称为关系模式,而关系模式的集合就是数据库的概念模式。在系统实现时,关系模式和属性的命名一般都用英文单词。譬如图,3.5,的,ER,图转换成的关系模式集可用图,3.6,表示。而图,3.7,是这个关系模型的三个具体关系。,图,3.6,关系模式集,学生关系模式,S(S#,,,SNAME,,,AGE,,,SEX),选课关系模式,SC(S#,,,C#,,,GRADE),课程关系模式,C(C#,,,CNAME,,,TEACHER),18,3.1.5,关系模型的三级体系结构,-,子模式,子模式是用户所用到的那部分数据的描述。除此之外,还应指出数据与关系模式中相应数据的连系。例如,用户需要用到子模式,G,(图,3.8,)。,成绩子模式,G(S#,,,SNAME,,,C#,,,GRADE,),19,3.1.5,关系模型的三级体系结构,-,存储模式,图,3.10,关系,S,和,SC,的环结构,在有些,DBMS,中,关系存储是作为文件看待的,每个元组就是一个记录。由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现。如果关系的元组数目较少(,100,个以内),那么也可以用,“,堆文件,”,方式实现(即没有特定的次序)。此外,还可对任意的属性集建立辅助索引。,返回,20,3.1.6,关系模型的形式定义,关系模型有三个重要组成部分:数据结构,数据操纵,数据完整性规则。,(,1,)数据结构:数据库中全部数据及其相互连系都被组织成,“,关系,”,(二维表格)的形式。关系模型基本的数据结构是关系。,(,2,)数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数、关系演算和关系逻辑等三类。,(,3,)数据完整性规则:数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。,21,3.1.6,关系模型的优点,与其它数据模型相比,关系模型突出的优点如下:,(,1,)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。,(,2,)关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。,(,3,)关系模型使数据库的研究建立在比较坚实的数学基础上。,(,4,)关系数据库语言与一阶谓词逻辑的固有内在连系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。,返回,22,3.1.7,关系查询语言和关系运算,关系数据库的数据操纵语言(,DML,)的语句分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户进行插入、删除、修改等操作。关于查询的理论称为“关系运算理论”。,关系查询语言根据其理论基础的不同分成三类:,(,1,),关系代数语言。,(,2,)关系演算语言。,(,3,)关系逻辑语言。,返回,23,关系代数,基本概念和符号,传统的集合运算,专门的关系运算,基本运算及变换,关系代数应用实例,重要内容分析,24,关系代数的基本概念,关系代数是一种抽象的查询语言,它用对关系的运算来表达查询,即,运算对象是关系,关系代数的运算结果也是关系。与一般的运算一样,运算对象、运算符和运算结果也是关系代数的三个要素。,关系代数的运算可以分为两大类,传统的集合运算,专门的关系运算,25,几个概念和专门的符号,元组的分量,元组的连串,元组中属性的映像集,26,元组的分量,设有关系模式,R,(,A,1,,,A,2,,,,,A,n,),rR,表示,r,是,R,的一个元组,r.A,i,或,r,A,i,表示,r,这个元组中相应于属性,A,i,的一个分量,例如,假设,R,是仓库关系,,r,=,(,WH1,北京,370,)是仓库关系的一个元组,则,rR,,,r.,仓库号,或,r,仓库号,为,WH1,。,27,元组的连串,设,R,为,m,元关系,,S,为,n,元关系,并且,r,=(,r,1,r,2,r,m,),R,s,=(,s,1,s,2,s,n,),S,则 称为元组的连串。这是一个(,m,+,n,)元组,前,m,个分量为,R,中的一个,m,元组,后,n,个分量为,S,中的一个,n,元组。,28,元组中属性的映像集,设有关系模式,R(X,Y),,其中,X,、,Y,可以是单个属性,也可以是属性集,定义当,X,取值为,x,时,,x,在,R,中的映象集为:,29,设有如右上表所示的订购单关系,把它命名为,R,,并且进一步设,X,为属性职工号,,Y,为属性集,供应商号,订购单号,订购日期,,则当,X,取值为,E3,时,(,S7,,,OR67,,,2002/06/23,),,(,S4,,,OR79,,,2002/07/29,),,(,S6,,,OR90,,,2002/07/13,),,(,S3,,,OR91,,,2002/10/27,),Y,x,=,?,映像集的例子,30,传统的集合运算,集合的并运算,集合的交运算,集合的差运算,集合的广义笛卡尔积运算,31,并运算,定义,所有至少出现在两个关系中之一的元组集合,R,S = r | r,R,r,S ,R,S,两个关系,R,和,S,若进行并运算,则它们必须是相容的:,关系,R,和,S,必须是同元的,即它们的属性数目必须相同,对,i,,,R,的第,i,个属性的域必须和,S,的第,i,个属性的域相同,32,并运算,A,B,C,3,6,7,2,5,7,7,2,3,4,4,3,R,A,B,C,3,4,5,7,2,3,S,A,B,C,3,6,7,2,5,7,7,2,3,4,4,3,3,4,5,RS,33,差运算,定义,所有出现在一个关系而不在另一关系中的元组集合,R,S = r | r,R,r,S ,R,和,S,必须是相容的,R,S,34,差运算,A,B,C,3,6,7,2,5,7,7,2,3,4,4,3,R,A,B,C,3,4,5,7,2,3,S,A,B,C,3,6,7,2,5,7,4,4,3,R,S,A,B,C,3,6,7,S,R,35,交运算,定义,所有同时出现在两个关系中的元组集合,R,S = r | r,R,r,S ,交运算可以通过差运算来重写,R,S = R,(R,S),R,S,36,交运算,A,B,C,3,6,7,2,5,7,7,2,3,4,4,3,R,A,B,C,3,4,5,7,2,3,S,A,B,C,7,2,3,RS,37,集合的并、交、差运算示意,38,集合的广义笛卡尔积运算,设,R,和,S,是两个关系,如果,R,是,m,元关系、有,k,个元组,,S,是,n,元关系、有,l,个元组,则广义笛卡尔积,R,S,是一个,m,+,n,元关系、有,k,l,个元组。广义笛卡儿积可以记作:,R,S= rs | r,R,s,S ,39,广义笛卡尔积运算,A,B,1,2,r,C,D,10,10,20,10,E,a,a,b,b,s,A,B,1,1,1,1,2,2,2,2,C,D,10,19,20,10,10,10,20,10,E,a,a,b,b,a,a,b,b,r,x,s,40,专门的关系运算,选择运算,(Select),投影运算,(Project),连接运算,(Join),除运算,(Division,),41,选择运算,选择运算是从指定的关系中选择某些元组形成一个新的关系,被选择的元组是用满足某个逻辑条件来指定的。,选择运算表示为:,其中,R,是关系名,,是选择运算符,,F,是逻辑表达式。,42,F,的形式:由,逻辑运算符,连接,算术表达式,而成,逻辑表达式:,,算术表达式:,X Y,X,,,Y,是属性名、常量、或简单函数,是比较算符, , , , , , , ,示例,学生数据库,S,中找年龄不小于,20,的男学生,AGE20 ,SEX=male,(,S,),选择运算,43,选择运算,A,B,C,3,6,7,2,5,7,7,2,3,4,4,3,R,A5,(R),A,B,C,3,6,7,2,5,7,4,4,3,A5,C=7,(R),A,B,C,3,6,7,2,5,7,44,选择运算举例:,职工号,=E3,(,订购单,),订购单关系,从订购单关系中选择职工号为“,E3”,的元组构成新的关系,45,投影运算,1),选择指定的属性,形成一个可能含有重复行的表格;,2),删除重复行,形成新的关系。,投影运算对指定的关系进行投影操作,根据该关系分两步产生一个新关系:,46,投影运算表示为,其中,R,是关系名,,是投影运算符,,A,是被投影的属性或属性集。,c,b,c,f,e,d,c,b,a,C,B,A,B,C,b,c,e,f,R,B , C,(R),47,投影,示例学生表,选课表,给出所有学生的姓名和年龄,SN, AGE,(S),找,001,号学生所选修的课程号,C#,( ,S#=001,(,SC,),求选修了,001,号或,002,号课程的学生号,S#,(,C# = 001,C# = 002,(SC),48,投影,示例学生表,选课表,求选修了,001,号而没有选,002,号课程的学生号,S#,(,C# = 001,(SC),S#,(,C# = 002,(SC),求同时选修了,001,号和,002,号课程的学生号,错误的写法:,S#,(,C# = 001 ,C# = 002,(SC),正确的写法:,S#,(,C# = 001,(SC),S#,(,C# = 002,(SC),49,投影运算举例:,订购单关系,选取职工号和供应商号两列构成新的关系,职工号,供应商号,(,订购单,),50,选择和投影运算举例:,从订购单关系中,选取出职工号为,E3,的所经手的订购单号和与之相关的供应商号。,订购单关系,供应商号,订购单号,(,职工号,=E3,(,订购单,),51,连接运算,定义,从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组,A,B,为,R,和,S,上度数相等且可比的属性列,为算术比较符,为等号时称为等值连接,A,B,R S = rs | r,R,s,S,rA,sB ,R S,=,rA,sB( RS),A,B,52,连接,求数学成绩比王红同学高的学生姓名。,9,8,7,6,5,4,3,2,1,C,B,A,D,E,3,1,6,2,A,B,C,D,E,1,2,3,3,1,1,2,3,6,2,4,5,6,6,2,R S,B D,R,S,S.,姓名,(,课程,=,数学 姓名,=,王红,(R) (,课程,=,数学,S,(R),R.,成绩,S.,成绩,53,自然连接,定义,从两个关系的广义笛卡儿积中选取在相同属性列,B,上取值相等的元组,并去掉重复的行。,自然连接与等值连接的不同,自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。,当,R,与,S,无相同属性时,,,R S,R,S,R S = rsB | r,R,s,S,rB=sB ,54,A,B,1,2,4,1,2,C,D,a,a,b,a,b,r,B,1,3,1,2,3,D,a,a,a,b,b,E,s,1,1,1,1,2,a,a,a,a,b,A,B,C,D,E,r,s,自然连接,55,示例,求,001,号学生所在系的名称,DN,(,S# = 001,(S) DEPT),9,8,7,6,5,4,3,2,1,C,B,A,C,D,3,1,6,2,R,S,A,B,C,D,1,2,3,1,4,5,6,2,R S,自然连接,56,自然连接做了三件事:,计算,广义笛卡尔积,R,S,;,选择满足条件,rA,i,=sB,j,的所有元组;,去掉重复的属性。,57,自然连接的例子,58,综合运算实例,仓库号,城市,面积,WH1,北京,370,WH2,上海,500,WH3,广州,200,WH5,合肥,130,根据以上关系求出在上海工作的职工的工资值都有哪些,?,职工,关系代数语句为:,仓库,仓库号,职工号,工资,WH2,E1,1220,WH1,E3,1210,WH2,E4,1250,WH3,E6,1230,WH1,E7,1250,59,查询过程示意,选择运算,自然连接运算,投影运算,60,注意,自然连接和等值连接很相象,但它们不同,自然连接要去掉重复的属性,而等值连接却不需要去掉重复的属性。,61,除运算,象集(,Image Set,),关系,R(X , Z), X, Z,是属性组,,x,是,X,上的取值,定义,x,在,R,中的象集为,Z,x,= tZ | t,R, t,X=,x,从,R,中选出在,X,上取值为,x,的元组,去掉,X,上的分量,只留,Z,上的分量,X Z,张军同学所选修的全部课程,x,=,张军,Z,x,姓名,课程,张军,物理,王红,数学,张军,数学,课程,数学,物理,62,除运算,做法:逐个考虑选课关系,SC,中的元组,r,,求,r,在,姓名,SN,上的分量,x,,再求,x,在,选课关系,中的象集,课程,C,x,,若,C,x,包含了所有的课程,C,,则,x,是满足条件的一个元组,如何得到选修了全部课程的学生?,x,|,x,=,r,SN,r,SC,C,x,C,选修全部课,程的学生,全部课程,x,同学所选修,的全部课程,63,除运算,除定义,R(X , Y),S(Y) = ,x,|,x,=,r,X,r,R,Y,x,y,(,S),R(X , Y),S(Y) = ,t,r,X|,t,r,R,Y,x,y,(,S),R,S,是,R,中,满足下列条件的元组在,X,属性列上的投影,:,元组在,X,上的分量值,x,的象集,Y,x,包含,S,在,Y,上投影的集合。,如何理解除运算?,64,除运算,物理,数学,课程,物理,王红,数学,张军,数学,王红,物理,张军,课程,姓名,王红,张军,姓名,没有选修全部课程的学生,所有学生选修全部课程,数学,张军,数学,王红,物理,张军,课程,姓名,物理,王红,数学,张军,数学,王红,物理,张军,课程,姓名,姓名,王红,姓名,王红,张军,姓名,王红,姓名,张军,选修了全部课程的学生,65,除运算,A,B,C,D,a,b,c,d,a,b,e,f,a,b,d,e,b,c,e,f,e,d,c,d,e,d,e,f,C,D,c,d,e,f,A,B,a,b,e,d,A,B,a,b,b,c,e,d,A,B,C,D,a,b,c,d,a,b,e,f,b,c,c,d,b,c,e,f,e,d,c,d,e,d,e,f,R,AB,(R),S,AB,AB,(R),CD,(S),AB,(R),CD,(S)-R,A,B,C,D,b,c,c,d,R,S=,A,B,a,b,b,c,e,d,A,B,b,c,-,=,66,除运算,示例,求同时选修了,001,和,002,号课程的学生号,方案,1,:,S#,,,C#,(SC) ,C# = 001,C# = 002,(C),方案,2,:,S#,(SC ,C# = 001,C# = 002,(C),哪一个正确?,67,除运算,课程,数学,物理,姓名,课程,成绩,张军,物理,93,王红,数学,86,张军,数学,93,王红,物理,92,课程,数学,物理,姓名,课程,张军,物理,王红,数学,张军,数学,王红,物理,姓名,张军,王红,姓名,成绩,张军,93,选修了全部课程并且成绩都相同的学生,选修了全部课程的学生,68,除运算的例子,它的含义是:至少向,WH1,、,WH3,、,WH5,供货的供应商号。,69,基本运算及变换,在关系代数运算中集合的,并运算、差运算,、,笛卡尔积运算,以及,选择运算,和,投影,运算,是,5,种基本运算,另三种运算(集合的,交运算,以及,连接运算,和,除运算,)可以用,5,种基本运算来表达,引进它们并不增加语言的能力,但是可以简化表达。,70,两个关系的交运算可以表示为,R,S,=,R,- (,R,-,S,),R,S,71,两个关系的自然连接运算可以表示为,两个关系的,连接运算可以表示为,72,两个关系的除运算可以表示为,X,R,S,73,关系代数的五个基本操作,(,例,),例有两个关系,R,和,S,,试求,RS,,,R,S,,,B=b,(,R,),,C,,,A,(,R,),即,3,,,1,(,R,),R,S,,此处,R,和,S,的属性名相同,就应在属性名前注上相应的关系名。,(,a,)关系,R,(,b,)关系,S,74,关系代数的五个基本操作,(,例,),RS R,S RS ,C,,,A,(,R,),B=b,(,R,),关系,R,关系,S,75,BAO,S1,SNAME,SNO,RP3,MIS,C4,OS,C2,MIS,C4,LI,S4,LI,S4,DB,C1,OS,C2,LI,S4,BAO,S1,CNAME,CNO,P3,OS,C2,AN,S3,SNAME,SNO,RP2,OS,C2,GU,S2,MIS,C4,DB,C1,GU,S2,LI,S4,OS,C2,MIS,C4,BAO,S1,AN,S3,CNAME,CNO,P2,OS,C3,BAO,S1,GU,S2,OS,C2,BAO,S1,BAO,S1,OS,C2,DB,C1,BAO,S1,SNAME,SNO,RP1,CNAME,CNO,P1,CNAME,CNO,SNAME,SNO,R,除法操作的例子,76,关系代数运算的应用实例,在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询操作。,例,3.7,设教学数据库中有三个关系:,学生关系,S,(,S#,,,SNAME,,,AGE,,,SEX,),选课关系,SC,(,S#,,,C#,,,GRADE,),课程关系,C,(,C#,,,CNAME,,,TEACHER,),77,S,(,S#,,,SNAME,,,AGE,,,SEX,),SC,(,S#,,,C#,,,GRADE,),检索学习课程号为,C2,的学生学号与成绩。,S#,,,GRADE,(,C#=C2,(,SC,),表达式中也可以不写属性名,而写上属性的序号:,1,,,3,(,2=C2,(,SC,), 检索学习课程号为,C2,的学生学号与姓名。,S#,,,SNAME,(,C#=C2,(,S,SC,),由于这个查询涉及到两个关系,S,与,SC,,因此先要对这两个关系进行自然联接操作,然后再执行选择和投影操作。,78,S,(,S#,,,SNAME,,,AGE,,,SEX,),SC,(,S#,,,C#,,,GRADE,),C,(,C#,,,CNAME,,,TEACHER,),检索选修课程名为,MATHS,的学生学号与姓名。,S#,,,SNAME,(,CNAME=MATHS,(,S,SC,C,), 检索选修课程号为,C2,或,C4,的学生学号。,S#,(,C#=C2C#=C4,(,SC,), 检索至少选修课程号为,C2,和,C4,的学生学号。,1,(,1=42=C25=C4,(,SC,SC,),这里(,SC,SC,)表示关系,SC,自身相乘的笛卡尔积操作。,79,S,(,S#,,,SNAME,,,AGE,,,SEX,),SC,(,S#,,,C#,,,GRADE,),检索不学,C2,课的学生姓名与年龄。,SNAME,,,AGE,(S),SNAME,,,AGE,(,C#=C2,(S,SC),这里要用到集合差操作。先求出全体学生的,姓名和年龄,再求出学了,C2,课的学生的姓名,和年龄,最后执行两个集合的差操作。,SNAME,,,AGE,(,C#C2,(S,SC),80,S,(,S#,,,SNAME,,,AGE,,,SEX,),SC,(,S#,,,C#,,,GRADE,),C,(,C#,,,CNAME,,,TEACHER,),检索学习全部课程的学生姓名。,编写这个查询语句的关系代数表达式过程如下:,学生选课情况可用操作,S#,,,C#,(SC),表示,;,全部课程可用操作,C#,(C),表示,;,学了全部课程的学生学号可用除法操作表示,操作结果是学号,S#,集,:,S#,,,C#,(SC),C#,(C),从,S#,求学生姓名,SNAME,,可以用自然联接和投影操作组合而成:,SNAME,(S (,S#,,,C#,(SC),C#,(C),81,SC,(,S#,,,C#,,,GRADE,),检索所学课程包含学生,S3,所学课程的学生学号。,学生选课情况可用操作,S#,,,C#,(SC),表示;,学生,S3,所学课程可用操作,C#,(,S#=S3,(SC),表示;,所学课程包含学生,S3,所学课程的学生学号,可以用除法操作求得:,S#,,,C#,(SC),C#,(,S#=S3,(SC),82,S,(,S#,,,SNAME,,,AGE,,,SEX,),SC,(,S#,,,C#,,,GRADE,),C,(,C#,,,CNAME,,,TEACHER,),(,9,),检索至少学习,LIU,老师所授一门课程的女学生学号和姓名。,该查询语句的关系代数表达式如下:,S#,,,SNAME,(,TEACHER=,LIU,SEX=,F,(C,SC,S),83,重要内容分析(一),(,1,)一般规则,对于只涉及到选择、投影、连接的查询可用下列表达式表示:,(,(,RS,),或者,(,(,R S,),对于否定的操作,一般要用差操作表示,例如“检索不学,C2,课的学生姓名”。,对于检索具有“全部”特征的操作,一般要用除法操作表示,例如“,检索学习全部课程的学生姓名”。,84,重要内容分析(二),(,2,)“检索不学,C2,课的学生姓名”,,决不能用下式表示:,SNAME,,,AGE,(,C#C2,(S SC),一定要用“差”的形式:,SNAME,,,AGE,(S),SNAME,,,AGE,(,C#=C2,(S SC),(,3,)“检索学习全部课程的学生学号”,,要用,S#,,,C#,(,SC,),C#,(,C,)表示,,而不能写成,S#,(,SC,C#,(,C,),形式。这是因为一个学生学的课程的成绩可能是不一样的。,85,关系模型设计理论,规范化设计理论,规范化实例分析,86,规范化设计理论,关系模式的设计问题,函数依赖,范式,模式分解,87,关系模式的设计问题,示例,考虑为管理职工的工资信息而设计一个关系模式,88,关系模式的设计问题,问题:麻烦,!,麻烦,!,好,麻烦,!,唉,剪不断,理还乱,信息的不可表示问题,插入异常,:如果没有职工具有,8,级工资,则,8,级工资的工资数额就难以插入,删除异常,:如果仅有职工赵明具有,4,级工资,如果将赵明删除,则有关,4,级工资的工资数额信息也随之删除了,信息的冗余问题,数据冗余,:职工很多,工资级别有限,每一级别的工资数额反复存储多次,更新异常,:如果将,5,级工资的工资数额调为,620,,则需要找到每个具有,5,级工资的职工,逐一修改,89,关系模式的设计问题,解决之道:分解,!,分解,!,再分解,!,哇,原来生活可以如此简单,级别,工资,4,500,5,600,6,700,90,关系模式的设计问题,有关学生的关系模式,S(S# , SN , SD , DEAN , C# , G),快速热身,1,:,它存在哪些问题?,望闻问切:,不良的,数据依赖,91,函数依赖,函数依赖,设,R(U),是属性集,U,上的关系模式,,X , Y, U,,,r,是,R(U),上的任意一个关系,如果成立,对,t,s r,,若,tX = sX,,则,tY = sY,那么称“,X,函数决定,Y”,,或“,Y,函数依赖,于,X”,,记作,XY,称,X,为,决定因素,如,S#,SN,, (,S#,,,C#,),G,92,函数依赖,检验:,AC,?,CA,?,ABD,?,辨识:,满足依赖的关系:依赖在模式的某个关系实例上成立,模式上成立的依赖:依赖在模式的所有关系实例上都成立,A,B,C,D,a1,b1,c1,d1,a1,b2,c1,d2,a2,b2,c2,d2,a2,b3,c2,d3,a3,b3,c2,d4,93,函数依赖,部分函数依赖,在,R(U),中,如果,X,Y,,且对于任意,X,的真子集,X,,都有,X,Y,,则称,Y,对,X,完全函数依赖,记作,否则称为,Y,对,X,部分函数依赖,记作,X,Y,X Y,(,S#,,,C#,),G,(,S#,,,C#,),SN,结论:,若关系模式中存在非主属性对主键的部分依赖时,就会产生数据冗余,若是完全函数依赖,则不会出现类似问题,94,函数依赖,传递函数依赖,在,R(U),中,如果,则称,Z,对,X,传递函数依赖,因为,S#,SD,,,SD,DEAN,SD S#,所以,S#,t,DEAN,结论:,传递依赖也是产生数据冗余和更新异常的主要根源,X,Y,,,Y,Z,,,Y,X,,,且,Z,不是,Y,的子集,95,范例,关系模式,S(S# , SN , SD , DEAN , C# , G),主键:,(,S#,,,C#,),函数依赖:,(,S#,,,C#,),G,S#,SN,,(,S#,,,C#,),SN,S#,SD,,,(,S#,,,C#,),SD,SD,DEAN,96,范式,定义,范式:符合某一规范级别的关系模式的集合,规范化:通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化(概念的纯粹化),1NF,2NF,3NF,4NF,BCNF,5NF,97,1NF,定义,当关系模式,R,的所有属性都不能分解为更基本的数据单位时,称,R,是满足第一范式的,简记为,1NF,。即不能以集合、序列等作为属性值,S#,C#,S1,C1,,,C2,,,C3,S#,C#,S1,C1,S1,C2,S1,C3,98,1NF,分量是否需要再分,与具体应用有关。如果用到值的一部分,则需要进一步分割,如果只是查询出生日期,则它满足,1NF,如果查询两人生日是否相同,则只比较月、日,需要将生日分解,就不满足,1NF,如果比较两人的生肖呢?,姓名,生日,王军,68.7.10,张立,69.7.10,李明,80.3.28,姓名,年,月日,王军,68,7.10,张立,69,7.10,李明,80,3.28,99,2NF,定义,若,R,1NF,,且每个非主属性完全依赖于主键,则称,R,2,NF,消除非主属性对码的部分依赖,如,S,2NF,,因为,(,S#,,,C#,),SN,(,S#,,,C#,),SD,100,2NF,改造,非主属性有两种,一种完全依赖于码,一种部分依赖于码。,将,S,分解为:,SC(S# , C# , G),S_SD(S# , SN , SD , DEAN),101,3NF,定义,若关系模式,R,属于第一范式,且每个非主属性都不传递依赖于,R,的主键,称,R,满足第三范式,简记为,R,3,NF,消除非主属性对,主键,的传递依赖,如,S_SD,3NF,,因为有,S#SD,,,SDDEAN,102,3NF,改造,将,S_SD,分解为,STUDENT(S# , SN , SD),DEPT(SD , DEAN),103,BCNF,定义,若关系模式,R,属于第一范式,且每个属性都不传递依赖于,R,的主键,称,R,属于,C,范式,简记为,R,BC,NF,,即决定因素必须包含键码,104,模式分解,1.,模式分解的定义,所谓关系模式的分解,就是对原有关系在不同的属性上进行投影,从而将原有关系分解为两个或两个以上的含有较少属性的多个关系,模式分解的基本原则,无损连接性,函数依赖保持性,达到更高级范式,105,无损连接性,R(A, B, C),A,B,C,1,1,2,2,2,1,A,B,1,1,2,2,B,C,1,2,2,1,A,B,C,1,1,2,2,2,1,R1(A,B),R2(B,C),R1,R2,R(A, B, C),A,B,C,1,1,1,2,1,2,A,B,1,1,2,1,B,C,1,1,1,2,A,B,C,1,1,1,1,1,2,2,1,1,2,1,2,R1,R2,有损分解,无损分解,R1(A,B),R2(B,C),106,规范化实例分析,有关学生的关系模式,Student(S# , SN , SD , DEAN , C# , G),107,规范化实例分析,确定是否是,1NF,关系模式,student,中,每个属性都是不可再分的,所以关系模式,student,1NF,确定是否属于,2NF,在关系,student,中,主键为,:,S# , C# ,,因为存在属性集,S#,,,SD,,,DEAN,对主键的部分依赖,所以,student,2NF,通过观察发现,在,Student,(,S# , SN , SD , DEAN , C# , G,),中存在如下函数依赖:,108,规范化实例分析,S,#,SN,,,SD SD DEAN,S,#,DEAN S,#,,,C,# G,通过分析非主属性和主键的依赖关系可以得出:,S,#,,,C,#,SN,SD,DEAN,S,#,,,C,#,F,G,将与主键构成完全函数依赖关系的非主属性和主键一起构成一个新的关系,R2,,将导致部分函数依赖的主属性,S,#,及其函数决定的属性值,SN,SD,DEAN,从原关系中分解出来构成一个新的关系,R1,,这样就将原关系,student,分解为存在下列函数依赖的两个新关系,R1,和,R2,。,R1,(,S,#,,,SN,,,SD,,,DEAN,),109,规范化实例分析,其中存在的函数依赖如下:,S,#,SN,SD,DEAN,;,SD DEAN,R2,(,S,#,,,C,#,,,G,),其中存在的函数依赖如下:,S,#,,,C,#,G,由于,R1,,,R2,都不存在部分函数依赖,,R1,,,R2,2NF,确定是否是,3NF,因为,S#,SD,,,SD,DEAN, SD S#,所以,S#,t,DEAN,,即,R1,3NF,110,规范化实例分析,去掉传递依赖,将,R1,分解为:,R11,(,S#,,,SN,,,SD,),,R12=,(,SD,,,DEAN,),由于,R11,,,R12,都不存在传递函数依赖,故:,R11,,,R12, 3NF,确定是否是,BCNF,在,R2,,,R11,,,R12,中,每个决定因素都包含键码,所以,R2,,,R11,,,R12,BCNF,关系模式,student,整个规范化处理结实。一般数据库应用项目中,范式的级别只要求达到,3NF,111,关系数据库设计过程,需求分析,概念模式设计,逻辑模式设计,数据库的物理模式设计,数据库的实施,数据库的运行和维护,112,需求分析,需求分析是数据库设计的起点,也是数据库应用系统设计的起点。我们要特别强调需求分析的重要性,因为设计人员往往忽视或不善于进行需求分析。而需求分析是否详细、正确,将直接影响后面各个阶段。许多数据库应用系统开发周期一再延误,甚至开发项目最终失败,纠其原因主要是需求分析工作没有到位。,113,概念模式设计,概念结构设计为整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立与具体,DBMS,的概念模型。具体设计过程见下图:,需求分析结果,确定局部结构范围,实体定义,联系定义,局部,ER,图,确定公共实体模型,合并局部,ER,模式,检查并消除冲突,全局,ER,模式,114,逻辑模式设计,逻辑模式设计的任务就是将概念模式转换为与,DBMS,所支持的关系模式,并对其进行规范化处理,其过程见下图:,处理需求,ER,模式,RDBMS,特征,从,ER,模式转换为,初始关系数据库模式,关系模式规范化,模式评价,模式修正,用,DBMS,语法修正,进入物理模式,设计阶段,115,物理模式设计,数据库在实际的物理设备上的存储结构和存取方法称为数据库的物理结构。为设计好的逻辑数据模型选择一个符合应用要求的物理结构就是数据库的物理设计。,其内容主要包括,为关系选择存取方法,建立存取路径。,设计关系、索引等数据库文件的物理存储结构。,116,数据库的实施,在该阶段,设计人员运用,DBMS,提供的数据语言及其宿主语言,根据数据库逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。,117,数据库的运行和维护,在数据库运行阶段,对数据库经常性的维护工作主要由,DBA,完成,包括:,1,数据库的转储和恢复,数据库的转储和恢复是系统正式运行后最重要的维护工作之一。,2,数据库的安全性、完整性控制,118,3,数据库性能的监督、分析和改造,在数据库运行过程中,监督系统运行,对监 测数据进行分析,找出改进系统性能的方法是,DBA,的又一重要任务。,4,数据库的重组织与重构造,数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时,DBA,就要对数据库进行重组织,或部分重组织。,RDBMS,一般都提供数据重组织用的实用程序。,数据库的运行和维护,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!