《数据库第2章关系数据库课件.ppt》由会员分享,可在线阅读,更多相关《数据库第2章关系数据库课件.ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、n关系数据库系统关系数据库系统n是支持关系模型的数据库系统是支持关系模型的数据库系统n关系模型的组成关系模型的组成n关系数据结构关系数据结构n关系操作集合关系操作集合n关系完整性约束关系完整性约束2.3关系操作关系操作关系操作集合关系操作集合n 常用的关系操作常用的关系操作n 关系操作的特点关系操作的特点n 关系数据语言的分类关系数据语言的分类n 关系数据语言的特点关系数据语言的特点 常用的关系操作常用的关系操作n关系模型中常用的关系操作的分类关系模型中常用的关系操作的分类n数据查询数据查询操作(操作(Data Query)n选选择择(Select)、投投影影(Project)、连连接接(Jo
2、in)、除除(Divide)、并并(Union)、差差(Except)、交交(Intersection)、)、笛卡尔积笛卡尔积等。等。n数据更新操作数据更新操作(Data Change)n插入(插入(Insert)、删除()、删除(Delete)、修改()、修改(Update)n基基本本操操作作:选选择择、投投影影、并并、差差、笛笛卡卡尔尔积积是是5种种基基本本操操作作,其其他他操操作作是是可可以以用用基基本本操操作作来来定定义和导出的。义和导出的。关系操作的特点关系操作的特点n集合操作方式,即操作的对象和结果都是集合集合操作方式,即操作的对象和结果都是集合n“以以集集合合为为中中心心”,“一
3、一个个集集合合,施施加加一一个个操操作作得得到到另另一一个个集集合合,依依次次施施加加关关系系代代数数操操作作,进进而而得得到到所所需需结果结果”n非关系数据模型的数据操作方式:一次一记录非关系数据模型的数据操作方式:一次一记录n文文件件系系统统的的数数据据操操作作方方式式:按按文文件件名名访访问问,按按记记录录进进行存取行存取 关系数据语言的分类关系数据语言的分类n关系代数语言(关系代数语言(relationalalgebra)n用对关系的运算来表达查询要求用对关系的运算来表达查询要求n典型代表:典型代表:ISBLn关系演算语言(关系演算语言(relationalcalculus)n用谓词来
4、表达查询要求用谓词来表达查询要求n元组关系演算语言元组关系演算语言n谓词变元的基本对象是元组变量谓词变元的基本对象是元组变量n典型代表:典型代表:APLHA、QUELn域关系演算语言域关系演算语言n谓词变元的基本对象是域变量谓词变元的基本对象是域变量n典型代表:典型代表:QBEn具有关系代数和关系演算双重特点的语言具有关系代数和关系演算双重特点的语言n典型代表:典型代表:SQL(StructuredQueryLanguage)关系数据语言的分类关系数据语言的分类关系数据语言的简介关系数据语言的简介nISBL语言(语言(InformationSystemBaseLanguage)nIBM公司英格
5、兰底特律科学中心公司英格兰底特律科学中心1979年研制的年研制的n用在一个实验系统用在一个实验系统PRTV(PeterleeRelationalTestVehicle)上上nISBL语语言言与与关关系系代代数数非非常常接接近近,每每个个查查询询语语言言都都近近似似于于一一个个关关系代数表达式系代数表达式nQUEL语言(语言(QueryLanguage)n是是美美国国伯伯克克利利加加州州大大学学研研制制的的关关系系数数据据库库系系统统INGRES的的查查询询语言语言n1975年投入运行,并由美国关系技术公司研制成商品推向市场年投入运行,并由美国关系技术公司研制成商品推向市场nQUEL语语言言是是
6、一一种种基基于于元元组组关关系系演演算算的的并并具具有有完完整整性性的的数数据据定定义、检索、更新等功能的数据语言义、检索、更新等功能的数据语言关系数据语言的简介(续)关系数据语言的简介(续)nQBE语言(语言(QueryByExample,按例查询)按例查询)nQBE语言是一种特殊的屏幕编辑语言语言是一种特殊的屏幕编辑语言nQBE语语言言是是M.M.Zloof提提出出的的,在在约约克克镇镇IBM高高级级研研究究实实验验室室为图形显示终端用户设计的一种域演算语言为图形显示终端用户设计的一种域演算语言n1978年在年在IBM370上实现上实现nQBE使使用用起起来来很很方方便便,属属于于人人机机
7、交交互互语语言言,用用户户可可以以是是缺缺乏乏计计算机知识和数学基础的非程序用户算机知识和数学基础的非程序用户nQBE的思想已经渗入到许多的思想已经渗入到许多DBMS中中nSQL语言(语言(StructuredQueryLanguage)nSQL语言是介于关系代数和元组演算之间的一种查询语言语言是介于关系代数和元组演算之间的一种查询语言n现已成为关系数据库的标准语言现已成为关系数据库的标准语言 关系数据语言的特点关系数据语言的特点n关系语言是一种高度非过程化的语言关系语言是一种高度非过程化的语言n存取路径的选择由存取路径的选择由RDBMS的优化机制来完成的优化机制来完成n用户不必用循环结构就可
8、以完成数据操作用户不必用循环结构就可以完成数据操作n能够嵌入高级语言中使用能够嵌入高级语言中使用n关关系系代代数数、元元组组关关系系演演算算和和域域关关系系演演算算三三种种语语言在表达能力上完全等价言在表达能力上完全等价概述概述n关系代数关系代数n是一种抽象的查询语言是一种抽象的查询语言n用对关系的运算来表达查询用对关系的运算来表达查询n关系代数运算的三个要素关系代数运算的三个要素n运算对象:关系运算对象:关系n运算结果:关系运算结果:关系n运算符:四类关系代数运算符运算符:四类关系代数运算符2.4关系代数关系代数n 四类关系代数运算符四类关系代数运算符n集合运算符集合运算符n将关系看成元组的
9、集合将关系看成元组的集合n运算是从关系的运算是从关系的“水平水平”方向即行的角度来进行方向即行的角度来进行n专门的关系运算符专门的关系运算符n不仅涉及行而且涉及列不仅涉及行而且涉及列n比较运算符比较运算符n辅助专门的关系运算符进行操作的辅助专门的关系运算符进行操作的n逻辑运算符逻辑运算符n辅助专门的关系运算符进行操作的辅助专门的关系运算符进行操作的关系代数(续)关系代数(续)n 四类关系代数运算符(续)四类关系代数运算符(续)n集集合合运运算算符符:(并并)、(差差)、(交交)、(广广义义笛卡尔积)笛卡尔积)n专专门门的的关关系系运运算算符符:(选选择择)、(投投影影)、(连连接接)、(除)(
10、除)n比比较较运运算算符符:(大大于于)、(大大于于等等于于)、(小小于于)、(小于等于)、(小于等于)、=(等于)、(等于)、(不等于)(不等于)n逻辑运算符逻辑运算符:(与)、(与)、(或)、(或)、(非)(非)关系代数(续)关系代数(续)n 关系运算的分类:分为关系运算的分类:分为传统的集合运算传统的集合运算和和专门的关系运算专门的关系运算n传统的集合运算是二目运算,是在两个关系中进行的。传统的集合运算是二目运算,是在两个关系中进行的。n但但是是并并不不是是任任意意的的两两个个关关系系都都能能进进行行这这种种集集合合运运算算,而而是是要在两个满足一定条件的关系中进行运算。要在两个满足一定
11、条件的关系中进行运算。n那么,对关系有什么要求呢?那么,对关系有什么要求呢?n设给定两个关系设给定两个关系R、S,若满足:,若满足:(1)具有相同的目具有相同的目n(即两个关系都有(即两个关系都有n个属性)个属性);(2)R中第中第i个属性和个属性和S中第中第i个属性必须来自同一个域。个属性必须来自同一个域。则说关系则说关系R、S是是相容的相容的。n除除笛笛卡卡尔尔积积外外,要要求求参参与与集集合合运运算算的的关关系系必必须须满满足足上上述述的的相容性定义。相容性定义。传统的集合运算传统的集合运算1.并(并(Union)基本运算基本运算nRSn仍为仍为n目关系,由属于目关系,由属于R或属于或属
12、于S的元组组成的元组组成n记作:记作:RS=t|t Rt S 传统的集合运算(续)传统的集合运算(续)关系中元组的插入关系中元组的插入2.差(差(Difference)基本运算基本运算nRSn仍为仍为n目关系,由属于目关系,由属于R而不属于而不属于S的元组组成的元组组成n记作:记作:RS=t|t Rt S 传统的集合运算(续)传统的集合运算(续)关系中元组的删除关系中元组的删除3.交(交(Intersection)非基本运算非基本运算nRSn仍为仍为n目关系,由既属于目关系,由既属于R又属于又属于S的元组组成的元组组成n记作:记作:RS=t|t Rt Sn交运算可以用差运算来表示交运算可以用差
13、运算来表示 RS=R(RS)=S(SR)传统的集合运算(续)传统的集合运算(续)分别求出关系分别求出关系R与关系与关系S的并、差、交运算。的并、差、交运算。ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCa1b1c1a1b2c2a1b3c2a2b2c1RSABCa1b1c1RSABCa1b2c2a2b2c1R S4.广义笛卡尔积(广义笛卡尔积(ExtendedCartesianProduct)基本运算基本运算n两两个个分分别别为为n目目和和m目目的的关关系系R和和S的的广广义义笛笛卡卡尔尔积积是是一一个个(n+m)列的元组的集合。列的元组的集合。n
14、元元组组的的前前n列列是是关关系系R的的一一个个元元组组,后后m列列是是关关系系S的的一一个个元组。元组。n若若R有有k1个个元元组组,S有有k2个个元元组组,则则关关系系R和和关关系系S的的广广义义笛笛卡尔积有卡尔积有k1*k2个元组。个元组。n记作:记作:RS=|tr Rts Sn广义笛卡尔积可用于两关系的连接操作。广义笛卡尔积可用于两关系的连接操作。传统的集合运算(续)传统的集合运算(续)trts两个关系的归并两个关系的归并ABCa1b1c1a1b2c2a2b2c1R.AR.B R.Ca1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2
15、c1ABCa1b2c2a1b3c2a2b2c1RSR SS.AS.B S.Ca1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1求出关系求出关系R与关系与关系S的广义笛卡尔积。的广义笛卡尔积。广义笛卡尔积实例讲解广义笛卡尔积实例讲解n表示记号表示记号n(1)R,t R,tAi设关系模式为设关系模式为R(A1,A2,An),它的一个关系设为,它的一个关系设为R。t R 表示表示t是是R的一个元组;的一个元组;tAi则表示元组则表示元组t中相应于属性中相应于属性Ai的一个分量的一个分量。专门的关系运算专门的关系运算n表示记号(续)表示记号(续
16、)n(2)A,tA,A若若A=Ai1,Ai2,Aik,其中,其中Ai1,Ai2,Aik是是A1,A2,An中的一部分,则中的一部分,则A称为属性列或域列。称为属性列或域列。tA=(tAi1,tAi2,tAik)表示元组表示元组t在属性列在属性列A上上诸分量的集合。诸分量的集合。A则表示则表示A1,A2,An中去掉中去掉Ai1,Ai2,Aik后剩余的属性组。后剩余的属性组。专门的关系运算(续)专门的关系运算(续)n表示记号(续)表示记号(续)n(3)trts R为为n目关系,目关系,S为为m目关系。目关系。tr R,ts S,trts称为元组的连接或元组的串接。称为元组的连接或元组的串接。它是一
17、个它是一个n+m列的元组,前列的元组,前n个分量为个分量为R中的一个中的一个n元元组,后组,后m个分量为个分量为S中的一个中的一个m元组。元组。专门的关系运算(续)专门的关系运算(续)学号学号姓名姓名年龄年龄例:例:tt学号学号-R R中学号上的值中学号上的值 t t 学号,姓名学号,姓名-R R中学号,姓名上的值中学号,姓名上的值 tn表示记号(续)表示记号(续)n(4)象集象集Zx给定一个关系给定一个关系R(X,Z),X和和Z为属性组。为属性组。当当tX=x时,时,x在在R中的中的象集象集(ImagesSet)定义为:)定义为:Zx=tZ|t R,tX=x 它表示它表示R中属性组中属性组X
18、上值为上值为x的诸元组在的诸元组在Z上分量的集合。上分量的集合。专门的关系运算(续)专门的关系运算(续)XZx1z1x1z2x1z3x2z2x2z3x3z1x3z3Rx1在在R中的象集中的象集Zx1=z1,z2,z3,x2在在R中的象集中的象集Zx2=z2,z3,x3在在R中的象集中的象集Zx3=z1,z3象集举例象集举例专门的关系运算(续)专门的关系运算(续)像集具体求解过程:像集具体求解过程:从从R中选出在中选出在X上取值为上取值为x的元组;的元组;然后再在然后再在Z上投影形成的结果集合。上投影形成的结果集合。1.选择(选择(Selection)基本运算基本运算n是行上的选择,即水平方向抽
19、取元组,产生同类关系。是行上的选择,即水平方向抽取元组,产生同类关系。n选择运算符的含义选择运算符的含义n在关系在关系R中选择满足给定条件中选择满足给定条件F的诸元组,记作:的诸元组,记作:F(R)=t|t RF(t)=真真nF:选选择择条条件件,由由属属性性名名(值值)、比比较较运运算算符符、逻逻辑辑运运算符组成。算符组成。专门的关系运算(续)专门的关系运算(续)【举例举例】设有一个学生设有一个学生-课程数据库,包括学生关系课程数据库,包括学生关系Student、课程关系、课程关系Course和选修关系和选修关系SC。学学号号Sno姓姓名名Sname性性别别Ssex年年龄龄Sage所所在在系
20、系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS(a)学生关系学生关系Student例1例2例4例3例9例10(b)课程关系课程关系Course例9例10课程号课程号Cno课程名课程名Cname先行课先行课Cpno学分学分Ccredit1数据库数据库542数学数学23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理27PASCAL语言语言64(c)选修关系选修关系SC例7例9例8例10学学号号Sno课课程程号号Cno成成绩绩Grade9500119295001285950013
21、889500229095002380Sdept=IS(Student)或或5=IS(Student)SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95004张立张立男男19IS例例1查询信息系(查询信息系(IS系)全体学生。系)全体学生。Sage20(Student)或或420(Student)SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS例例2查询年龄小于查询年龄小于20岁的学生。岁的学生。2.投影(投影(Projection)基本运算基本运算n是是列列上上的的选选择择,相相当当于
22、于对对关关系系进进行行垂垂直直分分解解,产产生生不同类关系。不同类关系。n投影运算符的含义投影运算符的含义n从从R中选择出若干属性列组成新的关系。记作:中选择出若干属性列组成新的关系。记作:A(R)=tA|t Rn其其中中A为为R中中的的一一组组属属性性名名或或属属性性序序号号组组,并并要要消消除除重复元组重复元组。专门的关系运算(续)专门的关系运算(续)Sname,Sdept(Student)或或2,5(Student)例例3查询学生的姓名和所在系。查询学生的姓名和所在系。SnameSdept李勇李勇CS刘晨刘晨IS王敏王敏MA张立张立IS Sdept(Student)SdeptCSISMA
23、例例4查询学生关系中都有哪些系。查询学生关系中都有哪些系。3.连接(连接(Join)非基本运算非基本运算n连接也称为连接也称为连接,涉及多个表之间的操作时使用连接,涉及多个表之间的操作时使用n连接运算的含义连接运算的含义n从从两两个个关关系系的的笛笛卡卡尔尔积积中中选选取取属属性性间间满满足足一一定定连连接接条件的元组。记作:条件的元组。记作:R S=|tr Rts StrAtsBnA和和B:分别为分别为R和和S上度数相等且可比的属性组上度数相等且可比的属性组n:比较运算符:比较运算符n从从RS中选取中选取R关系在关系在A属性组上的值与属性组上的值与S关系在关系在B属性组上的值满足比较关系属性
24、组上的值满足比较关系的元组。的元组。ABtrts专门的关系运算(续)专门的关系运算(续)是笛卡尔积、是笛卡尔积、选择和投影操作的组合选择和投影操作的组合n两类常用连接运算两类常用连接运算n等值连接(等值连接(Equijoin)n为为“”的连接运算称为等值连接的连接运算称为等值连接n等值连接的含义等值连接的含义n从从关关系系R与与S的的广广义义笛笛卡卡尔尔积积中中选选取取A、B属属性性值相等的那些元组,即等值连接为:值相等的那些元组,即等值连接为:R S=|tr Rts StrA=tsBA=Btrts专门的关系运算(续)专门的关系运算(续)n自然连接(自然连接(Naturaljoin)n是一种特
25、殊的等值连接,连接条件默认为两个关系是一种特殊的等值连接,连接条件默认为两个关系的同名属性的值相等的同名属性的值相等,并且,并且在在结果中结果中去掉同名属性去掉同名属性。n自然连接的含义自然连接的含义nR和和S具有相同的属性组具有相同的属性组B,则自然连接记作:,则自然连接记作:R S=|tr Rts StrB=tsBtrts专门的关系运算(续)专门的关系运算(续)ABRS专门的关系运算(续)专门的关系运算(续)n 一一般般的的连连接接操操作作是是从从行行的的角角度度进进行行运运算算。但但自自然然连连接接还还需需要要去去掉掉重重复复列列,所所以以是是同同时时从从行行和和列列的的角角度度进进行运
26、算。行运算。【例5】已知关系R和关系S,分别求出下列的连接运算。ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS CE R S、等值连接等值连接R S、R.B=S.B 自然连接自然连接R S R SAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310 CE 等值连接等值连接R S R.B=S.B AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32ABCEa1b153a1b267a2b3810a2b382 自然连接自然连接R S n等值连接与自然连接的区别:等值连接与自然
27、连接的区别:(1)自然连接一定是等值连接,但等值连接不一定是自然连接。)自然连接一定是等值连接,但等值连接不一定是自然连接。因为自然连接要求相等的分量必须是公共属性,而等值连接相因为自然连接要求相等的分量必须是公共属性,而等值连接相等的分量不一定是公共属性。等的分量不一定是公共属性。(2)等值连接不把重复的属性去掉,而自然连接要把重复属性)等值连接不把重复的属性去掉,而自然连接要把重复属性去掉。去掉。注意注意若若R R、S S无公共属性,无公共属性,R R S=S=?专门的关系运算(续)专门的关系运算(续)需要引入需要引入“外连接外连接”!n外连接(外连接(Outerjoin)n在在做做自自然
28、然连连接接时时,如如果果把把舍舍弃弃的的元元组组保保存存在在结结果果关关系系中中,而而在在其其他他属属性性上上填填空空值值(Null),那那么么这这种种连连接接就叫做就叫做外连接外连接。n与与自自然然连连接接的的区区别别是是保保留留被被运运算算量量的的关关系系中中在在另另一一关关系系中中找找不不到到匹匹配配元元组组的的元元组组,其其空空缺缺的的另另一一关关系系属性的值用空值属性的值用空值NULL填充。填充。专门的关系运算(续)专门的关系运算(续)n外连接的分类外连接的分类n如如果果只只把把左左边边关关系系R中中要要舍舍弃弃的的元元组组保保留留就就叫做叫做左外连接左外连接,即保留,即保留R中的所
29、有元组。中的所有元组。记记为:为:R*Sn如如果果只只把把右右边边关关系系S中中要要舍舍弃弃的的元元组组保保留留就就叫做叫做右外连接右外连接,即保留,即保留S中的所有元组。中的所有元组。记记为为:R*Sn全外连接全外连接:左外连接:左外连接右外连接右外连接专门的关系运算(续)专门的关系运算(续)已知关系已知关系R R和关系和关系S S,分别求出关系,分别求出关系R R和关系和关系S S的外连接、左外的外连接、左外连接及右外连接运算。连接及右外连接运算。ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS全外连接全外连接R*S左外连接左外连接R*S右外连接右外
30、连接R*S 全外连接全外连接 R*S ABCEa1b153a1b267a2b3810a2b382a2b412NULLNULLb5NULL2ABCEa1b153a1b267a2b3810a2b382a2b412NULLABCEa1b153a1b267a2b3810a2b382NULLb5NULL2左外连接左外连接 R*S 右外右外连连接接R*S 专门的关系运算(续)专门的关系运算(续)专门的关系运算(续)专门的关系运算(续)左左外连接:查询所有老师的任课情况外连接:查询所有老师的任课情况专门的关系运算(续)专门的关系运算(续)右右外连接:查询所有课程的任课老师情况外连接:查询所有课程的任课老师情
31、况4.除运算(除运算(Division)非基本运算非基本运算n除运算的含义:除运算的含义:n给定关系给定关系R(X,Y)和和S(Y,Z),其中,其中X,Y,Z为属性组。为属性组。nR与与S的的除除运运算算得得到到一一个个新新的的关关系系P(X),P是是R中中满满足足下下列列条条件件的的元元组组在在X属属性性列列上上的的投投影影:元元组组在在X上上分分量量值值x的象集的象集Yx包含包含S在在Y上投影的集合。记作:上投影的集合。记作:RS=trX|tr RY(S)YxnYx:x在在R中的象集,中的象集,x=trXn把把R按按X的的值值分分组组,若若某某一一组组中中属属性性组组Y的的值值包包含含S在
32、在Y上投影的全部元组,则该上投影的全部元组,则该X的值作为商关系的一个元组。的值作为商关系的一个元组。专门的关系运算(续)专门的关系运算(续)n 除操作是同时从行和列角度进行运算。除操作是同时从行和列角度进行运算。RS专门的关系运算(续)专门的关系运算(续)专门的关系运算(续)专门的关系运算(续)RS=trX|tr RY(S)YxX(R)Yx为为x在在R中的象集中的象集:对对于每个于每个值值x,xX(R),求:求:y(X=x(R)结结果果为为:象集象集Yx包含了包含了Y(S)的的x。RSS除法运算的步骤除法运算的步骤1)将将被被除除关关系系的的属属性性分分为为象象集集属属性性和和结结果果属属性
33、性两两部部分分:与与除除关关系系相相同同的的属属性性属属于于象象集集属属性性,不不相相同同的的属属性性属属于于结结果属性。果属性。2)在在除除关关系系中中,对对与与被被除除关关系系相相同同的的属属性性(象象集集属属性性)进进行投影,得到行投影,得到除目标数据集除目标数据集。3)将将被被除除关关系系分分组组,分分组组原原则则是是,结结果果属属性性值值一一样样的的元元组组为一组,求每个结果属性值的象集。为一组,求每个结果属性值的象集。4)逐一考察每个组,如果它的逐一考察每个组,如果它的象集属性值象集属性值中包括中包括除目标数除目标数据集据集,则对应的,则对应的结果属性值结果属性值应属于该除法运算结
34、果集。应属于该除法运算结果集。例题(除法解析)n在关系在关系R中,中,A属性可以取属性可以取a1,a2,a3,a4。na1的象集的象集为为(b1,c2),(b2,c3),(b2,c1)na2的象集的象集为为(b3,c7),(b2,c3)na3的象集的象集为为(b4,c6)na4的象集的象集为为(b6,c6)nS在在(B,C)上的投影上的投影为为:(b1,c2),(b2,c1),(b2,c3)n显显然,只有然,只有a1的象集的象集(B,C)a1包含了包含了S在在(B,C)属性属性组组上的投影,所以上的投影,所以RS=a1ABCa1a2a3a1a4a2a1b1b3b4b2b6b2b2c2c7c6c
35、3c6c3c1BCDb1b2b2c2c1c3d1d1d2关系关系R关系关系SAa1RS结果属性结果属性象集属性象集属性除法运算的步骤除法运算的步骤设关系设关系R(X,Y),S(Y,Z),X、Y、Z为属性集为属性集RS的计算过程如下:的计算过程如下:T=X(R)W=(TY(S)R(计算计算TS中不在中不在R出现的元组出现的元组)V=X(W)RS=TV即即RS=X(R)X(X(R)Y(S)R)综合举例:以学生综合举例:以学生课程数据库为例课程数据库为例 首先建立一个临时关系首先建立一个临时关系K:kCno13例例7查询至少选修查询至少选修1号课程和号课程和3号课程的学生学号。号课程的学生学号。然后
36、求:然后求:Sno,Cno(SC)K结果为结果为95001Sno95001n分析:先对关系分析:先对关系SC在在Sno,Cno属性属性上投影上投影Sno,Cno(SC),然后逐一求出每,然后逐一求出每一个学生一个学生(Sno)的象集,并依次检查的象集,并依次检查这些象集是否包含这些象集是否包含k。n95001象集象集1,2,3n95002象集象集2,3nCno(K)=1,3于是:于是:Sno.Cno(SC)K=95001SnoCno950011950012950013950022950023Sno,Cno(SC)Sno(Cno=2(SC)95001,95002例例8查询选修了查询选修了2号课程
37、的学生的学号号课程的学生的学号。Sno9500195002Sname(Cpno=5(CourseSCStudent)例例9查询至少选修了一门其直接先行课为查询至少选修了一门其直接先行课为5号课程的学号课程的学生姓名生姓名。CnoCnameCpnoCcreditSnoCnoGrade1数据库54950011922数学2950012853信息系统14950013882数学2950022903信息系统1495002380CnoCnameCpnoCcreditSnoGradeSnoSnameSsexSageSdept1数据库54950019295001李勇男20CS2数学2950018595001李勇
38、男20CS3信息系统14950018895001李勇男20CS2数学3950029095002刘晨女19IS3信息系统14950028095002刘晨女19ISCourseSCStudentCourseSC Sname李勇李勇Sname(Cpno=5(CourseSCStudent)或或Sname(Cpno=5(Course)SCSno,Sname(Student)或或Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student)例例9查询至少选修了一门其直接先行课为查询至少选修了一门其直接先行课为5号课程的学号课程的学生姓名生姓名。Sno,Cno(SC)Cno(C
39、ourse)Sno,Sname(Student)例例10查询选修了全部课程的学生学号和姓名。查询选修了全部课程的学生学号和姓名。思考题:思考题:查询选修了学号查询选修了学号95001学生所学全部课程的同学学生所学全部课程的同学的学号和姓名。的学号和姓名。Sno,Cno(SC)Cno(Sno=95001(SC)Sno,Sname(Student)n对对于于只只涉涉及及到到选选择择、投投影影、连连接接的的查查询询可可用用下下列列表表达达式表示:式表示:(RS)或者或者(RS)n对对于于否否定定的的操操作作,一一般般要要用用差差操操作作表表示示。例例如如“检检索索不学不学C2课的学生姓名课的学生姓名
40、”。n对于检索具有对于检索具有“全部全部”特征的操作,一般要用特征的操作,一般要用除法除法操操作表示。例如作表示。例如“检索选修了全部课程的学生姓名检索选修了全部课程的学生姓名”。使用关系代数进行查询的规则使用关系代数进行查询的规则关系代数小结关系代数小结 n关系代数运算关系代数运算n关系代数运算关系代数运算并、差、交、笛卡尔积、选择、投影、连接、除并、差、交、笛卡尔积、选择、投影、连接、除n基本运算基本运算并、差、笛卡尔积、选择、投影并、差、笛卡尔积、选择、投影n非基本运算非基本运算交、连接、除交、连接、除它们可以用它们可以用5 5种基本运算来表达种基本运算来表达引进它们并不增加语言的能力,
41、但可以简化表达引进它们并不增加语言的能力,但可以简化表达n关关系系代代数数中中,这这些些运运算算经经有有限限次次复复合合后后形形成成的的式式子子称称为为关关系代数表达式系代数表达式。关系代数小结(续)关系代数小结(续)n基本运算基本运算并:并:RS=t|t Rt S 作用:关系中元组的插入运算作用:关系中元组的插入运算差:差:RS=t|t Rt St S 作用:关系中元组的删除运算作用:关系中元组的删除运算笛卡尔积:笛卡尔积:RS=trts|tr Rts S作用:两个关系的归并运算作用:两个关系的归并运算选择:选择:F(R)=t|t RF(t)=真真作用:关系中元组的选择运算作用:关系中元组的选择运算投影:投影:A(R)=tA|t R作用:关系中属性的指定运算作用:关系中属性的指定运算关系代数小结(续)关系代数小结(续)n非基本运算非基本运算交:交:R RS S=t t|t t R Rt t S S RS RS=R R(R(RS S)(用基本运算表达)(用基本运算表达)连接:连接:R S=|tr Rts StrAtsB R S=(RS)(用基本运算表达)(用基本运算表达)除:除:RS=trX|tr RY(S)YxR(X,Y)S(Y,Z)=X(R)X(X(R)Y(S)R)(用基本运算表达)(用基本运算表达)AB ABtrts AB下课了。下课了。