传统的集合运算是二目运算,包括交、并、差、广义笛卡尔积四种运算,如下图所示:
1) 并(union)
关系R和关系5具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于R或属于S的元组组成,其结果关系仍为n目关系。
记作:
R ∪ S = { t | t ∈R ∨ t ∈s }
2)差(difference)
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系s的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。
记作:
3)交(intersection)
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系的交由既属于R又属于S的元组组成,其结果关系仍为n目关系。
记作
R ∩ S= { t | t ∈ R ∨ t ∈ S }
4.广义笛卡尔积(extended cartesian product)
两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组。
记作:
R ∩ S= { t | t ∈ R ∧ t ∈ S }
传统的集合运算不光会出现在高中的数学课本中,也会出现在数据库的学习中。数据库其实是一个二维的表,就相当于是一个数学的集合。有的时候需要两个表进行运算,比如,找到两个表中相同的部分,这个的运算机制就是传统的集合运算中的“交”。有的时候需要表本身进行计算,比如,只需要显示表中某一列的数值,这个就是关系的专门运算“投影”。所以传统的数学集合的关系运算与数据库专有的关系运算密切相关。我们要先弄明白集合的运算才能更好的学习关系运算。