关系代数:是一种抽象的查询语言,用于对关系运算来表达查询
关系代数的运算对象和运算结果都是关系,所用到运算符可分为如下两种
严格的定义这里不再给出,可借助课本。我的目的就是能帮助快速理解即可
并:对于关系 R R R和 S S S,并操作就是将两个关系上下拼在一起形成一个新的关系,记为 R R R∪ S S S
差:对于关系 R R R和 S S S,求他们的差,就是在 R R R中去掉两个关系中所有相同的行,形成一个新的关系,记为 R R R- S S S
交:对于关系 R R R和 S S S,求他们的交,就是选出两个关系中所有相同的行,形成一个新的关系,记为 R R R∩ S S S
笛卡尔积:对于关系 R R R和 S S S,求他们的笛卡尔积,就是两个关系所有元组的不同排列组合,形成一个新的关系,记为 R R R× S S S
注意:在下面的叙述中有时会用到如下三种关系
选择:从行的角度出发,在关系 R R R中选择满足条件的元组然后组成新的关系。“满足条件”意味着有条件表达式,其运算符如下
例如可在关系Student中查询所有IS系的学生,查询结果形成一个关系,记为
σ
S
d
e
p
t
=
′
I
S
′
(
S
t
u
d
e
n
t
)
σ_{Sdept=_{'IS'}}(Student)
σSdept=′IS′(Student)
再比如可在关系Student中查询所有年龄小于20的学生,查询结果形成一个关系,记为
σ
S
a
g
e
<
20
(
S
t
u
d
e
n
t
)
σ_{Sage<20}(Student)
σSage<20(Student)
选择:从列的角度出发,选择满足条件的若干属性列组成新的关系
例如在关系Student中查询姓名和所在系的投影,记为 ∏ S n a m e , S d e p t ( S t u d e n t ) ∏_{Sname,Sdept}(Student) ∏Sname,Sdept(Student)
再比如在关系Student中查询都有哪些系,记为
∏
S
d
e
p
t
(
S
t
u
d
e
n
t
)
∏_{Sdept}(Student)
∏Sdept(Student)
等值连接:可以按照如下步骤考虑,最终形成新的关系,记为
自然连接:它是一种特殊的等值连接,在等值连接的结果中去掉重复列即可
悬浮元组的概念: R R R和 S S S在做自然连接时, R R R中某些元组有可能在 S S S中不存在公共属性上值相等的元组,就会造成 R R R中这些元组在操作时被舍弃(反过来 S S S也是这样)。例如上图自然连接中就舍弃了 R R R的第4个元组和 S S S的第5个元组
外连接:若将悬浮元组保留在自然连接的结果中,而在其他属性上填NULL,那么这种连接就叫做外连接,同时
除:是笛卡尔积的逆运算,对于关系 R R R和 S S S,求 R R R÷ S S S可按如下步骤考虑