- 关系代数是一种抽象的查询语言,用对关系的运算来表达查询,作为研究关系数据语言的数学工具。
关系代数的运算对象是关系,运算结果亦为关系。
关系代数的运算
普通的集合运算
- 并、交、差
删除部分关系的运算
- 选择、投影
合并两个关系元组的运算
- 连接、积
改名运算
关系代数
并Union (∪)
- R和S的并,R∪S,是在R或S或两者中的元素的集合
- 一个元素在并集中只出现一次
- R和S必须同类型(属性集相同、次序相同,但属性名可以不同)
交Intersect (∩)
- R和S的交,R∩S,是在R和S中都存在的元素的集合
- 一个元素在交集中只出现一次
- R和S必须同类型(属性集相同、次序相同,但属性名可以不同)
差Minus (-)
- R和S的差,R-S,是在R中而不在S中的元素的集合
- R和S必须同类型(属性集相同、次序相同,但属性名可以不同)
投影Projection(π)
- 从关系R中选择若干属性组成新的关系
- πA1,A2,…,An(R),表示从R中选择属性集A1,A2,…,An组成新的关系
- 列的运算
- 投影运算的结果中,也要去除可能的重复元组
广义笛卡儿积(×)
- 关系R、S的广义笛卡儿积是两个关系的元组对的集合所组成的新关系
- R×S:
- 属性是R和S的组合(有重复)
- 元组是R和S所有元组的可能组合
- 是R、S的无条件连接,使任意两个关系的信息能组合在一起
选择Selection(σ)
- 从关系R中选择符合条件的元组构成新的关系
- σC(R),表示从R中选择满足条件(使逻辑表达式C为真)的元组
- 行的运算
条件连接(θ)
- 从R×S的结果集中,选取在指定的属性集上满足AθB条件的元组,组成新的关系
- θ是一个关于属性集的比较运算符
- θ为“=”的连接运算称为等值连接。
自然连接
- 从R×S的结果集中,选取在某些公共属性上具有相同值的元组,组成新的关系
- R、S的公共属性
- 属性集的交集(名称及类型相同)
- 公共属性在结果中只出现一次
- 等值连接
关系代数—除( ÷ )
- 给定关系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∈R∧πy (S)Yx}
- 其中Yx为x在R中的象集,x=tr[X]。
- 例子