Contents
  1. 1. 关系代数优化算法
    1. 1.1. 关系代数等价变换规律
    2. 1.2. 关系代数优化规则
    3. 1.3. 查询树

查询优化方法:当一个查询中具有选择和连接时,应当先执行选择后执行连接,尽量减少中间结果的大小,加快连接操作的处理。

关系代数优化算法

一个查询可以变换为一个等价的关系代数表达式。
在很多数据库管理系统中,查询处理的第一步是把查询变换为与关系代数对应的内部表示,如查询树。
在关系数据库管理系统中,关系代数表达式的优化是一个非常重要的问题。

关系代数等价变换规律

  1. 选择串接律
    $$\delta_{c_1 AND \ldots AND c_n (E) = \delta_{c_1} (\delta_{c_2} (…(\delta_{c_n}(E))))}$$
  2. 选择交换律
    $$\delta_{c_1} (\delta_{c_2}(E))= \delta_{c_2}(\delta_{c_1}(E))$$
  3. 投影串接律
  4. 投影交换律
  5. 连接和笛卡儿乘积的交换律
  6. 集合操作的交换律
  7. 连接、笛卡儿乘积和集合操作的结合律
  8. 选择、连接和笛卡儿乘积的分配律
  9. 投影、连接和笛卡尔乘积的分配律
  10. 选择与集合操作的分配律
  11. 投影与集合操作的分配律
  12. 其他等价变换律

关系代数优化规则

  1. 规则1 选择和投影操作尽早执行。
  2. 规则2 把某些选择操作与邻接笛卡尔乘积相结合,形成一个连接操作。
  3. 规则3 同时执行相同关系上的多个选择和投影操作。
  4. 规则4 把投影操作与连接操作结合起来执行。
  5. 规则5 提取公共表达式。

查询树

  • 查询的内容表现形式——查询树
  • 查询树是一种表示关系代数表达式的树形结构
  • 在一个查询树中,叶子节点表示关系,内结点表示关系代数操作。
  • 查询树以自底向上的方式执行:当一个内结点的操作分量可用时,这个内结点表示的操作启动执行,执行结束后,用结果关系代替这个内结点(转化为叶子结点)。

构造查询树:

  1. 把用高级语言定义的查询转换为关系代数表达式
  2. 把关系代数表达式转换为查询树
Contents
  1. 1. 关系代数优化算法
    1. 1.1. 关系代数等价变换规律
    2. 1.2. 关系代数优化规则
    3. 1.3. 查询树