中科院分布式数据库系统及其应用 8章分布式数据库与客户机服务器模式.ppt
徐俊刚(),分布式数据库系统及其应用,2009年2月2009年6月,客户机/服务器计算模式客户机/服务器模式的定位客户机/服务器模式的特性和优缺点客户机/服务器模式的远景展望分布式数据与分布式访问创建基于客户机/服务器模式的数据库系统,分布式数据库与客户机/服务器模式,第8章,概念客户机/服务器概念最早用于软件体系结构提出请求的应用程序解答请求的服务程序协作式处理方式客户机和服务器都参与一个应用程序的处理软件成分相互协作完成特定应用功能请求/服务模式硬件资源提供软件成分相互协作的设施客户机/服务器模式,客户机,客户机,客户机,网络,应用服务器,通信服务器,打印服务器,文件服务器,数据库服务器,请求,响应,响应,请求,客户机/服务器模式,C/S环境下应用成分的分布一个典型的数据库应用程序可分解为4部分界面表示逻辑:与用户交互的代码,GUI业务处理逻辑:使用输入数据来完成业务处理和规则的代码,使用3GL或4GL编写的数据处理逻辑:负责处理数据的代码,一般使用SQL语言或者嵌入式SQL语言编写数据库管理:由DBMS完成实际数据处理的程序通常放置方法界面表示逻辑和业务处理逻辑放到客户端数据处理逻辑和数据库管理功能放到服务端,DB,组成数据库应用程序的四个成分,数据处理 逻辑,界面表示 逻辑,业务处理 逻辑,数据管理 功能,Client,应用程序,DBMS,Server,支持C/S结构的DBMS,支持和不支持C/S结构的DBMS情形,不支持C/S结构的DBMS,用户,客户机应用系统,客户机数据库API,连接软件,网络协议,客户机,网络协议,连接软件,服务器软件,服务器操作系统,服务器,数据库,SQL,结果,网络,客户机/服务器模式的内部结构,文件,打印机,DB,客户机,中间件,服务器,客户机/服务器模式体系结构示意图,服务器提供高速大容量的存储能力,强大的数据处理和管理能力,运行多个进程能力分类文件服务器数据库服务器事务服务器文档服务器其他服务器,文件,文件服务器,数据,SQL命令,DB,数据库服务器,GUI,应用程序,应用程序事务,客户机,服务器,数据,应用程序专用事务,DB,事务处理服务器,数据库服务器,客户机完成界面表示和一些业务逻辑功能客户机类型非图形化用户接口:条形码,扫描器,传真机,仿真终端等图形化(GUI)用户接口:基于Windows的软件和设备面向对象接口(OOI):可视化、多媒体处理软件和设备客户机软件类型公共应用程序:字处理,报表编制,图形软件,项目管理软件等数据库前端软件:Oracel PL/SQL plus应用生成和开发软件:PowerBuilder,Dephi,VisualC+,Visual Basic等中间件泛指客户机与服务器之间的软件数据库连接中间件,事务处理中间件,组件中间件,对象中间件等,主机处理系统所有程序在一个主机上运行优点集中式,安全性和海量数据存储设备管理能力支持大量并发用户,IBM大型机上数据库支持1000多用户缺点系统采购和维护费用大特殊的支持设施等,Modem,Modem,Host CPU,DBMS,APPs,DB,主机,远程终端,本地终端,主机处理环境,文件处理系统应用处理(包括数据处理)都发生在PC工作站服务器仅从硬盘查询所需要的文件通过网络发送给用户缺点用户计算能力局限于本地PC工作站多用户共享文件时,仍然需要分别发送到每个PC只满足小规模工作组应用需求,LAN,工作站,NOS,文件服务器,打印机,修改过的文件送回服务器,数据文件送给PC,文件共享处理环境,C/S处理系统“恰到好处的规模”(rightsizing)Client/server将应用资源恰到好处地分配降低了网络开销典型应用是数据库技术数据库应用程序运行在client上DBMS部分应用在server上,LAN,APPs,PC,APPs,PC,APPs,PC,UNIX,DBMS,查询结果,查询请求,DB,客户机/服务器处理环境,服务器,客户机,多处理器服务系统存在两个或两个以上服务器的C/S系统如果本地server发现没有相关数据,通过“S对S的对话”向其他服务器发出请求企业级大型应用平台,LAN/WAN,APPs,PC,客户机,APPs,PC,UNIX,DBMS,结果,请求,DB,多服务器处理环境,MVS,DBMS,DB,网关/网桥,NOS,文件服务器,远程访问,对等处理系统C/S系统的最终归宿,是协作式分布式处理的极限站点既是客户机又是服务器站点要负责对自己资源的管理和访问,又有对任何其他站点上资源的同等访问权,DB,DB,DB,DB,对等处理环境,C/S模式系统是介于集中式与分布式之间集中式C/S处理环境 数据集中,处理分布客户请求,服务器响应的协作方式多服务器C/S处理环境 数据与处理都分布一个应用可涉及多个服务器数据一个服务器数据可以被多个客户机访问 对等C/S处理环境 数据与处理都分布站点可以访问其他站点数据(全局应用),也可以访问本地数据(本地应用),有多个数据库服务器的C/S处理环境与分布式数据库系统相同的问题站点自治性,透明性数据独立数据完整性,网络,DB,数据库服务器,DB,数据库服务器,DB,数据库服务器,用户,每个站点是一个单数据库服务器Client/Server结构的DDBS,按功能划分服务器是服务的提供者,客户机是消费者共享资源一个服务器可以在同一时刻对许多客户端提供服务,并且可以协调他们对于共享资源的访问不对称协议客户机主动请求服务,服务器被动等待请求定位透明性C/S软件在客户机方屏蔽服务器地址混合与匹配C/S软件独立于硬件或OS,基于消息的交换消息式服务,请求与响应的媒介服务封装服务器决定如何完成服务请求消息,消息接口不变,升级对客户没有影响可扩展性水平扩展:添加或移去工作站垂直扩展:移植到更大更快的服务器或多服务器完整性集中式C/S处理环境中,server代码和server数据是集中维护的,带来的开销很少,保持了数据的完整性和独立性,优点提高了投资效率使处理和被处理的数据更接近,减少了网络带宽和成本的需求具有图形用户界面的PC支持和倡导标准化和开放系统多个用户共享硬件资源,不足之处在集中式C/S环境,如果应用逻辑的主要部分移到服务器上,服务器将成为瓶颈多服务器应用系统的开发和设计复杂,当前的主要模式C/S两层结构肥客户机:所有的表示逻辑和应用逻辑放到客户机瘦服务器:只负责响应用户请求,全局数据的访问和管理B/S三层结构数据层功能层表示层,浏览器,浏览器,浏览器,Web服务器,DB,数据库服务器,产品实例,NetscapeNavigator,Macintosh,Microsoft IIS Windows 2000,OracleUNIX,SQL 关系,Web页面客户代码数据,功 能,HTTP客户客户端脚本视图实例化,HTTP服务器服务器端脚本 视图建立、检索、更新和删除,SQL处理 数据库管理,三层客户机/服务器模式结构及各层功能,HTTP请求响应,ODBC ADO OLE/DB JDBC 本地调用,浏览器,浏览器,浏览器,Web服务器,视图处理器,业务规则处理器,DB,数据库服务器,(a)多处理器用于视图和规则处理,DB1,数据库服务器1,(b)多处理器用于分布式处理,DB2,数据库服务器2,浏览器,浏览器,浏览器,Web服务器,分布式处理器,展望服务器将更加强大,现在就可以是一台台式机,以后会更强大服务器更加可靠和健壮,处理器和磁盘的成本将大幅下降安全性更高,加密解密技术进一步发展高带宽网络的发展,可以使得多层次结构的应用更加普及,从集中到分布数据的转移将关键数据的多个副本置于不同站点,提高数据的可用性,避免“单站点失败”现象高效的数据访问,改进数据管理性能容易增加应用程序,用户数目和扩大规模数据放在其产生和频繁使用位置,减少传输,提高效率,数据分布基本形式复制数据(Replicated Data)子集数据(Subset Data)重新组织的数据(Reorganized Data)分区数据(Partitioned Data)独立模式数据(Separate_Schema Data)不相容数据(Incompatible Data),网络,DBx,主机,DBx1,DBx2,x1和x2为x的副本,复制的数据,S1,S2,网络,DBABC,主机,DBA,DBC,子集数据,S1,S3,DBB,S2,网络,DBR,主机,DBA,重新组织的数据,S1,DBB,S2,数据R是由数据A和B经过重新组织而获得的,网络,地区A的记录,地区B的记录,分区数据,地区C的记录,各地区的记录具有相同模式,网络,生产数据,财务数据,独立模式数据,生产主机,财务主机,营销数据,营销主机,网络,公司A的记录,公司B的记录,不相容数据,公司C的记录,各公司的数据存在不相容,数据分布技术人工抽取快照复制分片数据分布分析,SAVING,CUSTOMER,EXCHANGERATE,SAVING,CUSTOMER,EXCHANGERATE,网络,总行,分行1,分行2,分布式数据的银行应用系统,分行到总行抽取数据,数据分布分析是一种统计方法 根据应用需求决定那些资源需要分布及存放位置例子:银行应用系统客户表存在中央银行(CB)站点,分行(PB)存有部分数据复制假设CB站点有10000条记录,每天读2000次,更新500次PB站点有1000条记录,每天读1000次,更新100次,分布式数据库位置矩阵,该例子分析方法结论分布式数据的位置取决于逻辑数据和处理(读和更新)模式,数量等特征数据分布是降低整个分布式系统开销的有效措施,远程请求远程事务分布式事务分布式请求,远程请求只涉及单个远程服务器的单个请求Select*From Server1.BankDB.Customer Where Server1.BankDB.Customer.City=Beijing,SQL语句,CLIENT PB,SERVER1,远程数据请求,远程事务允许一个事务中包含多个数据访问请求,这些请求都引用同一个远程服务器站点上的数据Begin Work Select*From Server1.BankDB.Customer Where Server1.BankDB.Customer.City=Beijing Update Server1.BankDB.Branch Set Posted_ind=YesCommit Work,SQL语句1,CLIENT B1,SERVER1,远程事务处理,SQL语句2,分布式事务一个事务包含多个数据请求,每个请求只能访问单个服务器Begin Work Select*From ServerB1.BankDB.Employee Where ServerB1.BankDB.Employee.Edlevel=MBA Select*From ServerM.BankDB.Empl_MED Where ServerM.BankDB.Empl_MED.Branch=PB Commit Work,SQL语句1,SERVER M,分布式事务处理,SERVER B1,SQL语句2,中央CLIENT,BEGIN WORK COMMIT WORK,分布式请求一个事务包含多个数据请求,每个请求都可以引用驻留于多个服务器站点数据Begin Work Select*From ServerB1.BankDB.Employee B1,ServerM.BankDB.Empl_MED M Where B1.Empl_ID=M.Empl_ID AND B1.Edlevel=MBA Update Server1.BankDB.Branch Set Posted_ind=Yes Where Server1.BankDB.Branch=B1Commit Work,SQL语句1,SERVER M,分布式数据请求,SERVER B1,SQL语句2,CLIENT,BEGIN WORK COMMIT WORK,SERVER 1,CASE工具ER Studio,PowerDesigner,Rational Rose,Visio等 可视化程序设计工具VB,VC+Visual Age,Eclipse,JBuilderDephi,Powerbuilder硬核程序设计工具C,C+,Cobol套装应用程序MS Office,PerfectOffice,SmartOffice测试工具Softbridge,SQA版本控制工具SourceSafe,CMVC,Delta等,ODBC的作用,浏览器,浏览器,浏览器,Web服务器,数据库服务器,本地接口,ODBC,关系数据库Oracle,IBM Db2,Sybase,SQLServer,Access,非关系数据库,文件处理器,电子邮件,图象、视频、其他文档等,驱动程序管理器,连接,语句,结果集,结果集元数据,可调用语句,预备语句,实用程序,MySQL驱动程序,OracleL驱动程序,JDBC-ODBC桥,ODBC驱动程序,MySQL数据库,Oracle数据库,Oracle数据库,SQL数据库,JDBC的组成部件,浏览器,Web服务器,DB,数据库服务器,软件产品,Inernet explorer,IIS,ASP,ISAPI,CGI,Java,C+,Oracle,Sybase,IBM DB2,SQLServer,SQL 关系,Web页面客户请求结果数据,操作系统,Windows 2000 Windows XP,Windows 2003 Windows 2000,基于B/S模式系统的Microsoft实现方案,HTML,DHTML,XML,ODBC ADO OLE/DB JDBC,Windows 2003 Windows 2000,1985年起提供用于C/S和S/S的SQL*net分布式体系结构组成SQL*NetSQL*ConnectORACLE Server,ORACLE在同构和异构网络环境中都支持C/S和S/S结构C/S连接时,通过连接描述符实现S/S之间的连接,或数据访问操作可以用DB链路进行.Create Database Link Boston Connect to Scott Identified By Tigger Using EducationDB;查询时用Boston存取远程Scott/Tigger用户的EMP表:Select*From EMPBoston;,UPI,SQL*Net,Transparent Network Substrate,Oracle Protocol Adapter,Network Software,OPI,SQL*Net,TransparentNetwork Substrate,Oracle ProtocolAdapter,Network Software,Network Link,Client,Server,Client Application,Oracle Server,Oracle Server,SQL*Net,Transparent Network Substrate,Oracle Protocol Adapter,Network Software,Oracle Server,SQL*Net,TransparentNetwork Substrate,Oracle ProtocolAdapter,Network Software,Network Link,Server,Server,OPI,OPI,手工复制Export/ImportCreate Table 命令Copy命令:SQL*Plus中使用快照触发子复制同步复制例:本地DB的一个EMP表,需要在sf数据库链所指定的远程DB中复制改EMP表.,Create Trigger Emp-Replica Before Insert or Update on Emp For Each Row Declare Begin If Inserting Then If:new.flag is Null Then Insert Into Empsf Values(:new.empno,:new,ename,.,B):new.flag=A Endif Else/*Updating*/If:new.flag=:old.flag Then Update Empsf Set ename=:new.ename,.Flag=:new.empno Where empno=:new.empno;If:old.flag=A Then:new.flag=B Else:new.flag=A Endif Endif EndifEnd,触发子复制表,总 结,客户机/服务器计算模式客户机/服务器模式的定位客户机/服务器模式的特性和优缺点客户机/服务器模式的远景展望分布式数据与分布式访问创建基于客户机/服务器模式的数据库系统,