关系查询处理和查询优化
本章主要涉及数据库的查询处理步骤和查询优化技术。查询优化可分为代数优化和物理优化。代数优化是对关系代数表达式的优化,物理优化是对存取路今后和底层算法的选择的优化。
查询处理
基本步骤(概念题)
关系数据库的查询处理分为查询分析、查询检查、查询优化、查询执行四个步骤。
- 查询分析:对语句进行扫描、词法分析,识别出关键字等,然后进行语法分析,检查其是否符合SQL语法规则。
- 查询检查:对查询语句进行语义检查,检查数据库、关系名、属性名等是否存在且有效;与此同时,进行视图消解,转化为对基本表的操作;根据用户权限和完整性约束对查询进行检查。检查通过后,将SQL转化为等价的关系代数表达式。
- 查询优化:代数优化和物理优化。通过对关系代数的等价变换使查询变得高效,根据基于规则的、基于代价的、基于语义的方法进行存取路径和底层操作的算法的选择。
- 查询执行
查询操作的示例
选择操作:SELECT … FROM … WHERE <条件表达式>
—>全表扫描、索引扫描
连接操作:SELECT … FROM A, B WHERE …
—>嵌套循环、排序-合并算法、索引连接、hash join算法