分布式数据库系统

       分布式 数据库系统 有两种:一种是物理上分布的,但逻辑上却是集中的。这种 分布式数据库 只适宜用途比较单一的、不大的单位或部门。另一种分布式数据库系统在物理上和逻辑上都是分布的,也就是所谓联邦式分布数据库系统。由于组成联邦的各个子数据库系统是相对“自治”的,这种系统可以容纳多种不同用途的、差异较大的数据库,比较适宜于大范围内数据库的集成。
 
       分布式 数据库系统 (DDBS)包含分布式 数据库管理系统 (DDBMS)和分布式数据库(DDB)。在分布式数据库系统中,一个 应用程序 可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的 DBMS进行管理、在不同的机器上运行、由不同的 操作系统 支持、被不同的 通信网络 连接在一起。
一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。这就是与集中式数据库的区别。从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样。
 
       分布式数据库系统是在集中式数据库系统的基础上发展起来的,是计算机技术和网络技术结合的产物。分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的 数据存储 在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。分布式数据库系统与集中式数据库系统相比具有可扩展性,通过增加适当的数据冗余,提高 系统的可靠性 。在集中式数据库中,尽量减少冗余度是系统目标之一.其原因是,冗余数据浪费存储空间,而且容易造成各副本之间的不一致性.而为了保证数据的一致性,系统要付出一定的维护代价.减少冗余度的目标是用数据共享来达到的。而在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本,其原因是:①.提高系统的可靠性、可用性当某一场地出现故障时,系统可以对另一场地上的相同副本进行操作,不会因一处故障而造成整个系统的瘫痪。②.提高系统性能系统可以根据距离选择离用户最近的数据副本进行操作,减少通信代价,改善整个系统的性能。

独立透明性

数据独立性是数据库方法追求的主要目标之一,分布透明性指用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)的一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型.分布透明性的优点是很明显的.有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样.当数据从一个场地移到另一个场地时不必改写应用程序.当增加某些数据的重复副本时也不必改写应用程序.数据分布的信息由系统存储在数据字典中.用户对非本地数据的访问请求由系统根据数据字典予以解释、转换、传送.

集中节点结合

数据库是用户共享的资源.在集中式数据库中,为了保证数据库的安全性和完整性,对共享数据库的控制是集中的,并设有DBA负责监督和维护系统的正常运行.在分布式数据库中,数据的共享有两个层次:一是局部共享,即在局部数据库中存储局部场地上各用户的共享数据.这些数据是本场地用户常用的.二是全局共享,即在分布式数据库的各个场地也存储可供网中其它场地的用户共享的数据,支持系统中的全局应用.因此,相应的控制结构也具有两个层次:集中和自治.分布式数据库系统常常采用集中和自治相结合的控制结构,各局部的DBMS可以独立地管理局部数据库,具有自治的功能.同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。当然,不同的系统集中和自治的程度不尽相同.有些系统 高度自治 ,连全局应用事务的协调也由局部DBMS、局部DBA共同承担而不要集中控制,不设全局DBA,有些系统则集中控制程度较高,场地自治功能较弱。(3)、支持全局数据库的一致性和和可恢复性 分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和可恢复性。除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性。这是因为全局应用要涉及两个以上结点的数据.因此在分布式数据库系统中一个业务可能由不同场地上的 多个操作组成.例如,银行转帐业务包括两个结点上的更新操作。这样,当其中某一个结点出现故障操作失败后如何使全局业务滚回呢?如何使另一个结点撤销已执行的操作(若操作已完成或完成一部分)或者不必再执行业务的其它操作(若操作尚没执行)?这些技术要比集中式数据库复杂和困难得多,分布式数据库系统必须解决这些问题.

复制透明性

用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过 网络传输 数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及到对所有复制数据的更新。易于扩展性
在大多数网络环境中,单个 数据库服务器 最终会不满足使用。如果服务器软件支持透明的水平扩展,那么就可以增加多个服务器来进一步分布数据和分担处理任务。

主要优点

(1)具有灵活的体系结构。
(2)适应分布式的管理和控制机构。
(3)经济性能优越。
(4)系统的可靠性高、可用性好。
(5)局部应用的响应速度快。
(6)可扩展性好,易于集成现有系统。

主要缺点

(1) 系统开销 大,主要花在通信部分。
(2)复杂的存取结构,原来在 集中式系统 中有效存取数据的技术,在分布式系统中都不再适用。
(3)数据的安全性和保密性较难处理。

系统目标

分布式数据库系统的目标,也就是研制分布式数据库系统的目的、动机,主要包括技术和组织两方面的目标.

适应性

使用数据库的单位在组织上常常是分布的(如分为部门、科室、车间等等),在地理上也是分布的.分布式数据库系统的结构符合部门分布的组织结构,允许各个部门对自己常用的数据存储在本地,在本地录入、查询、维护,实行局部控制.由于计算机资源靠近用户,因而可以降低通信代价,提高响应速度,使这些部门使用数据库更方便更经济。

可靠性和可用性

改善系统的可靠性和可用性是分布式数据库的主要目标.将数据分布于多个场地,并增加适当的冗余度可以提供更好的可靠性.一些可靠性要求较高的系统,这一点尤其重要.因为一个地出了故障不会引起整个 系统崩溃 .因为故障场地的用户可以通过其它场地进入系统.而其它场地的用户可以由系统自动选择存取路径,避开故障场地,利用其它数据副本执行操作,不影响业务的正常运行.

充分性

提高现有集中式数据库的利用率
当在一个大企业或大部门中已建成了若干个数据库之后,为了利用相互的资源,为了开发全局应用,就要研制分布式数据库系统.这种情况可称为自底向上的建立 分布式系统 .这种方法虽然也要对各现存的局部数据库系统做某些改动、重构,但比起把这些数据库集中起来重建一个集中式数据库,则无论从经济上还是从组织上考虑,分布式数据库均是较好的选择.

扩展性

当一个单位规模扩大要增加新的部门(如银行系统增加新的分行,工厂增加新的科室、车间)时,分布式数据库系统的结构为扩展系统的处理能力提供了较好的途径:在分布式数据库系统中增加一个新的结点.这样做比在集中式系统中扩大系统规模要方便、灵活、经济得多。
在集中式系统中为了扩大规模常用的方法有两种:一种是在开始设计时留有较大的余地.这容易造成浪费,而且由于预测困难,设计结果仍可能不适应情况的变化.另一种方法是系统升级,这会影响现有应用的正常运行.并且当升级涉及不兼容的硬件或系统软件有了重大修改而要相应地修改已开发的 应用软件 时,升级的代价就十分昂贵而常常使得升级的方法不可行.分布式数据库系统能方便地把一个新的结点纳入系统,不影响现有系统的结构和系统的正常运行,提供了逐渐扩展系统能力的较好途径,有时甚至是唯一的途径。

你可能感兴趣的:(我的架构师之路)