分布式数据库系统
分布式数据库系统,主要内容,分布式数据库系统简介 分布式数据库系统的结构 数据分布 分布式查询处理和优化 分布式事务管理 分布式并发控制 分布式数据库的应用与发展,分布式数据库系统简介,分布式数据库系统定义 分布式数据库系统(distributed database system,DDBS)分布式数据库系统特点 分布式数据库系统产生与发展 分布式数据库系统的分类,分布式数据库系统定义,分布式数据库系统是逻辑上属于同一系统,物理上分布在用计算机网络连接的多个场地(结点)上的数据集合,且每个场地具有独立处理和自治能力,至少能参加一个全局应用,并由分布式数据库管理系统统一管理。在分布式数据库中,每一个拥有集中式数据库的计算机系统称为一个结点(node)或场地(site),图8-1 一个分布式数据库系统,不同于多处理机系统,数据在物理上的分布性集中式数据库系统虽然有网络存在,但数据库只驻留在一个场地上逻辑的统一性各场地上的数据相互间由约束规则限定,在逻辑上相关。每个场地都可以执行全局应用数据在每个场地具有独立处理能力多处理机系统中,应用都客户机处理分布式数据库不仅要求数据的物理分布,而且要求这种分布是面向处理,面向应用的数据由DDBS统一管理,图8-2 一个多处理机系统,分布式数据库系统特点,数据独立性数据的逻辑独立性和物理独立性数据的分布独立性即分布透明性引入了新的模式和模式间的映像得到集中和自治相结合的控制机制局部共享:允许用户使用本地的局部数据库,其中只存储局部场地各用户的共享数据。对应局部应用,局部用户全局共享:各场地或结点的局部数据库在逻辑上集成为一个整体,所有用户共享。对应全局应用,全局用户可控冗余存储代价和查询代价(传输代价)事务管理的分布性子事务(局部事务):保证集中式数据库的ACID,还应保证全局一致性、全局并发事务的可串行性和系统的全局可恢复性存取效率全局查询执行计划分解成多个子查询计划,根据全局优化策略产生,子查询在各场地上分布执行。全局优化和局部优化,分布式数据库系统产生与发展,产生的背景计算机功能增强而成本下降,利于分散处理计算机网络技术的发展和应用,使数据通信和资源共享得到解决数据库应用技术的提高加速了应用水平的提高,不满足对固定场地的数据访问由于社会组织和经济原因,原本分散的系统需要整合成统一体,如银行系统现存数据库互联需求,特别是不同数据库系统间人们对数据的可靠性和可用性要求越来越高,集中存放不利于远程用户和保护发展中选驱系统CCA(computer corporation of America):美国国防部研制的SDD-1系统半连接、时间戳、分布式目录结构、可靠性C-POREL:中国科学院数学研究所、上海科学技术大学、华东师范大学合作WDDBS和WOODDBS:武汉大学DMU/FO:东北大学发展历程20世纪70年代:提出分布式数据库系统概念20世纪80年代:我国对分布式数据库系统的研究起步20世纪90年代:DDBS已进入商品化应用阶段当前:分布式数据库技术已经成熟,并得到广泛应用,分布式数据库系统的分类,按局部数据库管理的数据模型分类同构型(homogeneous)DDBS:各场地数据模型为同一类型同构同质型DDBS:使用相同的DBMS同构异质型DDBS:使用不同的DBMS异构型(heterogeneous)DDBS:各场地的数据模型不同。处理复杂按功能分类(R.Peele和E.Manning提出)综合型体系结构:自顶向下,先有完整DDBS,再按功能分布联合型体系结构:在原有的DBMS上建立分布式应用,按DDBS又可分为同构型和异构型按层次分类单层SL和多层ML按分布式数据库控制系统的类型分类集中型DDBS:全局控制信息位于一个中心场地。有利于一致性,容易导致瓶颈分散型DDBS:每个场地都包含全局控制信息的一个副本。一致性复杂,可用性好集中与分散共用结合型:分两组,一组包含全局控制信息副本,称主场地;另一组不包含全局控制信息副本,称辅场地,分布式数据库系统的结构,分布式数据库系统模式结构 分布式数据库管理系统 分布式数据库系统的体系结构,分布式数据库系统模式结构,图8-3 分布式数据库的模式结构,分布式数据库管理系统,主要功能提供全局和局部数据模型提供全局和局部数据描述语言提供全局和局部数据操作语言目录(数据字典)管理分布式查询分布式事务管理并发事务控制支持数据完整性支持数据的恢复通信管理主要成份全局数据库管理系统(GDBMS)、局部数据库管理系统(LDBMS)、通信管理程序(CM)全局数据库管理系统的五种功能起到用户与局部数据库管理系统、用户与通信管理系统之间的接口作用负责定位与查找用户请求的数据全局数据库管理系统的策略包括对请求的处理对策面向全局的恢复能力负责全局数据与局部数据之间的转换,分布式数据库系统的体系结构,多台计算机设备,由网络连接计算机网络设备,通信软件分布式数据库管理系统,包括GDBMS、LDBMS、CM分布式数据库(DDB),包括全局数据库(GDB)和局部数据库(LDB)分布式数据库管理员分为两级,全局数据库管理员(GDBA),局部数据库管理员(LDBA)分布式数据库系统软件文档,数据分布,数据分片的原则和分片方法 完整性:不允许出现一个数据项属于全局关系,但不属于任何分片的情形重构性:所有片段必须能够重构(逆操作)成全局关系不相交原则:全局关系划分后得到的各数据片段互相不重叠数据分配的原则和方法 分布透明性,数据分片的分片方法,水平分片:按性别(XB)划分 垂直分片:按人事划分(籍贯、政治面貌)混合分片:按人事划分后再按性别划分诱导分片:选课情况按性别划分,图8-4 水平分片范例,图8-5 垂直分片示例,图8-6 混合分片示例,图8-7 诱导分片示例,数据分配的原则和方法,每个数据片段必定要分配到指定的场地,称为数据分配常用的数据分配策略集中式分配:同在一个场地分割式分配:所有数据只有一份,分别放置在不同场地全复制式分配:在每个场地重复混合式分配:共享片段重复,高度私用单一场地数据分配的一般准则处理局部性:减少远程访问次数数据的可用性和可靠性工作负载分布的均匀性:各场地负载均匀,提高并行处理能力数据分配的方法非冗余分配。对每一种非冗余分配方案进行计算,选择收益最好的方案冗余分配选择所有收益场地法:在全部场地内选择一组场地,当片段的一个副本分配在这一组场地时,其收益高于所花费的代价,则该副本就放置在这一组场地添加副本法:先用“最佳”法决定非冗余分配方案,然后增加副本,使其仍能收益,直到无收益为止,分布透明性,Scanf("%S",Tno);EXEC SQL SELECT Tname,Sex,Sdept INTO :Tname,:Sex,:Sdept FROM Student WHERE Tno=:Tno Printf("%s,%s,%s",Tname,Sex,Sdept);Scanf("%S",Tno);EXEC SQL SELECT Tname,Sex,Sdept INTO :Tname,:Sex,:Sdept FROM TA WHERE Tno=:Tno If (!FOUND) EXEC SQL SELECT Tname,Sex,Sdept INTO :Tname,:Sex,:Sdept FROM TB WHERE Tno=:Tno Printf("%s,%s,%s",Tname,Sex,Sdept);Scanf("%S",Tno);EXEC SQL SELECT Tname,Sex,Sdept INTO :Tname,:Sex,:Sdept FROM TA AT Site1 WHERE Tno=:Tno If (!FOUND) EXEC SQL SELECT Tname,Sex,Sdept INTO :Tname,:Sex,:Sdept FROM TB AT Site2 WHERE Tno=:Tno Printf("%s,%s,%s",Tname,Sex,Sdept);,第一级透明分片透明性(全透明)分片透明提供的用户视图是逻辑数据库。用户只需要对全局关系操作。提供这一透明级的DDBS必须具备完整的内模式和外模式系统以及极为复杂的访问策略选择机制。最理想的透明级,是分布式数据库的重要设计目标之一。第二级透明位置透明性(次透明)位置透明比片段透明低一级,是DDBS提供的用户视图是片段,应用程序对分布式数据库的访问通过对片段进行,用户需要了解分片情况,无须关心片段的的分配及具体的存放位置第三级透明局部映射透明性又称本地映射透明性,为用户提供的视图是片段的具体分配,需要了解分片和分配情况第四级透明非透明涉及数据模型转换,如操作语言转换,分布式查询处理和优化,分布式查询处理的分类与层次结构 查询分解和数据本地化 分布式查询优化,分布式查询处理的分类与层次结构,查询分解:将查询问题转换成全局关系代数表达式或SQL语句数据本地化:将全局关系上的查询具体化到合适的片段的查询全局优化:找出分片查询的最佳操作次序,如连接操作的优化。需要各场地的信息局部优化:由拥有与查询有关的片段的各场地执行,所需信息取自局部模式如图8-8,图8-8 分布式查询处理的层次模式,查询分解和数据本地化,查询选修了1号课程的男同学的学号和姓名,图8-9 语法树 图8-10 片段查询规范表达式的查询树,查询的等价转换从全局查询到片段查询的变换分片关系的简化,图8-11 例8-6查询树 图8-12 例8-7查询树,图8-13 进一步简化后的查询树,分布式事务管理,分布式事务的基本特征和管理目标 分布式事务的定义分布式事务特性执行特性操作特性控制报文分布式事务的结构分布式事务的一般结构分布式数据库中进程的协作分布式事务管理目标分布式事务的恢复技术 2PC:两段锁提交协议第一阶段为预提交阶段,由协调者进程向各场地发出了事务,当各参与场地子事务完成后,向协调者进程发出预提交命令,同时在日志文件中记录。协调者进程在收到所有预提交命令后,提交全局事务,否则不管回答abort或超时,全局事务夭折第二阶段为执行阶段,协调者在日志中记录决定后,向各子事务发出决定(提交或夭折),所有参与者根据协调者的命令,先记录日志,再执行命令,最后向协调者发出最终回答。协调者根据回答写入完成记录到日志这样全局事务是可恢复的,保证了分布式事务的原子性,分布式并发控制,并发控制方法基于封锁的并发控制方法多副本的并发控制读-写全法:执行写操作时将排他锁施加到所有副本上,执行读操作时将共享锁施加到任一副本上多数法:多数副本(一半以上)施加共享锁和排他锁主副本法:指定数据项的某个副本为主副本,对该副本中的数据项加锁中心场地法:由系统指定一个专门的场地来管理加锁的请求,这一场地为中心场地主副本令牌法:假设有一专门的场地,这些场地拥有某一数据项的读令牌或写令牌,这些令牌在网络中为断传递,加锁时须设法得到该数据项的令牌,才可以加锁,分布式数据库的应用与发展,分布式数据库系统应用程序设计 分布式数据库系统存在的问题及发展展望,分布式数据库系统的标准,12条规则场地自治性非集中式管理高可用性位置独立性数据分割独立性数据复制独立性分布式查询分布式事务管理硬件独立性操作系统独立性网络独立性数据库管理系统独立性,