查询处理步骤(续) 查询语句 词法分析 查询分析 语法分析 语义分析 符号名转换 查询检查完整性检查 安全性检查 数据库 数据字典 查询树( query tree) 查询优化 代数优化 物理优化等 执行策略描述 查询执行[代码生成 「查询计划的执行代码 An Introduction to Database System 查询处理步骤
An Introduction to Database System 查询处理步骤(续) 查询处理步骤
1.查询分析 ◆对查询语句进行扫描、词法分析和语法分析 从查询语句中识别出语言符号 今进行语法检查和语法分析 An Introduction to Database System
An Introduction to Database System 1. 查询分析 ❖对查询语句进行扫描、词法分析和语法分析 ❖从查询语句中识别出语言符号 ❖进行语法检查和语法分析
2.查询检查 ◇根据数据字典对合法的查询语句进行语义检查 今根据数据字典中的用户权限和完整性约束定义对用户的存 取权限进行检查 检查通过后把SQL查询语句转换成等价的关系代数表达式 ☆ RDBMS一般都用查询树(语法分析树)来表示扩展的关系 代数表达式 今把数据库对象的外部名称转换为内部表示 An Introduction to Database System
An Introduction to Database System 2. 查询检查 ❖ 根据数据字典对合法的查询语句进行语义检查 ❖ 根据数据字典中的用户权限和完整性约束定义对用户的存 取权限进行检查 ❖ 检查通过后把SQL查询语句转换成等价的关系代数表达式 ❖ RDBMS一般都用查询树(语法分析树)来表示扩展的关系 代数表达式 ❖ 把数据库对象的外部名称转换为内部表示
3.查询优化 査询优化:选择一个高效执行的查询处理策略 今查询优化分类: 代数优化:指关系代数表达式的优化 物理优化:指存取路径和底层操作算法的选择 ◆查询优化方法选择的依据: 基于规则( rule based) 基于代价( cost based) 基于语义( semantic based) An Introduction to Database System
An Introduction to Database System 3. 查询优化 ❖查询优化:选择一个高效执行的查询处理策略 ❖查询优化分类 : ▪ 代数优化:指关系代数表达式的优化 ▪ 物理优化:指存取路径和底层操作算法的选择 ❖查询优化方法选择的依据: ▪ 基于规则(rule based) ▪ 基于代价(cost based) ▪ 基于语义(semantic based)
4.查询执行 ◆依据优化器得到的执行策略生成查询计划 令代码生成器( code generator)生成执行查询计划的 代码 An Introduction to Database System
An Introduction to Database System 4. 查询执行 ❖依据优化器得到的执行策略生成查询计划 ❖代码生成器(code generator)生成执行查询计划的 代码