关系代数(一)
1. 关系代数的五个基本操作
并(Union)
设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。形式定义如下:
R∪S≡{ t | t∈R ∨ t∈S },
t是元组变量,R和S的元数相同关系中属性个数称为“元数”(arity)。
差(Difference)
设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。形式定义如下:
R-S≡{ t | t∈R ∧ t∈S },
R和S的元数相同。
笛卡儿积(Cartesian Product)
设关系R和S的元数分别为r和s,则R和S的笛卡尔积是一个(r+s)元的元组集合,每个元组的 前r个分量来自R 的一个元组,后s个分量来自S 的一个元组,记为:R×S,形式定义如下:
R×S ≡{ t | t= <tr, ts> ∧ tr ∈R ∧ ts ∈S }
投影(Projection)
- 这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。
设关系R是k元关系,R在其分量Ai1,…,Aim(m≤k,i1,…,im为1到k间的整数)上的投影用πi1,…,im(R)表示,它是一个m元元组集合,形式定义如下:
πi1,…,im(R)≡{ t | t=〈ti1,…,tim〉∧〈t1,…,tk〉∈R } - 例如,π3,1(R)表示关系R中取第1、3列,组成新的关系,新关系中第1列为R的第3列,新关系的第2列为R的第1列。如果R的每列标上属性名,那么操作符π的下标处也可以用属性名表示。例如,关系R(A, B, C),那么πC, A(R)与π3, 1(R)是等价的。
选择(Selection)
- 选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式)F表示。
关系R关于公式F的选择操作用σF(R)(σ读seigama)表示,形式定义如下:
σF(R)={ t | t∈R ∧ F(t)= true }
σ为选择运算符,σF( R)表示从R中挑选满足公式F为真的元组所构成的关系。 - 例如,σ2>ˊ3ˊ(R)表示从R中挑选第2个分量值大于3的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括起来。
2. 示例:
图2.1有两个关系R和S 关系R中第二行应该是f,图2.2的(a)、(b)表示R∪S和R-S。(c)表示R×S,此处R和S的属性名相同,就应在属性名前注上相应的关系名,例如R.A、S.A等。图2.2的(d)表示πC,A(R),即π3,1(R)。(e)表示σB=ˊbˊ(R)。
图2.1
图2.2