MySQL基础 -- 关系代数
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。
任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的结果。所以运算对象、运算符、运算结果是运算的三大要素。
按运算符的不同分为传统的集合运算和专门的关系运算两类:
传统的集合运算包括:并(∪)、差(−)、交(∩)、笛卡尔积(×)。
专门的关系运算包括:选择(σ)、投影(π)、连接(⋈)、除运算(÷)。
MySQL基础 -- 传统的集合运算
传统的集合运算是二目运算,并(∪)、差(−)、交(∩)、笛卡尔积(×)四种运算。
设关系 R 和关系 S 具有相同的目 n(即两个关系都有 n 个属性),且相应的的属性取自同一个域,t 是元组变量,t∈R 表示 t 是 R 的一个元组。
下图分别是具有三个属性列的关系 R、S :
可以定义并、差、交、笛卡尔积运算如下:
1、并(union)
关系 R 与关系 S 的并由属于 R 且属于 S 的元组组成。其结果关系仍为 n 目关系。记作:
下图为关系 R 与关系 S 的并:
2、差(except)
关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:
下图为关系R与关系S的差:
3、交(intersection)
关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:
下图为关系R与关系S的交:
4、笛卡尔积(cartesian product)
这里的笛卡尔积严格地讲是广义笛卡尔积(Extended Cartesian Product)。在不会出现混淆的情况下广义笛卡尔积也称为笛卡尔积。
两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列