此文转自于网络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))