重点与难点
- 关系代数基本操作:并、差、积、选择、投影、(更名)
- 关系代数扩展操作:交、
连接、自然连接 - 关系代数复杂扩展操作:除、外连接
- 书写关系代数的基本思维训练:“一个集合,施加一个操作得到一个集合,依次世家关系代数操作,进而得到所需结果”,“以集合为中心”
零. 关系代数概述
1. 关系代数运算的特点
关系代数操作以一个或多个关系作为输入,结果是一个新的关系。
用对关系的运算来表示查询,需要指明所用操作,具有一定的过程性。
关系代数操作是一种抽象语言,是学习其他数据库语言的基础。
2. 关系代数运算的基本操作
关系代数操作
- 集合操作
- 纯关系操作
3. 为什么提出关系代数
- 基本动作:并、差、积、选择、投影
- 复杂动作=基本动作的各种方式的组合
一. 关系代数之基本操作
1. 并相容性
定义:关系
- 关系
与关系 的属性数目必须相同 ,关系 的第 个属性的域必须与关系 的第 个属性的域相同
2. 并(Union)
关系
3. 差(Difference)
关系
4. 广义笛卡尔积(Cartesian Product)
关系
5. 选择(Select)
关系R,同时给定选择的条件condition(简记con),选择运算结果也是一个关系,记作
6. 投影(Project)
从一个关系中选出指定的列,并去掉重复元组(基数有可能减少)。记,
7. 重命名(Renaming)
修改关系名和(或)属性名
将关系 的属性 更名为 将关系 更名为 将关系 更名为 ,并将 的全部属性名更名为
二. 关系代数之扩展操作
1. 交(Intersection)
计算关系
2. 连接( Join)
连接操作比积操作加一个选择操作效率更高。
将关系
选取关系
当关系与自身进行自连接时,需要区分一个关系的两个副本使用重命名,例如:
查询98030101号同学和98040202号同学学过的所有课程号
3. 等值连接(Equi-Join)
4. 自然连接(Natural-Join)
特殊的等值连接
三. 关系代数之组合与应用训练
- 检索是否涉及多个表,如果不涉及则直接采用并、交、差、选择、投影
- 如涉及多个表,则依次检查是否能用以下几个操作:自然连接、
连接、广义笛卡尔积 - 连接完成之后,继续使用选择、投影等运算,即所谓数据库的“选投联”操作
四. 关系代数之复杂扩展操作(选学)
1. 除(Division)
“查询……全部的/所有的……”
前提条件:关系
- 例1:选修了全部课程的学生的学号
- 例2:选修了学号98030201学生所学全部课程的同学的姓名
得到了相关学生的学号,记作 ,接下来的目标是确定姓名,那么 ,自然连接后选择相关学号对应的姓名
2. 外连接(Outer-Join)
问题提出:自然连接下存在信息丢失,失配元组不能和其他表的元组连接。
关系
- 左外连接(Left Outer Join):自然连接(或
连接) + 左侧表中失配的元组,记: - 右外连接(Right Outer Join):自然连接(或
连接) + 右侧表中失配的元组,记: - 全外连接(Full Outer Join):自然连接(或
连接) + 两侧表中失配的元组,记: