1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档