1、 关系数据模型的操作 查询 选择、投影、连接、除、并、交、差选择、投影、连接、除、并、交、差 数据更新 插入、删除、修改插入、删除、修改 概述 传统的集合运算 专门的关系运算1.关系代数一种抽象的查询语言用对关系的运算来表达查询2关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类集合运算符 将关系看成元组的集合将关系看成元组的集合 运算是从关系的运算是从关系的“水平水平”方向即行的角度来进行方向即行的角度来进行专门的关系运算符 不仅涉及行而且涉及列不仅涉及行而且涉及列算术比较符 辅助专门的关系运算符进行操作辅助专门的关系运算符进行操作逻辑运算符 辅助专门的关系运算符进行操作辅助专门
2、的关系运算符进行操作集合运算符-并差交广义笛卡尔积比较运算符 大于大于等于小于小于等于等于不等于运算符含义运算符含义表表1 关系代数运算符关系代数运算符 专门的关系运算符 选择投影连接除逻辑运算符 非与或运算符含义运算符 含义表表 关系代数运算符(续)关系代数运算符(续)4关系代数运算的分类 传统的集合运算 并、差、交、广义笛卡尔积并、差、交、广义笛卡尔积专门的关系运算 选择、投影、连接、除选择、投影、连接、除 并 差 交 广义笛卡尔积 R和S 具有相同的目n(即两个关系都有n个属性)相应的属性取自同一个域 RS 仍为n目关系,由属于R或属于S的元组组成 RS=t|t Rt S ABCa1b1
3、c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS R和S 具有相同的目n 相应的属性取自同一个域 R-S 仍为n目关系,由属于R而不属于S的所有元组组成 R-S=t|tRtS ABCa1B1 c1a1B2 c2a2B2 c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S R和S 具有相同的目n 相应的属性取自同一个域 RS 仍为n目关系,由既属于R又属于S的元组组成 RS=t|t Rt S RS=R(R-S)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa
4、1b2c2a1b3c2a2b2c1RSR S R n目关系,k1个元组 S m目关系,k2个元组 RS 列:(n+m)列的元组的集合 元组的前元组的前n列是关系列是关系R的一个元组的一个元组 后后m列是关系列是关系S的一个元组的一个元组 行:k1k2个元组 R S=tr ts|tr R ts S ABCa1 b1 c1a1 b2 c2a2 b2 c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1 b2 c2a1 b3 c2a2 b2 c1RSR S ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a
5、2b2c1a1b2c2a1b3c2a2b2c1 选择 投影 连接 除 3)选择运算是从行的角度进行的运算 4)举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。学学 号号Sno姓姓 名名Sname性性 别别Ssex年年 龄龄Sage所所 在在 系系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS(a)Student例1例2例4例3例9例1 查询信息系(IS系)全体学生 Sdept=IS(Student)或 5=IS(Student)结果:SnoSnameSsexSage
6、Sdept95002刘晨刘晨女女19IS95004张立张立男男19IS 2)投影操作主要是从列的角度进行运算 但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)3)举例例3 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)结果:SnameSdept李勇李勇CS刘晨刘晨IS王敏王敏MA张立张立IS 3)两类常用连接运算 等值连接(equijoin)什么是等值连接什么是等值连接为“”的连接运算称为等值连接 等值连接的含义等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性
7、值相等的那些元组,即等值连接为:R S=|tr Rts StrA=tsB A=Btr ts 自然连接(Natural join)什么是自然连接什么是自然连接 自然连接是一种特殊的等值连接 两个关系中进行比较的分量必须是相同的属性组 在结果中把重复的属性列去掉 自然连接的含义自然连接的含义R和和S具有相同的属性组具有相同的属性组B R S=|tr Rts StrB=tsB tr ts 4)一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。ABRS 5)举例 例5 ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS
8、 R S AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310 CE 等值连接 R S R.B=S.B AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32 自然连接 R S ABCEa1b153a1b267a2b3810a2b382给定关系给定关系R(X,Y)和和S(Y,Z),其中其中X,Y,Z为属性组。为属性组。R中的中的Y与与S中的中的Y可以有不同的属性名,但必须出自相同可以有不同的属性名,但必须出自相同的域集。的域集。R与与S的除运算得到一个新的关系的除运算得到一个新的关系P(X),P是是R中满足下列条
9、件的元组在X属性列上的投影:元组在属性列上的投影:元组在X上分上分量值量值x的象集的象集Yx包含包含S在在Y上投影的集合。上投影的集合。RS=tr X|tr RY(S)Yx Yx:x在在R中的象集,中的象集,x=trX 2)除操作是同时从行和列角度进行运算 RSABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R SAa1RSl 关系代数运算 关系代数运算并、差、交、笛卡尔积、投影、选择、连接、除并、差、交、笛卡尔积、投影、选择、连接、除 基本运算并、差、笛卡尔积、投影、选择并、差、笛卡尔积、投影、选择 交、连接、除可以用可以用5种基本运算来表达种基本运算来表达 引进它们并不增加语言的能力,但可以简化表达引进它们并不增加语言的能力,但可以简化表达