重点与难点
- 关系代数基本操作:并、差、积、选择、投影、(更名)
- 关系代数扩展操作:交、-连接、自然连接
- 关系代数复杂扩展操作:除、外连接
- 书写关系代数的基本思维训练:“一个集合,施加一个操作得到一个集合,依次施加关系代数操作,进而得到所需结果” “以集合为中心”
一、什么是关系代数
- 关系代数运算的特点
- 基于集合提供了一系列的关系代数操作,是一种集合思维的操作语言
- 关系代数操作以一个或多个关系为输入,结果是一个新的关系
- 用对关系的运算来表达查询,需要指明所用操作,具有一定的过程性
- 是一种抽象的语言,是学习其他数据库语言,如SQL等的基础
- 关系代数操作:集合操作和纯关系操作
- 集合操作:并、交、差、笛卡尔积
- 纯关系操作:投影、选择、连接、除
二、并相容性的概念
- 参与运算的两个关系及其相关属性之间有一定的对应性、可比性或意义关联性
- 定义:关系R和关系S存在相容性,当且仅当:
- 关系R和关系S的属性数目必须相同
- 对于任意i,关系R的第i个属性的域必须和关系S的第i个属性的域相同
三、并(Union)操作
- 定义:假设关系R和关系S是并相容的,则关系R与关系S的并运算结果也是一个关系,记做:,它由或者出现在关系R中,或者出现在S中的元组构成
- 数学表述:,其中t是元组
- 并运算是将两个关系的元组合并成一个关系,在合并时去掉重复的元组
四、差(Difference)操作
- 定义:假设关系R和关系S是并相容的,则关系R与关系S的并运算结果也是一个关系,记做:,它由出现在关系R中但不出现在S中的元组构成
- 数学表述:,其中t是元组
五、广义笛卡尔积(Cartesian Product)操作
- 定义:关系R与关系S的广义笛卡尔积(简称广义积或笛卡尔积)运算结果也是一个关系,记做:,它由关系R中的元组与关系S的元组进行所有可能的凭借(或串接)构成。
- 数学描述:
- (行位置无关性和列位置无关性)
- R是n度关系,S是m度关系,是度关系
- R基数是x,S基数是y,基数是
六、选择(Select)操作
- 定义:给定一个关系R,同时给定一个选择的条件condition(简记con),选择运算结果也是一个关系,记做,它从关系R中选择出满足给定条件condition的元组构成。
- 数学描述:
- 设,t是R的元组,t的分量记做,或简写为
- 条件con由逻辑运算符连接比较表达式组成
- 逻辑运算符:,,或谢伟and,or,not
- 比较表达式:,其中X,Y是t的分量、常量或简单函数,是比较运算符,
七、投影(Project)操作
- 定义:给定一个关系R,投影运算结果也是一个关系,记做,它从关系R中选出属性包含在A中的列构成。
- 数学描述:
- 设
- 表示元组t中相应于属性的分量
- 投影运算可以对原关系的列在投影后重新排列
八、交(Intersection)操作
- 定义:假设关系R和关系S是并相容的,则关系R与关系S的交运算结果也是一个关系,记做:,它由同时出现在关系R和关系S中的元组构成。
- 数学描述:,其中t是元组
九、theta连接(-Join,theta-Join)操作及更名操作
- 定义:给定关系R和关系S,R和S的连接运算结果也是一个关系,记做,它由关系R和关系S的笛卡尔积中,选取R中属性A与S中属性B之间满足条件的元组构成。
- 数学描述:
- 等值连接(Equi-Join)
- 当-连接中运算符为“=”时,就是等值连接。
- 数学描述:
十、自然连接(Natural-Join)操作
- 定义:给定关系R和关系S,R和S的自然连接运算结果也是一个关系,记做,它由关系R和关系S的笛卡尔积中选取相同属性组B上值相等的元组构成。
- 数学描述:
- 自然连接是一种特殊的等值连接
- 要求关系R和关系S必须有相同的属性组B
- R,S属性相同,值必须相等才能连接
- 要在结果中去掉重复的属性列
十一、除(Division)操作
- 除法运算经常用于求解“查询... 全部的/所有的...”问题
- 前提条件:给定关系为n度关系,关系为m度关系。如果可以进行关系R与关系S的除运算,当且仅当:属性集是属性集的真子集,即
- 定义:关系R和关系S的除运算结果也是一个关系,记做,分两部分来定义:
- 设属性集,则有k=n-m,则结果关系是k度(n-m度)关系,由属性构成
- 再设关系和关系组合形成的一个新元组都是R中的某一个元组
- 数学描述:
十二、外连接(Outer-Join)操作
- 定义:两个关系R与S进行连接时,如果关系R(或S)中的元组在S(或R)中找不到相匹配的元组,则为了避免该元组信息丢失,从而将该元组与S(或R)中假定存在的全为空值的元组形成连接,放置在结果关系中,这种连接称之为外连接。
- 外连接 = 自然连接(或连接) + 失配的元组(与全空元组形成的连接)
- 外连接的形式:左外连接、右外连接、全外连接
- 左外连接 = 自然连接(或连接) + 左侧表中失配的元组
- 右外连接 = 自然连接(或连接) + 右侧表中失配的元组
- 全外连接 = 自然连接(或连接) + 两侧表中失配的元组