2.2 关系代数
2.2.1 关系代数的5个基本操作
- 并(要求R和S有相同的关系模式)
- 差
- 笛卡尔积
- 投影
- 选择
- 优先级:括号、 θ \theta θ、非、与、或
2.2.2 关系代数的4个组合操作
-
交
-
连接
-
自然连接
-
除法(用于求全部、所有)
2.2.3 补充操作
-
改名
-
广义投影
-
赋值
-
外连接
-
外部并
-
半连接
-
聚集操作
-
这些看书上例子
2.2.4 应用实例
2.4 关系代数表达式的优化
-
启发式优化方法与存储技术无关,主要讨论如何合理安排操作顺序
-
笛卡尔积和连接操作最花费时间
-
启发式规则
- 尽可能早地执行选择操作
- 尽可能早地执行投影操作
- 避免直接做笛卡尔积,把笛卡尔积之前和之后的一连串选择和投影合并起来一起做
-
通常选择操作早于投影是更好的,因为选择可以减少很多元组
-
关系代数表达式的启发式优化是由DBMS的DML编译器完成的
-
启发式优化算法
-
分解成级联式选择
-
尽可能把每个选择往下推倒最早可以执行的地方
-
尽可能的把投影操作往下推
-
把选择和投影合并成单个选择、单个投影或一个选择跟一个投影
-
分组
-
生成序列
(来自B站 Nancy是宝藏)
在第三步筛选投影时,从上往下看
-