此文转自于网络PPT,感谢作者的艰苦创作,此文可以让人很快理解专门关系代数
l
选择
l
投影
l
连接
l
除
1. 选择(Selection)
l
选择针对单个关系中的数据进行操作,属于一元运算符,是指从关系中选择若干行。
l
例如,可以使用选择操作符(
σ
)从学生关系
S
中选择出那些年龄大于
19
岁的学生。该查询可以用如下的表达式来表示:
σSage>19(S)
查询表达式中的下标“Sage>19”给出的是选择条件,只有符合该条件的元组才可以被返回到结果中。
l
选择操作符
σ
通过指定选择条件对某个关系进行查询,查询的结果产生了一个新的关系。
l
这两个关系具有相同的关系模式。
l
新关系是被操作关系中满足条件的元组,是被操作关系的一个子集。
l
对关系
R
的选择操作记作:
σF(R) = { t|tÎR∧F(t)= ‘真‘}
其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。
2.投影(Projection)
l
投影操作(
π
)是指从关系中选择若干列。
l
例如,可以使用投影操作符(
π
)从学生关系
S
中找出所有学生的名字和年龄。该查询可以用如下的表达式来表示:
πSname,Sage(S)
查询表达式中的下标“Sname, Sage”指出需要返回的列的名字,其他的列在结果关系中被去掉了。
l
对关系
R
的投影操作记作:
πA(R) = { t[A] |t ÎR }
其中A为R中需要保留的属性组,t[A]是从元组t生成的新元组,新元组是从元组t中去掉不包含在属性组A中的属性。
l
关系代数表达式的运算结果总是一个关系。
l
既然这样,可以通过组合各种不同的关系表达式来定义新的关系
l
例如,假设想要找出年龄大于
19
岁的学生的名字和年龄,则可以将前面的两个查询组合起来,表达式如下:
πSname,Sage(σSage>19(S))
该查询首先在关系S上进行选择操作,然后再做投影操作。
3. 连接(续)
l
两类常用连接运算
–
(
1
)等值连接(
equijoin
)
•
什么是等值连接
–
当条件
AθB
中的
θ
为“=”的连接运算称为等值连接
•
等值连接的含义
–
从关系
R
与
S
的广义笛卡尔积中选取
A
、
B
属性值相等的那些元组
–
自然连接(
Naturaljoin
)
•
什么是自然连接
–
自然连接是一种特殊的等值连接
»
它要求关系
R
中的属性
A
和关系
S
中的属性
B
名字相同
»
在结果中把重复的属性列去掉
•
自然连接的含义
R和S具有相同的属性组B
l
一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
l
等值连接举例
l
自然连接举例
综合举例
以学生–课程数据库为例
l
例
2-1
查询选修了课程号为
C02
的课程的学生的名字。
πSname((σCno=‘C02’(SC)) S)
–
该表达式首先从选修关系
SC
中计算出课程号为
C02
的元组集合,然后再和学生关系
S
进行自然连接。
–
查询结果为
{
胡峻
}
–
该查询还可以写成下面的形式:
πSname(σCno=‘C02’(SC S))