【学习目标
��本章从查询处理的过程入手,讨论了查询处理的技术,主要是查询优化。因此本章的学习目标是:了解查询处理的过程、查询代价的度量和代价模型、以及实现关系运算的算法代价;掌握关系代数表达式的转换方法、表达式的求值方法以及查询优化的方法。最后要能够认识到系统多花一点时间在选择一个较好的查询处理策略上是值得的,即便是该查询语句只执行一次。

学习方法
��本章的内容涉及到DBMS的核心技术,这对大家来说是看不见摸不着的。因此在学习过程中,要多利用图表理解本章所讲的概念和方法,同时为了更好地理解本章的内容,在学习新知识的时候,要复习前面在第三章"关系模型"中讲过的关系代数的基本概念,以便加深理解,达到学习目标。

【学习指南
��本查询处理是指从数据库中提取数据的一系列活动。这一系列活动包括:将用高层数据库语言表示的查询语句(如:SQL)翻译成能在文件系统这一物理层次上实现的表达式(如关系代数);为优化查询进行的各种转换;以及查询的实际执行。本章的重点是9.1节、9.2节、9.4节和9.6节,难点是9.4节。请你仔细阅读教材的第四章"关系系统及其查询优化"的4.2节(链接到本课程所指定的教材的介绍)以及参考书的第12章"查询处理"(链接到本课程所指定的参考书的介绍)。

【预习思考题
��1、 查询处理的过程分几个步骤?
��2、 查询处理过程中,语法分析与翻译器的输入和输出各是什么?
��3、 为什么会提出查询优化?什么是查询执行计划?查询优化器的输入和输出各是什么?
��4、 什么是执行原语?什么是查询优化?
��5、 查询优化器中为什么会用到统计数据?执行引擎的功能是什么?
��6、 什么叫两个关系代数表达式是等价的?什么是等价规则?关系代数表达式的等价规则主要有哪些?
��7、 查询处理的代价与哪些计算机资源有关?
��8、 在集中式数据库系统中,为什么查询处理代价可以用磁盘存取代价来度量?
��9、 计算磁盘存取代价的代价模型是什么?
��10、 用于估计磁盘存取代价的统计信息有哪些?
��11、 实现选择运算的算法通常有哪些?文件扫描和索引扫描有什么区别?文件扫描和索引扫描,谁的适应范围更广?
��12、 实现连接运算的算法通常有哪些?嵌套循环连接算法和索引嵌套循环连接算法有什么区别?谁的适应范围更广一些?
��13、 关系代数表达式的求值方法有哪几种?
��14、 实体化计算方法的关键是什么?流水线计算方法的关键是什么?
��15、 实体化计算方法与流水线计算方法在实现上有什么不同?
��16、 流水线计算方法的执行有哪两种策略?
��17、 查询优化的过程是什么样的?其主要任务是什么?
��18、 查询优化的优化方法有哪两种?
��19、 基于代价的优化方法有什么缺陷?启发式优化方法的核心思想是什么?
��20、 在启发式优化规则中有一条是:"尽可能早地执行选择运算",请问这是为什么?
��