§2.3 关系代数之传统的集合运算
关系代数——是一种抽象的查询语言,其运算对象是关系,运算结果也是关系,其常用运算符包括四类:
◆集合运算符:∪(并),-(差),∩(交),X(广义笛卡尔积);
◆专门的关系运算符:σ(选择),∏(投影),∞(连接),*(自然连接),÷(除);
◆算术比较运算符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于);
◆逻辑运算符:∧(与),∨(或),┐(非),与或非三个符号在关系代数中的书写形式。
其中算术比较符和逻辑运算符用来辅助专门的关系运算的。因此关系代数的运算按运算符的不同主要分为两类:
▲传统的集合运算:把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。包括并、差、交和广义笛卡尔积等运算。
▲专门的关系运算:不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取、投影、连接和除法等运算。
§2.3.1 传统的集合运算(并、差、交和广义笛卡尔积)
相容关系:关系R、S具有相同的度n;且R中第i个属性和S中第i个属性来自同一个域,则说关系R、S是相容的。相容关系可进行并∪ 、差-、交∩运算。
1. 关系的并( ∪)运算
R∪S={t|t∈R∨t∈S} 可实现关系数据库记录的添加。
结果仍然是元组的集合,由属于R或S的元组组成。
即由R与S元组合并,删去重复元组组成一个新关系。
2. 关系的差(- )运算
R-S={t|t∈R∧┐t∈S} 可实现关系数据库记录的删除。
结果由属于R而不属于S的元组组成。
即从R中删去在S中出现的元组组成一个新关系。
3. 关系的交( ∩ )运算
R∩S={ t | t∈R∧t∈S}
结果由既属于R又属于S的所有元组组成。等价于 R-(R-S)
4. 广义笛卡尔积
两个分别为n目和m目关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组,记作:
R×S={ tr⌒ts | tr∈R,∧ts∈S}
结果由R中任一元组和S的每个元组连接而组成。
关系的广义笛卡尔积可用于两关系的连接操作。




