1.2 分布式数据库系统的基本概念
1.2.1 节点/场地
分布式数据库系统是地理上分散而逻辑上集中的数据库系统。管理分布式数据库的软件被称为分布式数据库管理系统。分布式系统通常由计算机网络将地理上分散的各个逻辑单位连接起来。被连接的逻辑单位称为节点(node)或场地(site)。节点或场地是指物理上的一台计算机或逻辑上的一台计算机(如集群系统)。节点强调的是计算机和处理能力,场地强调的是地理位置和通信代价,二者只是看问题的角度不同,本质上没有区别。
1.2.2 分布式数据库
分布式数据库(Distributed DataBase,DDB)是指分布在一个计算机网络上的多个逻辑相关的数据库的集合。也就是说,分布式数据库是一组结构化的数据集合,逻辑上属于同一系统,物理上分布在计算机网络中各个不同的场地上,如图1.5所示。
为区别起见,将传统的单场地上的数据库称为集中式数据库。
图1.5 分布式数据库系统
1.2.3 分布式数据库管理系统
分布式数据库系统由分布式数据库和分布式数据库管理系统(Distributed DataBase Management System,DDBMS)组成。分布式数据库管理系统是分布式数据库系统的一组软件,负责对分布式数据库中的数据进行管理和操作。由于分布式数据库管理系统基于分布环境实现,因此必须满足逻辑数据的一致性、完整性等要求。分布式数据库管理系统在局部场地上的数据管理机制与集中式数据库管理系统类似(如图1.2所示)。同时,分布式数据库管理系统具有全局的查询处理器、事务管理器、并发控制器、恢复管理器等,保证全局事务执行的效率、正确性和可靠性。系统接收基于全局模式的全局查询命令,根据数据的分布信息将一个全局查询命令转化为面向各个局部场地的子查询请求,同时将一个全局事务分解为相应的子事务进行分布处理。在事务执行过程中,局部事务管理器保证子事务执行的正确性,全局事务管理器协调并控制子事务的执行,保证全局事务执行的正确性。可见,分布式数据库管理系统的执行复杂度远高于集中式数据库管理系统。
1.2.4 分布式数据库系统应用举例
假设有一家软件公司,随着规模的扩大,在世界各地设立了多家分公司,总部设在北京,分公司有东京分公司、上海分公司、广州分公司。全局模式如下:
其中,EMP为员工信息,ENO为员工编号,ENAME为员工姓名,TITLE为员工薪级;ASSIGNMENT为员工参加项目情况,PNO为项目编号,RESPONSIBILITY为职责,DURING为参加项目的时间;PROJECT为项目信息,PNAME为项目名称,BUDGET为项目经费;PAY为工资信息,SALARY为工资。现有要求:各分公司管理本公司的员工信息、项目信息和员工参加的项目信息;总公司管理50万元以上的项目的信息和TITLE≥5级的高薪员工信息。数据分布如图1.6所示,其中上海-EMP为上海分公司的员工信息,上海-ASSIGNMENT为上海分公司的员工参加项目信息,上海-PROJECT为上海分公司的项目信息;广州-EMP为广州分公司的员工信息,广州-ASSIGNMENT为广州分公司的员工参加项目信息,广州-PROJECT为广州分公司的项目信息;东京-EMP为东京分公司的员工信息,东京-ASSIGNMENT为东京分公司的员工参加项目信息,东京-PROJECT为东京分公司的项目信息;北京-EMP为北京总公司的员工信息,北京-ASSIGNMENT为北京总公司的员工参加项目信息,北京-PROJECT为北京总公司的项目信息;PROJECT(BUDGET≥50)为公司所有50万元以上的项目的信息,EMP(TITLE≥5)为所有薪级TITLE≥5的员工信息。
从图1.6可知,全局数据根据管理需求分别存储在不同的场地上。如北京总公司场地上,不仅要保存北京总公司的员工、项目信息等,还需要存储50万元以上的项目信息和TITLE≥5级别的员工信息。通常各场地上的应用只涉及本场地上的数据,增加了局部处理能力,有效提高了查询效率。当查询涉及多个场地上的数据时,在广域网环境下,通常遵循最小通信代价确定查询优化策略,包括指定访问数据副本的场地和查询的执行场地。
图1.6 分布式数据库系统应用举例
1.2.5 分布式数据库的特性
1.数据透明性
分布式数据库系统是地理上(或物理上)分散而逻辑上集中的数据库系统。也就是说,系统中的分布式数据库由一个逻辑的、虚拟的数据库(称为全局数据库)和分散在各个场地的局部数据库(物理上存储的数据库)两级数据库组成。全局数据库是以全局概念模式对一个企业或单位全局信息的抽象描述。局部数据库是以局部概念模式和局部内模式对各场地上的局部数据库的描述。因此,分布式数据库可划分为4层:全局外层(用户层)、全局概念层、局部概念层和局部内层。应用程序与系统实际数据组织相分离,即数据具有独立性或透明性。具体体现如下。
●分布透明性:用户看到的是全局数据模式的描述,用户如同使用集中式数据库一样,不需要考虑数据的存储场地和操作的执行场地。
●分片透明性:分片过程是将一个关系分成几个子关系,每个子关系称为一个分片。根据实际需求,一个分片可能存储在不同的场地上(在场地上的实际存储副本称为片段),如图1.7所示。逻辑层表示用户语义,物理层实现细节。逻辑层的语义与物理层的实现相分离,对高层系统和用户隐蔽了实现细节。分片透明性是指用户无须考虑数据分片的细节,应用程序对分片的调用(分片到片段的映射)由系统自动完成。
●复制透明性:数据可重复存储在不同的场地上,从而提高了系统的可用性和可靠性,以及系统处理的并行性。用户只看到单一的数据副本,系统负责对冗余数据的控制,如一致性维护等。
图1.7 数据分片示意图
2.系统透明性
一个分布式系统必然存在大量的应用在系统中运行,而系统中的故障(节点故障、通信故障)也是不可避免的。为了保证系统高处理能力的要求,系统需要支持多用户并发执行。为了保证系统的可靠性和可用性,系统需要具有容错处理功能。系统的相应处理应该对用户透明,具体体现如下。
●并发透明性:多个用户可以自动地共享同一个数据,而不会互相干扰。每个用户感觉自己独占该数据。
●故障透明性:当系统发生故障后,系统能自动地进行恢复,用户不必了解故障恢复处理的过程。
3.场地自治性
在分布式数据库系统中,为保证局部场地独立的自主运行能力,局部场地具有自治性。多个场地或节点的局部数据库在逻辑上集成为统一的整体,并为分布式数据库系统的所有用户使用,这种分布式应用称为全局应用,其用户称为全局用户。另外,分布式数据库系统也允许用户只使用本地的局部数据库,该应用称为局部应用,其用户称为局部用户。这种局部用户在一定程度上独立于全局用户的特性称为局部数据库的自治性,也称为场地自治性。具体体现如下。
●设计自治性:局部数据库管理系统(Local DataBase Management System,LDBMS)能独立地决定本地数据库系统的设计。
●通信自治性:LDBMS能独立地决定是否及如何与其他场地的LDBMS通信。
●执行自治性:LDBMS如同一个集中式数据库系统,自主地决定以何种方式执行局部操作。