关系代数分类传统的集合运算
传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。
⒈ 并(Union)
设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R且属于S的元组组成。其结果关系仍为n目关系。记作:
R∪S={t|t∈R∨t∈S}⒉ 差(Difference)
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:
R-S={t|t∈R∧t∉S}
⒊ 交(Intersection Referential integrity)
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:
R∩S={t|t∈R∧t∈S}
⒋ 广义笛卡尔积(Extended cartesian product)
这里的笛卡尔积严格地讲是广义笛卡尔积(Extended Cartesian Product)。在不会出现混淆的情况下广义笛卡尔积也称为笛卡尔积。
两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。
记作:
R×S={(t_r t_s ) ?|t_r∈R?t_s∈S}
专门的关系运算专门的关系运算(Specific relation operations)包括选择、投影、连接、除等。
为了叙述上的方便,我们先引入几个记号。
1. 设关系模式为R(A1, A2, …, An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量 。
2. 若A={Ai1, Ai2, …, Aik},其中Ai1, Ai2, …, Aik是A1, A2, …, An中的一部分,则A称为属性列或域列。フA则表示{A1, A2, …, An}中去掉{Ai1, Ai2, …, Aik}后剩余的属性组。t[A]=(t[Ai1], t[Ai2], …, t[Aik])表示元组t在属性列A上诸分量的集合。
3. R为n目关系,S为m目关系。设tr∈R(r为下标),ts∈S(s为下标),则trts(整个式子上方加一个半弧,r和s为下标) 称为元组的连接(Concatenation)。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。
4. 给定一个关系R(X,Z),X和Z为属性组。我们定义,当t[X]=x时,x在R中的象集(Images Set)为:
Zx={t[Z]|t∈R, t[X]=x}
x在R中的像集为R中Z属性对应分量的集合,而这些分量所对应的元组中的属性组X上的值为x。
例如,图中,x_1在R中的像集Z_(x_1 )={Z_1,Z_2,Z_3,Z_4}, x_2在R中的像集Z_(x_2 )={Z_2,Z_3},x_3在R中的像集Z_(x_3 )={Z_1,Z_3}。
|| ||
1. 选择(Selection)
选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:
σF(R) = {t|t∈R ∧ F(t)='真'}
其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。
逻辑表达式F的基本形式为:
X1 θ Y1 [ φ X2 θ Y2 ]
θ表示比较运算符,它可以是>、≥、