资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,关系语言,关系操作特点:,操作对象和结果都是集合,高度非过程化的语言,不必借助循环结构就可以完成数据操作,能嵌入高级语言中使用,关系数据语言,关系代数语言,关系演算语言,具有关系代数和关系演算双重特点的语言,元组关系演算语言,域关系演算语言,例如,ISBL,例如,APLHA,QUEL,例如,QBE,例如,SQL,三种语言在表达能力上完全等价,关系模型语言,关系代数语言,把关系当作集合,用集合运算和特殊的关系运算来表达查询要求和条件,是一种抽象的查询语言,关系演算语言,用谓词来表达查询要求和条件,谓词变元的基本对象可以是元组变量或域变量,故可分为元组关系演算和域关系演算两类,是一种抽象的查询语言,SQL,介于关系代数和关系演算之间,集,DDL,、,DML,和,DCL,一身的关系数据语言,关系数据库,在给定应用领域中,所有表示,实体,及,实体之间联系,的关系的集合构成一个关系数据库,关系数据库也有型和值之分,思考:,给出导师、学生、专业三个实体可能组成的关系数据库及其概念模型(,E-R,图),2.3,关系的完整性,实体完整性,参照完整性,用户定义完整性,实体完整性和参照完整性是关系模型必须满足的,被称作关系的不变性,由关系数据库系统自动支持,实体完整性,规则:若属性,A,是基本关系,R,的主属性,则属性,A,不能取空值,说明:基本关系的主码中的任何属性都不能取空值,而不仅是主码整体不能取空值,依据:现实世界的实体是唯一可分的,例:学生(,学号,,姓名,性别,专业号,年龄),课程(,课程号,,课程名,学分),选修(,学号,,,课程号,,成绩),例,:学生实体与专业实体间的关系:,学生(,学号,,姓名,性别,专业号,年龄),专业(,专业号,,专业名),关系参照图,外码,参照关系,被,参照关系,例,:学生,课程,学生与课程之间的多对多联系:,学生(,学号,,姓名,性别,专业号,年龄),课程(,课程号,,课程名,学分),选修(,学号,,,课程号,,成绩),关系参照图,被参照关系,参照关系,学生关系专业关系,专业号,学生关系 选修关系课程关系,学号,课程号,参照完整性,主,码?外码?,参照完整性,定义:外码,设,F,是,参照关系,R,的一个或一组属性,,但不是,R,的码,,,若,F,与,被参照关系,S,的主码相对应,则称,F,是,R,的外码,(详细定义见教材,P54,),规则:参照关系,R,中每个元组在外码,F,上的值必须为:,或者取空值(,F,的每个属性值均为空值),或者等于,S,中某个元组的主码值,例,:学生(,学号,,姓名,性别,专业号,年龄,班长),参照关系,被,参照关系,外码,用户定义完整性,用户定义的、具体应用中的数据必须满足的约束条件,成绩:,0,100,之间,身份证、身份证和生日对应关系,2.4,关系代数,关系代数语言,用传统的集合运算和专门的关系运算来表达查询的抽象语言,关系代数运算符,关系代数表达式,关系代数中有限次运算复合后形成的式子,运算符,含义,运算符,含义,集合,运算符,并,差,交,广义笛卡尔积,比较,运算符,=,=,=,大于,大于等于,小于,小于等于,等于,不等于,专门的,关系,运算符,选择,投影,连接,除,逻辑,运算符,非,与,或,表示记号,R,,,t,R,,,tA,i,,,A,,,tA,,,A,设关系模式为,R,(,A,1,,,A,2,,,,,A,n,),,,它的一个关系设为,R,t,R,表示,t,是,R,的一个元组,t,A,i,则表示元组,t,中相应于属性,A,i,的一个分量,若,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,后剩余的属性组,传统的集合运算,若,R,和,S,是同类关系,(,即它们都具有,n,个属性且相应属性取自同一个域,),,则可进行,并、差、交运算。,对两者进行集合运算之前,要对两者的属性列进行排序,保证两个关系的属性顺序相同。,由属于,R,或属于,S,的元组组成,由属于,R,而不属于,S,的元组组成,由既属于,R,又属于,S,的元组组成,表示记号,t,r,t,s,R,为,n,目关系,,S,为,m,目关系,t,r,R,,,t,s,S,,,t,r,t,s,称为元组的连接,。,它是一个,n,+,m,列的元组,前,n,个分量为,R,中的一个,n,元组,后,m,个分量为,S,中的一个,m,元组,传统的集合运算,广义笛卡尔,积,R X S,,,其关系模式是,R,和,S,的模式的并集,是,R,和,S,的元组以所有可能的方式组合起来。当,R,和,S,有同名的属性,至少要为其中一个属性重新命名。,数学描述,:若关系,R,有,k,1,个元组,n,个属性,关系,S,有,k,2,个,元组,m,个属性,则两个关系的广义笛卡尔积有,k,1,*k,2,个元组,n+m,个属性,(,前,n,个属性来自于,R,,后,m,个属性来自于,S),广义笛卡尔积和笛卡尔积的关系?,面向关系的运算?,面向域的运算?,R,S,A B C,a1 b1 c1,a1 b2 c2,a2 b2 c1,a1 b3 c2,RS,A B C,a1 b2 c2,a2 b2 c1,R-S,A B C,a1 b1 c1,RS,A B C A B C,a1 b1 c1 a1 b2 c2,a1 b1 c1 a1 b3 c2,a1 b1 c1 a2 b2 c1,a1 b2 c2 a1 b2 c2,a1 b2 c2 a1 b3 c2,a1 b2 c2 a2 b2 c1,a2 b2 c1 a1 b2 c2,a2 b2 c1 a1 b3 c2,a2 b2 c1 a2 b2 c1,a1 b1 c1,a1 b2 c2,a2 b2 c1,R,a1 b2 c2,a1 b3 c2,a2 b2 c1,S,例:包括,Student,,,Course,,,三个关系,Student,(Sno,Sname,Sex,Sage,Sdept,),Course,(Cno,Cname,Cpno,Ccredit,),SC,(Sno,Cno,Grade),用此例,讲解专门的关系运算,例子:,学生,课程数据库,例:学生,课程数据库,包括,Student,,,Course,,,SC,三个关系,Sno,Sname,Ssex,Sage,Sdept,95001,李勇 男,20,CS,95002,刘,晨 女,19 IS,95003,王敏 女,18 MA,95004,张立 男,19 IS,Student,Cno,Cname,Cpqo,Ccredit,1,数据库,5 4,2,数学,2,信息系统,1 4,4,操作系统,6 3,5,数据结构,7 4,6,数据处理,2,7,Pascal,语言,6 4,Course,Sno,Cno,Grade,95001 1 92,95001 2 85,95001 3 88,95002 2 90,95002 3 80,SC,专门的关系运算:选择,记号:,t,R,表示,t,是,R,的一个元组,选择,从关系,R,中选取使逻辑表达式,F,为真的元组,行选。记作,逻辑表达式,F,由逻辑运算符连接算术表达式,算术表达式基本形式为,X,1,Y,1,其中,表示比较运算符,,X,1,Y,1,是属性名或常量或简单函数,属性名可以用它的序号来代替,查询信息系全体学生:,Sdept,=IS,(Student),或,=IS,(Student),查询年龄小于,20,岁的学生:,Sdept,(Student),或,(Student),结果如下:,Sno,Sname,Ssex,Sage,Sdept,95002,刘晨女,19 IS,95004,张立男,19 IS,Sno,Sname,Ssex,Sage,Sdept,95002,刘晨女,19 IS,95003,王敏女,18 MA,95004,张立男,19 IS,1,)选择运算例,课堂练习:,1,)查询,CS,系的所有女生,2,)查询先行课代号为,6,的所有课程,关系代数:投影,定义:从关系,R,中选择出满足条件,F,的若干属性列并组成新的关系,列选,其中,表示元组,t,中相应于属性,A,i,的一个分量。,注意:运算结果要去掉重复元组。,2,)投影运算例,查询学生的姓名和所在系:,Sname,Sdept,(Student,),或,2,5,(Student),查询学生关系中有哪些系,:,Sdept,(Student,),或,5,(Student),结果如下:,Sname,Sdept,李勇,CS,刘晨,IS,王敏,MA,张立,IS,Sdept,CS,IS,MA,关系代数:连接,连接,从关系,R,和,S,的笛卡尔积中选取属性间满足条件的元组,其中,A,和,B,分别是关系,R,和,S,上可比的属性组,是比较运算符,等值连接,从关系,R,和,S,的笛卡尔积中选取,A,B,属性值相等的元组,自然连接,特殊的等值连接,,R,和,S,具有相同的属性组,B,,,在结果中去掉重复的属性列,连接,连接(包含等值连接),:,先将,R,和,S,做笛卡积,然后从,RS,的元组中选择满足条件,C,的元组集合。,自然连接,:,假设,A,1,、,A,2,、,A,n,是,R,和,S,的模式中的公共属性,那么如果,R,的元组,r,和,S,的元组,s,在这些属性上取值都相同,,r,和,s,组合而成的元组就归入该自然连接中。,一般的连接操作是从行的角度进行运算,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,A,B,R,S,3),连接运算例,设有如图的关系和关系,A B C,a1 b1 5,a1 b2 6,a2 b3 8,a2 b4 12,R,B E,b1 3,b2 7,b3 10,b3 2,b5 2,S,A R.B C S.B E,a1 b1 5 b2 7,a1 b1 5 b3 10,a1 b2 6 b2 7,a1 b2 6 b3 10,a2 b3 8 b3 10,R,CE,S,A R.B C S.B E,a1 b1 5 b1 3,a1 b2 6 b2 7,a2 b3 8 b3 10,a2 b3 8 b3 2,等值,连接,a1 b1 5 3,a1 b2 6 7,a2 b3 8 10,a2 b3 8 2,自然连接,R,R.B=S.B,S,R,S,表示记号:,象集,Z,x,给定一个关系,R,(,X,,,Z,),,X,和,Z,为属性组,当,t,X,=,x,时,,x,在,R,中的,象集,(,Images Set,),为:,Z,x,=,t,Z,|,t,R,,,t,X,=,x,A B C,a1,b1 c2,a2 b3 c7,a3 b4 c6,a1,b2 c3,a4 b6 c6,a2,b2 c3,a1,b2 c1,它表示,R,中属性组,X,上值为,x,的诸元组在,Z,上分量的集合。,例子:,a1,的象集为,(b1,c2),(b2,c3),(b2,c1),关系代数:除,除,R,与,S,的除运算得到一个新的关系,P(X),P,是,R,中满足下列条件的元组在,X,属性列上的投影:,关系,R(X,Y),和,S(Y,Z),,,其中,X,Y,Z,为属性组,(,R,中的,Y,与,S,中的,Y,可以有不同的属性名,但必须出自相同的域集),元组,在,X,上分量值,x,的象集,Yx,包含,S,在,Y,上的投影,除,除操作是同时从行和列角度进行运算,R,S,4),除运算例,设有如图的关系和,A B C,a1,b1 c2,a2 b3 c7,a3 b4 c6,a1,b2 c3,a4 b6 c6,a2,b2 c3,a1,b2 c1,B C D,b1 c2,d1,b2 c1,d1,b2 c3,d2,A,a1,则,结果如下,a1,的象集为,(b1,c2),(b2,c3),(b2,c1),a2,的象集为,(b3,c7),(b2,c3),a3,的象集为,(b4,c6),a4,的象集为,(b6,c6),在(,)上的投影为,(b1,c2),(b2,c1),(b2,c3),因只有,a1,的象集包含了在(,)属性组上的投影,故,a1,关系代数:综合应用,1,),查询选修了号课程的学生的学号,2,),查询至少选修了一门其直接先行课为号课程的学生姓名,3,),查询选修了全部课程的学生号码和姓名,请给出对应含义和查询答案:,关系代数:综合应用,1),在以上,S-C,数据库中,查询选修了,1,号课程的学生号码,2),在以上,S-C,数据库中,查询选修了,1,号课程或,3,号课程的学生号码,Sno,(,Cno,=1,(SC,),Sno,(,Cno,=1 v,Cno,=3,(SC,),Sno,(,Cno,=1,(SC,)U,Sno,(,Cno,=1,(SC,),3),在以上,S-C,数据库中,查询,(,至少,),选修,1,号课程和,3,号课程的,学生号码,关系代数为:,Sno,Cno,(SC,),K,运算结果为:,关系代数:综合应用,解:先建一临时关系:,Cno,1,3,2),查询选修了号课程的学生的学号,解:,Sno,(,Cno,=2,(,SC),),3),查询至少选修了一门其直接先行课为号课程的学生姓名,4),查询选修了全部课程的学生号码和姓名,解:,Sname,(,Cpno,=5,(,Course)SC,Sno,Sname,(Student,),),解:,Sno,Cno,(,SC),Cno,(Course,),Sno,Sname,(Student,),关系代数:综合应用,思考,已知学生选课数据库模式:,Student(Sno,Sname,Sage,Sdept,),Course(Cno,Cname,),SC(Sno,Cno,Score,),用关系代数进行如下查询:,选修了号课程的学生的姓名?,计算机系有不及格课程的学生名单,学生张林的“数据库原理”成绩,关系代数小结,总结关系代数运算,五种基本运算:并、差、笛卡尔积、选择、投影,其余运算可有以上五种基本运算来表达,
展开阅读全文