第3章+分布式数据库中的查询处理和优化课件.ppt
《第3章+分布式数据库中的查询处理和优化课件.ppt》由会员分享,可在线阅读,更多相关《第3章+分布式数据库中的查询处理和优化课件.ppt(92页珍藏版)》请在三一办公上搜索。
1、分布式查询优化概述分布式查询优化基础知识分布式查询分类和层次结构基于关系代数等价变换的查询优化处理基于半连接算法的查询优化处理基于直接连接算法的查询优化处理直接连接操作的常用策略,分布式数据库中的查询处理和优化,第3章,查询处理问题,集中式查询转换为代数表达式从所有等价表达式中选择最优的代数表达式分布式除了集中式问题外,还有站点之间交换数据的操作选择最优的执行站点(分布)数据被传送的方式,目标,总代价最小,响应时间最短,集中式,分布式,CPU代价(相对固定),I/O代价(优化的目标),CPU代价,I/O代价(访问磁盘),通讯代价,数据的分布和冗余增加了查询的并行处理的可能性,从而可以缩减查询处
2、理的响应时间,主要标准辅助标准,准则:使得通讯费用最低和响应时间最短,即以最小的总代价,在最短的响应时间内获得需要的数据。通讯费用与所传输的数据量和通信次数有关响应时间和通信时间有关,也与局部处理时间有关查询代价分析远程通讯网络 局部处理时间可以忽略不计,减少通讯代价是主要目标高速局域网 传输时间比局部处理时间要短很多,以响应时间作为优化目标,局部处理时间是关键,例子 S(s#,sname,age,sex)104 元组 Site A C(c#,cname,teacher)105 元组 Site B SC(s#,c#,grade)106 元组 Site A 每个元组长度100bit,通讯传输速度
3、 104 bit/sec,通讯延迟 1sec,查询:所有选修maths 课的男生学号和姓名.SELECT s#,sname FROM S,C,SC WHERE S.s#=SC.s#AND C.c#=SC.c#AND sex=男 AND cname=maths;,代价公式 QC=I/O 代价+CPU 代价+通讯代价 通讯代价 TC=传输延迟时间C0+(传输数据量X/数据传输速率C1)=传输次数*1+传输的bit数*104。,六种查询策略,六种查询策略,相关表述记号,设关系模式为R(A1,A2,An)。它的一个关系设为R。tR表示t是R的一个元组。tAi则表示元组t中相应于属性Ai的一个分量。,若
4、A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列。tA=(tAi1,tAi2,tAik)表示元组 t 在属性 列A上诸分量的集合。则 表示A1,A2,An中去掉 Ai1,Ai2,Aik 后剩余的属性组。,相关表述记号,给定一个关系R(X,Z),X和Z为属性组。我们定义,当tX=x时,x在R中 的象集(Images Set)为:Zx=tZ|tR,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。,传统的集合运算,并运算,设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则关系R与关系S的并由属于
5、R或属于S的元组组成。其结果关系仍为n目关系。记作:RS=t|tRtS,差运算,传统的集合运算,交运算,R1R2,设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:RS=t|tRtS,传统的集合运算,两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1k2个元组。记作:,广义笛卡尔积,专门的关系运算,S(S#,SN,SD,SA),选择运算是从关系中选取使公
6、式为真的元组。这是从行的角度进行的运算。,在关系R中选择满足给定条件的元组,记做:F(R)=t|t R F(t)=真 F是一个公式,表示形式为由逻辑运算符(,)连接各算术表达式组成。算术表达式的基本形式为:XY.=,=,。,例1 求计算机科学系CS的学生,SD=CS(S),SD=CS(S),选择运算,在关系R中选择满足给定条件的元组,记做:F(R)=t|t R F(t)=真,例2 求计算机科学系CS,年龄不超过21岁的学生。,SD=CS SA21(S),选择运算,投影运算,这是从列的角度进行的运算。,例3 SN,SD(S)即求得学生关系S在学生姓名和所在系这两个属性上的投影结果。,SN,SD(
7、S),关系R上的投影是从R中选择若干属性列组成新的关系。记做:A(R)=tA|t R投影之后不仅取消了某些列,还可能取消某些元组。,连接运算(连接),S,R,R S,CE,等值连接,例5 设关系R、S如下图:,12,b4,a2,8,b3,a2,6,b2,a1,5,b1,a1,C,B,A,R,连接运算中有两种最为重要也最为常用的连接,,为“”的连接运算称为等值连接:,自然连接,另一种是自然连接。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。,半连接,在R、S自然连接后仅保留对R的属性的投影,记为:R S,例7 关系R、S的半连接:
8、,R,左外连接:对R中任意元组,若S中找不到匹配的元组,则S用空元组与之对应。R的信息在左外连接的结果中都得到保留。,左外连接,在R、S自然连接时对不匹配的元组用空值来匹配。有左外连接、右外连接和全外连接之分,例8 关系EMP、SAL的左外连结:,右外连结:对S中任意元组,若R中找不到匹配的元组,则R用空元组与之对应。S的信息在右外连接的结果中都得到保留。,右外连接,例9 关系EMP、SAL的右外连结:,全外连接:对R或S中所有不匹配的元组,均用空元组分别匹配。R、S的信息在全外连接的结果中都得到保留。,全外连接,例10 关系EMP、SAL的全外连结:,除运算,给定关系R(X,Y)和S(Y,Z
9、),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:RS=tX|tR Yx Y(S)其中Yx为x在R中的象集,x=tX。,Z,X,除运算,S在B、C上的投影,(b1,c2),(b2,c3),(b2,c1),RS=tX|tR Yx Y(S),RS a1,关系代数表达式,设教学数据库中有三个关系:学生关系S(S#,SNAME,SD,AGE)课程关系C(C#,CN,CP#)学习关系SC(S#,C#,GRADE),例1 检索
10、学习课程号为C2的学生学号与成绩,S#,GRADE(C#=C2(SC),C#=C2(SC),例2 检索学习课程号为C2的学生学号和姓名,S#,SNAME(S C#=C2 SC),S#,SNAME(C#=C2(S SC),例3 求选修数据库原理这门课程的学生名和所在系。,(S、C、SC),例4 检索学习课程号为C2或C3的学生学号和所在系,SN,SD(CN=数据库原理(C),S SC,S#,SD(s S#(C#=C2C#=C3(SC),例5 求至少选修C2和C3这两门课程的学生名。,SN(S(S#,C#(SC)K),SN(S(S#,C#(SC)C#(C#=C2C#=C3(C),K C#(S#=S
11、2(SC),(S、C、SC),例7 求选修全部课程的学生名。,例8 求至少选修了学生编号为S2 所选课程的学生名。,S#(SC)S#(C#=C2(SC),例6 求不学C2这门课程的学生名。,S#(S)S#(C#=C2(SC),SN(S(C#,S#(SC)C),SN(S(C#,S#(SC)C#(S#=S2(SC),SQL与代数的等价描述E1SELECT sname FROM S,SC WHERE S.s#=SC.s#and SC.c#=c03;代数描述 sname(s.s#=SC.s#and SC.c#=c03(SSC),关系代数基本操作:并()、交()、笛卡尔积()、选择()、投影()关系代数
12、导出操作:差()、除()、连接()、自然连接()、半连接(),E2SELECT sname FROM S WHERE S.s#in(SELECT SC.s#FROM SC WHER c#=c03);代数描述 sname(s.s#=SC.s#(S SC.c#=c03 SC)E3SELECT sname FROM S,(SELECT SC.s#FROM SC WHER c#=c03)SCC WHERE S.s#=SCC.s#;代数描述 sname(S SC.c#=c03 SC),节点表示一个一元或二元操作符,叶子表示已知关系,树根表示查询结果,一元操作:只涉及一个操作对象(SL),(PJ)二元操作
13、:涉及两个操作对象(UN),(),(DF),(CP),(),(JN),(SJ),等价变换规则,空值的变换 R=R R=R=R=-R=R-=R R=R=()=()=自身操作的等价R R=R R R=R R R=R一元操作F1(F2(R)=F1and F2(R)(R)=(R)A1,An(B1,Bm(R)=A1,An(R),有条件:A必须是B的属性,交换律1(2(R)=2(1(R)条件:1 2 是 选择操作 时总成立1 2 是 投影操作时要求其属性集合相等1 与 2 是投影和选择操作时:A1,An(F(R)=F(A1,An(R)的条件是 F中的属性是 A1,.An 的子集R S=S R R S=S
14、RR S=S R R S=S RR S S R R-S S-R,结合律 R B(S B T)=(R B S)B T)B:二元操作(JN),(CP),(UN),等总成立(SJ)有问题,分配率U(R B S)=U(R)B U(S)U:一元操作 F(R S)其中F=F1 and F2,若F1有R属性,F2有S属性,则 F(RS)=F1(R)F2(S)若F1只有R属性,F2有R与S属性,则 F(R S)=F2(F1(R)S)F(R S)=F(R)F(S)F(R-S)=F(R)-F(S)F(R S)=F(R)F(S),B1,Bm,C1,Ck(R S)=B1,Bm(R)C1,Ck(S)B1,Bm 是R属性
15、,C1,Ck是S属性 B1,Bm,C1,Ck(R S)=B1,Bm(R)C1,Ck(S)B1,Bm,C1,Ck(R-S)=B1,Bm(R)-C1,Ck(S)B1,Bm,C1,Ck(R S)=B1,Bm(R)C1,Ck(S)PJB1,Bm(R S)=B1,Bm(B1,Bm,C1,Ck(R)C1,Ck(S),局部查询:只涉及本地.单个站点的数据,优化同集中式选择和投影早做,中间结果大大减少连接前进行预处理(属性排序、属性索引)同时执行一串投影和选择操作远程查询:也只涉及单个站点的数据,但还要远程通讯,选择站点选择查询应用最近的冗余分配站点全局查询:涉及多个站点数据,优化复杂,全局查询具体化对查询进
16、行分解,确定查询使用的物理副本,落实查询对象非冗余具体化,所有要访问对象只有一个副本冗余具体化,多个副本,研究如何选择副本,使通信代价最小确定操作执行的顺序确定二元操作连接和并操作的顺序先执行所有连接操作,再执行并操作先执行部分并操作,再执行连接操作选择和投影尽可能早进行确定操作执行的方法把若干个操作连接起来在一次数据库访问中连接方法在查询优化中起着重要作用确定执行的站点执行站点不一定是发出查询的站点考虑通讯费用和执行效率,查询分解,数据本地化,全局优化,局部优化,分布关系上的查询表达,分布关系上的代数表达,分段关系查询表达,带有通讯操作的段查询优化,优化的局部查询表达,全局模式,段模式,段的
17、统计数据,局部模式,控制站点,本地站点,分布查询的层次,查询分解将查询问题(SQL)转换成一个定义在全局关系上的关系代数表达式需要从全局概念模式中获得转换所需要的信息数据本地化具体化全局关系上的查询,落实到合适的片段上的查询即将全局关系上的关系代数表达式变换为相应片段上的关系代数表达式全局优化输入的是分片查询,优化目标是寻找一个近于最优的执行策略(操作次序)输出是一个优化的、片段上的关系代数查询局部优化输入是局部模式它由该站点上的DBMS进行优化,基本原理查询问题关系代数表达式分析得到查询树进行全局到片段的变换得到基于片段的查询树利用关系代数等价变换规则的优化算法,尽可能先执行选择和投影操作优
18、化算法连接和合并尽可能上提(树根方向)选择和投影操作尽可能下移(叶子方向),实现步骤和方法转换一:查询问题关系代数表达式转换二:关系代数表达式查询树转换三:全局查询树分拆成片段查询树优化:利用关系代数等价变换规则的优化算法,优化查询树,进而优化查询,全局关系S(S#,SNAME,AGE,SEX)和SC(S#,C#,GRADE)被水平分片,查询问题:查找至少有一门功课成绩在90分以上的男生姓名SNAME(SEX=M and GRADE90(S.S#=SC.C#(SSC),水平分片的查询优化的基本思想:尽量把选择条件下移到分片的限定关系处再把分片的限定关系与选择条件进行比较去掉它们之间存在矛盾的相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 数据库 中的 查询 处理 优化 课件
链接地址:https://www.31ppt.com/p-3952143.html