关系定律(Relational Rule)¶
查询可以表示为一个树:
- 内部节点是算子
- 叶子是关系
- 子树是子表达式
主要目标是把表达式树变换成等价的表达式树,使得在树中的子表达式生成的关系的平均大小比优化前更小。次要目标是在一个单一查询中,或在要同时求值多于一个查询的时候的所有这些查询中,尝试形成公共子表达式。在次要目标背后的原理是计算公共子表达式一次就够了,其结果可以用于包含这个子表达式的所有查询中。
Rule¶
- 结合律与交换律:顺序无关、结果一致
- 选择(Selection < σ >):幂等性、交换性,分解、下推
- 投影(Projection < π > ):幂等性,消除、下推
- 连接(Join < ⋈ >):积、下推
- 重复:消除、下推
- 分组、聚集:消除
- 结合、分配
Evaluate¶
- 中间关系
- 选择运算
- 投影运算
- 连接运算:多连接、多关系
- 交、并、差
- 消除重复
- 分组、聚集