数据库系统中的查询技术探讨毕业论文(编辑修改稿)内容摘要:

要性和必要性。 所以,对数据库查询技术的优化研究就变得尤为重要。 这对工作效率有极大的影响,这也是本人选择此题目的理由。 选题背景 第 3 页 共 16 页 国内外发展现状和发展趋势与研究的主攻方向 从 20 世纪 60 年代末期开始到如今,数据库技术已经发展了 40 多年,已经经历了三代演变,目前已经发展成为一个庞大的数据库家族,而且关系数据库取得了巨大的成功,关系数据库以其查询语言的非过程化,数据模型和用户视图的简明性,以及较高的数据独立性等特点,已经被广泛使用,在数据库领域中占有重要的地位。 我国的数据库 (主要是中文数据库 )建设起步于 70年代中后期 ,经过几十年的发展,我国的数据库技术进步很大,在商用数据库管理系统( DBMS)中也出现了像 OpenBase、SECBase 等自主版权的数据库管理系统。 数据库查询 技术也随着数据库的发展而进步着。 但是,由于使用高级查询语言和存在费时低效的多关系连接操作使得数据库的响应速度较慢,让众多用户无法忍受。 查询响应速度已经成为数据库的重要指标和主要发展瓶颈,特别是对于大型数据库而言,这一点尤为突出。 为了实现快速查询,除了在数据库的物理设计、关系规范化等方面进行改进外,一个关键措施就是提供最优的查询路径决策能力,提高查询响应速度。 本文就是通过此方面的探讨和研究,力争使 SECBase 数据库的查询优化技术得到进一步提高。 查询优化 概述 查询优化的基本概念 所谓查询优化,就是在查询执行引擎生成一个执行策略的过中,尽量使查询的总开销和总时间达到最小。 实际系统对查询优化的具体实现不同,但一般来说,可以归纳为四个步骤: ( 1)将查询转换成某种内部表示,通常是语法树。 ( 2)根据一定的等价变换规则把语法树换成优化 (标准 )形 式。 数据库系统中的查询技术探讨 第 4 页 共 16 页 (3) 选择底层的操作算法。 对于语法树中的每一个操作需要根据存取路径、数据的存储分布、存储数据的聚簇等信息来选择具体的执行算法。 ( 4) 生成查询计划。 查询计划是由一系列内部操作组成的,这些内部操作按照一定的次序构成查询的一个执行方案,通常这样的执行方案有很多个,需要对每个执行计划计算代价,从中选择代价最小的一个。 其过程如下图 1所示 : 图 1 查询优化处理过程 关系查询语言 数据库的查询主要是通过查询语言来完成的,关系查询语言通常分为过程性的和描述性的。 关系数据模型可以为数据库提供一个数据无关的接口,关系数据库语言是关系演算,进行数据查询时,只需对要查询的数据进行简单的描述,而无须说明如何获取这查询优化概述 第 5 页 共 16 页 些数据。 关系代数是关系模型中最为著名的过程性查询语言,是关系操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的,关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算。 传统的集合运算是二目运算,包括并、差、交、广义笛卡尔积四种运算。 专门的关系运算包括选择、投影、连 接、除等。 关系数据库中用得最广泛的描述性语言就是 SQL查询语句,其本质就相当于数据操纵语言 DML。 使用 SQL语言进行数据库查询,用户可以方便快捷的获取数据,但是使用这种语言,同样也需要对搜索、存取操作以及数据传输过程进行必要的说明,因此相应的查询优化技术的研究也在不断进行中。 SQL 语言的一般格式如下: SELECT columnlist FROM tablelist WHERE conditionlist 其中, columnlist 是要返回的查询 结果的属性列表, tablelist 是查询所涉及到的所有关系, conditionlist 是条件表达式,条件表达式中的谓词可以将查询作为其操纵数。 查询优化目标 查询优化的目标是:用最少的代价,最短的时间取得最理想的结果。 基于用最少的代价的目标是,使查询执行所使用的系统资源总和尽量地少,从而降低系统开销,整个系统的开销可以从单个系统资源的开销表达式中推出;基于最短的查询时间优化的目标是尽量走最短最有效的路径,从而减少查询的响应时间。 数据库系统中的查询技术探讨 第 6 页 共 16 页 查询处理流程 查询处理过程如下图 2 所示: 图 2 查询处理步骤 基本步骤包括: 1. 语法分析与翻译; 2. 优化; 3. 执行。 查询处理开始之前系统必须将查询语句翻译成系统内部的表示形式。 翻译过程类似与编译器语法分析器的工作。 在翻译过程中要对用户的查询进行语法检查,并构造该查询语句的语法分析树表示,进而翻译 成关系代数表达式。 优化器利用数据字典中的统计信息对关系代数表达式进行代价评估,从而产生出最优的执行计划。 执行引数据库查询优化技术 第 7 页 共 16 页 擎再为每一个关系操作或操 作组实现一系列物理操作。 4 数据库查询优化技术 分布式查询优化 4. 分布式查询优化要考虑的问题 分布式数据库存在于网络环境中,由于数据的分布性,一次查询所操纵的对象可能分布于不同的网络节点中,由此带来的开销和执行速度就会不一样,优化所要考虑的因素就更为复杂。 分布式数据库环境中的查询优化要考虑以下两个关键的问题: (1)数据和信息均要通过通信线路进行传输,存在延迟的问题将减慢整个查询执行过程。 (2)网络中多处理器的存在提供了并行处理和传输的机会,应充分利用可以加快查询相应的速度。 在分布式数据库系统中,还影响到物理查询计划设计的复杂性和可选方案。 在选择物理查询计划时必须考虑的问题包括 : (1)如果某个所需的关系 R有多个副本,那么应该从哪个副本中获得 R的值。 (2)当在两个关系 R 和 S 上实施某个操作时,若有多个可选方案时,我们应该选择哪个。 为了简化查询的执行,有五条应用于等价变换的一般准则: (1)使用选择和投影的幂等来为每个操作数关系产生相应的选择和投影。 (2)把算符树中的选择和投影运算尽可能向下推移。 (3)把选择运算向下推到算符树的树叶处,然后对它们使用限定关系代数;如果结果的限定语是永假式,则用空关系来代替此次选择的结果。 (4)利用限定关系代数来求结合的操作数的限定语之值;如果结合结果的限定语是永假式,则用空关系来代替此子树,包括此结合及它的操作数在内。 (5)为了分布出现在全局查询中的结合,必须把并集向上推,超过我们要分布的结合的范围。 数据库系统中的查询技术探讨 第 8 页 共 16 页 分布式查询优化过程 分布式查询优化已经开展了很多年,从各种应用角度,所有的工作都可以归分为两种基 本的方法: (1) 通过减少分布式查询中数据传输的数量来降低传输的费用。 (2) 用并行技术来降低反应时间。 下图 3 体现了分布式查询处理的各个阶段,这个查询从用户输入 SQL 语句开始,然后由解析器翻译,并进行优化,使之成。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。