- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MMS2实训--第四章 关系系统及其查询优化;能够在一定程度上支持关系模型的数据库管理系统是关系系统。
由于关系模型中并非每一部分都是同等重要的。
并不苛求一个实际的关系系统必须完全支持关系模型。;1 关系系统与关系模型;2 关系系统的定义;不支持关系数据结构的系统显然不能称为关系系统
仅支持关系数据结构,但没有选择、投影和连接运算功能的系统仍不能算作关系系统。
原因:不能提高用户的生产率
支持选择、投影和连接运算,但要求定义物理存取路径,这种系统也不能算作真正的关系系统
原因:就降低或丧失了数据的物理独立性
选择、投影、连接运算是最有用的运算
;分类依据:支持关系模型的程度
分类
⒈ 表式系统:支持关系数据结构(即表)
⒉ (最小)关系系统
支持:关系数据结构
选择、投影、连接关系操作
⒊ 关系完备的系统
支持:关系数据结构
所有的关系代数操作
⒋ 全关系系统
支持:关系模型的所有特征
特别是:数据结构中域的概念
;?
;4.1 关系系统
4.2 关系系统的查询优化
4.3 小结;4.2.1 查询优化概述
4.2.2 查询优化的一般准则
4.2.3 关系代数等价变换规则
4.2.4 关系代数表达式的优化算法
4.2.5 查询优化的一般步骤;1 查询优化的必要性
查询优化极大地影响RDBMS的性能。
?
;4.2.1 查询优化概述 ;假设1:外存:
Student:1000条,SC:10000条, 选修2号课程:50条
一个硬盘块放10个student或者100个SC
假设2:一次I/O交换元组:10个Student, 或100个SC, 内存中一次可以存放: 5块Student元组(即50个Student),
1块SC元组(即100个SC)和若干块连接结果元组
假设3:读写速度:20块/秒
假设4:连接方法:基于数据块的嵌套循环法
;1 Q1= ПSname(бStudent.Sno=SC.Sno ∧SC.Cno=2 (Student×SC))?
① Student×SC
读取总块数= 读Student表块数 + 读SC表遍数
*每遍块数
(读SC表遍数=Student表的总元组数/在内存中的元组数)
?=1000/10+(1000/(10×5)) ×(10000/100)
=100+20×100=2100
读数据时间=2100/20=105秒
; 中间结果大小 = 1000*10000 = 107 (1千万条元组)
写中间结果时间 =10/20 = 50000秒?
②б
读数据时间 = 50000秒?
③П
总时间 =105+50000+50000秒 = 100105秒
= 27.8小时
?
;2. Q2= ПSname(бSC.Cno= 2 (Student SC))
?①
读取总块数= 2100块(Q1的结果)
读数据时间=2100/20=105秒
因为只有SC只有10000条元组,故等值连接的结果,即:
中间结果大小=10000 (减少1000倍)
写中间结果时间=10000/10/20=50秒?
②б
读数据时间=50秒?
③П?
总时间=105+50+50秒=205秒=3.4分(减少了中间结果)?;3. Q3= ПSname(Student бSC.Cno= 2 (SC))?
①б
读SC表总块数= 10000/100=100块
读数据时间=100/20=5秒?
中间结果大小=50条 不必写入外存?
②
读Student表总块数= 1000/10=100块
读数据时间=100/20=5秒?
③ П?
总时间=5+5秒=10秒 (减少中间结果,且全部在内存)
;4. Q2= ПSname(Student бSC.Cno=2 (SC))
假设SC表在Cno上有索引,Student表在Sno上有索引
?①б
读SC表索引=(发现2号课程只有50条元组)
读SC表总块数= 50/1001块
读数据时间:1/20=0.5?
中间结果大小=50条 不必写入外存
;②
读Student表索引=(根据索引发现只有50个学生)
读Student表总块数= 50/10=5块
读数据时间 :5/20=0.5秒
③ П
总时间1~2秒(不必遍历所有的元组记录);用户不必考虑如何最好地表达查询以获得较好的效率。
关系数据语言的级别很高,
文档评论(0)