第六讲关系代数理论.ppt
第六讲 关系代数理论,关系数据库模型(3),关系数据操作,关系数据模型的操作 查询 选择、投影、连接、除、并、交、差 数据更新 插入、删除、修改,关系代数,概述 传统的集合运算 专门的关系运算,概述,1.关系代数 一种抽象的查询语言 用对关系的运算来表达查询,概述(续),2关系代数运算的三个要素 运算对象:关系 运算结果:关系 运算符:四类,概述(续),集合运算符 将关系看成元组的集合 运算是从关系的“水平”方向即行的角度来进行 专门的关系运算符 不仅涉及行而且涉及列 算术比较符 辅助专门的关系运算符进行操作 逻辑运算符 辅助专门的关系运算符进行操作,表1 关系代数运算符,概述(续),表 关系代数运算符(续),概述(续),概述(续),4关系代数运算的分类 传统的集合运算 并、差、交、广义笛卡尔积 专门的关系运算 选择、投影、连接、除,传统的集合运算,并 差 交 广义笛卡尔积,1. 并(Union),R和S 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域 RS 仍为n目关系,由属于R或属于S的元组组成 RS = t|t Rt S ,并(续),R,S,RS,2. 差(Difference),R和S 具有相同的目n 相应的属性取自同一个域 R - S 仍为n目关系,由属于R而不属于S的所有元组组成 R -S = t|tRtS ,差(续),R,S,R-S,3. 交(Intersection),R和S 具有相同的目n 相应的属性取自同一个域 RS 仍为n目关系,由既属于R又属于S的元组组成 RS = t|t Rt S RS = R (R-S),交 (续),R,S,R S,4. 广义笛卡尔积(Extended Cartesian Product),R n目关系,k1个元组 S m目关系,k2个元组 R×S 列:(n+m)列的元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 行:k1×k2个元组 R×S = tr ts |tr R tsS ,广义笛卡尔积 (续),R,S,R × S,专门的关系运算,选择 投影 连接 除,选择(续),3) 选择运算是从行的角度进行的运算 4) 举例 设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。,选择(续),(a),Student,例1,例2,例4,例3,例9,选择(续),例1 查询信息系(IS系)全体学生 Sdept = 'IS' (Student) 或 5 ='IS' (Student) 结果:,2. 投影(Projection),2)投影操作主要是从列的角度进行运算 但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),投影(续),3) 举例 例3 查询学生的姓名和所在系 即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student) 或 2,5(Student) 结果:,投影(续),连接(续),3)两类常用连接运算 等值连接(equijoin) 什么是等值连接 为“”的连接运算称为等值连接 等值连接的含义 从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R S = | tr Rts StrA = tsB ,A=B,连接(续),自然连接(Natural join) 什么是自然连接 自然连接是一种特殊的等值连接 两个关系中进行比较的分量必须是相同的属性组 在结果中把重复的属性列去掉 自然连接的含义 R和S具有相同的属性组B R S = | tr Rts StrB = tsB ,连接(续),4)一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,连接(续),5)举例 例5,R,S,连接(续),R S,连接(续),等值连接 R S,连接(续),自然连接 R S,4. 除(Division),给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。 R中的Y与S中的Y可以有不同的属性名,但必须出自相同 的域集。R与S的除运算得到一个新的关系P(X),P是R中 满足下列条件的元组在X属性列上的投影:元组在X上分 量值x的象集Yx包含S在Y上投影的集合。 R÷S = tr X | tr RY (S) Yx Yx:x在R中的象集,x = trX,除(续),2)除操作是同时从行和列角度进行运算,除(续),R,S,小结,l 关系代数运算 关系代数运算 并、差、交、笛卡尔积、投影、选择、连接、除 基本运算 并、差、笛卡尔积、投影、选择 交、连接、除 可以用5种基本运算来表达 引进它们并不增加语言的能力,但可以简化表达,