数据库第四章讲解

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

中间结果大小=50条 (不必使用中间文件)
②自然连接( )
读Student表总块数= 1000/10=100块
读数据时间=100/20=5秒
③ 投影(П)
总时间=5+5秒=10秒
13
4.2.3 查询优化的一般准则
1. 选择运算应尽可能先做 2. 在执行连接操作前对关系适当进行预处理
(索引连接方法和排序合并连接方法) 3. 投影运算和选择运算同时做 4. 将投影运算与其前后的双目运算结合(连接、并、差、交等) 5. 选择运算和笛卡尔积运算结合(等值连接比笛卡儿积省时间) 6. 提取公共子表达式(例如,定义视图的表达式)
③ 投影(П)
总时间 =105+50000+50000秒 = 100105秒 = 27.8小时
11
2. Q2= ПSname(бSC.Cno=' 2' (Student ①自然连接( )
SC))
读取总块数= 2100块
读数据时间=2100/20=105秒
中间结果大小=10000(即SC表中记录条数,减少1000倍)
4
关系系统分类
数据结构 数据操作 完整性约束
表式系统

×
×
(最小)关系系统

选择、投 影、连接
×
关系完备的系统


×
全关系系统



5
4.2 关系数据库系统的查询优化
4.2.1 关系系统及其查询优化 查询处理的过程
查询语句
语法分析与 翻译
关系代数表达式
优化器
查询输出
执行引擎
执行计划
数据
6
有关数据的 统计信息
= 1000/10+(1000/(10×5)) ×(10000/100) = 2100
读数据时间=2100/20=105秒
中间结果大小 = 1000*10000 = 107
(1千万条元组)
写中间结果时间 = 10000000/10/20 = 50000秒
② 选择操作(б)
读数据时间 = 50000秒
系统优化 优化器可以从数据字典中获取许多统计信息,从而选择 有效的执行计划; 如果数据库的物理统计信息改变了,系统可以自动对查 询进行重新优化以选择相适应的执行计划; 优化器可以考虑数百种不同的执行计划; 优化器中包括了很多复杂的优化技术。
7Байду номын сангаас
实际系统的查询优化步骤 1. 将查询转换成某种内部表示,通常是语法树 2. 根据一定的等价变换规则把语法树转换成标准(优化)形式 3. 选择低层的操作算法 对于语法树中的每一个操作 根据存取路径、数据的尺寸、数据的存储分布、存储 数据的聚簇等信息来计算各种执行算法的执行代价 选择代价小的执行算法 4. 生成查询计划(查询执行方案)
Sc.Sno=‘2’
SC
小结
关系系统
关系系统的定义 关系系统的分类
关系系统的查询优化
关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则 关系代数表达式的优化算法 优化的一般步骤
19
思考题
查询优化对关系数据库系统有何重要性? 查询优化的一般准则是什么? 查询优化的一般步骤是什么?
3.关系完备系统:
支持关系数据结构和所有关系代数操作(或功能上与关系代数等 价)。DBⅡ,ORACLE,SYBASE,…属于这一类。
4.全关系系统:
支持关系模型的所有特征。在关系完备系统的基础上,进一步支 持实体完整性和参照完整性等。DBⅡ,ORACLE,SYBASE, …已接近这个 目标。目前尚无全关系系统。
14
4.2.4 关系代数等价变换规则
l. 连接、笛卡尔积交换律 2. 连接、笛卡尔积的结合律 3. 投影的串接定律 4. 选择的串接定律 5. 选择与投影的交换律 6. 选择与笛卡尔积的交换律 7. 选择与并的交换 8. 选择与差运算的交换 9. 投影与笛卡尔积的交换 l0. 投影与并的交换
15
4.2.5 关系代数表达式的优化算法
存取路径的系统
可称为关系系统的DBMS,当且仅当 1)支持关系数据结构(关系数据库) 2)支持δ、π、 运算,且不要求用户定义任何物理存取路径
3
4.1.2 关系系统的分类
1.表式系统:
仅支持关系数据结构,不支持集合级的操作。(不能算关系系统)
2.(最小)关系系统:
支持关系数据结构,支持δ、π、 运算,且不定义物理路径。
17
结果
Project(Sname)
Select(SC.Cno=‘2’)
Join(Student.Sno=SC.Sno)
Sname
Student SC
Sc.Sno=‘2’ Student.Sno=Sc.Sno
×
Student
SC
18
Sname Student.Sno=Sc.Sno
×
Student
1. 分解选择运算 2. 通过交换选择运算,将其尽可能移到叶端 3. 通过交换投影运算,将其尽可能移到叶端 4. 合并串接的选择和投影,以便能同时执行或在一次扫描
中完成 5. 对内结点分组 6. 生成程序
16
4.2.6 优化的一般步骤
1.把查询转换成某种内部表示 2.代数优化:把语法树转换成标准(优化)形式 3.物理优化:选择低层的存取路径 4.生成查询计划,选择代价最小的
8
常用查询优化技术
用启发式规则来缩减查询计划的搜索空间 利用统计信息估算执行代价 基于代价(目前商品化RDBMS大都采用)
代价模型
集中式数据库 单用户系统:总代价 = I/O代价 + CPU代价 多用户系统:总代价 = I/O代价 + CPU代价 + 内存代价
分布式数据库 总代价 = I/O代价 + CPU代价 [+ 内存代价] + 通信代价
9
4.2.2 一个实例
例. 求选2号课程的学生姓名
SELECT Student.Sname FROM Student,SC WHERE Student.Sno = SC.Sno AND Cno = ‘2’;
假设:
数据量:Student:1000条;SC:10000条;选修2号课程:50条 一个内存块装元组:10个Student或100个SC,内存中可以
写中间结果时间=10000/10/20=50秒
②选择操作(б)
读数据时间=50秒
③投影(П)
总时间=105+50+50秒=205秒=3.4分
12
3. Q2= ПSname(Student ①选择操作(б)
бSC.Cno=' 2' (SC))
读SC表总块数= 10000/100=100块
读数据时间=100/20=5秒
存放:5块Student元组和1块SC元组 读写速度:20块/秒
10
1. Q1= ПSname(бStudent.Sno=SC.Sno ∧SC.Cno=‘c2‘ (Student×SC)) ① 计算广义笛卡尔积(Student×SC)
读取总块数 = 读Student表块数 + 读SC表遍数 * 每遍块数
20
习题
在教学数据库的关系S、SC和C中,用户有一查询语 句:检索女同学选修课程的课程名和任课教师名。
试写出该查询的关系代数表达式。 画出查询表达式的语法树。 使用启发式优化算法,对语法树进行优化, 并画出优化后的语法树。
21
第4章 关系系统及其查询优化
关系系统
关系系统的定义 关系系统的分类
关系系统的查询优化
关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则 关系代数表达式的优化算法 优化的一般步骤
1
第4章 重点与难点
学习重点
• 最小关系系统的基本概念; • 关系上完备的系统的基本概念; • 全关系型的关系系统的基本概念; • 关系系统的查询优化原理。
学习难点
• 关系系统的查询优化方法
2
4.1 关系系统
4.1.1 关系系统的定义 支持关系模型的关系数据库管理系统简称关系系统。 下述关系的DBMS不能称为关系系统
不支持关系数据结构的系统 支持关系数据结构,但无δ、π、 运算功能的系统 支持关系数据结构,有δ、π、 运算,但要求定义物理
相关文档
最新文档