传统的关系运算是二目运算,主要包括并、交、差和广义笛卡儿积4种运算。其中,参与并、交、差运算的两个关系必须是相容的。所谓相容,即两个关系的度相同,且两个关系相应的属性取自同一个域,也就是说两个关系的结构相同。
1.并
关系 R 和关系 S 的并(Union)由属于 R 或属于 S 的元组构成,即
R ∪ S ={ t ∣ t ∈ R ∨ t ∈ S }
2.交
关系 R 和关系 S 的交(Intersect)由既属于 R 又属于 S 的元组构成,即
R ∩ S ={ t ∣ t ∈ R ∧ t ∈ S }
3.差
关系 R 和关系 S 的差(Minus)由属于 R 而不属于 S 的元组构成,即
R-S ={ t ∣ t ∈ R ∧ t ∉ S }
4.广义笛卡儿积
若关系 R 的度为 m , S 的度为 n ,定义 R 、 S 的广义笛卡儿积如下。
R 与 S 的广义笛卡儿积(Extended Cartesian Product)是一个 m + n 列的元组的集合。其中元组的前 m 列是来自关系 R 的一个元组,后 n 列是来自关系 S 的一个元组,即
R × S ={ t ∣ t =< t r , t s >∧ t r ∈ R ∧ t s ∈ S }
若关系 R 有 r 个元组, S 有 s 个元组,则 R 与 S 的广义笛卡儿积有 r × s 个元组。
【例2.8】 设有关系 R 和 S 如下。
关系 R
关系 S
则有:
R ∪ S
R ∩ S
R-S
R × S
注意: 若两个关系中有公共属性,为加以区别,一般在属性前标注关系名。即使 R 、 S 的度不同, R 、 S 仍可执行广义笛卡儿积运算。