关系系统及查询优化

合集下载

数据库习题库

数据库习题库

第1章绪论1.数据库数据具有__________、__________和__________三个基本特点。

答案:永久存储、有组织、可共享2.试述数据、数据库、数据库系统、数据库管理系统的概念。

3.使用数据库系统有什么好处?4.数据库管理系统是数据库系统的一个重要组成部分,它的功能包括__________、__________、__________、__________。

答案:数据定义功能、数据操纵功能、数据库的事物管理和运行管理、数据库的建立和维护功能5.数据库系统是指在计算机系统中引入数据库后的系统,一般由__________、__________、__________和__________构成。

答案:数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员6.试述文件系统与数据库系统的区别和联系。

7.数据库管理技术的发展是与计算机技术及其应用的发展联系在一起的,它经历了三个阶段:__________阶段,__________阶段和__________阶段。

答案:人工管理、文件系统、数据库系统8.举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。

9.数据库具有数据结构化、最小的__________、较高的__________和易扩展性等特点。

答案:冗余度、数据独立性10试述数据库系统的特点。

11.DBMS还必须提供__________保护、__________检查、__________、__________等数据控制功能。

答案:数据的安全性数据的完整性并发控制数据库恢复12.数据库管理系统的主要功能有哪些?答案:①数据库定义功能;②数据存取功能;③数据库运行管理;④数据库的建立和维护功能。

13.模式(Schema)是数据库中全体数据的__________和__________的描述,它仅仅涉及到__________的描述,不涉及到具体的值。

答案:逻辑结构、特征、型14.试述数据模型的概念、数据模型的作用和数据模型的三个要素。

2024年研究生招生考试大纲 控制科学与工程专业同等学历加试科目考试大纲及参考书:《数据库原理》

2024年研究生招生考试大纲  控制科学与工程专业同等学历加试科目考试大纲及参考书:《数据库原理》

《控制科学与工程》专业同等学力加试考试大纲一、考试形式笔试。

二、考试科目《数据库基础》三、试卷满分及考试时间试卷满分100分,考试时间1.5小时。

四、试题题型结构名词解释题,简答题,综合题等。

五、主要参考书《数据库系统概论》,王珊、萨师煊编著,高等教育出版社,第五版。

六、试卷考查内容比例1.数据库绪论(8%)2.关系数据库(4%)3.关系数据库标准语言SQL(30%)4.数据安全性与完整性(2%)5.关系数据理论(14%)6.数据库设计与编程(30%)7.关系系统及其查询优化(8%)8.数据库恢复技术与并发控制技术(4%)七、课程考试内容及要求第一章数据库绪论考核要求:1、了解数据库系统的特点;2、掌握数据模型的基本概念;3、重点掌握数据库系统结构和组成;4、了解数据库技术的主要研究领域。

第二章关系数据库考核要求:1、了解关系模型的基本概念;2、重点掌握关系代数;3、重点掌握关系演算;4、重点掌握查询优化。

第三章关系数据库标准语言SQL考核要求:1、了解SQL的数据定义;2、重点掌握SQL的数据查询;3、重点掌握SQL的数据更新。

第四章数据库安全性考核要求:1、了解计算机系统安全性;2、掌握数据库安全性控制。

第五章数据库完整性考核要求:1、了解完整性约束条件;2、了解完整性控制。

第六章关系数据理论考核要求:1、掌握函数依赖;2、掌握范式的分解与应用。

第七章数据库设计考核要求:1、了解数据库设计的基本步骤;2、掌握数据库设计内容、设计描述、设计方法等;3、掌握E-R图向关系模型的转换。

第八章数据库编程考核要求:掌握嵌入式SQL的基本概念及简单应用,了解其应用;掌握存储过程的基本概念及简单应用,了解其应用;掌握ODBC的基本概念及原理、其编程基本方法和技巧,了解其应用。

第九章关系查询处理及其查询优化考核要求:1、了解关系系统的分类;2、重点掌握关系系统的查询优化;3、掌握查询的语法树以及优化后的语法树。

数据库系统概论 第4章

数据库系统概论 第4章

查询优化的优点是使用户不必考虑如何最好地去 表达查询以便获得较好的查询效率,而且系统在作 查询优化时要比用户程序做得更好。这是因为: 1、优化器可以从数据字典中获取许多统计信息, 优化器可以根据这些信息选择有效的执行计划,而 用户程序则难以获得这些信息。 2、若数据库的物理统计信息改变了,系统可以自 动对查询进行重新优化以选择相适应的执行计划。 3、优化器可以考虑许多种不同的执行计划。 4、优化器中具有许多复杂的优化技术。
准则5:统一的数据子语言准则。一个关系系统可 准则 以具有几种语言和多种终端使用方式(如表格填空 方式、命令方式等)。但必须有一种语言,它的语 句可以表示为具有严格语法规定的字符串,并能全 面地支持:数据定义和视图定义、数据操作(交互 式或程序式)、完整性约束、授权以及事务处理功 能(事务开始、提交、回滚)等。 准则6: 视图更新准则。所有理论上可更新的视图 准则 也允许由系统更新。“理论上可更新的视图”是指 对此视图的更新要求,存在一个与时间无关的算法, 该算法可以无二义性地把更新要求转换为对基本表 的更新序列。该准则对于系统支持数据逻辑独立性 是不可缺少的。
4.1.2 关系系统的分类
关系系统可以分为: 1、表式系统 仅支持关系(即表)数据结构,不支持集合级的操作。 所以表式系统实际上不能算是关系系统。 2、(最小)关系系统 仅支持关系数据结构和三种基本关系运算操作。 3、关系完备的系统 支持关系数据结构和所有的关系操作。 4、全关系系统 支持关系模型的所有特征。
4.2.2 一个实例 4.2.3 查询优化的一般准则
1、选择运算应尽可能地先做。 2 2、在执行连接前对关系适当地预处理。 3、把投影运算和选择运算同时进行。 4、把投影同其前或后的双目运算结合起来。 5、把某些选择同在它前面要执行的笛卡尔积结合 起来成为一个连接运算。 6、找出公共子表达式。

关系数据库的设计与优化方法

关系数据库的设计与优化方法

关系数据库的设计与优化方法关系数据库是一种常用的数据库模型,被广泛应用于各个领域的数据管理和处理中。

在设计和优化关系数据库时,需要考虑多个因素,包括数据结构、索引、规范化、查询优化等。

本文将探讨关系数据库的设计与优化方法,旨在帮助读者更好地理解和应用这些方法。

一、关系数据库的设计方法1. 数据建模数据建模是关系数据库设计的重要一环,它主要包括确定实体与实体之间的关系、属性的定义以及建立实体之间的联系。

常用的数据建模方法包括实体-联系模型(ER模型)、层次模型、网络模型等。

在进行数据建模时,需要充分了解业务需求和数据关系,合理划分实体和属性,并定义准确的关系。

2. 规范化数据库规范化是将数据库设计中的冗余和不一致性进行消除或最小化的过程。

通过规范化,可以提高数据存储和查询的效率,并减少数据的重复。

常用的规范化方法包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。

在进行规范化时,需要合理划分和组织表结构,并减少属性之间的冗余。

3. 表设计表设计是关系数据库设计中的关键环节,它涉及表结构的定义、字段的选择和索引的建立。

在进行表设计时,需要考虑数据访问模式、数据关系以及系统性能。

一个好的表设计应具备简洁明了的结构、较高的查询性能和灵活的数据处理能力。

二、关系数据库的优化方法1. 索引优化索引是提高查询性能的重要手段之一,通过在表中创建合适的索引,可以加快查询速度。

在进行索引优化时,需要选择合适的字段和索引类型,并避免重复或不必要的索引。

此外,还可以通过定期维护索引和优化查询语句,进一步提升性能。

2. 查询优化查询优化是关系数据库优化的核心内容,它涉及查询语句的编写和执行计划的生成。

在进行查询优化时,可以采用以下几种方法:- 重写查询语句:通过改写查询语句的形式或逻辑,优化查询性能。

- 选择合适的连接方法:对于多表查询,可以选择合适的连接方法,如内连接、左连接、右连接等。

- 分解复杂查询:对于复杂的查询语句,可以将其分解为多个简单查询,并适时使用子查询或临时表。

第9章 数据库查询优化.ppt

第9章  数据库查询优化.ppt
其相应的代数表达式为:
πS#σAREA=‘North’(Sp
其相应的查询树如下: π s#
∞ Dept) D#=D#
б AREA=‘Nouth’

D#=D#
显然,边为 E1(∞ ,Sp ) D#=D#
时,则Sp是非叶节点 ∞ 的分量。
Sp
Dept
查询表达式的等价性
[例]:对关系 Emp,有如下SQL查询表达式 Select ENAME,DNO
一种是采用半联接技术来减少联接操作的操作数,以降低通讯费用; 另一种是直接进行联接操作的代价计算
9.3.2 联接操作
联接操作是从两个关系的笛卡尔积中选取属性间满足一定条件的元 组。记作:
其中A和B分别为R和S上可比的属性组。 自然联接(Natural join)是一种特殊的等值联接,它要求两个关系中 进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性 去掉。即若R和S具有相同的属性组B,则自然连接可记作:
半联接操作是关系代数操作中联接(JOIN)操作的一种缩减,关系R和S 的半联接记为R∝S。其结果关系是R和S的自然联接(Natural JOIN)后, 在R的属性上的投影,可用下述表达式表示:
R∝S=πR(R∞S) 等价方法:将S中与R有相同属性名的属性集投影出来,然后与R完成自然 联接,其等价公式为:
交的,即不包含公共属性的情况下,θ-连接的结果才是有定义的。
实例:考虑分别列出车模和船模的价格的表“车”和“船”。假设一个顾客要购 买一个车模和一个船模,但不想为船花费比车更多的钱。在关系上的θ-联接 CarPrice ≥ BoatPrice 生成所有可能选项的一个表。
图 θ-联接实例
9.3.3 半联接操作原理和不对称性

关系DBS的查询优化

关系DBS的查询优化
形式,并送到应用程序A的工作区。 ⑧ DBMS向应用程序A送命令执行情况的状态信息。 ⑨ 记载日志
DBMS把对数据库更新操作的全部情况都记载下来,以 便数据库的恢复。 ⑩ 应用程序检查状态信息,若成功,对工作区中的数据 正常处理;若失败,决定下一步如何执行。
6.2 关系DBS的查询优化
数据查询是DBS中最基本、最常用和最复杂的数据操 作,查询优化是影响关系DBMS性能的关键因素。
② ∏Cno(σ F2 ∧F3 ( S ⋈ SC ) ) ③ ∏Cno(σ F2 (S) ⋈ σ F3 (SC) )
分析: 哪种效率高?
6.2 关系DBS的查询优化
连接时间复杂度为:
① ∏Cno(σ F1 ∧F2 ∧F3 ( S×SC ) ) ① O(107)
② ∏Cno(σ F2 ∧F3 ( S ⋈ SC ) ) ③ ∏Cno(σ F2 (S) ⋈ σ F3 (SC) )
关系数据理论基于关系代数,同一个查询要求可以 对应多个不同形式却相互等价的表达式。
关系数据查询语言是非过程化的,由DBMS自动生成 若干候选的查询计划并择优使用。
6.2 关系DBS的查询优化 1.查询处理的过程
查询语句
语法分析与 翻译
查询输出
执行引擎
关系代数表达式 优化器 执行计划
数据
有关数据的统计 信息
再利用规则5~8 把每一个选择运算尽可能移到树的叶端。
(2)对每一个投影利用规则3、5、9、l0,尽可能把它移向树
的叶端。
(3)利用规则3~5把选择和投影的串接合并成单个选择、单个
投影或一个选择后跟一个投影。使多个选择或投影能同时执行,
或在一次扫描中全部完成,
(4)使用规则12 使选择运算与笛卡尔积结合成连接运算。

第四次作业—关系查询优化

第四次作业—关系查询优化

关系查询优化关系查询优化是影响DBMS性能的关键因素,关系系统的查询优化即使DBMS实现的关键技术又是关系系统的有点所在。

查询优化的工作包括两个方面,一方面是关系数据库系统内部提供的优化机制,另一方面是用户通过改变查询的运算次序和建立索引等机制进行优化。

关系数据库系统查询优化的目标是:选择有效的策略,快速求得给定关系表达式的值,以减少查询执行的总开销。

总代价= I/O代价+CPU代价+(其他代价)我们先看一个简单的列子,说明为什么要进行查询优化。

一、举例说明我用Microsoft Visual foxPro建立三个数据库文件,他们的文件名分别是c#.dbf存储课程信息、S#.dbf存储学生的基本信息、sc#.dbf存储学生的学习成绩信息,通过对三个数据表的操作,可以了解学生的所修的全部课程和他们的各门课程的成绩。

数据表2 sc#.dbf当输入如下的查询的语句,运行结果为:系统可以用多种等价的关系代数表达式来完成这一查询:①Q1=∏s#.姓名(σs#.学号=sc#.学号(s#×sc#))②Q2=∏s#.姓名(σsc#.课程号=’01100002’③Q3=∏s#.姓名(σ课程号=’01100002’(sc#))二、从时间复杂度进行计算表达式(1)的查询执行时间分析:①计算广义笛卡尔积。

把S#和SC#的每个元组连接起来。

一般连接的做法是:在内存中尽可能多地装入某个表(如S#表)的若干个元组,留出一块存放另一个表(如SC#表)的元组。

然后把SC#中的每个元组和S#中每个元组连接,连接后的元组装满一块后就写到中间文件上,再从SC#中的读入一块和内存中的S#元组连接,直到SC#表处理完。

这时再一次读入若干块S#元组,读入一块SC#元组,重复上述处理过程,直到把S#表处理完。

设一个块能装10个S#元组或100个SC#元组,在内存中存放中存放5块S#元组和1块SC#元组,则读取总块数为:21001002010010010105101010433=⨯+=⨯⨯+ (块) 其中读S#表100块。

数据库系统中的流式数据处理与实时查询优化

数据库系统中的流式数据处理与实时查询优化

数据库系统中的流式数据处理与实时查询优化随着互联网的迅速发展和大数据技术的日益成熟,数据库系统中的流式数据处理和实时查询优化变得越发重要。

在传统的关系型数据库系统中,数据是以批处理的方式进行处理和查询的,无法对实时产生的大量数据进行及时分析和查询。

因此,数据库系统需要引入流式数据处理和实时查询优化技术,以满足实时性和高性能的数据处理需求。

流式数据处理是指对连续产生的数据流进行实时处理和分析的技术。

与传统的批处理方式不同,流式数据处理能够实时处理数据,并触发实时行为和响应。

流式数据处理的一个关键概念是事件时间。

事件时间是指事件真正发生的时间,而不是事件被收集或处理的时间。

通过使用事件时间,流式数据处理可以更准确地处理和分析数据。

流式数据处理中的关键技术之一是流式数据管理系统(Stream Data Management System,SDMS)。

SDMS是一种基于流式数据模型的管理系统,能够实现数据的流式处理和分析。

SDMS提供了一套完整的功能,包括数据收集、数据处理、数据存储和数据查询等。

同时,SDMS还支持流处理语言和流查询语言,以便用户可以灵活地定义处理流程和查询需求。

在数据库系统中实现流式数据处理还需要考虑数据流的管理和优化。

首先,数据库系统需要对流式数据进行接收和管理,以确保数据的完整性和可靠性。

其次,数据库系统需要优化流式数据的处理和分析过程,提高处理效率和查询性能。

常见的流式数据处理优化方法包括数据压缩、批量处理和流式索引等。

与流式数据处理密切相关的是实时查询优化。

在传统的数据库系统中,实时查询往往会面临性能瓶颈,难以及时响应用户的查询需求。

为了优化实时查询,数据库系统需要引入一些高性能的查询优化技术。

首先,数据库系统可以采用多核并行处理技术,将查询任务分解成多个子任务,并利用多核CPU同时进行处理。

这样可以极大地提高查询的并行度和处理速度。

其次,数据库系统可以利用内存数据库技术来加速实时查询。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关系代数表达式的优化算法
算法:关系表达式的优化。 输入:一个关系表达式的语法树。 输出:计算该表达式的程序。 1)利用规则4把形如F1∧F2 ∧ … ∧ Fn(E)变换为 F1( F2(…( Fn(E))…))。 2)对每个选择,利用规则4-8尽可能把它移到树的叶端。 3)对每个投影,利用规则3,9,10,5中的一般形式尽可能把它移向树的叶 端。 4)利用规则3-5把选择和投影的串接合并成单个选择、单个投影或一个选择 后跟一个投影。使得多个选择或投影能同时执行,或在一次扫描中全部 完成。 5)将得到的语法树的内结点进行分组。每一双目运算和它所有的直接祖先 ( , )为一组;如果其后代直到叶子全是单目运算,则也将它们并 入该组;但当双目运算是笛卡儿积,而且其后的选择不能与它结合为等 值连接时,则一直到叶子的一目运算结点须单独立一组。 6)自动生成一个程序。每组结点的计算是程序中的一步。各步的顺序是任 意的,只要保证任何一组的计算不会在它的后代组之前计算。 7)执行时从叶端依次向上进行,每组运算只对关系进行一次扫描。
三、关系系统的查询优化
• 非关系系统中,用户使用过程化的语言表达查询要求、执行的操 作以及操作序列,用户必须了解存取路径,查询效率由用户的存 取策略决定,需要用户对 查询程序进行“优化”。而在关系系统 中,用户只需提出“干什么”,而不必指出“怎么干”,由系统 来确定存取策略,提高查询效率,即完成查询优化的工作。 • 查询优化在关系数据库系统中有着非常重要的地位,是影响 RDBMS性能的关键因素。 • 系统的“优化器”功能与用户“优化工作”对比: 1)可以从数据字典中获取许多统计信息 2)如果物理统计信息改变了,前者可重新优化选择相适应的执行计 划,而后者必须重新写程序,而实际应用中往往不太可能。 3)前者可考虑数百种不同的执行计划,而程序员一般只能考虑有限 的几种可能性。 4)前者包括了很多复杂的优化技术,往往只有最好的程序员才能掌 握。系统的自动优化使得所有人都拥有这些优化技术。
在适当的索引机制下总的存取时间还 会进一步减少。
[这三种查询执行策略的详细分析见书P.159]
• 系统可以用多种等价的关系代数表达式来完成这一查询:
如 q1= sname( student.sno=sc.sno∧o=‘2’(student×sc)) q2= sname( o=‘2’(student sc))
q3= sname(student o=‘2’(sc)) • 这三种不同的查询执行策略,其查询时间相差很大。 可通过某种代价模型(如只计算I/O时间代价),粗略计算出各种查询 执行方案的代价,选择代价最小的来实现查询。
实例_查询优化的实例
• 读取Student和SC表的策略
Student表
第 一 个 五 块 第 二 个 五 块
第1-10个元组 第11-20个元组
内存缓冲区
10个Student元组 100个SC元组
SC表
第1-100个元组 第101-200个元组
第一块 第二块

共 一 万 个 选 课 记 录

共 一 千 个 学 生 记 录

• 假设1:1000个学生记录,10000个选课 记录,在内存中存放5块Student元组和一 块SC元组,一块能装10个学生记录或100 个选课记录。 则读取总块数为:
1000
10
+
1000
10×5
×
10000
100
= 100+20×100 = 2100 块
读学生表块数
读SC表遍数
读SC表每遍块数
对关系系统的最低要求
关系系统的定义(续)
• 不支持关系数据结构的系统显然不能称为关系系统 • 仅支持关系数据结构,但没有选择、投影和连接运算 功能的系统仍不能算作关系系统。
– 原因:不能提高用户的生产率
• 支持选择、投影和连接运算,但要求定义物理存取路 径,这种系统也不能算作真正的关系系统
– 原因:就降低或丧失了数据的物理独立性
×
Sname,Sno Sno
×
Student
Cno=‘2’
SC
Student
Cno=‘► 根据第(2)步得到的优化了的语法树计算 关系表达式值的时候要充分考虑索引、数据的 存储分布等存取路径,利用它们进一步改善查 询效率。 优化器查找数据字典获得当前数据库状态 信息 •选择字段上是否有索引 •连接的两个表是否有序 •连接字段上是否有索引 然后根据一定的优化规则选择存取路径
优化的一般步骤
(1)把查询转换成某种内部表示 通常是(关系代数)语法树,以4.2.2节中的实例为例。 (2)把语法树转换成标准(优化)形式。
• 语法树最终的优化形式(运用了哪些变换规则?)
Sname Student.Sno=SC.Sno Sname, Student.Sno, SC.Sno Sname Student.Sno=SC.Sno
关系系统的分类 (续)
数据结构 表式系统 (最小)关系系统 关系完备的系统 数据操作 完整性
表 表 表

选择、投影、 连接


全关系系统



全关系系统的十二条基本准则
• 这是关系模型的奠基人E.F.Codd从理论 和实际紧密结合的高度,对关系型 DBMS的评述。从实际意义上看,这十 二条准则可以作为评价或购买关系型产 品的标准。 • 详细见书。
在R1,R2的连接属性上均建索引
对不同的查询计划计算代价,选择代价最小的一个。 在计算代价时主要考虑磁盘读写的I/O数,内存CPU处理时
间在粗略计算时可不考虑。
实例_查询优化的实例
• SELECT Student.Sname FROM Student,SC WHER Student.Sno=SC.Sno AND o=‘2’;
查询优化的一般准则
1)选择运算应尽可能先做。因为它可使计算的中间结果大大变小。 2)在执行连接(自然连接)前对关系适当地预处理。主要有两种方 法,在连接属性上建立索引和对关系排序,然后执行连接。(详 细见书 P.161) 3)把投影运算和选择运算同时进行。当他们对同一个关系操作,则 可以在扫描关系的同时完成所有的这些运算来避免重复扫描关系。 4)把投影和其前或其后的双目运算结合起来,没有必要为了去掉某 些字段而扫描一遍关系。 5)把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接 运算,连接特别是等值连接运算要比同样关系上的笛卡儿积省很 多时间。 6)找出公共子表达式,如果这种重复出现的子表达式结果不是很大, 从外存读入结果比计算该子表达式的时间少得多,可先计算一次 该子表达式并把结果写入中间文件是合算的。如查询的是视图, 定义视图的表达式就是公共子表达式的情况。
关系代数等价变换规则
• 各种查询语言都可以转换成关系代数表达式,因此查 询优化可以转换为对关系代数表达式的优化。而其优 化的基础是关系代数表达式的等价变换规则。 • 等价:如果用相同的关系来代替两个表达式中相应的 关系所得到的结果是相同的,则说这两个关系代数表 达式E1、E2是等价的,记为E1≡E2。 • 常用的等价变换规则:10条(见书P.162-164)。 • 关系代数表达式的优化原则:应用等价变换规则来优 化关系表达式,使得优化后的表达式能遵循查询优化 的一般准则,如把选择和投影尽可能地早做(即把它 们移到表达式语法树的下部,叶端)。
• 选择、投影、连接运算是最有用的运算
二、关系系统的分类
前面定义的关系系统是关系系统的最小要求。 按照E.F.Codd的思想,可以把关系系统分类: 1、表式系统 仅支持表数据结构,不支持集合级的操作,不能算关系系统。 2、最小关系系统 支持关系数据结构和三种关系操作。(FoxBase, FoxPro等) 3、关系完备的系统 支持关系数据结构和所有的关系代数操作(功能上等价)。 4、全关系系统 支持关系模型的所有特征。即不仅是关系上完备的,而且支持数 据结构中域的概念,支持实体完整性和参照完整性。(目前大多 数关系系统已接近或达到了这个目标)
关系系统及查询优化
• • • • • • 关系系统的定义、分类 全关系系统的十二条基本准则 查询优化的目标、步骤 查询优化的实例 查询优化的一般准则 关系代数表达式的优化算法
一、关系系统定义
• 关系系统:支持关系模型的数据库管理系统称为关系 系统。(笼统) • 关系模型中并非每一部分都同等重要,并不苛求一个 实际的关系数据库 管理系统必须完全支持关系模型, 也不苛求完全支持关系模型的系统才能称为关系系统。 • 一个系统可定义为关系系统,当且仅当它至少: 1、支持关系数据结构(表) 2、支持选择、投影和(自然)连接运算,对这些运算 不要求用户定义任何物理存取路径。
(4)生成查询计划,选择代价最小的
►查询计划是由一组内部过程组成的,这组内 部过程实现按某条存取路径计算关系表达式 的值。
在作连接运算时,若两个表(设为R1,R2)均无序,连接属 性上也没有索引,则可以有下面几种查询计划:
对两个表作排序预处理
对R1在连接属性上建索引 对R2在连接属性上建索引
查询优化的一般步骤
1)将查询转换成某种内部表示,通常是语法树(关系代数语法树)。 2)根据一定的等价变换规则把语法树转换成标准形式(优化形式)。 可采用关系代数表达式的优化算法自动进行优化。 3)选择低层的操作算法,即确定存取路径。 对于语法树中的每一个操作需要根据存取路径(有无索引)、数据 的存储分布、存储数据的聚簇等信息来选择具体的执行算法。 4)生成查询计划(执行方案),选择代价最小的。 对每个执行计划计算代价,从中选择代价最小的一个。在集中式关 系数据库中,计算代价时主要考虑磁盘读写的I/O次数,也有一些 系统换考虑了CPU的处理时间。 • 目前的商品化RDBMS答对采用基于代价的优化算法: 这种方法要求优化器充分考虑系统中的各种参数(如缓冲区大小、 表的大小、数据的分布、存取路径等)。 • 集中式数据库:总代价=I/O代价+CPU代价 (时间) 多用户数据库:总代价=I/O代价+CPU代价 +内存代价 (时间)
相关文档
最新文档