|
知识路径: > 数据库主流应用技术 > 数据库主流应用技术 > 数据库主流应用技术 > 分布式数据库 >
|
被考次数:3次
被考频率:中频率
总体答错率:44%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
考试要求:了解
相关知识点:30个
|
|
|
|
要使数据库系统能够正常运行,必须制订运行策略,运行策略的制订要从两个方面考虑:正常运行策略和非正常运行策略。
|
|
|
|
分布式数据库系统(Distributed Database System,DDBS)是面向地理上分散,而管理上又需要不同程度集中管理的需求而提出的一种数据管理信息系统。在明确地给出分布式数据库的定义之前,我们先来看一下一般的分布式数据库系统的组成,如下图所示。
|
|
|
|
|
可以看出,分布式数据库系统首先是由多个不同节点或场地的数据库系统通过网络连接而成的(如不加特别说明,本章中的场地和节点表示同一含义),每个节点都有各自的数据库管理系统(Local Database Management System,LDBMS),同时还有全局数据库管理系统(Global Database Management System,GDBMS)。上图中的局部用户是针对某一个节点而言的,局部用户只关心他所访问的节点上的数据,而全局用户则可能需要访问多个节点上的数据。每个节点的LDBMS完成对局部用户的应用请求,GDBMS则为全局用户提供服务。我们还可以看出,全局用户可以从任意一个节点访问分布式数据库系统中的数据。
|
|
|
在一个计算机网络中,每个节点都装有数据库系统,节点数据虽然达到共享,但如果没有统一的管理,对于用户来说,使用数据库数据时必须指明数据库所在场地的位置,无法实现场地透明性,就达不到分布式数据库的目标。如果只在计算机网络中某一场地设置数据库系统,其他场地不设数据库系统,而是有多个终端(远程)用户,显然又达不到数据分散存储的目标。所以分布式数据库至少应该有场地透明性和分散存储两个特点。
|
|
|
另外,因为分布式数据库系统作为一个整体,应该保证数据的一致性,这就意味着分布式数据库系统中的各个局部数据库之间应该具有逻辑相关性。根据上面的这些特点,我们给出分布式数据库的定义。
|
|
|
满足下面条件的数据库系统被称为完全分布式数据库系统:
|
|
|
|
(2)逻辑相关性:即数据库系统内的数据在逻辑上具有相互关联的特性。
|
|
|
(3)场地透明性:即使用分布式数据库中的数据时不需指明数据所在的位置。
|
|
|
(4)场地自治性:即每一个单独的节点能够执行局部的应用请求。
|
|
|
分布式数据库系统的分布性可以让我们区分单一的集中式数据库与分布式数据库。而根据逻辑相关性,我们就可以将分布式数据库与一组局部数据库或存储在计算机网络中不同节点的文件系统区分开来。场地透明性和场地自治性则可以将分布式数据库和多机处理系统或并行系统区分开来。
|
|
|
|
分布式数据库系统,是传统集中式数据库系统的发展,因此它具有集中式数据库系统的特点。同时,由于它的分布性而又使这些特点具有新的含义。传统的数据库系统针对文件系统的弱点,采用了集中控制以实现数据共享,这是其最主要的特色。对于分布式数据库系统来说,由于数据的分散性,分布式数据库系统具有分散与集中的统一的特性。下面给出了分布式数据库的几个主要的特点。
|
|
|
|
能够对信息资源提供集中控制,是主张采用数据库最强有力的动机之一。数据库是随着信息系统的演变而发展起来的,在这些信息系统中,每个应用程序都有自己的专用文件,这样就不利于数据的管理和共享,由于数据本身已被当作企业的重要投资,在这样的需求推动下,传统的数据库系统孕育而生。分布式数据库系统是在传统数据库系统的基础上的新发展,所以,它也具有集中控制的特性。
|
|
|
在传统的数据库系统中,数据库管理员(Database Administrator,DBA)的基本任务是保证数据的安全,并负责对数据进行管理以达到用户和应用能够高效地访问数据。而在分布式数据库中可以认为存在全局数据库管理员和局部数据库管理员,这是一种分层控制结构,一般来说,全局数据库管理员负责管理所有数据库,而局部数据库管理员只负责各自节点的局部数据库,但是在有些情况下,局部数据库管理员可以有更高的自主性,甚至完成节点间的协调工作,从而不再需要全局数据库管理员。
|
|
|
|
数据独立性也是集中式数据库和文件系统相比所具有的一大特征,独立性是指数据的组成对应用程序来说是透明的。应用程序只需要考虑数据的逻辑结构,而不用考虑数据的物理存放,因而数据在物理组织上的改变不会影响应用程序。
|
|
|
在分布式数据库系统中,数据的独立性同样具有重要的意义,分布式数据库的数据独立性除了具有传统意义上数据独立性的含义,还有分布式透明的含义。所谓分布式透明是指虽然应用程序所面对的是分散存放的数据,但就像使用集中式数据库一样,不必考虑数据库的分布特性。
|
|
|
|
将数据组织在数据库中可以方便地实现数据的共享,因此要尽量减少数据冗余,这不仅使存储代价降低,还可提高查询效率,便于数据一致性维护,这是数据库系统优于文件系统的特点之一。但是,对数据库系统来说,也不可能达到绝对的无冗余数据。
|
|
|
对于分布式数据库来说,由于数据存储的分散性,各场地在网络上需要传输数据,与集中式数据库相比,查询中就增加了传输代价。因此,分布式数据库中的数据一般存储在经常使用的场地上,但两个或两个以上的场地应用对同一数据有存取要求也是时常发生的,而且当传输代价高于存储代价时,可以将同一数据存储在两个(甚至更多)场地上,以节省传输的开销。另外,数据有多个副本,也可以提高系统的可用性,即当系统中某个节点发生故障时,因为数据有其他副本在非故障场地上,对其他所有场地来说,数据仍然是可用的,从而保证数据的完备性。由于这种冗余度是在系统控制之下的,所以给系统造成的不利的影响是可控制的。
|
|
|
另外,由于可用副本的存在也相应地提高了场地自治性的性能。
|
|
|
|
在分布式数据库系统中,多个场地的局部数据库在逻辑上集成为一个整体,这个整体被称为全局数据库,并为分布式数据库系统的所有用户使用,这种应用称为分布式数据库的全局应用,其用户为全局用户;同时,分布式数据库系统还允许用户只使用本地的局部数据库,这种应用为局部应用,其用户为局部用户,甚至局部用户所使用的数据可以不参与到全局数据库中去。这种局部应用独立于全局应用的特性就是局部数据库的自治性。
|
|
|
由于自治性,对每个场地来说就有两种数据,一种是参与全局数据库的局部数据,而另一种则是不参与全局数据库的数据。
|
|
|
|
在传统的数据库系统中,采用二次索引、文件链接等复杂的存储结构是提高存取效率的主要方法。但在分布式数据库系统中,仅仅采用复杂的存取结构并不是一个正确的方法。分布式数据库系统中的全局查询被分解成等效的子查询,即全局查询的执行计划分解成多个子查询执行计划加以执行,它是根据系统的全局优化策略产生的,而子查询计划又是在各场地上分布执行的。因而,分布式数据库系统中查询优化有两个级别:全局优化和局部优化。
|
|
|
全局优化主要决定在多个副本中选取合适的场地副本,使得场地间的数据传输量传输次数最少,从而使系统通信开销少。而局部优化就和传统的集中式数据库中的优化是一致的了。
|
|
|