关系代数是一种抽象的查询语言,它用对关系的运算来表达查询,其运算对象是关系、运算结果亦为关系,关系代数的运算符有两类:集合运算符和专门的关系运算符。传统的集合运算是从关系的“水平”方向即行的角度进行,专门的关系运算不仅涉及行而且涉及列。
一. 传统的集合运算
前提:R和S 具有相同的目n(即两个关系都有n个属性) ,相应的属性取自同一个域 。
- 并(Union):R∪S
结果仍为n目关系,由属于R或属于S的元组组成 - 差(Difference):R - S
仍为n目关系,由属于R而不属于S的所有元组组 - 交(Intersection):R∩S
结果仍为n目关系,由既属于R又属于S的元组组成 - 笛卡尔积(Cartesian Product):R×S
严格地讲应该是广义的笛卡尔积(Extended Cartesian Product)
R: n目关系,k1个元组
S: m目关系,k2个元组
R×S
列:(n+m)列元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组;
行:k1×k2个元组。
二、专门的关系运算
先引入几个几号
选择
投影
连接
除运算