专门的关系运算

此文转自于网络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ÎRF(t)= ‘‘}

  其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。 





2.投影(Projection) 




l
投影操作(
π
)是指从关系中选择若干列。
l
例如,可以使用投影操作符(
π
)从学生关系
S
中找出所有学生的名字和年龄。该查询可以用如下的表达式来表示:

  πSname,Sage(S)

  查询表达式中的下标“Sname, Sage”指出需要返回的列的名字,其他的列在结果关系中被去掉了。 



《专门的关系运算》



《专门的关系运算》



《专门的关系运算》








l
对关系
R
的投影操作记作:

  πA(R) = { t[A] |t ÎR }

  其中AR中需要保留的属性组,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
名字相同
»
在结果中把重复的属性列去掉

自然连接的含义

  RS具有相同的属性组B

        


l
一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 


l
等值连接举例
《专门的关系运算》


《专门的关系运算》


《专门的关系运算》


l
自然连接举例

《专门的关系运算》

                                                                                                       《专门的关系运算》


综合举例 

以学生课程数据库为例

l

2-1
查询选修了课程号为
C02
的课程的学生的名字。

  πSname((σCno=‘C02’(SC))    S)


该表达式首先从选修关系
SC
中计算出课程号为
C02
的元组集合,然后再和学生关系
S
进行自然连接。

查询结果为
{
胡峻
}

该查询还可以写成下面的形式:

  πSname(σCno=‘C02’(SC   S))


    原文作者:NDHuaErFeiFei
    原文地址: https://blog.csdn.net/NDHuaErFeiFei/article/details/53745966
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞