日期:2014-05-16 浏览次数:20459 次
?
同信息系统操作核心方面的许多技术一样,数据库管理系统(DBMS)正经历着一场巨大的变革。各个组织机构都在努力适应客户机/服务器计算的持续发展潮流,并尽量满足用户数据存取的要求。信息系统(IS)的管理者们正致力于使含有公司重要信息的数据库更加适用于用户。其目标是提高响应时间,并为那些非常需要数据的用户简化存取。使工作能连续运行而提供的标准规程与方法的信息系统(IS)中央节点处,以及使包括保证数据安全及完整性在内的数据管理最易于执行是急待解决的问题。目前信息系统(IS)机构和数据库管理系统(DBMS)的供应商们都正准备开始采用“分布式关系数据库管理系统”等新的概念和先进技术来满足用户的需要。理想化的分布式数据库管理系统(DBMS)对于用户应是一个单一的、非分布式的系统。采用现有产品来实现这样的系统是数据管理和系统设计的难关。虽然现有的DBMS产品与真正实现分布式数据库管理系统的目标还有很大的差距,但是,这些产品所提供的许多新特性能够使数据管理者和信息系统决策者最早地实现这一目标。管理分布式DBMS的信息系统需求与将这些信息系统置于多个地点的要求之间的一种折衷的方法称为“异步复制”。该方法要求将某一数据库的更改内容,在数据库管理员设置的某一段时间内传送给另一个数据库,这样就使数据能在满足信息系统性能要求的时间段内得以更新。异步复制存在着一定缺陷。因为该技术并不提供那种更为精确的实时数据更新,而是提供资源更为集中的、分阶段提交的数据更新。尽管异步复制存在这些缺陷,但这一技术正逐步成为许多组织和供应商对于公布式数据库管理系统的主要战略目标。供应商们除了适应这一主要发展的趋势外,还将为分布式数据库管理系统(DBMS)的主要技术要求提供不同的方法。下面介绍的是实现一个真正分布式数据库管理系统(DBMS)所需要强调的八大技术要素。了解供应商们是如何提出这几个要素以及各个要素对于你和你的用户的重要性是选择恰当的数据库管理系统的关键所在。
?
一、透明性
在靠近用户服务器处查找不同数据库中数据的能力,是关系数据库管理系统的中心问题,而对于分布式数据库则更为重要。数据的定位、数据的实际存储格式及存取数据所使用的方法等对于用户应是透明的。目前的DBMS不能完全支持分布式的透明性。供应商们使用着不同的SQL方言(SQL语言是目前关系数据库管理系统主要的存取数据语言)。这些方言将怎样定义和管理一个表格的DBMS逻辑结构与如何定义存储数据的物理结构混合在一起。这种定义的混合,使得存取和管理分布式数据更加复杂。更糟的是由于缺乏透明性的支持,将对在未改动应用程序代码情况下充分利用附加的物理资源产生影响。目前,大多数产品都不支持透明性的一个重要要素—一分布式系统目录。缺乏这一要素,开发者就只得陷入到对表定位的应用程序参照上或者至少必须明确的开通与涉及分布式事务的服务器之间的连接上(例如DEC公司的Rdb/VMS系统)。除了这一要素外,透明性通常还包括分布式表的同义词生成(Oracle公司的Oracle7)或与特定服务器的连接(CA公司的OpenIngres)。
?
二、数据完整性
在分布式环境下,保证数据完整性需要对分布式事务或分布式请求的支持。这种能力允许在多个场所局部地或远程地处理由多个SQL请求所组成的事务。如果完整性约束涉及到分布式对象,这种要求便十分明显。如果更新了局部表,且存在远程表参考的完整性约束,那么显然需要某种隐含的分布式事务。象Informix公司的Informix-Online、Oracle公司的Oracle 7和CA公司的OpenIngres/Star等产品都设置了如何表示完整性约束的限制,来有效地达到不为分布式完整性约束提供支持。
?
三、分布式处理DBMS系统一般都不支持随机的多地读、多地写及多地读/写事务。但是,一个真正的分布式DBMS系统不仅必须支持远程请求、远程事务和分布式事务,而且还必须支持分布式请求,因为任何功能都很少隐含着位置相关性。这类要求允许使用关联或合并操作来存取多个位置上的表。分布式事务和分布式需求两者都需要对不尽如人意的分阶段提交或与此相应的方法提供支持。否则,在分布式环境下,不能保证全局数据库的一致性。在这一点上,像CincomSystem的Supra服务器、Informix-Online、Oracle 7和OpenIngres/Star对远程请求、远程事务、分布式事务及分布式请求提供某些支持,但是像Sybase公司的System10则仅支持远程请求和远程事务。
?
四、异步复制
近两年来,被称为异步复制的技术逐渐变得愈加重要。该技术提供了无需分阶段提交开销的扩散数据更新结果的能力。这一技术要求具备两个前提条件。第一,数据更新不需立即扩散,因此所有数据副本不必同时保持一致;第二,应用程序的特点是它不需及时了解与全局数据库一致性的任何冲突。这些前提条件的有效性极难验证并且将主要取决于诸如事务混合、数据库设计及应用程序的功能等细微的内容。该特性不能取代对分布式事务和分布式请求的要求,虽然该特性有时能减少对这些要求的不适当的使用。诸如Oracle 7、System10、Informix-Online和OpenIngres等软件产品提供了异步复制,但是它们在很多方面存在差异。最为明显的是所允许的数据源和数据目的地与诸如表、视图和数据库等复制的疏密度之间的混合。例如,只有OpenIngres复制器是专门为等同结构(Peer-toPeer)和主从结构(Master/Slave)而设计的,Oracle 7.1版本也新增加了这一性能。Informix-Online支持全部的数据库复制,而Oracle 7、OpenIngres和System10则支持更高级别的疏密度。设计的灵活性、安装和管理设备、差错检测与纠正以及数据完整性实施和运行,所有这些在各个产品中都互不相同。
?
五、性能特性存在着几种可以改善DBMS系统性能的方法,其中有裂化,复制及分布式查询优化。
裂化就是将表分割为行子集或列子集,并将这些子集置于不同物理位置的能力。尽管像Informix-Online、TandemComputer有限公司的NonStopSQL等某些产品在某个单独场所支持手工裂化,而目前尚不支持分布式的、自动化的裂化。
不应将复制与异步复制相混淆。复制是一种保持表的一组物理副本的能力,它不考虑物理位置,由DBMS自动地将这些副本保存在系统中。碎片的分布及拷贝既可手工完成也可自动完成,而这样做的目的是为了减少磁盘的I/O操作及网络传输并提高并行性。在某些产品中,复制能够通过生成触发器进行模拟,尽管这样做可能会在 通过分阶段提交来完成数据更新的情况下留下完整的漏洞。
分布式查询优化和执行将充分利用诸如多CPU、数据配置及网络负荷等物理资源。当DBMS系统支持多地读、多地写及多地读/写语句时,那么优化将比只支持单独场所的DBMS系统更加复杂。像Oracle 7的大多数产品将分布式查询简单地划分为单独场所的子查询,然后对这些子查询进行个别优化。不能将这简单地看作分布式查询优化。像Informix-Online、OpenIngres及Supra服务器等产品可提供更高等级的分布式查询优化。
?
六、管理与安全
在目前的DBMS产品中系统管理与安全装置特别薄弱。虽然某些产品通常提供对远程起始和远程结束的支持,但很少对多地的协调起始和协调结束提供支持。同样地,协调备份、存储和恢复也相当弱。通常这些都是为保证全局数据库一致性及易于系统管理所需要的。因为现在的产品在这一方面还很薄弱,所以供应商有时求助于局域自治。这样做简单地回避了当系统管理和安全装置不能把分布式数据库作为一个单一的逻辑实体时,很难管理分布式数据库环境的问题。目前产品中的分布式事务特别令人怀疑,虽然分阶段提交能够解决大多数失效方式,然而所有的实现方法中至少有一种失效方式会导致系统中止或破坏全局的一致性。检测和恢复失效事务的方法仍然十分原始,经常需要对事务及差错日志实体做细致的人工分析。分布式环境中,死锁将导致严重的系统降级。必须做好避免全局死锁或检测与恢复全局死锁的准备。供应商通常实施超时机制的方法,并错误地将这种方法当作一种避免死锁的方法。而实际上,它并不是一种避免死锁的方法。因为当超时机制出现时,它只是结束死锁。并且它不能区分长时间运行的查询与一个真正死锁条件间的差别。很少有DBMS产品能处理分布式死锁的避免、检测和恢复。
?
七、可用性和自治权本地自治并不意味着本地拥有者不能暂时将管理授权给远地。相反,这种授权却是一种有效的方法。万一本地数据库与远地数据库失去了联系,它也不会影响局部数据库的继续操作。尽管为了有效起见,本地操作有时可能是在远程情况下执行和控制的,但应尽可能地在本地执行和控制本地操作。为了避免对某一特殊远程场所的依赖,DBMS必须支持包括字典管理、查询处理、并发控制和恢复控制等大多数功能的分布处理。DBMS管理员可以通过限制物理实施和配置的影响来省略对规划系统关闭的要求。增加、变动(如更新软件或硬件版本、减少硬件等)或移动一个场所、结点或数据库不应破坏系统其余的部分,也不应产生或破坏碎片和复制品及破坏其他数据库对象。