第4章 数据库 优秀PPT.ppt
《第4章 数据库 优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第4章 数据库 优秀PPT.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 数据库数据库 课件课件05十二月2022第四章 关系系统及其查询优化1现在学习的是第1页,共70页05十二月2022第四章 关系系统及其查询优化24.1 关系系统关系系统4.1.1 关系系统的定义关系系统的定义4.1.2 关系系统的分类关系系统的分类现在学习的是第2页,共70页05十二月2022第四章 关系系统及其查询优化3关系系统关系系统(续续)n 关系模型关系模型n关系数据结构关系数据结构n域及域上定义的关系域及域上定义的关系n关系操作关系操作n并、交、差、广义笛卡尔积、选择、投影、连接、并、交、差、广义笛卡尔积、选择、投影、连接、除等除等 n关系完整性关系完整性n实体完整性、
2、参照完整性、用户自己定义的完整实体完整性、参照完整性、用户自己定义的完整性性现在学习的是第3页,共70页05十二月2022第四章 关系系统及其查询优化4关系系统关系系统(续续)n关系系统关系系统n能能够够在在一一定定程程度度上上支支持持关关系系模模型型的的数数据据库库管理系统是关系系统。管理系统是关系系统。n由于关系模型中并非每一部分都是同等重由于关系模型中并非每一部分都是同等重要的,所以我们并不苛求一个实际的关系要的,所以我们并不苛求一个实际的关系系统必须完全支持关系模型。系统必须完全支持关系模型。现在学习的是第4页,共70页05十二月2022第四章 关系系统及其查询优化54.1.1 关系系
3、统的定义关系系统的定义n关系系统的定义关系系统的定义n一一个个数数据据库库管管理理系系统统可可定定义义为为关关系系系系统统,当当且且仅当它仅当它至少至少支持:支持:1.关关系系数数据据库库(即即关关系系数数据据结结构构)。也也就就是是说说,从从用用户户观观点点看看,数数据据库库是是由由表表构构成成的的,并并且且系系统统中中只只有有表这种结构。表这种结构。2.支持选择、投影和(自然)连接运算。对这些支持选择、投影和(自然)连接运算。对这些运算不要求用户定义任何物理存取路径。运算不要求用户定义任何物理存取路径。现在学习的是第5页,共70页05十二月2022第四章 关系系统及其查询优化6关系系统的定
4、义关系系统的定义(续)(续)不不支支持持“关关系系”数数据据结结构构的的系系统统显显然然不不能能称称为为关关系系统。系系统。仅仅支支持持关关系系数数据据结结构构,但但没没有有选选择择、投投影影和和连连接接运算功能的系统仍不能算作关系系统。运算功能的系统仍不能算作关系系统。n原因:用户使用起来仍不方便,不能提高用户原因:用户使用起来仍不方便,不能提高用户的生产率,而提高用户生产率正是关系系统的的生产率,而提高用户生产率正是关系系统的主要目标之一。主要目标之一。现在学习的是第6页,共70页05十二月2022第四章 关系系统及其查询优化7关系系统的定义关系系统的定义(续)(续)n支支持持选选择择、投
5、投影影和和连连接接运运算算,但但要要求求定定义义物物理理存存取取路路径径(例例如如要要求求用用户户建建立立索索引引并并打打开开索索引引才才能能按按索索引引字字段段检检索索记记录录),这这种种系系统统也也不不能能算算作作真真正的关系系统正的关系系统n原原因因:依依赖赖于于物物理理存存取取路路径径就就降降低低或或丧丧失失了了数数据的物理独立性据的物理独立性n选选择择、投投影影、连连接接运运算算是是最最有有用用的的运运算算,能能解解决决绝大部分实际问题。绝大部分实际问题。现在学习的是第7页,共70页05十二月2022第四章 关系系统及其查询优化84.1.2 关系系统的分类关系系统的分类 n分类依据分
6、类依据 依据关系系统支持关系模型的程度不同依据关系系统支持关系模型的程度不同n分类分类 表式系统表式系统n仅支持关系数据结构仅支持关系数据结构(即表即表)(最小最小)关系系统关系系统n支持:关系数据结构支持:关系数据结构 选择、投影、连接关系操作选择、投影、连接关系操作 现在学习的是第8页,共70页05十二月2022第四章 关系系统及其查询优化9关系系统的分类关系系统的分类(续)(续)关系完备的系统关系完备的系统n支持:关系数据结构支持:关系数据结构 所有的关系代数操作所有的关系代数操作 全关系系统全关系系统n支持:关系模型的所有特征支持:关系模型的所有特征 特别是特别是:数据结构中域的概念数
7、据结构中域的概念 实体完整性实体完整性 参照完整性参照完整性现在学习的是第9页,共70页05十二月2022第四章 关系系统及其查询优化10关系系统的分类关系系统的分类(续)(续)数据结构数据结构数据操作数据操作完整性完整性表式系统表式系统表表 (最小最小)关系系统关系系统表表选选择择、投投影影、连接连接 关系完备的系统关系完备的系统表表 全关系系统全关系系统 现在学习的是第10页,共70页05十二月2022第四章 关系系统及其查询优化114.1.3 查询处理步骤查询处理步骤nRDBMS查询处理阶段查询处理阶段:1.查询分析查询分析2.查询检查查询检查3.查询优化查询优化 4.查询执行查询执行
8、现在学习的是第11页,共70页05十二月2022第四章 关系系统及其查询优化12查询处理步骤(续)查询处理步骤(续)现在学习的是第12页,共70页05十二月2022第四章 关系系统及其查询优化131.查询分析查询分析n对查询语句进行扫描、词法分析和语法分析对查询语句进行扫描、词法分析和语法分析 n从查询语句中识别出语言符号从查询语句中识别出语言符号 n进行语法检查和语法分析进行语法检查和语法分析 现在学习的是第13页,共70页05十二月2022第四章 关系系统及其查询优化142.查询检查查询检查n根据数据字典对合法的查询语句进行语义检查根据数据字典对合法的查询语句进行语义检查 n根据数据字典中
9、的用户权限和完整性约束定义对用户的存取权限进根据数据字典中的用户权限和完整性约束定义对用户的存取权限进行检查行检查 n检查通过后把检查通过后把SQL查询语句转换成等价的关系代数表达式查询语句转换成等价的关系代数表达式 nRDBMS一般都用查询树一般都用查询树(语法分析树语法分析树)来表示扩展的关系代数表来表示扩展的关系代数表达式达式 n把数据库对象的外部名称转换为内部表示把数据库对象的外部名称转换为内部表示 现在学习的是第14页,共70页05十二月2022第四章 关系系统及其查询优化153.查询优化查询优化n查询优化:选择一个高效执行的查询处理策略查询优化:选择一个高效执行的查询处理策略 n查
10、询优化分类查询优化分类:n代数优化:指关系代数表达式的优化代数优化:指关系代数表达式的优化n物理优化:指存取路径和底层操作算法的选择物理优化:指存取路径和底层操作算法的选择n查询优化方法选择的依据:查询优化方法选择的依据:n基于规则基于规则(rule based)n基于代价基于代价(cost based)n基于语义基于语义(semantic based)现在学习的是第15页,共70页05十二月2022第四章 关系系统及其查询优化164.查询执行查询执行n依据优化器得到的执行策略生成查询计划依据优化器得到的执行策略生成查询计划n代码生成器代码生成器(code generator)生成执行查询计划
11、的生成执行查询计划的代码代码 现在学习的是第16页,共70页05十二月2022第四章 关系系统及其查询优化174.1.4 实现查询操作的算法示例实现查询操作的算法示例n一、一、选择操作的实现选择操作的实现 n二、二、连接操作的实现连接操作的实现 现在学习的是第17页,共70页05十二月2022第四章 关系系统及其查询优化18一、一、选择操作的实现选择操作的实现n例例 Select*from student where ;考虑考虑的几种情况:的几种情况:C1:无条件;:无条件;C2:Sno200215121;C3:Sage20;C4:SdeptCS AND Sage20;现在学习的是第18页,共
12、70页05十二月2022第四章 关系系统及其查询优化19选择操作的实现(续)选择操作的实现(续)n选择操作典型实现方法:选择操作典型实现方法:n1.简单的全表扫描方法简单的全表扫描方法 n对查询的基本表顺序扫描,逐一检查每个元组是否满足选择条件,把满足条件对查询的基本表顺序扫描,逐一检查每个元组是否满足选择条件,把满足条件的元组作为结果输出的元组作为结果输出 n适合小表,不适合大表适合小表,不适合大表n2.索引扫描方法索引扫描方法 适合选择条件中的属性上有索引适合选择条件中的属性上有索引(例如例如B+树索引或树索引或Hash索引索引)通过索引先找到满足条件的元组主码或元组指针,再通过元组指针直
13、接在查询通过索引先找到满足条件的元组主码或元组指针,再通过元组指针直接在查询的基本表中找到元组的基本表中找到元组 现在学习的是第19页,共70页05十二月2022第四章 关系系统及其查询优化20选择操作的实现(续)选择操作的实现(续)n例例-C2 以以C2为例,为例,Sno200215121,并且,并且Sno上有索上有索引引 使用索引得到使用索引得到Sno为为200215121 元组的指针元组的指针n通过元组指针在通过元组指针在student表中检索到该学生表中检索到该学生n例例-C3 以以C3为例,为例,Sage20,并且,并且Sage 上有上有B+树索引树索引n使用使用B+树索引找到树索引
14、找到Sage20的索引项,以此为入口点在的索引项,以此为入口点在B+树的顺序集上得到树的顺序集上得到Sage20的所有元组指针的所有元组指针n通过这些元组指针到通过这些元组指针到student表中检索到所有年龄大于表中检索到所有年龄大于20的学生。的学生。现在学习的是第20页,共70页05十二月2022第四章 关系系统及其查询优化21选择操作的实现(续)选择操作的实现(续)n例例-C4 以以C4为例,为例,SdeptCS AND Sage20,如果,如果Sdept和和Sage上都有索引:上都有索引:n算法一:分别用上面两种方法分别找到算法一:分别用上面两种方法分别找到SdeptCS的一组元组指
15、针的一组元组指针和和Sage20的另一组元组指针的另一组元组指针求这求这2组指针的交集组指针的交集到到student表中检索表中检索得到计算机系年龄大于得到计算机系年龄大于20的学生的学生n算法二:找到算法二:找到SdeptCS的一组元组指针,的一组元组指针,通过这些元组指针到通过这些元组指针到student表中检索表中检索对得到的元组检查另一些选择条件对得到的元组检查另一些选择条件(如如Sage20)是否满足是否满足把满足条件的元组作为结果输出。把满足条件的元组作为结果输出。现在学习的是第21页,共70页05十二月2022第四章 关系系统及其查询优化22二、二、连接操作的实现连接操作的实现n
16、连接操作是查询处理中最耗时的操作之一连接操作是查询处理中最耗时的操作之一 n本节只讨论等值连接本节只讨论等值连接(或自然连接或自然连接)最常用的实现最常用的实现算法算法 n例例 SELECT*FROM Student,SC WHERE Student.Sno=SC.Sno;现在学习的是第22页,共70页05十二月2022第四章 关系系统及其查询优化23连接操作的实现(续)连接操作的实现(续)n1.嵌套循环方法嵌套循环方法(nested loop)n2.排序排序-合并方法合并方法(sort-merge join 或或merge join)n3.索引连接索引连接(index join)方法方法 现
17、在学习的是第23页,共70页05十二月2022第四章 关系系统及其查询优化24连接操作的实现(续)连接操作的实现(续)1.嵌套循环方法嵌套循环方法(nested loop)n对外层循环对外层循环(Student)的每一个元组的每一个元组(s),检索,检索内层循环内层循环(SC)中的每一个元组中的每一个元组(sc)n检查这两个元组在连接属性检查这两个元组在连接属性(sno)上是否相等上是否相等n如果满足连接条件,则串接后作为结果输出,如果满足连接条件,则串接后作为结果输出,直到外层循环表中的元组处理完为止直到外层循环表中的元组处理完为止 现在学习的是第24页,共70页05十二月2022第四章 关
18、系系统及其查询优化25连接操作的实现(续)连接操作的实现(续)2.排序排序-合并方法合并方法(sort-merge join 或或merge join)n适合连接的诸表已经排好序的情况适合连接的诸表已经排好序的情况 n排序合并连接方法的步骤:排序合并连接方法的步骤:如果连接的表没有排好序,先对如果连接的表没有排好序,先对Student表和表和SC表按表按连接属性连接属性Sno排序排序 取取Student表中第一个表中第一个Sno,依次扫描,依次扫描SC表中具有相表中具有相同同Sno的元组的元组 现在学习的是第25页,共70页05十二月2022第四章 关系系统及其查询优化26连接操作的实现(续)
19、连接操作的实现(续)200215121200215122200215123200215124.200215121 1 92200215121 2 85200215121 3 88200215122 2 90200215122 3 80.排序-合并连接方法示意图现在学习的是第26页,共70页05十二月2022第四章 关系系统及其查询优化27连接操作的实现(续)连接操作的实现(续)n排序合并连接方法的步骤(续):排序合并连接方法的步骤(续):当扫描到当扫描到Sno不相同的第一个不相同的第一个SC元组时,返回元组时,返回Student表扫描它的下一个元组,再扫描表扫描它的下一个元组,再扫描SC表中具
20、有表中具有相同相同Sno的元组,把它们连接起来的元组,把它们连接起来 重复上述步骤直到重复上述步骤直到Student 表扫描完表扫描完现在学习的是第27页,共70页05十二月2022第四章 关系系统及其查询优化28连接操作的实现(续)连接操作的实现(续)nStudent表和表和SC表都只要扫描一遍表都只要扫描一遍n如果如果2个表原来无序,执行时间要加上对两个表的个表原来无序,执行时间要加上对两个表的排序时间排序时间n对于对于2个大表,先排序后使用个大表,先排序后使用sort-merge join方法方法执行连接,总的时间一般仍会大大减少执行连接,总的时间一般仍会大大减少 现在学习的是第28页,
21、共70页05十二月2022第四章 关系系统及其查询优化29连接操作的实现(续)连接操作的实现(续)3.索引连接索引连接(index join)方法方法n步骤:步骤:在在SC表上建立属性表上建立属性Sno的索引,如果原来没有该索引的索引,如果原来没有该索引 对对Student中每一个元组,由中每一个元组,由Sno值通过值通过SC的索引查找相应的索引查找相应的的SC元组元组 把这些把这些SC元组和元组和Student元组连接起来元组连接起来 循环执行循环执行,直到,直到Student表中的元组处理完为止表中的元组处理完为止 现在学习的是第29页,共70页05十二月2022第四章 关系系统及其查询优
22、化304.2 关系系统的查询优化关系系统的查询优化 4.2.1 查询优化概述查询优化概述4.2.2 查询优化的必要性查询优化的必要性4.2.3 查询优化的一般准则查询优化的一般准则4.2.4 关系代数等价变换规则关系代数等价变换规则4.2.5 关系代数表达式的优化算法关系代数表达式的优化算法4.2.6 优化的一般步骤优化的一般步骤 现在学习的是第30页,共70页05十二月2022第四章 关系系统及其查询优化314.2.1 查询优化概述查询优化概述n查询优化的必要性查询优化的必要性n查询优化极大地影响查询优化极大地影响RDBMS的性能。的性能。n查询优化的可能性查询优化的可能性n关系数据语言的级
23、别很高,使关系数据语言的级别很高,使DBMS可以从关可以从关系表达式中分析查询语义。系表达式中分析查询语义。现在学习的是第31页,共70页05十二月2022第四章 关系系统及其查询优化32查询优化概述(续)查询优化概述(续)n由由DBMS进行查询优化的好处进行查询优化的好处n用用户户不不必必考考虑虑如如何何最最好好地地表表达达查查询询以以获获得得较较好好的效率的效率n系统可以比用户程序的系统可以比用户程序的“优化优化”做得更好做得更好 (1)优化器可以从数据字典中获取许多统计信息,优化器可以从数据字典中获取许多统计信息,例如关系中的元组数、关系中每个属性值的分布情例如关系中的元组数、关系中每个
24、属性值的分布情况等。优化器可以根据这些信息选择有效的执行计况等。优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。划,而用户程序则难以获得这些信息。现在学习的是第32页,共70页05十二月2022第四章 关系系统及其查询优化33查询优化概述(续)查询优化概述(续)(2)如如果果数数据据库库的的物物理理统统计计信信息息改改变变了了,系系统统可可以以自自动动对对查查询询进进行行重重新新优优化化以以选选择择相相适适应应的的执执行行计计划划。在在非非关关系系系系统统中中必必须须重重写写程程序序,而重写程序在实际应用中往往是不太可能的。而重写程序在实际应用中往往是不太可能的。(3)
25、优优化化器器可可以以考考虑虑数数百百种种不不同同的的执执行行计计划划,而而程程序序员员一一般般只只能能考考虑有限的几种可能性。虑有限的几种可能性。(4)优优化化器器中中包包括括了了很很多多复复杂杂的的优优化化技技术术,这这些些优优化化技技术术往往往往只只有有最最好好的的程程序序员员才才能能掌掌握握。系系统统的的自自动动优优化化相相当当于于使使得所有人都拥有这些优化技术。得所有人都拥有这些优化技术。现在学习的是第33页,共70页05十二月2022第四章 关系系统及其查询优化34查询优化概述(续)查询优化概述(续)n查查询询优优化化:DBMS在在做做查查询询处处理理时时根根据据查查询询的的具具体体
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 数据库 优秀PPT 优秀 PPT
限制150内