资源预览内容
第1页 / 共108页
第2页 / 共108页
第3页 / 共108页
第4页 / 共108页
第5页 / 共108页
第6页 / 共108页
第7页 / 共108页
第8页 / 共108页
第9页 / 共108页
第10页 / 共108页
亲,该文档总共108页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章分布式数据库 1第七章分布式数据库 2本章主要内容:7.1 分布式数据库的特点 7.2 分布式数据库系统的体系结构7.3 分布式数据库的查询优化7.4 分布式数据库的事务管理7.5 分布式目录7.6 数据库的安全保护7.7 数据库的完整性保护37.1 分布式数据库系统的特点u 什么是分布式数据库系统(DDBMS)分布式数据库系统是地理上分布在网络的不同结点 而逻辑上属于同一个系统的数据库系统。 u 分布式数据库系统的特点1. 数据是分布的 2. 数据是逻辑相关的 3. 结点自治性 计算机计算机计算机通信网络数据库数据库数据库4u 同构(数据模型相同)系统、异构系统LDBMSGDBMS GDDCMu 分布式数据库管理系统的组成1局部数据库管理系统(LDBMS)2全局数据库管理系统(GDBMS) 3全局数据字典GDD 4网络通信管理CM 分布式数据库管理系统的组成5分布式数据库系统的优点1自治性好l 不同部门的数据可按需定制、局部控制。2效率高,可用性好l 就近存放、多副本增加可用性。3提高资源利用率可以将已有数据库联合成DDB。4结构灵活,易于扩充 新应用增加新结点,不用修改原数据库系统。6分布式数据库的模式结构7.2.1 分布式数据库系统的参考体系结构7.2 分布式数据库系统的体系结构外模式全局概念模式分片模式分布模式局部概念模式局部内模式DB局部概念模式局部内模式DB外模式外模式全局 DBMS局部 DBMS分布式数据库特有的集中式数据库也有的映象1映象3映象2映象47v 全局外模式 全局应用的用户视图 v 全局概念模式 全体数据的逻辑结构和特征的描述。 v 分片模式 描述每个片段及全局关系与片段间的映象, 片段间不允许重复。 v 分布模式 描述片段到不同结点间的映象(片段的存放位置)。如果规定一 个片段仅能存放在一个结点,则是非冗余的,否则是冗余的。 v 局部概念模式 是对全局关系在这个结点上物理图象的逻辑结构及特征的描述。v 局部内模式 描述局部概念模式涉及的数据在局部DBMS中的物理存储。87.2.2 数据分片分布式数据库中的所有数据时分布在不同节点上的。 分片方式遵循规则:(1) 完整性全局关系的所有数据都必须分配到各个片段。(2) 重构性分裂后的各个片段可以重构原来的全局关系。(3) 不相交性 -全局关系中的每个元组仅属于一个片段。分片方式:水平分片-按元组分垂直分片-按列分导出分片-由其它关系导出9例: 商品供应数据库SUPPLIER(SNO,SNAME,CITY)SUPPLY(SNO, PNO, QTY)。将供应商按城市分片。 (水平分片)SUPPLIER1 = CITY=北京(SUPPLIER)SUPPLIER2 = CITY=上海(SUPPLIER)将SUPPLY按供应者所在的城市分片。(导出分片) SUPPLY1 = SNO,PNO,QTY(SUPPLY SUPPLIER1 )SUPPLY2 = SNO,PNO,QTY(SUPPLY SUPPLIER2 )107.2.3 分布透明性v 分片透明性 关系如何分片对用户是透明的,指用户不必关心数据是如何分片的。其应用程序的编写与集中式数据库相同。v 位置透明性 (较常用)用户需知道数据在哪个片段,而不必知道所操作的数据放在哪个节点。 数据在结点间的转移不会影响应用程序。v 局部映象透明性 该透明性提供数据到局部数据库的映象。在编程时不但需要了解全局关系的分片模式,还需要了解各片段存放的站点。v 无透明性11例:在商品供应数据库中,供应上关系SUPPLIER(SNO, SNAME,CITY)按城市分片,SUPPLIER1存放在节点1(site-1)和存 放在节点2(site-2) ,SUPPLIER2存放在节点3(site-3)和存放在 节点4(site-4) ,按照供应者号检索供应者的名字和所在城市。分片透明性scanf (“%s”, sno);EXEC SQL SELECT SNAME, CITY INTO :sname, :cityFROM SUPPLIER WHERE SNO = :sno;printf (“%s t %s,”, sname, city); 12位置透明性scanf (“%s”, sno);EXEC SQL SELECT SNAME, CITY INTO :sname, :cityFROM SUPPLIER1 WHERE SNO = :sno;If (!found)EXEC SQL SELECT SNAME, CITY INTO :sname, :cityFROM SUPPLIER2 WHERE SNO = :sno;printf (“%s t %s,”, sname, city); 13局部映象透明性scanf (“%s”, sno);EXEC SQL SELECT SNAME, CITY INTO :sname, :cityFROM SUPPLIER1 AT SITE-1WHERE SNO = :sno;If (!found)EXEC SQL SELECT SNAME, CITY INTO :sname, :cityFROM SUPPLIER2 AT SITE-3WHERE SNO = :sno;printf (“%s t %s,”, sname, city); 147.3 分布式查询处理与优化l7.3.0 预备知识:集中式数据库的查询和优化l1、查询优化概述l 数据查询是关系数据库系统中最基本和最常用的操作。用户对 关系数据库的查询一般都用SQL语言表达的。l 关系数据库的SQL语言是高度非过程化的语言,用户只要指出 “做什么”,至于“怎么做”则由RDBMS自动实现。这显然给用户带 来了极大的方便,使对数据库的操作变得简便易行,但这却加重了系 统的负担。系统需要自行选择存取路径,而存取路径选择的好坏是影 响查询效率的关键所在,因此,关系查询优化是影响RDBMS性能的关 键因素。l 关系系统的查询优化既是RDBMS实现的关键技术又是关系系统 的优点所在。15查询代价l在集中式数据库中,查询的执行代价为: 总代价=I/O代价+CPU代价l在分布式环境下查询的执行代价为:查询代价= I/O代价+ CPU代价 + 通信代价2.查询优化器查询优化器是RDBMS服务器的一个组成部分,它的 基本任务是:通过产生多个可供选择的执行计划,找到最 低估算成本的执行计划来优化一条SQL语句,以提高RDBMS 的查询效率。163.DBMS实现查询优化的一般步骤:l 将查询需求转换成某种内部表示,通常是语法树。 根据一定的等价变换规则把语法树转换成标准( 优化)形式。 选择低层的操作算法。对于语法树中的每一个操 作需要,根据存取路径、数据的存储分布、存储数据的聚 簇等信息来选择具体的执行算法。 生成查询计划(查询执行方案):查询计划由一系 列有次序的内部操作构成的。DBMS生成多个执行方案,在 计算每个执行方案的执行代价后,从中选择代价最小的一 个执行。174. 查询优化的一般策略l(1)选择运算应尽早执行l 选择符合条件的元组可以使中间结果所含的元组数大大减少,从 而减少运算量和输入输出次数。l(2)投影运算和选择运算同时进行l 如果投影运算和选择运算是对同一关系操作,则可以在对关系的 一次扫描中同时完成,从而减少操作时间。l(3)把投影操作与它前面或后面的一个双目运算结合起来l 不必为投影(减少几个字段)而专门扫描一遍关系。l(4)在执行连接运算之前,可对需要连接的关系进行适当地 预处理,如建索引或排序。l 当一个关系读入内存后,就可根据连接属性值在另一个关系中快速 查找符合条件的元组,加速连接运算速度18l(5)把笛卡尔乘积和其后的选择运算合并成为连接 运算,以避免扫描笛卡尔乘积的中间结果l 两个关系的连接运算,特别是等值连接运算比同样两 个关系的笛卡尔乘积节约更多计算时间。l(6)存储公用子表达式l 对于重复出现的子表达式(简称公用子表达式),如果 该表达式的结果不是很大的关系,则应将这个公用子表达式的 结果关系存于外存。这样,从外存中读出这个关系比计算它的 时间少得多,从而达到节省操作时间的目的,特别是当公用子 表达式频繁出现时效果更加显著。19例:查信息学院的学生选修了哪些课程?对如下查询进行优化。SELECT CnameFROM Student,Course,SCWHERE Student.Sno=SC.sno ANDSC.Cno=Course.Cno ANDStudent.Sdept=IS20 Cname ( Sdept=IS ( S.sno=SC.sno SC.Cno=C.Cno (S SC C) Cname Sdept=IS S.sno=SC.sno SC.Cno=C.CnoSSCC Cname Sdept=IS S.sno=SC.sno SC.Cno=C.CnoSSCC21 Cname ( Sdept=IS ( S.sno=SC.sno SC.Cno=C.Cno (S SC C) Cname Sdept=IS SC.Cno=C.Cno SSCC S.sno=SC.sno Cname Sdept=IS S.sno=SC.sno SC.Cno=C.CnoSSCC22u 连接运算的可交换和可结合性q rr q(q r) sq (r s)u 连接对并、交、差的可分配性(rr) s = (r s)(r s)(2)连接运算的等价公式23l(3)投影运算串接的等价公式l设E是一个关系代数表达式,B1,B2,Bm是E 中的某些属性名,AiB1, B2, Bm (i=1, 2, n), 则以下等价公式成立: l A1,A2,An(B1,B2,Bn(E)= A1,A2,An(E)l(4)选择运算串接的等价公式 设E是一个关系代 数表达式,F1和F2是连接运算运算的条件。B1,B2, ,Bm是E中的某些属性名,AiB1, B2, Bm (i=1, 2, n),则以下等价公式成立:24l(5)选择运算与投影运算交换的等价公式 设F是只涉及A1,A2 ,An属性,则以下等价公式成立:l(6)选择运算与笛卡尔积交换的接等价公式 设F中涉及的属性都是E1的属性,则有以下等价公式成立: 如果F=F1F2,且F1只涉及E1的属性,F2只涉及E2的属性,则以 下等价公式成立: 如果F=F1F2,且F1只涉及E1的属性,F2涉及E1和E2两者的属性,则以下等 价公式成立: 尽早做选择运算的优化策略就是这3个等价公式的具体应用。257.3.1 分布式查询处理全局查询处理步骤: (1) 将一个全局查询直接映射为对片段的查询; 通过关系代数表达式的等价变换(2) 将片段的查询映射为对相应结点的查询;选择查询结点(物理副本)通信代价:T = C0 + X * C1 C0 :传输延迟,X:传输数据量,C1:单位数据的传送代价(3) 由结点上的局部DBMS执行子查询。主要解决:减少查询代价、提高查询效率。7.3 分布式查询处理与优化26例: SUPPLIER (SNO, SNAME, CITY) 水平分片:SUPPLIER1 = CITY=北京(SUPP
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号