《数据库管理系统》PPT课件.ppt_第1页
《数据库管理系统》PPT课件.ppt_第2页
《数据库管理系统》PPT课件.ppt_第3页
《数据库管理系统》PPT课件.ppt_第4页
《数据库管理系统》PPT课件.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

6.2 关系DBS的查询优化,第六章 数据库管理系统,6.1 DBMS简介,6.3 关系DBMS的发展,6.1 DBMS简介,1. DBMS位置 DBMS是DBS的核心软件,介于用户和OS之间的系统软件,它实现对共享数据的有效组织、管理和各种操作。,DBMS建立在OS之上, 需要OS的支持。 DBMS是用户操纵、管理 DB的工具。 说明:独立DBMS、OS扩充,6.1 DBMS简介,DBMS的特点 1. 完备高效 2. 界面友好 3. 事务处理 4. 结构清晰 5. 规范开放,DBMS的功能 (1) 数据定义 (用DDL) (2) 数据操纵 (用DML) (3) 数据组织、存储和管理 (4) 数据库运行管理 (5) 数据库的建立和维护 (6) 数据通信接口,6.1 DBMS简介,2.DBMS的组成 (1) 数据定义语言及其翻译处理程序 (2) 数据操纵语言及其编译(或解释)程序 (3) 数据库运行控制程序 (4) 实用程序 3.DBMS运行环境 (1)分布: 数据分布、功能分布、处理分布。 (2)开放:开放的硬件平台、支撑软件、网络支持、 异质数据库互连、用户界面。,日志,应用程序A,状态,工作区,6.1 DBMS简介,4.用户访问数据库的工作过程 应用程序A向DBMS发出读一个记录的命令。程序给出记录类型名及欲读记录的码值。 DBMS分析命令,并调用A对应的子模式,检查A的存取权限,决定是否执行A的命令。 决定执行A的命令后,DBMS调用模式,根据子模式与模式变换的定义,确定所涉及的模式记录类型;通过模式与内模式的变换找到这些记录类型的内模式名。 DBMS调用内模式,确定所读入的物理记录。 DBMS向OS发读该物理记录的命令,6.1 DBMS简介, OS执行读命令并把数据从外存读到内存的系统缓冲区。 DBMS按模式、子模式定义,导出用户程序需要的记录形式,并送到应用程序A的工作区。 DBMS向应用程序A送命令执行情况的状态信息。 记载日志 DBMS把对数据库更新操作的全部情况都记载下来,以便数据库的恢复。 应用程序检查状态信息,若成功,对工作区中的数据正常处理;若失败,决定下一步如何执行。,6.1 DBMS简介,6.2 关系DBS的查询优化,数据查询是DBS中最基本、最常用和最复杂的数据操作,查询优化是影响关系DBMS性能的关键因素。 关系数据理论基于关系代数,同一个查询要求可以对应多个不同形式却相互等价的表达式。 关系数据查询语言是非过程化的,由DBMS自动生成若干候选的查询计划并择优使用。,查询语句,查询输出,关系代数表达式,执行计划,语法分析与翻译,执行引擎,优化器,数据,有关数据的统计信息,1.查询处理的过程,6.2 关系DBS的查询优化,6.2 关系DBS的查询优化,查询处理包括三个基本步骤: 解析和翻译 优化 实现(求值),解析和翻译 解析:检查语法、验证关系 翻译:将查询转化为内部形式,并进一步翻译为关系代数. 实现 执行引擎选取一个查询计划并执行,而后将结果返回给查询.,6.3 关系DBS的查询处理,查询优化: 在所有等价的执行计划中选取代价最低的那个。 代价是利用从系统目录中获取的统计信息估算得到的。 e.g. 关系中的元组数目, 元组的大小等. 需要研究: 如何估量查询的代价 实现关系代数操作的算法 将单个操作算法结合起来形成一个对表达式的完整求值 如何实现查询优化,即如何寻求一个具有最低代价的执行计划。,6.3 关系DBS的查询处理代价度量,代价通常是利用回答查询所需的时间来度量的。 很多因素会影响查询时间:磁盘存取, CPU, 网络连接等 通常磁盘存取是最耗时的部分, 并且容易估算, 主要考虑. Number of seeks * average-seek-cost Number of blocks read * average-block-read-cost Number of blocks written * average-block-write-cost 写的代价大于读的代价:写以后需要回读以确保正确的写,6.3 关系DBS的查询处理代价度量,简化起见,仅使用 number of block 从磁盘传送块的数目作为代价的度量。 代价依赖于内存缓冲区的大小 更多内存降低磁盘存取次数 可用内存数与 OS 其它进程相关, 难以事先确定 一般使用最坏估计, 假设可用内存最小时的情况。 是实际模型的简化 忽略了顺序和随机读写的区别 忽略了CPU的代价 忽略了写到磁盘的代价。,为什么要查询优化? 例: Student表有l000个学生记录,每人平均选10门课程, SC表共有1000*10=l0000个选课记录。(统计信息)。要求: 查学生“王林”所选课程的成绩在85分以上的课程号。 SELECT Cno FROM S,SC WHERE S.Sno=SC.Sno AND Sname=王林 AND Grade 85 ;,等价的关系代数表示: Cno( F1 F2 F3 ( SSC ) ) Cno( F2 F3 ( S SC ) ) Cno( F2 (S) F3 (SC) ),分析: 哪种效率高?,6.2 关系DBS的查询优化,6.2 关系DBS的查询优化, Cno( F1 F2 F3 ( SSC ) ) Cno( F2 F3 ( S SC ) ) Cno( F2 (S) F3 (SC) ) 先在两表上做 ,产生1000*10000=107个连接记录,再在其上进行先后操作。其基本运算的次数为:3*107。 先在两个表上做 ,产生1000*10=104个连接记录,再在其上进行先后操作。其基本运算的次数为:107+2*104。 先分别在两个表上做,再做 ,产生1*10=10个连接记录,再在其上进行 。其基本运算的次数为:104+103+*101。,连接时间复杂度为: O(107) O(104) O(101),2.查询优化的一般策略,6.2 关系DBS的查询优化,启发式优化利用一套规则来转换查询树, 这些规则通常(但不是所有情况)都能改善执行性能: 尽早执行选择 (减少元组数目) 尽早执行投影 (减少属性数目) 在其他类似操作之前执行最具限制性的选择和连接操作. 某些系统只使用启发式, 其他的结合了启发式与部分基于代价的优化.,6.2 关系DBS的查询优化,3. 关系代数表达式的转换 如果在每个合法的数据库实例上, 两个关系代数表达式都生成同样的元组集合, 则这两个关系代数表达式称为等价的 注意: 元组次序是无关的 在SQL中, 输入和输出都是元组的多重集合 如果在每个合法的数据库实例上, 两个关系代数表达式都生成同样的元组多重集合, 则这两个表达式在关系代数的多重集合版本下称为等价的 等价规则说明了两种形式的表达式是等价的 可以用一个表达式替换另一个 12条等价规则,6.2 关系DBS的查询优化,合取选择操作可以分解成个体选择的序列. 选择操作是可交换的. 一个投影操作序列中只有最后一个是必要的, 其余皆可省略. 选择可与笛卡儿积及 连接结合. (E1 X E2) = E1 E2 1(E1 2 E2) = E1 1 2 E2,6.2 关系DBS的查询优化,5. 连接操作 (及自然连接) 可交换. E1 E2 = E2 E1 6. (a) 自然连接操作是可结合的: (E1 E2) E3 = E1 (E2 E3) (b) 连接按如下方式是可结合的: (E1 1 E2) 2 3 E3 = E1 2 3 (E2 2 E3) 其中2 仅涉及来自E2 和E3的属性.,6.2 关系DBS的查询优化,7. 在下面两个条件下, 选择操作对 连接操作有分配律: (a) 当0中的所有属性仅涉及被连接表达式之一(E1)的属性时. 0E1 E2) = (0(E1) E2 (b) 当1 仅涉及E1的属性且2仅涉及E2的属性时. 1 E1 E2) = (1(E1) ( (E2),6.2 关系DBS的查询优化,8. 投影操作对 连接操作的分配律如下: (a) 若 仅涉及来自L1 L2的属性: (b) 考虑连接 E1 E2. 若 L1 和 L2 分别是来自E1和E2的属性集合. 令 L3 是连接条件中涉及的E1的属性, 但不在L1 L2中, 并且 令 L4是连接条件中涉及的E2的属性,但不在L1 L2中.,6.2 关系DBS的查询优化,集合运算并和交都是可交换的 E1 E2 = E2 E1 E1 E2 = E2 E1 (集合差不是可交换的). 集合并和交都是可结合的. (E1 E2) E3 = E1 (E2 E3) (E1 E2) E3 = E1 (E2 E3) 选择操作对, 和可分配. (E1 E2) = (E1) (E2) 类似地可用和 替换 同样: (E1 E2) = (E1) E2 类似地可用 替换 , 但不能用 12. 投影操作对并可分配 L(E1 E2) = (L(E1) (L(E2),连接次序例 对所有关系 r1, r2, 及r3, (r1 r2) r3 = r1 (r2 r3 ) 若r2 r3 很大且r1 r2 较小, 我们选择 (r1 r2) r3 从而我们计算并存储一个较小的临时关系.,6.2 关系DBS的查询优化,4. 关系代数表达式的优化算法,算法:关系表达式的优化。 输入:一个关系表达式的语法树。 输出:计算该表达式的程序。,(1)用规则4把形如: F1F2. (E) 变为: F1(F2.(E) 再利用规则58 把每一个选择运算尽可能移到树的叶端。 (2)对每一个投影利用规则3、5、9、l0,尽可能把它移向树的叶端。 (3)利用规则35把选择和投影的串接合并成单个选择、单个投影或一个选择后跟一个投影。使多个选择或投影能同时执行,或在一次扫描中全部完成, (4)使用规则12 使选择运算与笛卡尔积结合成连接运算。 (5)对语法树中的内节点进行分组。 (6)找出查询树中的公共子树。 (7)输出由分组结果得到的优化语法树。,例P278,五种基本运算表示,6.4 关系DBS的查询优化,生成、选择查询计划。,用到查询优化的一般策略,5.查询优化的一般步骤: 将查询表示成关系代数语法树。 根据变换规则将其转换成标准优化形式。 选择低层的操作算法。 对语法树中的每一操作需要根据存取路径、数据的分布、聚簇等信息来选择具体的执行算法。,6.3 关系DBMS的发展,一、关系DBMS的发展阶段 第一阶段是关系数据库理论研究和原型开发的时代: 奠定了关系模型的理论基础。 研究了关系数据语言。 研制了大量关系DBMS的原型。 第二阶段是关系DBMS的实用阶段: 攻克了查询优化,并发控制,完整性机制等一系列重大技术问题。从而使得数据库走向商业化。 第三阶段是关系DBMS的成熟与发展阶段: 应用领域由集中到分布,由单机到网络,由信息管理,辅助决策到企业级的联机事务处理。,表6.1 关系DBMS的发展阶段及相关技术支持,6.3 关系DBMS的发展,二、关系DBMS的发展趋势 产品系列化 支持高速互联网应用 智能化集成化 三

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论