第四章关系系统及其查询优化
数据库原理关系系统及其查询优化
授课:XXX
15
对于Q2
读Student和SC不变,仍为105秒; 中间结果10,000个元组,读写共两次: S2= (10,000/10)*2/20=100s 总时间S1+S2,约205秒,降低了3个数量级!
2021/3/10
授课:XXX
16
对于Q3
先对SC进行选择,读100块,时间5s,满足 条件的元组50个,直接放在1个内存块中;
合成一个连接运算;
5. 把投影和其前或后的双目运算结合; 6. 找出公共子表达式。
2021/3/10
授课:XXX
20
4.2.4 等价变换规则
1. 连接、笛卡儿集交换律
E1×E2 = E2×E1
E1 E2 = E2 E1
E1 E2 = E2 E1
F
F’
2021/3/10
2021/3/10
授课:XXX
18
分析它们,从Q1到Q4,一个比一个效率高, 感性地告诉我们:笛卡儿集运算最好能 和相应的选择一起构成连接运算;选择 能早做就尽量早做;在双目运算前增加 投影,只保留必要的字段。
2021/3/10
授课:XXX
19
4.2.3 优化的一般策略
1.选择尽可能早做; 2.在连接前尽可能地预处理; 3.投影和选择同时进行; 4. 选择和它前面要进行的笛卡儿集运算结
接着读Student表,与内存块中的SC元组连接, 读Student表1遍时间为5s;
连接结果输出,不占I/O时间;
总时间10秒,再降低了1个数量级!
2021/3/10
授课:XXX
17
对于Q4
类似于Q3,但不需要读取SC和Student元组 全部属性,只读Student的Sno和Sname,SC 的Sno,读写块数进一步减少,从而I/O时间 还可减少
关系系统及其查询优化推选PPT资料
(1)将查询转换为内部表示--语法树; (2)根据等价变换规则把语法树优化; (3)选择底层的操作算法; (4)生成查询的执行方案。
第四章 关系系统及其查询优化
4.2 查询优化
6. 查询优化的一般准则
(1)选择运算尽可能先做; (2)执行连接前进行排序或索引; (3)投影运算和选择运算同时进行; (4)投影与前后的双目运算结合; (5)选择与笛卡尔积结合为连接; (6)提取公共子表达式。
(8)选择与笛卡尔积的交换律
σF(E1×E2 ) ≡σF(E1 ) ×E2 σF(E1×E2 ) ≡E1×σF( E2 ) σF(E1×E2 ) ≡σF1(E1 ) ×σF2( E2 ) σF(E1×E2 ) ≡ σF2( σF1(E1 ) ×E2 )
第四章 关系系统及其查询优化
4.2 查询优化
7. 关系代数的等价变换规则
第四章 关系系统及其查询优化
4.2 查询优化
1. 实例
用SQL语言查询选修了2号课程的学生姓名:
FROM Student,SC WHERE Student.Sno=SC.Sno AND o=‘2’ 假定:数据库有1000个学生记录、10000个选课记录、选修2号课程的选 课记录有50个。
(5)选择与投影的交换律
σF(ΠA1,A2,…,An (E)) ≡ΠA1,A2,…,An(σF(E))
(6)选择与并的交换律
σF(E1∪E2 ) ≡ σF(E1 )∪σF(E2 )
第四章 关系系统及其查询优化
4.2 查询优化
7. 关系代数的等价变换规则
(7)选择与差的交换律
σF(E1-E2 ) ≡σF(E1 )-σF(E2 )
数据库系统概论 第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、找出公共子表达式。
数据库 4关系系统及其查询优化
4.6关系代数表达式的优化算法
我们可以应用前面讨论的变换法则来优化关系表达式。 使优化后的表达式能遵循4.2.3中的一般原则。例如把 选择和投影尽可能地早做(即把它们移到表达式语法树 的下部)。以下给出查询关系表达式的优化算法。 算法:关系表达式的优化。 输入:一个关系表达式的语法树。 输出:计算该表达式的程序。 方法: 1. 利用规则(4)把形如F1∧F2...∧Fn(E)变换为 F1(F2(...(Fn(E))...)) 2. 对每一个选择,利用规则(4)~(8)尽可能把它移到 树的叶端。
一个例子
例如STUDENTSC这样的自然连接,用索引连接方法的 步骤是: 1) 在SC上建立Sno的索引 2) 对STUDENT中每一个元组,由Sno值通过SC的索引 查找相应的SC元组 3) 把这些SC元组和STUDENT元组连接起来 这样Student表和SC表均只要扫描一遍。处理时间只是 两个关系大小的线性函数。
几点解释 · 为什么关系系统除了要支持关系数据结构外,还必 须支持选择、投影、连接运算呢?因为不支持这三种 关系运算的系统,用户使用仍不方便,不能提高用户 的生产率,而提高用户生产率正是关系系统主要目标 之一。 为什么要求这三种运算不能依赖于物理存取路径呢? 因为依赖物理存取路径来实现关系运算就降低或丧失 了数据的物理独立性。不依赖物理存取路径来实现关 系运算就要求关系系统自动地选择路径。为此,系统 要进行查询优化以获得较好的性能。这正是关系系统 实施的关键技术。 要求关系系统支持这三种最主要的运算而不是关系代 数的全部运算功能,是因为它们是最有用的运算功能, 能解决绝大部分的实际回题。
(6)找出公共子表达式。 如果重复出现的子表达式的查询结果不是很大的 关系,并且从外存中读入这个关系比计算该子表达式 的时间少得多,则先计算一次公共子表达式并把结果 写入中间文件是合算的。 当查询的是视图时,定义视图的表达式就是公共子 表达式的情况。
数据库系统概论关系系统及其查询优化(精)
实际系统的查询优化步骤
3. 选择低层的操作算法
对于语法树中的每一个操作
计算各种执行算法的执行代价 选择代价小的执行算法
4. 生成查询计划(查询执行方案)
查询计划是由一系列内部操作组成的。
An Introduction to Database System
关系完整性
实体完整性、参照完整性、用户自己定义的完整性
An Introduction to Database System
关系系统的定义
一个数据库管理系统可定义为关系系统,当且仅 当它至少支持:
1. 关系数据库(即关系数据结构) 系统中只有表这种结构 2. 支持选择、投影和(自然)连接运算 对这些运算不要求用户定义任何物理存取路径
对关系系统的最低要求
An Introduction to Database System
关系系统的定义
● ●
不支持关系数据结构的系统显然不能称为关系系统 仅支持关系数据结构,但没有选择、投影和连接运算 功能的系统仍不能算作关系系统。
原因:不能提高用户的生产率
支持选择、投影和连接运算,但要求定义物理存取路
例:求选修了课程C2的学生姓名
SELECT Student.Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND o='2';
An Introduction to Database System
查询优化的必要性(续)
假设1:外存:
Student:1000条,SC:10000条, 选修2号课程:50条 假设2:一个内存块装元组:10个Student, 或100个SC, 内存中一次可以存放: 5块Student元组, 1块SC元组和若干块连接结果元组 假设3:读写速度:20块/秒 假设4:连接方法:基于数据块的嵌套循环法
第四章 关系查询处理和查询优化
第四章 关系查询处理和查询优化1、给出各类关系系统的定义:最小关系的系统;关系完备的系统;全关系型的 关系系统。
答:(最小)关系系统:仅支持关系数据结构和三种关系操作。
许多 微机关系数据库系统如FoxBASE,FoxPro等就属于这一类。
关系完备的系统: 这类系统支持关系数据结构和所有的关系代数操作(功能20世纪90年代初的许多关系数据库管理系统属于这一类。
上与关系代数等价)。
全关系系统:这类系统支持关系模型的所有特征。
即不仅是关系上完备的 而且支持数据结构中域的概念,支持实体完整性和参照完整性。
目前,大多数 关系系统已不同程度上接近或达到了这个目标。
2、试述查询优化在关系数据库系统中的重要性和可能性。
答:查询优化在关系数据库系统中有着非常重要的地位。
关系数据库系统和 非过程化的SQL语言能够取得巨大的成功, 关键是得益于查询优化技术的发展。
关系查询优化是影响RDBMS性能的关键因素。
优化对关系系统来说既是挑战又是机遇。
所谓挑战是指关系系统为了达到用户 可接受的性能必须进行查询优化。
由于关系表达式的语义级别很高,使关系系 统可以从关系表达式中分析查询语义,提供了执行查询优化的可能性。
这就为 关系系统在性能上接近甚至超过非关系系统提供了机遇。
3.对学生-课程数据库有如下的查询:查询信息系学生选修的所有课程名称:SELECT Cname FROM St,Course,SCWHERE St.Sno=SC.Sno AND o=o AND St.Sdept=’IS’试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法 树进行优化处理,画出优化后的标准语法树。
答:关系代数表达式如下:πcname(бSt.sdept=’IS’(бst.sno=sc.Sno(бo=o(ST×SC ×COURSE)))用关系代数表示的语法树如下左图:πcname πcnameбSt.sdept=’IS’ бo=oбst.sno=sc.Sno ×бsc.Cno=o бSt.sno=sc.sno πcno,cname× × Course× Course πsno πsno,cnoSt Sc St.sdept=’IS’ ScSt用关系代数表达式优化算法对原关系代数表达式进行优化,优化后的关系代数表达式如下:πcname(бo=o((бSt.sno=sc.sno(πsno(бSt.sdept=’ IS’(ST))×πsno,cno(SC))) ×πcno,cname(Course))优化处理后的标准语法树如上右图。
第四章 关系系统及其查询优化精讲
包括两个内容:一是关系系统(关系数据库系统的简称),
二是关系系统的查询优化。
关系系统和关系模型是两个密切相关而又不同的概念。支持
关系模型的数据库管理系统称为关系系统。
4.1.1 关系系统的定义
一个系统可定义为关系系统,当且仅当它:
(1)支持关系数据库(关系数据结构)。
(2)支持选择、投影和(自然)连接运算,对这些运算不必要 求定义任何物理存取路径。
•数据操作(交互式或程序式) •完整性约束 •授权 •事务处理功能(事务开始、提交、回滚)
准则6 视图更新准则。所有理论上可更新的视图也应该
允许由系统更新。 •有的系统只允许对基本表更新,不支持对视图的更新。
•有的只允许对有限的一类视图如行列子集视图更新。
• 视图更新准则对于系统支持数据逻辑独立性是不可缺少的。
。
2.作选择操作
这一步读取中间文件花费的时间(同写中间文件一样)需5X104s 满足条件的元组假设仅50个,均可放在内存。
3.作投影 把第2步的结果在Sname上作投影输出,得到最终结果。
因此第一种情况下执行查询的总时间:
二、第二种情况
1.计算自然连接
为了执行自然连接,读取Student和SC表的策略不变,总的 读取块数仍为2100块花费105s。但自然连接的结果比第一种情 况大大减少,为104个。 每秒 20块 因此写出这些元组时间为104/10/20=50s
级上用一种方法(即表中的值)显式地表示.
•表名、列名和域名等都用系统内部表(即数据字典表)中的值 表示. •数据字典本身是一个动态的用来描述元数据的关系数据库. •满足信息准则不仅是为了提高用户的生产率
•另一个原因是使得DBA维护数据库的工作更简单、更有效。
数据库技术与应用PPT课件第四章 关系数据库查询优化
2020/4/13
4.1.4 查询优化概述 1 查询优化的必要性(续)
假设1:外存: Student:1000条,SC:10000条, 选修2号课程:50条 一个硬盘块放10个student或者100个SC
假设2:一次I/O交换元组:10个Student, 或100个SC, 内存中一次可以存放: 5块Student元组(即50个Student),
③П
总时间<1~2秒(不必遍历所有的元组记录)
2020/4/13
4.1.4查询优化概述 2 查询优化的可能性
• 用户不必考虑如何最好地表达查询以获 得较好的效率。
• 关系数据语言的级别很高,使 DBMS可以从关系表达式中分析查 询语义。
• 系统可以比用户程序的优化做得更好。
2020/4/13
4.1.4查询优化概述
2 查询优化的可能性(续)
Student×SC(做SC×Student) 读取总块数= 读SC表块数 + 读Student表遍数 *每遍块数
(读Student表遍数=SC表的总元组数/在内存中的元组数) =10000/100+(10000/(100×1))
×(1000/10) =100+100×100=10100
读数据时间=100/20=5秒
中间结果大小=50条 不必写入外存
②
读Student表总块数= 1000/10=100块
读数据时间=100/20=5秒
③П
总时间=5+5秒=10秒 (减少中间结果,且全部在内存)
2020/4/13
4.1.4查询优化概述
1 查询优化的必要性(续)
4. Q4= ПSname(Student бo='2' (SC)) 假设SC表在Cno上有索引,Student表在Sno上
期末复习试题四
作业内容: 第四章关系系统和查询优化1. 试述查询优化的一般步骤。
2. 试述查询优化的一般准则。
第五章关系数据理论1. 什么是函数依赖?它与码的关系如何?2. 你是如何理解范式的概念的?用通俗的话讲,1NF、2NF、3NF之间有什么区别和联系?3. 关系数据库的设计目标和设计方法是什么?在设计过程中,最容易犯的错误是什么?4. 一个有信息冗余的关系模式被不恰当地分解之后,容易产生哪些问题?5. 什么是无损连接分解?无损连接分解的条件是什么?6. 什么是规范化?规范化的主要手段是什么?7. 模式分解的目标是什么?8. 给出下列术语的定义,并加以理解。
函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、候选关键字、主关键字、全关键字、1NF、2NF、3NF、BCNF、多值依赖、4NF、连接依赖、5NF。
9. 现在要建立关于系、学生、班级、学会诸信息的一个关系数据库。
语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。
描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;描述班级的属性有:班号、专业名、系名、人数、入校年份;描述系的属性有:系名、系号、系办公室地点、人数;描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。
l)请写出关系模式。
2)写出每个关系模式的最小函数依赖集,指出是否存在传递依赖。
在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分函数依赖。
3)指出各个关系模式的候选关键字,外部关键字,以及有没有全关键字。
10. 设关系模式R<A,B,C,D>,函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}。
1)求出R的候选码。
2)求出F的最小函数依赖集。
3)将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。
11. 设关系模式R<A,B,C,D,E,F>,函数依赖集F={AB→E,AC→F,AD→B,B→C,C→D}。
关系系统及查询优化
• 选择、投影、连接运算是最有用的运算
二、关系系统的分类
前面定义的关系系统是关系系统的最小要求。 按照E.F.Codd的思想,可以把关系系统分类: 1、表式系统 仅支持表数据结构,不支持集合级的操作,不能算关系系统。 2、最小关系系统 支持关系数据结构和三种关系操作。(FoxBase, FoxPro等) 3、关系完备的系统 支持关系数据结构和所有的关系代数操作(功能上等价)。 4、全关系系统 支持关系模型的所有特征。即不仅是关系上完备的,而且支持数 据结构中域的概念,支持实体完整性和参照完整性。(目前大多 数关系系统已接近或达到了这个目标)
实例_查询优化的实例
• 读取Student和SC表的策略
Student表
第 一 个 五 块 第 二 个 五 块
第1-10个元组 第11-20个元组
内存缓冲区
10个Student元组 100个SC元组
SC表
第1-100个元组 第101-200个元组
第一块 第二块
… …
共 一 万
10个连接后的元组
…
共 一 千 个 学 生 录 记 录 记 课 个 选
优化的一般步骤
(1)把查询转换成某种内部表示 通常是(关系代数)语法树,以4.2.2节中的实例为例。 (2)把语法树转换成标准(优化)形式。
• 语法树最终的优化形式(运用了哪些变换规则?)
πSname σStudent.Sno=SC.Sno πSname,
SC.Sno
πSname
σStudent.Sno=SC.Sno
…
…
中间文件
第n块
Student表第1个五块的元组
SC表第1块的元组 SC表第2块的元组 …… SC表第n块的元组
数据库系统第四章 关系系统及其查询优化
需要支持三种运算:方便用户的操作,这也 是关系系统的目标; 运算不能依赖物理路径:会降低或丧失物理 独立性; 只要求支持三种运算:它们是最有用的功能, 能解决绝大部分实际问题。
4.1.2 关系系统的分类
进行标识的三部分: Fra bibliotek数据结构S:structure 完整性I:integrity 数据操纵M:manipilation
第四章 关系系统及其查询优化
关系系统的定义和分类 关系系统的查询优化 (概念、基本原理和技术)
4.1 关系系统
第二章针对关系模型:
关系数据结构、关系的完整性、三类等价的 关系操作 支持关系模型的数据库管理系统。
关系系统:
问题:
关系模型中的各部分不是一样重要; 如何给出一个关系系统的最小要求以及分类 的定义。
四个步骤:
4.2 查询优化
查询的代价
I/O+CPU+内存 从DD中获取许多统计信息; DB的物理信息改变,能很好的适应; 可以考虑几百种不同的执行计划; 包括了很多复杂的优化技术。
系统优化的好处
4.2 查询优化
几个例子
SQL中:嵌套查询、连接查询、EXISTS的等 价形式 关系代数中:连接、选择、投影的顺序。
4.1.1 关系系统的定义
一个系统可定义为关系系统,当且仅当它:
支持关系数据库(关系数据结构)
用户看到的数据库中只是表这一种数据结构。
支持选择、投影和(自然)连接运算,且不要求 定义任何物理存取路径
不应要求用户建立索引才能支持; 不要求相应运算完全一样,只要有等价的功能就 可以。
第四章 关系数据库系统的查询优化
34
(3)优化器可以考虑数百种不同的执 行计划,而程序员一般只能考虑有限 的几种可能性。
35
(4)优化器中包括了很多复杂的优化 技术,这些优化技术往往只有最好的 程序员才能掌握。
36
系统的自动优化相当于使得所有人 都拥有这些优化技术。
关系数据库查询优化的总目标是: 选择有效的策略,求得给定关系表 达式的值。
21
准则6 视图更新准则。
所有理论上可更新的视图也应该允 许由系统更新。 什么叫“一个视图是理论上可更新 的视图”呢? 它是指对此视图的更新要求,存在 一个与时间无关的算法,该算法可以 无二义性地把更新要求转换为对基本 表的更新序列。
22
准则7 高级的插入、修改和删除操作。 关系系统的操作对象是单一的关 系。以关系为操作对象不仅简化了用 户查询,提高了用户生产率,而且也 为系统提供了很大的余地来进行查询 优化,提高了系统的运行效率。 它允许系统来选择存取路径,以便 得到最有效的运行代码。
17
准则2 保证访问准则。 依靠表名、主码和列名的组合,保证 能以逻辑方式访问关系数据库中的每个数 据项(分量值)。 保证访问准则表明关系系统所采用的 是关联寻址(association addressing)的 访问模式,而不是那种面向机器的寻址方 法。这是关系系统独有的方式。
18
准则3 空值的系统化处理。 全关系型的DBMS应支持空值的概念, 并用系统化的方式处理空值。 以往处理空值的办法常常是对每个允 许取空值的字段定义一种特殊的值来表示 空值。 这不是系统化的好办法。因为这样的 话,用户必须对每个字段或域采用不同的 方法来处理空值。这种方法必然会大大降 低用户生产率。
39
⑷ 生成查询计划。
查询计划也称查询执行方案,是由 一系列内部操作组成的。 这些内部操作按一定的次序构成查 询的一个执行方案。 通常这样的执行方案有多个,需要 对每个执行计划计算代价,从中选择 代价最小的一个。
4关系系统及其查询优化全解
关系系统及其查询优化
do {输出R(i),s(p)到T} p=p+1; }
/*输出S(J)与r中除r(I)外的其他元组所组成的连接元组*/ K-I+1 while (K<=N) and (r(K)[a]=s(J)[b]) do {输出R(K),s(J)到T} KK+1; } II+1, J1+1; }
可以将2者组合成连接操作 对每个叶节点加必要的投影操作,以消除对查询无
用的属性。
关系系统及其查询优化
规则优化:结合存储路径的分析,讨论各种基本 操作执行的策略及选择原则.
选择操作的实现与优化:与选择条件\存取路径 选取元组占整个关系的比例有关系
最原始的实现方法是---顺序扫描(不需要特殊的存 取路径),适用于小的关系
关系系统及其查询优化
第三种情况:
先对SC表做选择运算:读SC表5秒。 读取S表:时间也是5秒 连接结果做投影: 总时间为:5+5=10秒
Q1 sname ( s.sname o'2' ( S SC))
Q2 Sname ( o'2'(sSC))
Q3 sname ( S o'2'( SC))
p. pname 'bolt '
P
s.city'najing ' sp.quan10000
S
Sp
关系系统及其查询优化
用投影操作取消对查询 Sname
无用的属性
sp.snum
sname ,snum
snum , pnum
pnum p. pname 'bolt '
关系系统及其查询优化
关系系统及其查询优化
4.2.1 关系系统及其查询优化
关系系统的查询优化既是 RDBMS 实现的关键 技术又是关系系统的优点。 参见P157.~P159. 关系系统查询优化把方便留给了用户,把困难 留给了自己,关系系统的查询优化:
1. 使关系数据库语言高度的非过程化。 2. 用户使用方便,不必知道数据的存取路径,不 必考虑如何最好的表达查询以获得较好的效率, 因而提高了用户生产率,提高了数据独立性。 3. 系统级的优化总比用户级的优化做得更好更全 面, 因为:
2
教学要求
了解理解 关系系统的定义。 关系系统的分类,分类的依据,分成哪几 类,各类的特点。 利用等价变换规则和优化策略对关系代数 表达式进行优化。 关系代数表达式的优化算法、优化过程, 用语法树表示。
3
4.1 关系系统
CH2.中,详细讨论了关系模型的三个基本要素: 关系数据结构:域,及域上定义的关系 关系操作:关系代数运算(或等价的关系演算) 并, 差, 笛卡尔积, 选择, 投影; 交, 连接, 除 关系数据完整性约束 实体完整性、参照完整性、用户定义的完整性 关系系统:应该是支持关系模型三个部分的DBMS。 但,不确切。因为:关系模型的三个部分并非每 一部分都同等重要, 不能苛求完全支持关系模型的 系统才称为关系系统 本节给出一个关系系统的最小要求及分类的定义。
18
查询优化的一般准则(参见P162.)
3. 把投影运算和选择运算同时进行
避免重复扫描表。 避免重复扫描表。
4. 把投影同其前或后的双目运算结合起来
5. 把某些选择同在它前面要执行的笛卡尔积结 合起来成为一个连接运算 6. 找出公共子表达式,如定义视图的表达式 (视图对应的子查询)就是公共子表达式
万常选第三版课后答案第四章
万常选第三版课后答案第四章
第四章关系系统及其优化
一、选择题
1.概念模型是现实世界的第一层抽象,这一类最著名的模型是()。
A.层次模型
B.关系模型
C.网状模型
D.实体-关系模型
2.区分不同实体的依据是()。
A.名称
B.属性
C.对象
D.概念
3.关系数据模型是目前最重要的一种数据模型,它的三个要素分别为()。
A.实体完整、参照完整、用户自定义完整
B.数据结构、关系操作、完整性约束
C.数据增加、数据修改、数据查询
D.外模式、模式、内模式
4.在()中一个结点可以有多个双亲,节点之间可以有多种联系。
A.网状模型
B.关系模型
C.层次模型
D.以上都有
5.()的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性也简化了程序员的工作和数据库开发建立的工作。
A.网状模型
B.关系模型
D.层次模型D.以上都有
6.在关系数据库中,要求基本关系中所有的主属性上不能有空值,其遵守的约束规则是()。
A.数据依赖完整性规则
B.用户定义完整性规则
C.实体完整性规则
D.域完整性规则。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求选修了2号课程的学生姓名 例 求选修了 号课程的学生姓名 SQL语言表达: 语言表达: 语言表达
SELETE Student.Sname FROM Student,SC WHERE Student.Sno=SC.Sno AND o=‘2’;
Q1=πSname(σStudent.Sno=SC.Sno∧o=‘2’(Student×SC)) π σ × ∧ Q2=πSname(σo=‘2’(Student∞SC)) π σ ∞ Q3=πSname(Student ∞ σo=‘2’(SC)) π 假定学生-课程数据库中有 个学生记录, 假定学生 课程数据库中有1000个学生记录, 课程数据库中有 个学生记录 10000个选课记录,其中选修 2号课程的选课 个选课记录, 个选课记录 号课程的选课 记录为50个 记录为 个。
4.1.2 关系系统的分类 1. 表式系统
支持关系数据结构,不支持集合级的操作。 支持关系数据结构,不支持集合级的操作。
2.(最小)关系系统 (最小)
仅支持关系数据结构和三种关系操作。 仅支持关系数据结构和三种关系操作。
3. 关系完备的系统
支持关系数据结构和所有的关系代数操作。 支持关系数据结构和所有的关系代数操作。
第四章 关系系统及其查询优化
4.1 关系系统 4.1.1 关系系统的定义 一个系统可定义为关系系统,当且仅当它: 一个系统可定义为关系系统,当且仅当它: (1)支持关系数据库(关系数据结构)。 )支持关系数据库(关系数据结构)。 (2)支持选择、投影和(自然)连接运算, )支持选择、投影和(自然)连接运算, 并对这些运算不必要求定义任何物理存 取路径。 取路径。
4. 全关系系统
支持关系模型的所有特征。 支持关系模型的所有特征。即不仅是关系上完备的 而且支持数据结构中域的概念, 而且支持数据结构中域的概念,支持实体完整性和 参照完整性。 参照完整性。
4.2 关系数据库系统的查目标: 选择有效的策略,求得给定关系表达式的值。 选择有效的策略,求得给定关系表达式的值。
4.2.3 查询优化的一般准则 1. 选择运算应尽可能先做。 选择运算应尽可能先做。 2. 在执行连接前对关系适当地预处理。 在执行连接前对关系适当地预处理。 3. 把投影运算和选择运算同时进行。 把投影运算和选择运算同时进行。 4. 把投影同其前或其后的双目运算结合起来。 把投影同其前或其后的双目运算结合起来。 5. 把某些选择同在它前面要执行的笛卡儿积 结合起来成为一个连接运算。 结合起来成为一个连接运算。 6. 找出公共子表达式。 找出公共子表达式。
4.2.4 关系代数等价变换规则 4.2.5 关系代数表达式的优化算法 4.2.6 优化的一般步骤
(1) 将查询转换成某中内部表示,通常是语法树。 将查询转换成某中内部表示,通常是语法树。 (2) 根据一定的等价变换规则把语法树转换成标准 优化)形式。 (优化)形式。 (3) 选择低层的操作算法 存取路径 。 选择低层的操作算法(存取路径 存取路径)。 (4) 生成查询计划(也称查询执行方案),选择代价 生成查询计划(也称查询执行方案), ),选择代价 最小的。 最小的。