第七章-关系系统及其优化课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第七章-关系系统及其优化课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 关系 系统 及其 优化 课件
- 资源描述:
-
1、关系系统的定义q关系系统: 支持关系数据模型的数据库管理系统(粗略)q关系系统(确切定义): 一个系统可以定义为一个关系系统, 当且仅当它:支持关系数据库支持选择、投影和连接运算(自然连接), 对这些运算不要求定义任何物理存取路径关系系统的分类:q许多关系系统的产品q按E.F.Codd的思想将关系系统分为:表式系统(a)最小关系系统(b)关系完备的系统(c)全关系系统(d)SMISMISMISMIabcd关系系统的查询处理:q查询处理的步骤: queryParser &translatorRelational algebra expressionOptimizerExecution planE
2、valuationengineQuery outputdataStatisticsabout dataDBMS关系系统的查询优化:q为什么需要查询优化q关系系统的查询优化由系统完成, 而不是由用户完成优化器可以数据字典获取许多统计信息如果数据库的物理统计信息改变了,优化器可以对查询进行重新优化以选择适应的执行计划优化器可以考虑数百种不同的执行计划优化器包括了许多复杂的技术q优化目标: 寻求最优的执行计划, 使查询执行开销尽量小关系系统的查询优化:q查询优化的一般步骤将查询转化成内部表示-语法树根据等价变化规则, 将语法树转化成优化形式选择低层操作算法生成查询计划q查询执行开销主要包括: 总代价
3、=I/O代价+CPU代价q多用户数据库执行开销: 总代价=I/O代价+CPU代价+内存代价关系系统的查询优化:q一个查询实例: 求选修2号课程的学生姓名SQL表示:select Snamefrom Students, SCwhere Students.Sno=SC.Sno and Cno=2;关系代数表示:Q1= sname(Students.Sno=SC.Sno and Cno=2(StudentsSC)Q2= sname(Cno=2(Students SC)Q3= sname( Students Cno=2(SC)q代价计算 Q1代价计算(仅考虑I/O代价)计算广义笛卡尔积代价假定: 在内
4、存中, 存放5块Students元组和一块SC元组, 一块可以装10个Students元组或100个SC元组. 假定: Students有1000个元组,SC有10000个元组, 其中选2号课程的有50个元组数据只有读到内存才能进行连接Q1= sname(Students.Sno=SC.Sno and Cno=2(StudentsSC)通过读取块数计算I/O代价 读取块数计算方法: Students 1000个元组 SC 10000个元组读取总块数:若每秒读写20块, 则花费:21001002010010010000510100010100010100SCStudents5块块s1052021
5、00Q1= sname(Students.Sno=SC.Sno and Cno=2(StudentsSC)连接后的元组个数为: 103 104=107连接后的中间结果内存放不下, 需暂时写到外存若每块可装10个元组, 则写出这些元组需: (107 /10)/20=5 104s选择操作: 读回需5 104s, 选择后剩50个元组, 假定均可放在内存投影操作: 查询共花费: 105+2 5 104 105 sQ1= sname(Students.Sno=SC.Sno and Cno=2(StudentsSC)Q2= sname( Cno=2(Students SC)Q2代价计算(仅考虑I/O代价)
6、计算自然连接代价也要把数据读到内存进行连接, 但连接结果比笛卡尔积要小得多读取块数依然为:花费为2100/20105s连接结果大小为104个元组, 写到外存需: (104 /10)/20=50s210010020100100100005101000101000 Q2= sname( Cno=2(Students SC) Q3= sname( Students Cno=2(SC)读取自然连接结果, 执行选择运算, 需50s, 选择结果均可放在内存投影运算:总花费为: 105+50+50=205sQ3代价计算(仅考虑I/O代价)计算对SC做选择运算的代价需读SC到内存进行选择运算读SC块数为: 1
7、0000/100=100花费为: 100/20=5s选择结果为50个SC元组, 均可放在内存Q3= sname( Students Cno=2(SC)计算和Students自然连接的 代价需读Students到内存进行连 接运算读Students块数为: 1000/10=100花费为: 100/20=5s连接结果为50个元组, 均可放在内存投影运算:总花费: 5+5=10s1050SCStudents5块块关系系统的查询优化:q查询优化的一般准则: 下面的优化策略一般能提高查询效率, 但不一定是最优的选择运算尽可能先做, 降低中间结果大小在连接前,对关系适当的进行预处理: 对关系排序(排序合并
8、连接方法)或在连接属性上建索引(索引连接方法)9500495002. 95003. 95001.Students95003 1 95003 2 95004 2 . 95004 3 . 95001 1 .SC循环嵌套连接循环嵌套连接(不不做任何预处理做任何预处理):.关系系统的查询优化:9500195002. 95003. 95004.Students95001 1 95003 1 95003 2 95004 2 . 95004 3 . .SC排序合并连接排序合并连接(连连接的关系分别排接的关系分别排序序):.索引连接索引连接(在在SC的连接列的连接列Sno上上建立索引建立索引):Student
9、s95001 9500395003 95004 95004.SC索引索引.9500495002. 95003. 95001.95003 1 95003 2 95004 2 . 95004 3 . 95001 1 .SC关系系统的查询优化:把投影运算和选择运算同时进行 sno (cno=2(SC)把投影和其前或后的双目运算结合起来 Cname(Course SC)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算 Students.Sno=SC.Sno and Cno=2(Students SC)找出公共子表达式关系系统的查询优化:q关系代数等价变换规则: 给定sname(Studen
10、ts.Sno=SC.Sno and Cno=2(StudentsSC)如何将上述提到的运算先做, 即得到:sname( Students Cno=2(SC)规则1: 连接、笛卡尔积的交换律 E1 E2 E2 E1 E1 E2= E2 E1 E1 E2= E2 E1 E: 关系代数表达式 F: 连接条件规则2: 连接、笛卡尔积的结合律 (E1 E2) E3 = E1 (E2 E3) (E1 E2) E3 E1 (E2 E3) (E1 E2) E3 E1 (E2 E3)F1FFF2F1F2关系系统的查询优化:规则3: 投影的串接定律 A1,A2,.,An( B1,B2,.,Bn (E) A1,A2
11、,.,An(E) 规则4: 选择的串接定律 F1(F2(E) F1F2(E) 规则5: 选择和投影的交换律 F(A1,A2,.,An(E) A1,A2,.,An(F(E) 特殊情况 A1,A2,.,An( F(E) A1,A2,.,An( F( A1,A2,.,An, B1,B2,.,Bm (E)规则6: 选择与笛卡尔积的交换律 F(E1 E2) F(E1) E2 F仅和E1有关 F(E1 E2) F1(E1) F2( E2 ) F= F1F2 F(E1 E2) F2(F1(E1)E2 ) F1-E1 F2-E1E22021关系系统的查询优化:规则7: 选择与并的交换 F(E1 E2) F(E
展开阅读全文