第四章关系系统及其查询优化.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章关系系统及其查询优化概要

用排序合并连接方法的步骤是: ①首先对Student表和SC表按连接属性Sno排序(如图4.2所示); ②取Student表中第1个Sno, 依次扫描SC表中具有相同Sno的元组;把它们连接起来; (3)当扫描到Sno不相同的第1个SC元组时,返回Student表扫描它的下一个元组,再扫描SC表中具有相同Sno的元组,把它们连接起来。 重复上述步骤直到Student表扫描完。 3.把投影运算和选择运算同时进行。如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。 4.把投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系。 5.把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡尔积省很多时间(如4.2.2节中的实例)。 6.找出公共子表达式。 ?如果这种重复出现的子表达式的结果不是很大的关系,并且从外存中读入这个关系比计算该子表达式的时间少得多,则先计算一次公共子表达式并把结果写入中间文件是合算的。 ?当查询的是视图时,定义视图的表达式就是公共子表达式的情况。 4.2.4 关系代数等价变换规则 ?查询语言都可以转换成关系代数表达式。因此关系代数表达式的优化是查询优化的基本课题。 ?研究关系代数表达式的优化最好从研究关系代数表达式的等价变换规则开始。 ?所谓关系代数表达式的等价是指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的。 两个关系表达式E1,和E2是等价的,可记为E1=E2。 常用的等价变换规则有: 4.2.5 关系代数表达式的优化算法 应用上面的变换法则来优化关系表达式,使优化后的表达式能遵循4.2.3节中的一般原则。 关系表达式的优化算法 4.2.6 优化的一般步骤 (1)把查询转换成某种内部表示 通常用的内部表示是语法树,例如4.2.2节中的实例可表示为图4.3。 为了使用关系代数表达式的优化法,不仿假设内部表示是关系代数语法树,则上面的语法树变成图4.4。 利用规则4,6把选择 移到叶端,图4.4语法树便转换成图4.5。这就是4.2.2节中Q3的语法树表示。 (3)选择低层的存取路径 ?根据第(2)步得到的优化了的语法树计算关系表达式值的时候要充分考虑索引、数据的存储分布等存取路径,利用它们进一步改善查询效率。 ?优化器去查找数据字典,获得当前数据库状态的信息。然后根据一定的优化规则选择存取路径。 ?如本例中若SC表上建有Cno的索引,则应该利用这个索引,而不必顺序扫描SC表。 (4)生成查询计划,选择代价最小的 1查询计划是由一组内部过程组成的,这组内部过程实现按某条存取路径计算关系表达式的值。 2常有多个查询计划可供选择。 例如在作连接运算时,若两个表(设为R1,R2)均无序,连接属性上也没有索引,则可以有下面几种查询计划: .对两个表作排序预处理 .对R1在连接属性上建索引 .对R2在连接属性上建索引 .在R1,R2的连接属性上均建索引 3对不同的查询计划计算代价,选择代价最小的一个。在计算代价时主要考虑磁盘读写的I/O数,内存CPU处理时间。 “ ” “ ” 第四章 关系系统及其查询优化 包括两个内容:一是关系系统(关系数据库系统的简称), 二是关系系统的查询优化。 关系系统和关系模型是两个密切相关而又不同的概念。支持关系模型的数据库管理系统称为关系系统。 4.1.1 关系系统的定义 一个系统可定义为关系系统,当且仅当它: (1)支持关系数据库(关系数据结构)。 (2)支持选择、投影和(自然)连接运算,对这些运算不必要求定义任何物理存取路径。 4. 4. 2 关系系统分类 每个圆分为三部分,分别表示关系模型的个组成部分: 结构S(Stmcture)、完整性I(Integrity)、数据操纵M(Manipulation图中阴影部分表示各类系统支持模型的程度。 1表式系统 这类系统仅支持关系(即表)数据结构,不支持集合级的操作 能算关系系统. 2.(最小)关系系统 它们仅支持关系数据结构和三种关系操作; 许多微机关系数据库系统如FoxBASE,FoxPro等就属于这一类. 3.关系完备的系统 这类系统支持关系数据绪构和所有的关系代数操作(功能上与关系代数等20世纪90年代初的许多关系数据库管理系统属于这一类. 4.全关系系统 这类系统支持关系模型的所有特征.(即不仅是关系上完备的而且支持数据结构中域的概念,支持实体完整性和参照完整

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档