一、什么是分布式数据库
分布式数据库系统(DDBS:Distributed Database System)是在集中式数据库系统的基础上发展来的。是数据库技术与网络技术结合的产物。
分布式数据库系统有两种:一种是物理上分布的,但逻辑上却是集中的。这种分布式数据库只适宜用途比较单一的、不大的单位或部门。另一种分布式数据库系统在物理上和逻辑上都是分布的,也就是所谓联邦式分布数据库系统。由于组成联邦的各个子数据库系统是相对“自治”的,这种系统可以容纳多种不同用途的、差异较大的数据库,比较适宜于大范围内数据库的集成。
分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。
在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的DBMS进行管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络连接在一起。
一个分布式数据库在逻辑上是一个统一的整体:即在用户面前为单个逻辑数据库,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。更确切地讲,不存储在同一计算机的存储设备上。 这就是与集中式数据库的区别。从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。就好那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样。
分布式数据库中每一个数据库服务器合作地维护全局数据库的一致性。
分布式数据库系统是一个客户/服务器体系结构。
在系统中的每一台计算机称为结点。如果一结点具有管理数据库软件,该结点称为数据库服务器。如果一个结点为请求服务器的信息的一应用,该结点称为客户。在ORACLE客户,执行数据库应用,可存取数据信息和与用户交互。在服务器,执行ORACLE软件,处理对ORACLE数据库并发、共享数据存取。ORACLE允许上述两部分在同一台计算机上,但当客户部分和服务器部分是由网连接的不同计算机上时,更有效。
分布处理是由多台处理机分担单个任务的处理。在ORACLE数据库系统中分布处理的例子如:
客户和服务器是位于网络连接的不同计算机上。
单台计算机上有多个处理器,不同处理器分别执行客户应用。
参与分布式数据库的每一服务器是分别地独立地管理数据库,好像每一数据库不是网络化的数据库。每一个数据库独立地被管理,称为场地自治性。场地自治性有下列好处:
◆系统的结点可反映公司的逻辑组织。
◆由局部数据库管理员控制局部数据,这样每一个数据库管理员责任域要小一些,可更好管理。
◆只要一个数据库和网络是可用,那么全局数据库可部分可用。不会因一个数据库的故障而停止全部操作或引起性能瓶颈。
◆故障恢复通常在单个结点上进行。
◆每个局部数据库存在一个数据字典。
◆结点可独立地升级软件。
可从分布式数据库的所有结点存取模式对象,因此正像非分布的局部的DBMS,必须提供一种机制,可在局部数据库中引用一个对象。分布式DBMS必须提供一种命名模式,以致分布式数据库中一个对象可在应用中唯一标识和引用。一般在层次结构的每一层实施唯一性。分布式DBMS简单地扩充层次命名模型,实施在网络上唯一数据库命名。因此一个对象的全局对象名保证在分布式数据库内是唯一。
ORACLE允许在SQL语句中使用全局对象名引用分布式数据库中的模式对象(表、视图和过程)。在ORACLE中,一个模式对象的全局名由三部分组成:包含对象的模式名、对象名、数据库名,其形式如:
一个远程查询为一查询,是从一个或多个远程表中选择信息,这些表驻留在同一个远程结点.
一个分布式查询可从两个或多个结点检索数据.一个分布式更新可修改两个或两个以上结点的数据.
一个远程事务为一个事务,包含一个或多个远程语句,它所引用的全部是在同一个远程结点上.一个分布式事务中一个事务,包含一个或多个语句修改分布式数据库的两个或多个不同结点的数据.
在分布式数据库中,事务控制必须在网络上直辖,保证数据一致性.两阶段提交机制保证参与分布式事务的全部数据库服务器是全部提交或全部回滚事务中的语句.
ORACLE分布式数据库系统结构可由ORACLE数据库管理员为终端用户和应用提供位置透明性,利用视图、同义词、过程可提供ORACLE分布式数据库系统中的位置透明性.
ORACLE提供两种机制实现分布式数据库中表重复的透明性:表快照提供异步的表重复;触发器实现同步的表的重复。在两种情况下,都实现了对表重复的透明性。
在单场地或分布式数据库中,所有事务都是用COMMIT或ROLLBACK语句中止。
二、分布式数据库系统的分类:
(1) 同构同质型DDBS:各个场地都采用同一类型的数据模型(譬如都是关系型),并且是同一型号的DBMS。
(2) 同构异质型DDBS:各个场地采用同一类型的数据模型,但是DBMS的型号不同,譬如DB2、ORACLE、SYBASE、SQL Server等。
(3) 异构型DDBS:各个场地的数据模型的型号不同,甚至类型也不同。随着计算机网络技术的发展,异种机联网问题已经得到较好的解决,此时依靠异构型DDBS就能存取全网中各种异构局部库中的数据。
三、分布式数据库系统主要特点:
DDBS的基本特点:
(1)物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。
逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个DDBMS统一管理。
(2)场地自治性:各场地上的数据由本地的DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。
(3)场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。
DDBS的其他特点
(1)数据独立性
(2)集中与自治相结合的控制机制
(3)适当增加数据冗余度
(4)事务管理的分布性
四、分布式数据库系统的优点:
(1) 更适合分布式的管理与控制。
分布式数据库系统的结构更适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制。例如:实现全局数据在本地录入、查询、维护,这时由于计算机资源靠近用户,可以降低通信代价,提高响应速度,而涉及其他场地数据库中的数据只是少量的,从而可以大大减少网络上的信息传输量;同时,局部数据的安全性也可以做得更好。
(2) 具有灵活的体系结构。
集中式数据库系统强调的是集中式控制,物理数据库是存放在一个场地上的,由一个DBMS集中管理。多个用户只可以通过近程或远程终端在多用户操作系统支持下运行该DBMS来共享集中是数据库中的数据。而分布式数据库系统的场地局部DBMS的自治性,使得大部分的局部事务管理和控制都能就地解决,只有在涉及其他场地的数据时才需要通过网络作为全局事务来管理。分布式DBMS可以设计成具有不同程度的自治性,从具有充分的场地自治到几乎是完全集中式的控制。
(3) 系统经济,可靠性高,可用性好。
与一个大型计算机支持一个大型的集中式数据库在加一些进程和远程终端相比,由超级微型计算机或超级小型计算机支持的分布式数据库系统往往具有更高的性价比和实施灵活性。分布式系统比集中式系统具有更高的可靠性和更好的可用性。如由于数据分布在多个场地并有许多复制数据,在个别场地或个别通信链路发生故障时,不致于导致整个系统的崩溃,而且系统的局部故障不会引起全局失控。
(4) 在一定条件下响应速度加快。
如果存取的数据在本地数据库中,那么就可以由用户所在的计算机来执行,速度就快。
(5) 可扩展性好,易于集成现有系统,也易于扩充。
对于一个企业或组织,可以采用分布式数据库技术在以建立的若干数据库的基础上开发全局应用,对原有的局部数据库系统作某些改动,形成一个分布式系统。这比重建一个大型数据库系统要简单,既省时间,又省财力、物力。也可以通过增加场地数的办法,迅速扩充已有的分布式数据库系统。
五、分布式数据库系统的劣势:
(1) 通信开销较大,故障率高。
例如,在网络通信传输速度不高时,系统的响应速度慢,与通信相关的因素往往导致系统故障,同时系统本身的复杂性也容易导致较高的故障率。当故障发生后系统恢复也比较复杂,可靠性有待提高。
(2) 数据的存取结构复杂。
一般来说,在分布时数据库中存取数据,比在集中时数据库中存取数据更复杂,开销更大。
(3) 数据的安全性和保密性较难控制。
在具有高度场地自治的分布时数据库中,不同场地的局部数据库管理员可以采用不同的安全措施,但是无法保证全局数据都是安全的。安全性问题式分布式系统固有的问题。因为分布式系统式通过通信网络来实现分布控制的,而通信网络本身却在保护数据的安全性和保密性方面存在弱点,数据很容易被窃取。
分布式数据库的设计、场地划分及数据在不同场地的分配比较复杂。数据的划分及分配对系统的性能、响应速度及可用性等具有极大的影响。不同场地的通信速度与局部数据库系统的存取部件的存取速度相比,是非常慢的。通信系统有较高的延迟,在CPU上处理通信信息的代价很高。分布式数据库系统中要注意解决分布式数据库的设计、查询处理和优化、事务管理及并发控制和目录管理等问题。
六、分布式数据库系统:数据分片
类型:
1、水平分片:
按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段。
2、垂直分片:
把一个全局关系的属性集分成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片。
3、导出分片:
又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件。
4、混合分片:
以上三种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他们的结果是不相同的。
条件:
(1) 完备性条件:
必须把全局关系的所有数据映射到片段中,决不允许有属于全局关系的数据却不属于它的任何一个片段。
(2) 可重构条件:
必须保证能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用联接操作重构全局关系。
(3) 不相交条件:
要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)。
七、分布式数据库系统:数据分配方式
(1) 集中式:
所有数据片段都安排在同一个场地上。
(2) 分割式:
所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。
(3) 全复制式:
数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。
(4) 混合式:
这是一种介乎于分割式和全复制式之间的分配方式。
八、分布式数据库系统:体系结构
数据分片和数据分配概念的分离,形成了“数据分布独立型”概念。
数据冗余的显式控制。数据在各个场地的分配情况在分配模式中一目了然,便于系统管理。
局部DBMS的独立性。这个特征也称为“局部映射透明性”。此特征允许我们在不考虑局部DBMS专用数据模型的情况下,研究DDB管理的有关问题。
九、分布式数据库管理系统
接受用户请求,并判定把它送到哪里,或必须访问哪些计算机才能满足该要求。
访问网络数据字典,了解如何请求和使用其中的信息。
如果目标数据存储于系统的多个计算机上,就必须进行分布式处理。
通信接口功能。在用户、局部DBMS和其他计算机的DBMS之间进行协调。
在一个异构型分布式处理环境中,还需提供数据和进程移植的支持。这里的异构型是指各个场地的硬件、软件之间存在着差别。