6.1 关系代数
关系代数是一种过程化查询语言。它包括一个运算的集合,这些运算以一个或两个关系为输入,产生一个新的关系作为结果。关系代数基本运算有:选择、投影、并、集合差、笛卡儿积和更名。在基本运算以外,还有一些其他运算,即集合交、自然连接和赋值。我们将用基本运算来定义这些运算。
6.1.1 基本运算
选择、投影和更名运算称为一元运算,因为它们对一个关系进行运算,另外三个运算对两个关系进行运算.因而称为二元运算。
选择运算
选择运算符常用σ表示,书写格式如下所示:
投影运算
投影运算符常用Π表示,其实质是选取特定要求的列
投影运算返回一个关系,而关系是集合,所以返回关系中的重复行均会被去除!!!
关系运算的组合
关系运算的结果仍为一个关系
集合并运算
顾名思义,并运算是将两个表中满足查询条件的集合合并到一起,得到的是一个删除重复值后的集合
集合差运算
用—表示的集合差(set-difference)运算使得我们可以找出在一个关系中而不在另一个关系中的那些元组。表达式r-s的结果即一个包含所有在r中而不在s中的元组的关系。
集合交运算
笛卡尔积运算
更名运算
关系代数表达式的结果没有可供我们引用的名字,这一点与数据库中的关系有所不同。如果能给它们赋上名字那将是十分有用的;我们可以通过小写希腊字母
表示的更名(rename)运算来完成这一任务。
综合例题——找出大学里的最高工资
6.1.2 关系代数的形式化定义
6.1.3 附加的关系代数运算
6.1.3.1 集合交运算
6.1.3.2 自然连接运算
- 当两个关系中没有相同属性时,自然连接等于笛卡尔运算。
- 自然连接是可结合的,三个关系进行自然连接时不需要加括号说明哪两个先进行自然连接,因为最终结果是等价的,可以理解为平行线的传递性。
6.1.3.3 除法运算(教材中不包含,但课上讲过)
很复杂(不要求掌握)
6.1.3.4 赋值运算(不要求掌握)
6.1.4 扩展运算符
6.1.4.1 广义投影
可对投影的属性进行操作后输出最终的关系。
6.1.4.2 聚集运算
聚集运算实质上是返回输入值的一个汇集,如:sum(求和),avg(求均值),count(求元素个数),min(求最小值),max(求最大值)等
6.1.4.3 外连接运算
外连接可在自然连接基础上创建带空值的元组,避免元组的丢失情况。例子如下: