首页 理论教育分布式数据库的基本体系结构

分布式数据库的基本体系结构

【摘要】:分布式数据库系统的基本功能处于应用层。分布式数据库系统既是一个分布式系统,也是一个数据库系统,因此其体系结构兼顾两者。这三个方面从某种程度上反映了分布式数据库系统的特点。自主性是分布式数据库系统重点强调的一个特性。图2.7分布式数据库的参考体系结构分布式数据库中的数据往往是分片的[2],且是复制的。分布式数据库的参考体系结构如图2.7所示。为了进一步说明分布式数据库管理系统的构成,下面仔细分析DDBMS的基本成分。

分布式系统的体系结构用于描述分布式系统的功能、组织,以及实现的规则与方案。

物理层起,分布式系统的体系结构可以用图2.6描述。

图2.6 分布式系统的体系结构

如图2.6所示,自下而上,最底层是硬件/固件成分层,包括处理器、存储器、I/O、通信网络等;其上面一层称为分布式操作系统内核层,包括设备驱动(软件)、进程间通信、通信协议分层等;更上面一层称为分布式操作系统服务层,包括服务支持子层、服务(进程、文件、命名、同步、授权、访问控制)等;最上面一层是应用层。分布式数据库系统的基本功能处于应用层。

分布式数据库系统既是一个分布式系统,也是一个数据库系统,因此其体系结构兼顾两者。

下面分别从自主性、分布性和异质性三个方面讨论分布式数据库系统。这三个方面从某种程度上反映了分布式数据库系统的特点。

1.自主性

自主性(autonomy)是一个相当宽泛的概念,文献上对自主性的定义如下。

●设计自主性(design autonomy):单个数据库管理系统可以按其喜欢的方式使用数据模块和事务管理技术。

●通信自主性(communication autonomy):每个独立的数据库管理系统可以自由决策为其他数据库管理系统提供何种类型的数据或者控制全局执行的软件。

●执行自主性(execution autonomy):每个数据库管理系统可以按它们自己希望的方式执行事务和提交事务。

自主性是分布式数据库系统重点强调的一个特性。这里,自主性是指控制的分布,而不是数据的分布。自主性涉及的问题包含以下几个方面。

●单个数据库管理系统的本地运算不受多数据库系统中加入其他数据库管理系统的影响。

●单个数据库管理系统的处理查询和优化查询的方式不受访问多数据库的全局查询执行的影响。

●系统已执行或正在执行的操作在单个数据库管理系统加入或离开多数据库联盟时不受影响。

2.分布性

分布性(distribution)首先是指数据的分布。物理上,数据分布在多个站点或节点(sites)上。数据分布的方式有很多种。这里先说明两种典型的数据分布:客户端/服务器(Client/Server,C/S)分布和对等(Peer-to-Peer,P2P)分布,对等分布也称全分布。

需要注意的是C/S结构的分布特性问题。如前所述,在C/S结构里,数据管理交给服务器负责,而客户端关注的是提供的应用环境,包括用户接口。通信任务由客户端和服务器共同承担。其实,Client/Server DBMS代表对分布功能的一种初步尝试。

另一个极端是Peer-to-Peer系统,在Peer-to-Peer系统里,没有客户端和服务器的区别。每台机器具有完全的DBMS功能,可以与其他机器通信以执行查询和事务。

3.异质性

异质性(heterogeneity)是分布式系统中常见的情况,出现的形式也多种多样,有硬件的异质性、网络协议的差异性和数据管理器的多样性,等等。此外,还会涉及数据模型、查询语言、事务管理协议、故障恢复机制等的异质性。由于各数据模型固有的表达能力有差异和局限,所以使用不同的建模工具表示数据也会产生异质性。查询语言的异质性与不同数据模型的数据存取方式有关,如数据存取是一次一个集合(set-at-a-time)的存取还是一次一个记录(recordat-a-time)的存取。前者是关系型系统的方式,后者是网络型和层次型系统的方式。即使基于相同的数据模型(如DB2使用SQL,INGRES则使用QUEL[1]),也有所用语言的异质性问题。

分布式多数据库系统在组织和管理上与分布式数据库管理系统也有很大差别,基本差别在自主性上。

分布式多数据库系统可以是同构的,也可以是异构的。(www.chuimin.cn)

关于体系结构问题,我们分两个层面进行讨论,即全局层面和本地层面。

鉴于分布式环境中每台机器的物理数据组织的各不相同,因此需要了解每台机器的内部结构定义,我们把它称为本地内模式(local internal schema,LIS)。对数据的企业级视图则称为全局概念模式(global conceptual schema,GCS)。

图2.7 分布式数据库的参考体系结构

分布式数据库中的数据往往是分片的[2],且是复制的。所以还需要第三个层次来描述,我们把它称为本地概念模式(local conceptual schema,LCS)。一方面,位置和复制透明性(location and replication transparencies)是由本地概念模式、全局概念模式及其之间的映射来支持的。另一方面,网络透明性则是由全局概念模式来支持的。分布式数据库的参考体系结构如图2.7所示。

在现实中,可以通过增加一个全局目录(global directory,GD)来实现对ANSI/SPARC模型的扩展。其本地影射则通过一个本地目录(local directory,LD)的帮助来实现。目录的细节将在后面章节讨论。

本地概念模式是全局模式到每一个节点(site)的映射。这类数据库一般都是自顶向下设计的,所以,所有的外模式(external schema,ES)定义都是从全局视图出发定义的。其实,这里可以假设每一个节点都有一个本地数据库管理员(local database administrator)。当然,是否需要这类角色也是有争论的。然而,一般很多用户往往希望对数据管理有一个本地控制。

为了进一步说明分布式数据库管理系统(DDBMS)的构成,下面仔细分析DDBMS的基本成分。

DDBMS的示意图如图2.8所示。

由图2.8可知,DDBMS可以分为两个主要成分,一个负责处理用户交互,一个负责处理存储。

第一个主要成分称为用户处理器,主要包含以下四个元素。

(1)用户接口处理器(user interface handler):负责解释用户的命令,最后将结果数据格式化后返回给用户。

(2)语义数据控制器(semantic data controller):使用完整性约束和授权(这两者定义为全局模式的成分)检查是否可以处理用户查询。

(3)全局查询优化器和分解器(global query optimizer&decomposer):负责确定开销最小的执行策略,使用全局概念模式、本地概念模式及全局字典翻译全局查询。全局查询优化器(global query optimizer)负责生成最佳策略并执行分布连接运算。

(4)分布执行监视器(distributed execution monitor):负责协调用户查询的分布执行情况。这个分布执行管理器也称分布事务管理器(distributed transaction manager)。在分布查询执行期间,各个节点的执行监视器可以和其他节点的执行监视器通信。

第二个主要成分是数据处理器(data processor),它主要包含三个元素。

(1)本地查询优化器(local query optimizer):本地查询优化器像一个存取路径选择器(access path selector),功能是在存取数据时负责选择最佳的存取路径。

图2.8 DDBMS的示意图

(2)本地恢复管理器(local recovery manager):负责保证本地数据库的一致性,即便发生故障。

(3)运行时支持处理器(run-time support processor):负责按照查询优化器产生的调度给出的物理存取命令对数据库进行物理访问。运行时支持处理器是DDBMS与操作系统的接口,包含数据库缓冲管理器(database buffer(或cache)manager),负责维护主存缓冲器和管理数据存取。

在Peer-to-Peer系统中,允许将用户处理器模块和数据处理器模块放在一台机器上。