1. 关系代数
关系代数的运算可以分为传统的集合运算和关系运算
运算符 | 符号 | 含义 |
---|---|---|
集合运算符 | U | 并 |
- | 差 | |
∩ | 交 | |
× | 笛卡尔积 | |
专门的关系运算符 | σ | 选择 |
π | 投影 | |
⋈ | 连接 | |
÷ | 除 |
1.1. 传统的集合运算
是二目运算,包括 并、差、交、笛卡尔积四种运算。
1.1.1. 并(union)
由属于R或属于S的元组组成
1.1.2. 差(except)
属于R但是不属于S的元组组成
1.1.3. 交(intersection)
由既属于R又属于S的元组组成
1.1.4. 笛卡尔积
广义的笛卡尔积
R: n目关系,个元组
S: m目关系,个元组
R×S
列:(n+m)列元组的集合
元组的前n列是关系R的一个元组
后m列是关系S的一个元组
行: 个元组
1.2. 专门的关系运算
专门的关系运算包括选择、投影、链接、除运算等。
先引入几个记号
,t[]
设关系模式为
它的一个关系设为R
表示t是R的一个元组
t[]则表示元组t中相应于属性的一个分量
若,其中是中的一部分,则称A为属性列或属性组。
表示元组t在属性列A上诸分量的集合。
则表示中去掉后剩余的属性组。
R为n目关系,S为m目关系
, 称为元组的连接
是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量是S中的一个m元组
象集
给定一个关系 R(X,Z) ,X,Z是属性组
当t[X]=x时,x在R中的象集为:
它表示R中属性组X上值为x的诸元组在Z上的分量的集合
1.2.1. 选择(selection)
选择又称为限制,是在关系R中寻找符合条件的元组
运算符 | 符号 | 含义 |
---|---|---|
集合运算符 | > | 大于 |
>= | 大于等于 | |
< | 小于 | |
<= < td> | 小于等于 | |
= | 等于 | |
<> | 不等于 | |
集合运算符 | ∧ | 与 |
∨ | 或 | |
¬ | 非 |
1.2.2. 投影(projection)
关系R上的投影是从R中选择出若干属性列组成新的关系。
投影操作是在列的角度进行的运算
投影之后不仅可能取消某些列,还可能取消某些元组(由于重复行的缘故)
1.2.3. 连接(join)
从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
A和B:分别为R和S上度数相等且可比的属性组
θ:比较运算符
连接运算从R和S的广义笛卡尔积R×S中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组
两类特殊的连接运算
等值连接
θ为“=”的连接运算称为等值运算
自然连接
自然连接是一种特殊的等值连接
两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉
同时从行和列中进行运算
悬浮元组
在做自然连接的时候,关系R中某些元组有可能在S中不存在公共属性相同值的元组,这部分元组就会被舍弃,同样,S中也有部分被舍弃,这些被舍弃的元组就成为悬浮元组。
如果将悬浮元组也保留,其他属性上填NULL就佳作外连接
左外连接
只保留左边关系R中的悬浮元组
右外连接
只保留右边关系S中的悬浮元组
1.2.4. 除运算(division)
给定关系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上投影的集合,记作:
Yx :x在R中的象集,x = tr[X]
除操作是同时从行和列上进行运算的!
1.3. 小结
关系代数运算:并、差、交、笛卡尔积、投影、选择、连接、除
基本运算:并、差、笛卡尔积、投影、选择
专门关系运算:交、连接、除,可以用5种基本运算来表达,引进它们并不增加语言的能力,但可以简化表达。