资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,数 据 库 原 理 与 技 术,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,An Introduction to Database System,安徽农业大学计算机与信息学院,An Introduction to Database System,第二章 关系数据库,(,续,),数据库原理与技术,数 据 库 原 理 与 技 术,第二章 关系数据库,2.1,关系模型概述,2.2,关系数据结构,2.3,关系的完整性,2.4,关系代数,2.5,关系演算,2.6,小结,数 据 库 原 理 与 技 术,2.4,关系代数,概述,传统的集合运算,专门的关系运算,数 据 库 原 理 与 技 术,集合,运算,符,-,并,差,交,笛卡尔积,比较运算符,大于,大于等于,小于,小于等于,等于,不等于,运算符,含义,运算符,含义,表,2.4,关系代数运算符,概 述,数 据 库 原 理 与 技 术,专门的关系运算符,选择,投影,连接,除,逻辑运算符,非,与,或,运算符,含义,运算符,含义,表,2.4,关系代数运算符(续),概 述,(,续,),数 据 库 原 理 与 技 术,2.4,关系代数,概述,传统的集合运算,专门的关系运算,数 据 库 原 理 与 技 术,1.,并(,Union,),R,和,S,具有相同的目,n,(,即两个关系都有,n,个属性),相应的属性取自同一个域,R,S,仍为,n,目关系,由属于,R,或属于,S,的元组组成,R,S,=,t,|,t,R,t,S,数 据 库 原 理 与 技 术,并(续),数 据 库 原 理 与 技 术,2.,差(,Difference,),R,和,S,具有相同的目,n,相应的属性取自同一个域,R-S,仍为,n,目关系,由属于,R,而不属于,S,的所有元组组成,R,-,S,=,t,|,t,R,t,S,数 据 库 原 理 与 技 术,差(续),数 据 库 原 理 与 技 术,3.,交(,Intersection,),R,和,S,具有相同的目,n,相应的属性取自同一个域,R,S,仍为,n,目关系,由既属于,R,又属于,S,的元组组成,R,S,=,t,|,t,R,t,S,R,S,=,R,(,R,-,S,),数 据 库 原 理 与 技 术,交,(,续,),数 据 库 原 理 与 技 术,4.,笛卡尔积(,Cartesian Product,),严格地讲应该是广义的笛卡尔积(,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,数 据 库 原 理 与 技 术,笛卡尔积,(,续,),数 据 库 原 理 与 技 术,2.4,关系代数,概述,传统的集合运算,专门的关系运算,数 据 库 原 理 与 技 术,2.4.2,专门的关系运算,先引入几个记号,(,1,),R,,,t,R,,,tA,i,设关系模式为,R(A,1,,,A,2,,,,,A,n,),它的一个关系设为,R,t,R,表示,t,是,R,的一个元组,t,A,i,则表示元组,t,中相应于属性,A,i,的一个分量,数 据 库 原 理 与 技 术,专门的关系运算,(,续,),(,2,),A,,,tA,,,A,若,A,=,A,i,1,,,A,i,2,,,,,A,ik,,,其中,A,i,1,,,A,i,2,,,,,A,ik,是,A,1,,,A,2,,,,,A,n,中的一部分,则,A,称为属性列或属性组。,tA,=(,t,A,i,1,,,t,A,i,2,,,,,t,A,ik,),表示元组,t,在属性列,A,上诸分量的集合。,A,则表示,A,1,,,A,2,,,,,A,n,中去掉,A,i,1,,,A,i,2,,,,,A,ik,后剩余的属性组。,数 据 库 原 理 与 技 术,专门的关系运算,(,续,),(,3,),t,r,t,s,R,为,n,目关系,,S,为,m,目关系。,t,r,R,,,t,s,S,,,t,r,t,s,称为元组的连接。,t,r,t,s,是一个,n,+,m,列的元组,前,n,个分量为,R,中的一个,n,元组,后,m,个分量为,S,中的一个,m,元组。,数 据 库 原 理 与 技 术,专门的关系运算,(,续,),(,4,)象集,Z,x,给定一个关系,R,(,X,,,Z,),,X,和,Z,为属性组。,当,t,X,=,x,时,,x,在,R,中的,象集,(,Images Set,),为:,Z,x,=,t,Z,|,t,R,,,t,X,=,x,它表示,R,中属性组,X,上值为,x,的诸元组在,Z,上分量的集合,数 据 库 原 理 与 技 术,专门的关系运算,(,续,),x,1,在,R,中的象集,Z,x1,=,Z,1,,,Z,2,,,Z,3,,,x,2,在,R,中的象集,Z,x2,=,Z,2,,,Z,3,,,x,3,在,R,中的象集,Z,x3,=,Z,1,,,Z,3,象集举例,数 据 库 原 理 与 技 术,专门的关系运算,(,续,),选择,投影,连接,除,数 据 库 原 理 与 技 术,专门的关系运算,(,续,),(a),Student,4),学生,-,课程数据库,:,学生关系,Student,、,课程关系,Course,和选修关系,SC,学号,Sno,姓名,Sname,性别,Ssex,年龄,Sage,所在系,Sdept,200215121,李勇,男,20,CS,200215122,刘晨,女,19,IS,200215123,王敏,女,18,MA,200215125,张立,男,19,IS,数 据 库 原 理 与 技 术,专门的关系运算,(,续,),课程号,Cno,课程名,Cname,先行课,Cpno,学分,Ccredit,1,数据库,5,4,2,数学,2,3,信息系统,1,4,4,操作系统,6,3,5,数据结构,7,4,6,数据处理,2,7,PASCAL,语言,6,4,Course,(b),数 据 库 原 理 与 技 术,专门的关系运算,(,续,),(c),SC,学号,Sno,课程号,Cno,成绩,Grade,200215121,1,92,200215121,2,85,200215121,3,88,200215122,2,90,200215122,3,80,数 据 库 原 理 与 技 术,1.,选择(,Selection,),1),选择又称为限制(,Restriction,),2),选择运算符的含义,在关系,R,中选择满足给定条件的诸元组,F,(,R,)=,t,|,t,R,F,(,t,)=,真,F,:,选择条件,是一个逻辑表达式,基本形式为:,X,1,Y,1,数 据 库 原 理 与 技 术,选择,(,续),3),选择运算是从关系,R,中选取使逻辑表达式,F,为真的元组,是从,行的角度,进行的运算,数 据 库 原 理 与 技 术,选择(续),例,1,查询信息系(,IS,系)全体学生,Sdept,=IS,(Student),或,5=IS,(Student),结果:,Sno,Sname,Ssex,Sage,Sdept,200215122,刘晨,女,19,IS,200215125,张立,男,19,IS,数 据 库 原 理 与 技 术,选择(续),例,2,查询年龄小于,20,岁的学生,Sage 20,(Student),或,4 20,(Student),结果:,Sno,Sname,Ssex,Sage,Sdept,200215122,刘晨,女,19,IS,200215123,王敏,女,18,MA,200215125,张立,男,19,IS,数 据 库 原 理 与 技 术,2.,投影(,Projection,),1,)投影运算符的含义,从,R,中选择出若干属性列组成新的关系,A,(,R,)=,t,A,|,t,R,A,:,R,中的属性列,数 据 库 原 理 与 技 术,2.,投影(,Projection,),2,)投影操作主要是从,列的角度,进行运算,但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),数 据 库 原 理 与 技 术,投影,(,续),例,3,查询学生的姓名和所在系,即求,Student,关系上学生姓名和所在系两个属性上的投影,Sname,,,Sdept,(Student),或,2,,,5,(Student),结果:,数 据 库 原 理 与 技 术,投影,(,续),Sname,Sdept,李勇,CS,刘晨,IS,王敏,MA,张立,IS,数 据 库 原 理 与 技 术,投影,(,续),例,4,查询学生关系,Student,中都有哪些系,Sdept,(Student),结果:,Sdept,CS,IS,MA,数 据 库 原 理 与 技 术,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,数 据 库 原 理 与 技 术,连接,(,续,),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,数 据 库 原 理 与 技 术,连接,(,续,),自然连接(,Natural join,),自然连接是一种特殊的等值连接,两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉,自然连接的含义,R,和,S,具有相同的属性组,B,R,S,=|,t,r,R,t,s,S,t,r,B,=,t,s,B,t,r,t,s,数 据 库 原 理 与 技 术,连接,(,续,),4,)一般的连接操作是从行的角度进行运算。,自然连接还需要取消,重复列,,所以是同时从行和列的角度进行运算。,A,B,R,S,数 据 库 原 理 与 技 术,连接,(,续,),例,5,关系,R,和关系,S,如下所示:,数 据 库 原 理 与 技 术,连接,(,续,),一般连接,R S,的结果如下:,C,E,数 据 库 原 理 与 技 术,连接,(,续,),等值连接,R,S,的结果如下:,R.B=S.B,数 据 库 原 理 与 技 术,连接,(,续,),自然连接,R,S,的结果如下:,数 据 库 原 理 与 技 术,连接,(,续,),外连接,如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值,(Null),,,这种连接就叫做外连接(,OUTER JOIN,)。,左外连接,如果只把左边关系,R,中要舍弃的元组保留就叫做左外连接,(LEFT OUTER JOIN,或,LEFT JOIN),右外连接,如果只把右边关系,S,中要舍弃的元组保留就叫做右外连接,(RIGHT OUTER JOIN,或,RIGHT JOIN),。,数 据 库 原 理 与 技 术,连接,(,续,),下图是例,5,中关系,R,和关系,S,的外连接,数 据 库 原 理 与 技 术,连接,(,续,),图,(b),是例,5,中关系,R,和关系,S,的左外连接,图,(c),是右外连接,数 据 库 原 理 与 技 术,4.,除(,Division,),给定关系,R,(,X,,,Y,),和,S,(,Y,,,Z,),,,其中,X,,,Y,,,Z,为属性组。,R,中的,Y,与,S,中的,Y,可以有不同的属性名,但必须出自相同的域集。,R,与,S,的除运算得到一个新的关系,P(X),,,P,是,R,中满足下列条件的元组在,X,属性列上的投影:,元组在,X,上分量值,x,的象集,Y,x,包含,S,在,Y,上投影的集合,记作:,R,S,=,t,r,X,|,t,r,R,Y,(,S,),Y,x,Y,x,:,x,在,R,中的象集,,x,=,t,r,X,数 据 库 原 理 与 技 术,除(续),2,)除操作是同时从行和列角度进行运算,R,S,数 据 库 原 理 与 技 术,除(续),例,6,设关系,R,、,S,分别为下图的,(a),和,(b),,,R,S,的结果为图,(c),数 据 库 原 理 与 技 术,分析,在关系,R,中,,A,可以取四个值,a1,,,a2,,,a3,,,a4,a,1,的象集为,(,b,1,,,c,2,),,,(,b,2,,,c,3,),,,(,b,2,,,c,1,),a,2,的象集为,(,b,3,,,c,7,),,,(,b,2,,,c,3,),a,3,的象集为,(b,4,,,c,6,),a,4,的象集为,(,b,6,,,c,6,),S,在,(,B,,,C,),上的投影为,(b1,,,c2),,,(b2,,,c1),,,(b2,,,c3),只有,a,1,的象集包含了,S,在,(,B,,,C,),属性组上的投影,所以,R,S,=,a,1,数 据 库 原 理 与 技 术,5,综合举例,以学生,-,课程数据库为例,(P56),例,7,查询至少选修,1,号课程和,3,号课程的学生号码,首先建立一个临时关系,K,:,然后求:,Sno,Cno,(SC),K,Cno,1,3,数 据 库 原 理 与 技 术,综合举例,(,续,),例,7,续,Sno,Cno,(SC),200215121,象集,1,,,2,,,3,200215122,象集,2,,,3,K=1,,,3,于是:,Sno,Cno,(SC),K=,200215121,Sno,Cno,200215121,1,200215121,2,200215121,3,200215122,2,200215122,3,数 据 库 原 理 与 技 术,综合举例,(,续,),例,8,查询选修了,2,号课程的学生的学号。,Sno,(,Cno=2,(,SC,),200215121,,,200215122,数 据 库 原 理 与 技 术,综合举例,(,续,),例,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),数 据 库 原 理 与 技 术,综合举例,(,续,),例,10,查询选修了全部课程的学生号码和姓名。,Sno,,,Cno,(,SC,),Cno,(,Course,),Sno,,,Sname,(,Student,),数 据 库 原 理 与 技 术,小结,关系代数运算,关系代数运算,并、差、交、笛卡尔积、投影、选择、连接、除,基本运算,并、差、笛卡尔积、投影、选择,交、连接、除,可以用,5,种基本运算来表达,引进它们并不增加语言的能力,但可以简化表达,数 据 库 原 理 与 技 术,小结,(,续,),关系代数表达式,关系代数运算经有限次复合后形成的式子,典型关系代数语言,ISBL,(,Information System Base Language,),由,IBM United Kingdom,研究中心研制,用于,PRTV,(,Peterlee,Relational Test Vehicle,),实验系统,数 据 库 原 理 与 技 术,第二章 关系数据库,2.1,关系模型概述,2.2,关系数据结构,2.3,关系的完整性,2.4,关系代数,2.5,关系演算,2.6,小结,数 据 库 原 理 与 技 术,2.5,关系演算,关系演算,以数理,逻辑,中的谓词演算为基础,按谓词变元不同 进行分类,1.,元组关系演算:,以,元组变量,作为谓词变元的基本对象,元组关系演算语言,ALPHA,2.,域关系演算:,以,域变量,作为谓词变元的基本对象,域关系演算语言,QBE,数 据 库 原 理 与 技 术,2.5.1,元组关系演算语言,ALPHA,由,E.F.Codd,提出,INGRES,所用的,QUEL,语言是参照,ALPHA,语言研制的,语句,检索语句,GET,更新语句,PUT,,,HOLD,,,UPDATE,,,DELETE,,,DROP,数 据 库 原 理 与 技 术,一、检索操作,语句格式:,GET,工作空间名,(,定额,),(,表达式,1,),:,操作条件,DOWN/UP,表达式,2,定额:规定检索的元组个数,格式:数字,表达式,1,:指定语句的操作对象,格式:,关系名,|,关系名,.,属性名,|,元组变量,.,属性名,|,集函数,,,操作条件:将操作结果限定在满足条件的元组中,格式:逻辑表达式,表达式,2,:指定排序方式,格式:关系名,.,属性名,|,元组变量,.,属性名,,,数 据 库 原 理 与 技 术,一、检索操作,(,1,)简单检索,GET,工作空间名,(,表达式,1,),例,1,查询所有被选修的课程号码。,GET W (,SC.Cno,),例,2,查询所有学生的数据。,GET W (Student),数 据 库 原 理 与 技 术,(,2,)限定的检索,格式,GET,工作空间名,(,表达式,1,):,操作条件,例,3,查询信息系,(IS),中年龄小于,20,岁的学生的学号和年龄,GET W (,Student.Sno,,,Student.Sage):,Student.Sdept=IS,Student.Sage19,数 据 库 原 理 与 技 术,条件查询(与条件),例,4,求计算机科学系年龄大于,19,岁的学生的学号。,方法,(1),:把两个条件写在同一行上,Student,Sno,Sname,Ssex,Sage,Sdept,P.,200215121,19,CS,数 据 库 原 理 与 技 术,条件查询(与条件),方法,(2),:把两个条件写在不同行上,但使用相同的示例元,素值,Student,Sno,Sname,Ssex,Sage,Sdept,P.,200215121,P.,200215121,19,CS,数 据 库 原 理 与 技 术,条件查询(与条件,),例,5,查询既选修了,1,号课程又选修了,2,号课程的学生的学号。,Sc,Sno,Cno,Grade,P.,200215121,P.,200215121,1,2,数 据 库 原 理 与 技 术,条件查询(或条件),例,6,查询计算机科学系或者年龄大于,19,岁的学生的,学号。,Student,Sno,Sname,Ssex,Sage,Sdept,P.,200215121,P.,200215122,19,CS,数 据 库 原 理 与 技 术,条件查询(多表连接),例,7,查询选修,1,号课程的学生姓名。,Student,Sno,Sname,Ssex,Sage,Sdept,200215121,P.,李勇,注意:示例元素,Sno,是连接属性,其值在两个表中要,相同,。,Sc,Sno,Cno,Grade,200215121,1,数 据 库 原 理 与 技 术,条件查询(非条件),例,8,查询未选修,1,号课程的学生姓名,Student,Sno,Sname,Ssex,Sage,Sdept,200215121,P.,李勇,思路:显示学号为,200215121,的学生名字,而该学生选修,1,号课程的情况为假,Sc,Sno,Cno,Grade,200215121,1,数 据 库 原 理 与 技 术,条件查询(续),例,9,查询有两个人以上选修的课程号。,思路:查询这样的课程,1,,它不仅被,200215121,选修,而且也被另一个学生(,200215121,)选修了,Sc,Sno,Cno,Grade,200215121,200215121,P.,1,1,数 据 库 原 理 与 技 术,3.,聚集函数,常用聚集函数:,QBE,中的聚集函数,函数名,功能,CNT,对元组计数,SUM,求总和,AVG,求平均值,MAX,求最大值,MIN,求最小值,数 据 库 原 理 与 技 术,聚集函数(续),例,10,查询信息系学生的平均年龄。,Student,Sno,Sname,Ssex,Sage,Sdept,P.AVG.ALL,IS,数 据 库 原 理 与 技 术,4.,对查询结果排序,升序排序:,对查询结果按某个属性值的升序排序,只需在相应列中填入“,AO.,”,降序排序:,按降序排序则填“,DO.,”,多列排序:,如果按多列排序,用“,AO(i).”,或“,DO(i).”,表示,其中,i,为排序的优先级,,i,值越小,优先级越高,数 据 库 原 理 与 技 术,对查询结果排序(续),例,11,查全体男生的姓名,要求查询结果按所在系升序排序,对相同系的学生按年龄降序排序。,Student,Sno,Sname,Ssex,Sage,Sdept,P.,李勇,男,DO(2).,AO(1).,数 据 库 原 理 与 技 术,二、更新操作,1.,修改操作,例,12,把,200215121,学生的年龄改为,18,岁。,方法,(1),:将操作符“,U.”,放在值上,Student,Sno,Sname,Ssex,Sage,Sdept,200215121,U.18,数 据 库 原 理 与 技 术,修改操作,(,续,),方法,(2),:将操作符“,U.”,放在关系上,码,200215121,标明要修改的元组。,“,U.”,标明所在的行是修改后的新值。,由于主码是不能修改的,,所以系统不会混淆要修改的属性,。,Student,Sno,Sname,Ssex,Sage,Sdept,U.,200215121,18,数 据 库 原 理 与 技 术,修改操作,(,续,),例,13,把,200215121,学生的年龄增加,1,岁,操作涉及表达式,必须将操作符“,U.”,放在关系上,Student,Sno,Sname,Ssex,Sage,Sdept,U.,200215121,200215121,17,17,+1,数 据 库 原 理 与 技 术,修改操作,(,续,),例,14,将计算机系所有学生的年龄都增加,1,岁,Student,Sno,Sname,Ssex,Sage,Sdept,U.,200215122,200215122,18,18,+1,CS,数 据 库 原 理 与 技 术,2.,插入操作,例,15,把信息系女生,200215701,,姓名张三,年龄,17,岁存入数据库中。,Student,Sno,Sname,Ssex,Sage,Sdept,I.,200215701,张三,女,17,IS,数 据 库 原 理 与 技 术,3.,删除操作,例,17,删除学生,200215089,为保证参照完整性,删除,200215089,学生前,先删除,200215089,学生选修的全部课程,Student,Sno,Sname,Ssex,Sage,Sdept,D.,200215089,Sc,Sno,Cno,Grade,D.,200215089,数 据 库 原 理 与 技 术,第二章 关系数据库,2.1,关系模型概述,2.2,关系数据结构,2.3,关系的完整性,2.4,关系代数,2.5,关系演算,2.6,小结,数 据 库 原 理 与 技 术,2.6,小结,关系数据库系统是目前使用最广泛的数据库系统,关系数据库系统与非关系数据库系统的区别:,关系系统只有“表”这一种数据结构;,非关系数据库系统还有其他数据结构,以及对这些数据结构的操作,数 据 库 原 理 与 技 术,小结,(续),关系数据结构,关系,域,笛卡尔积,关系,关系,属性,元组,候选码,主码,主属性,基本关系的性质,关系模式,关系数据库,数 据 库 原 理 与 技 术,小结,(续),关系操作,查询,选择、投影、连接、除、并、交、差,数据更新,插入、删除、修改,数 据 库 原 理 与 技 术,小结,(续),关系的完整性约束,实体完整性,参照完整性,外码,用户定义的完整性,数 据 库 原 理 与 技 术,小结,(续),关系数据语言,关系代数语言,关系演算语言,元组关系演算语言,ALPHA,域关系演算语言,QBE,数 据 库 原 理 与 技 术,
展开阅读全文