# 关系代数
## 概述
### 关系代数是一种抽象的查询语言，用对关系的运算来表达查询，作为研究关系数据语言的数学工具。
### 关系代数的运算对象是关系，运算结果亦为关系。 
## 关系代数的运算
### 普通的集合运算
* 并、交、差
### 删除部分关系的运算
* 选择、投影
### 合并两个关系元组的运算
* 连接、积
### 改名运算
## 关系代数
### 并Union (∪)
* R和S的并，R∪S，是在R或S或两者中的元素的集合
* 一个元素在并集中只出现一次
* R和S必须同类型（属性集相同、次序相同，但属性名可以不同）
### 交Intersect (∩)
* R和S的交，R∩S，是在R和S中都存在的元素的集合
* 一个元素在交集中只出现一次
* R和S必须同类型（属性集相同、次序相同，但属性名可以不同）
### 差Minus (-)
* R和S的差，R-S，是在R中而不在S中的元素的集合
* R和S必须同类型（属性集相同、次序相同，但属性名可以不同）
### 投影Projection(π)
* 从关系R中选择若干属性组成新的关系
* πA1,A2,…,An(R),表示从R中选择属性集A1,A2,…,An组成新的关系
* 列的运算
* 投影运算的结果中,也要去除可能的重复元组
### 广义笛卡儿积(×)
* 关系R、S的广义笛卡儿积是两个关系的元组对的集合所组成的新关系
* R×S：
    * 属性是R和S的组合（有重复）
    * 元组是R和S所有元组的可能组合
    * 是R、S的无条件连接，使任意两个关系的信息能组合在一起
### 选择Selection(σ)
* 从关系R中选择符合条件的元组构成新的关系
* σC(R),表示从R中选择满足条件(使逻辑表达式C为真)的元组
* 行的运算
### 条件连接(θ)
* 从R×S的结果集中，选取在指定的属性集上满足AθB条件的元组，组成新的关系
* θ是一个关于属性集的比较运算符
* θ为“＝”的连接运算称为等值连接。
### 自然连接
* 从R×S的结果集中，选取在某些公共属性上具有相同值的元组，组成新的关系
* R、S的公共属性
    * 属性集的交集（名称及类型相同）
* 公共属性在结果中只出现一次
* 等值连接
### 关系代数—除( ÷ )
* 给定关系R(X,Y)和S(Y,Z)，其中X, Y, Z为属性组。R中的Y与S中的Y可以有不同的属性名，但必须出自相同的域集。R与S的除运算得到一个新的关系P(X)，P是R中满足下列条件的元组在X属性列上的投影：元组在X上分量值x的象集Yx包含S在Y上投影的集合。
*  R÷S = {tr[X]| tr∈R∧πy       (S)Yx} 
* 其中Yx为x在R中的象集，x=tr[X]。 
* 例子
## 总图
*XMind: ZEN - Trial Version*