重点与难点

  • 关系代数基本操作:并、差、积、选择、投影、(更名)
  • 关系代数扩展操作:交、连接、自然连接
  • 关系代数复杂扩展操作:除、外连接
  • 书写关系代数的基本思维训练:“一个集合,施加一个操作得到一个集合,依次世家关系代数操作,进而得到所需结果”,“以集合为中心”

零. 关系代数概述

1. 关系代数运算的特点

  • 关系代数操作以一个或多个关系作为输入,结果是一个新的关系。

  • 用对关系的运算来表示查询,需要指明所用操作,具有一定的过程性

  • 关系代数操作是一种抽象语言,是学习其他数据库语言的基础。

2. 关系代数运算的基本操作

关系代数操作

  • 集合操作
    • image-20220228202304834
  • 纯关系操作
    • image-20220228202403450

3. 为什么提出关系代数

  • 基本动作:并、差、积、选择、投影
  • 复杂动作=基本动作的各种方式的组合
image-20220228203120794

一. 关系代数之基本操作

1. 并相容性

定义:关系 与关系 存在并相容性

  1. 关系 与关系 属性数目必须相同
  2. ,关系 的第 个属性的必须与关系 的第 个属性的域相同

2. 并(Union)

关系 与关系 并相容的,则关系 与关系 的并运算结果也是一个关系,即: 意义:或者……或者……

3. 差(Difference)

关系 与关系 并相容的,则关系 与关系 的差运算结果也是一个关系,即: 意义:是……但不含……

4. 广义笛卡尔积(Cartesian Product)

关系 与关系 的广义笛卡尔积(广义积、积或者笛卡尔积)运算结果也是一个关系,记作 . 查询检索涉及到多个表时,串接关系

5. 选择(Select)

关系R,同时给定选择的条件condition(简记con),选择运算结果也是一个关系,记作 条件优先级降序:括弧、 (比较运算符)、

6. 投影(Project)

从一个关系中选出指定的列,并去掉重复元组(基数有可能减少)。记, 表示投影属性列表

表示元组 中相应于属性 的分量

7. 重命名(Renaming)

修改关系名和(或)属性名

  • 将关系 的属性 更名为
  • 将关系 更名为
  • 将关系 更名为 ,并将 的全部属性名更名为

二. 关系代数之扩展操作

1. 交(Intersection)

计算关系 与关系 的交集,条件是两关系具有并相容性

2. 连接(Join)

连接操作比积操作加一个选择操作效率更高。

将关系 与关系 中满足给定连接条件 的元组进行连接,记,

选取关系 属性 与关系 属性 之间满足 条件的元组构成 步骤:对两个表进行广义笛卡尔积 从结果关系中选取符合条件的元组

当关系与自身进行自连接时,需要区分一个关系的两个副本使用重命名,例如:

查询98030101号同学和98040202号同学学过的所有课程号 DBMS可以直接进行选择操作,不必先形成笛卡尔积。

3. 等值连接(Equi-Join)

连接的特殊情况,当 时,即:

4. 自然连接(Natural-Join)

特殊的等值连接

是关系 与关系 的相同属性组(同名属性集合) ,当 才能连接,并且去掉重复的属性列。即属性名相同且值相等的才连接。

三. 关系代数之组合与应用训练

  1. 检索是否涉及多个表,如果不涉及则直接采用并、交、差、选择、投影
  2. 如涉及多个表,则依次检查是否能用以下几个操作:自然连接、连接、广义笛卡尔积
  3. 连接完成之后,继续使用选择、投影等运算,即所谓数据库的“选投联”操作

四. 关系代数之复杂扩展操作(选学)

1. 除(Division)

“查询……全部的/所有的……”

前提条件:关系 与关系 ,若能进行关系 与关系 的除运算,当且仅当属性集 是属性集 的真子集,记:.

的属性集为 image-20220302204001125

的结果是使得 的最大关系 .

  • 例1:选修了全部课程的学生的学号
  • 例2:选修了学号98030201学生所学全部课程的同学的姓名 得到了相关学生的学号,记作 ,接下来的目标是确定姓名,那么 ,自然连接后选择相关学号对应的姓名

2. 外连接(Outer-Join)

问题提出:自然连接下存在信息丢失,失配元组不能和其他表的元组连接。

关系 与关系 满足给定连接条件 的元组进行连接,不满足给定条件的包含相应的元组,只不过其余属性值都为空(NULL)。

  • 左外连接(Left Outer Join):自然连接( 连接) + 左侧表中失配的元组,记:
  • 右外连接(Right Outer Join):自然连接( 连接) + 右侧表中失配的元组,记:
  • 全外连接(Full Outer Join):自然连接( 连接) + 两侧表中失配的元组,记: