近年来,由于计算机网络通信的迅速发展,以及地理上分散的公司、团体和组织对于
数据库更为广泛应用的需求,在集中式数据库系统成熟技术的基础上产生和发展了分布
式数据库系统. 分布式数据库是数据库技术和网络技术两者相互渗透和有机结合的结果.
本文试图介绍一些分布式数据库系统的基本概念.包括什么是分布式数据库,为什么要
分布式数据库,分布式数据库的特点;分布式数据库的目标,分布式数据库管理系统等等;
由于分布式数据库比集中式数据库更复杂,在这有限的篇幅中只能给读者一个概括的阐述,作为进一步学习或使用分布式数据库系统的基础.
什么样的一个数据库系统才算是分布式数据库系统呢?一个粗略的定义是:
“分布式数据库是由一组数据组成的,这些数据物理上分布在计算机网络的不同结点
(亦称为场地)上,逻辑上是属于同一个系统的”. 这个定义强调了下面两点:
(1).分布性; 数据库中的数据不是存储在同一场地. 更确切地讲,不存储在同一计算机
的存储设备上. 这就是与集中式数据库的区别.
(2).逻辑整体性;这些数据逻辑上是互相联系的,是一个整体(逻辑上如同集中数据库).
这就可以和分散在计算机网络不同结点上的数据库或文件的集合相区别.
后者各结点的数据之间没有内在的逻辑联系.所以分布式数据库就有了
全局数据库(逻辑)和局部数据库(物理)的概念.
分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上.网络中
的每个结点具有独立处理的能力, 称为场地自治(Autonomous),可以执行局部的应用程序.同时,每个结点也能通过网络通信子系统执行全局的应用。这就是说,每个场地是独立的数据库系统:
它有自己的数据库,自己的一组终端,自己的中央处理器,运行它自己的局部DBMS,执行局部的应用程序,具有高度的自治性.同时又相互协作组成一个整体,这种整体性的含义是,对于用户来说,从一个分布式数据库系统的逻辑上看如同一个集中式数据库系统一样,用户可以在任何一个场地执行全局应用.
返回
分布式数据库系统是在集中式数据库系统成熟技术的基础上发展起来的,但不是简单地把
集中式数据库分散地实现,它是具有自己的性质和特征的系统.集中式数据库系统的许多概念和技术,如数据独立性、数据共享和减少冗余度、并发控制、完整性、安全性和恢复等等在分布式数据库系统中都有了不同之处及更加丰富的内涵.
一、数据独立性
数据独立性是数据库方法追求的主要目标之一.在集中式数据库中,数据独立性包括两方
面:数据的逻辑独立性与数据的物理独立性.其含义是用户程序与数据的全局逻辑结构及数据的存储结构无关.
在分布式数据库中,数据独立性这一特性更加重要,并具有更多的内容.除了数据的逻辑
独立性与物理独立性外,还有数据分布独立性亦称分布透明性(distribution transparency).
分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型.分布透明性的优点是很明显的.有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样.当数据从一个场地移到另一个场地时不必改写应用程序.当增加某些数据的重复副本时也不必改写应用程序.数据分布的信息由系统存储在数据字典中.用户对非本地数据的访问请求由系统根据数据字典予以解释、转换、传送. 二、集中与自治相结合的控制结构
数据库是用户共享的资源.在集中式数据库中,为了保证数据库的安全性和完整性,对共
享数据库的控制是集中的,并设有DBA负责监督和维护系统的正常运行.
在分布式数据库中,数据的共享有两个层次:一是局部共享,即在局部数据库中存储局部
场地上各用户的共享数据.这些数据是本场地用户常用的.二是全局共享,即在分布式数据库的各个场地也存储可供网中其它场地的用户共享的数据,支持系统中的全局应用.因此,相应的控制结构也具有两个层次:集中和自治.分布式数据库系统常常采用集中和自治相结合的控制结构,各局部的DBMS可以独立地管理局部数据库,具有自治的功能.同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用.当然,不同的系统集中和自治的程度不尽相同.有些系统高度自治,连全局应用事务的协调也由局部DBMS、局部DBA共同承担而不要集中控制,不设全局DBA,有些系统则集中控制程度较高,场地自治功能较弱.
三、适当增加数据冗余度
在集中式数据库中,尽量减少冗余度是系统目标之一.其原因是,冗余数据浪费存储空
间,而且容易造成各副本之间的不一致性.而为了保证数据的一致性,系统要付出一定的维护代价.减少冗余度的目标是用数据共享来达到的.而在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本,其原因是:
1.提高系统的可靠性、可用性
当某一场地出现故障时,系统可以对另一场地上的相同副本进行操作,
不会因一处故障而造成整个系统的瘫痪。
2.提高系统性能
系统可以根据距离选择离用户最近的数据副本进行操作,减少通信代价,
改善整个系统的性能。
但是,数据冗余同样会带来和集中式数据库中一样的问题.不过,增加存储空间的问题随
着硬件价格的下降将得到解决。冗余副本之间数据不一致性的问题是分布式数据库系统必须着力解决的问题,一般地讲, 增加冗余度方便了检索,提高了系统的可靠性、可用性,但不利于更新,增加了系统维护代价.因此应该在这些方面作出权衡,进行优化.
四、全局的一致性、可串行性和可恢复性
分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和可恢复性.
除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性.这是因为全局应用要涉及两个以上结点的数据.因此在分布式数据库系统中一个业务可能由不同场地上的 多个操作组成.例如, 银行转帐业务包括两个结点上的更新操作.这样,当其中某一个结点出现故障操作失败后如何使全局业务滚回呢?如何使另一个结点撤销(UNDO)已执行的操作(若操作已完成或完成一部分)或者不必再执行业务的其它操作(若操作尚没执行)?这些技术要比集中式数据库复杂和困难得多,分布式数据库系统必须解决这些问题.
<三>. 分布式数据库系统的目标
分布式数据库系统的目标,也就是研制分布式数据库系统的目的、动机,主要包括技术和
组织两方面的目标.
1.适应部门分布的组织结构,降低费用。
使用数据库的单位在组织上常常是分布的(如分为部门、科室、车间等等),在地理上也
是分布的.分布式数据库系统的结构符合部门分布的组织结构,允许各个部门对自己常用
的数据存储在本地,在本地录入、查询、维护,实行局部控制.由于计算机资源靠近用户,因而可以降低通信代价,提高响应速度,使这些部门使用数据库更方便更经济。
2.提高系统的可靠性和可用性.
改善系统的可靠性和可用性是分布式数据库的主要目标.将数据分布于多个场地,并增加
适当的冗余度可以提供更好的可靠性.一些可靠性要求较高的系统,这一点尤其重要.
因为一个地出了故障不会引起整个系统崩溃.因为故障场地的用户可以通过其它场地进入系统.而其它场地的用户可以由系统自动选择存取路径,避开故障场地,利用其它数据副本执行操作,不影响业务的正常运行.
3.充分利用数据库资源,提高现有集中式数据库的利用率
当在一个大企业或大部门中已建成了若干个数据库之后,为了利用相互的资源,为了开发
全局应用,就要研制分布式数据库系统.这种情况可称为自底向上的建立分布式系统.
这种方法虽然也要对各现存的局部数据库系统做某些改动、重构,但比起把这些数据库集中起来重建一个集中式数据库,则无论从经济上还是从组织上考虑,分布式数据库均是较好的选择.
4.逐步扩展处理能力和系统规模
当一个单位规模扩大要增加新的部门(如银行系统增加新的分行,工厂增加新的科室、车间)时,分布式数据库系统的结构为扩展系统的处理能力提供了较好的途径:在分布式数据库系统中增加一个新的结点.这样做比在集中式系统中扩大系统规模要方便、灵活、经济得多.
在集中式系统中为了扩大规模常用的方法有两种:一种是在开始设计时留有较大的余地.这容易造成浪费,而且由于预测困难,设计结果仍可能不适应情况的变化.另一种方法是系统升级,这会影响现有应用的正常运行.并且当升级涉及不兼容的硬件或系统软件有了重大修改而要相应地修改已开发的应用软件时,升级的代价就十分昂贵而常常使得升级的方法不可行.分布式数据库系统能方便地把一个新的结点纳入系统,不影响现有系统的结构和系统的正常运行,提供了逐渐扩展系统能力的较好途径,有时甚至是唯一的途径.

浙公网安备 33010602011771号