第九章 关系查询处理和查询优化.ppt

第九章 关系查询处理和查询优化.ppt

ID:48796123

大小:895.00 KB

页数:93页

时间:2020-01-25

第九章 关系查询处理和查询优化.ppt_第1页
第九章 关系查询处理和查询优化.ppt_第2页
第九章 关系查询处理和查询优化.ppt_第3页
第九章 关系查询处理和查询优化.ppt_第4页
第九章 关系查询处理和查询优化.ppt_第5页
资源描述:

《第九章 关系查询处理和查询优化.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据库系统概论AnIntroductiontoDatabaseSystem第九章关系查询处理和查询优化1AnIntroductiontoDatabaseSystem主要内容本章的目的是希望学生了解RDBMS查询处理的基本步骤,查询优化的概念、基本方法和技术,为数据库应用开发中利用查询优化技术提高查询效率和系统性能打下基础。2AnIntroductiontoDatabaseSystem主要内容重点:了解关系数据库查询优化的重要性。掌握查询处理各个步骤的主要功能。能够把SQL语句转换成查询树,对查询树进行代数优化,转换成优化的查询树。掌握物理优化的基本方法。难点:能运用本章学习的

2、查询优化知识,对于比较复杂的查询,尤其是涉及连接和嵌套的查询,写出适合RDBMS自动优化的SQL语句。对于RDBMS不能优化的查询需要重写查询语句,进行手工调整以优化性能。不要把优化的任务全部放在RDBMS上。3AnIntroductiontoDatabaseSystem第九章关系系统及其查询优化9.1关系数据库系统的查询处理9.2关系数据库系统的查询优化9.3代数优化9.4物理优化9.5小结4AnIntroductiontoDatabaseSystem关系系统及其查询优化(续)本章目的:RDBMS的查询处理步骤查询优化的概念基本方法和技术查询优化分类:代数优化物理优化5An

3、IntroductiontoDatabaseSystem9.1关系数据库系统的查询处理9.1.1查询处理步骤9.1.2实现查询操作的算法示例6AnIntroductiontoDatabaseSystem9.1.1查询处理步骤RDBMS查询处理阶段:1.查询分析2.查询检查3.查询优化4.查询执行7AnIntroductiontoDatabaseSystem查询处理步骤(续)查询处理步骤8AnIntroductiontoDatabaseSystem1.查询分析对查询语句进行扫描、词法分析和语法分析从查询语句中识别出语言符号进行语法检查和语法分析9AnIntroductionto

4、DatabaseSystem2.查询检查根据数据字典对合法的查询语句进行语义检查根据数据字典中的用户权限和完整性约束定义对用户的存取权限进行检查检查通过后把SQL查询语句转换成等价的关系代数表达式RDBMS一般都用查询树(语法分析树)来表示扩展的关系代数表达式把数据库对象的外部名称转换为内部表示10AnIntroductiontoDatabaseSystem3.查询优化查询优化:选择一个高效执行的查询处理策略查询优化分类:代数优化:指关系代数表达式的优化物理优化:指存取路径和底层操作算法的选择查询优化方法选择的依据:基于规则(rulebased)基于代价(costbased)

5、基于语义(semanticbased)11AnIntroductiontoDatabaseSystem4.查询执行依据优化器得到的执行策略生成查询计划代码生成器(codegenerator)生成执行查询计划的代码12AnIntroductiontoDatabaseSystem9.1关系数据库系统的查询处理9.1.1查询处理步骤9.1.2实现查询操作的算法示例13AnIntroductiontoDatabaseSystem9.1.2实现查询操作的算法示例一、选择操作的实现二、连接操作的实现14AnIntroductiontoDatabaseSystem一、选择操作的实现[例1]

6、Select*fromstudentwhere<条件表达式>;考虑<条件表达式>的几种情况:C1:无条件;C2:Sno='200215121';C3:Sage>20;C4:Sdept='CS'ANDSage>20;15AnIntroductiontoDatabaseSystem选择操作的实现(续)选择操作典型实现方法:1.简单的全表扫描方法对查询的基本表顺序扫描,逐一检查每个元组是否满足选择条件,把满足条件的元组作为结果输出适合小表,不适合大表2.索引(或散列)扫描方法适合选择条件中的属性上有索引(例如B+树索引或Hash索引)通过索引先找到满足条件的元组主码或元组指针,再通

7、过元组指针直接在查询的基本表中找到元组16AnIntroductiontoDatabaseSystem选择操作的实现(续)[例1-C2]以C2为例,Sno=‘200215121’,并且Sno上有索引(或Sno是散列码)使用索引(或散列)得到Sno为‘200215121’元组的指针通过元组指针在student表中检索到该学生[例1-C3]以C3为例,Sage>20,并且Sage上有B+树索引使用B+树索引找到Sage=20的索引项,以此为入口点在B+树的顺序集上得到Sage>20的所有元组指针通过这些元组

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。