首页 理论教育分布式数据库技术:透明分布和数据分片

分布式数据库技术:透明分布和数据分片

【摘要】:数据分片是分布式数据库特有的现象,后面章节会详细讨论。典型的数据分片有数据水平分片、数据垂直分片和数据混合分片。完整性是指分片不应丢失数据,即一个关系的所有数据都应有自己的归属,总会落在一个数据片里。可重构性是指数据分片后能重组成原形。不相交性是希望数据片的归属是唯一的。图2.11数据分片示意图下面讨论主要的数据分片形态。

1978年,Enslow在其文章“What is a Distributed Data Processing System”中讨论了透明性(transparency)问题。文中提到分布式数据处理涉及系统透明性的问题,即将系统透明性定义为“permitting services to be requested by name only.The server does not have to be identified”。

透明性其实早就涉及,例如:常用的分层结构就是为了满足透明性;网络的OSI七层结构就是为了将每层的实现细节隐藏起来,上层只清楚下一层的服务,并为下一层提供接口。这样保证了实现的多样性和充分的灵活性。

分布透明性,即数据分布对用户是透明的,而用户在分布式数据系统面前如同处于非分布式系统一样,感觉不到分布。其实,计算机网络和分布式系统的最大差别就是,后者满足分布透明性,而前者恰恰相反。

所以下面先讨论分布式数据库的分层模型(体系结构),即遵循分布透明性的模型,再讨论DDBMS的一般形态。

分布式数据库系统的参考模型如图2.10所示。

图2.10 分布式数据库系统的参考模型

1.全局模式

全局模式(global schema)也称(模型)顶层(top level),因为这是最贴近用户的层面。这也是用户看到的数据库的一个全局模式。在这里定义所有的数据,如同完全没有分布一样。在这个层面上所定义的是全局关系(global relations)。

2.分片模式

每个全局关系可以分解成几个不相交的部分——(数据)片(fragments)。有多种方法可以用来实施这种分解。将从全局关系到分片的映射称为分片模式(fragmentation schema)。数据分片是分布式数据库特有的现象,后面章节会详细讨论。

3.分配模式

数据片是全局关系的逻辑分割,物理上,数据片可以放在网络的一个节点上,也可以放在几个节点上。(www.chuimin.cn)

分配模式(allocation schema)可以定义数据片放在哪个(些)节点上。分配模式可以决定分布式数据库是冗余的还是非冗余的。

所谓冗余,是指为1∶n的情况,即一个数据片有多个副本。所谓非冗余,是指为1∶1的情况,即一个数据片只有一个副本。

数据分片是分布式数据库遇到的一个特殊问题。从关系数据模式定义来看,一个关系是全局性的,如跨国公司的雇员信息,但是这些数据又分别存储在该公司遍布全球的分布式数据库里,每个局部数据库里都有本地雇员的信息。这些信息具有相同的数据结构、语义结构,等等。数据分片的主要功能就是解决这类问题。

数据分片可以分成多个类别。典型的数据分片有数据水平分片、数据垂直分片和数据混合分片。数据分片必须遵循一些规则,这些规则可以归纳为以下三条。

●完整性:全局关系的所有数据都必须映射到数据片上。

●可重构性:数据片始终可以重构成全局关系。

●不相交性:数据片应当是不相交的,从而使得在分配层中可以显式控制数据的复制。

完整性是指分片不应丢失数据,即一个关系的所有数据都应有自己的归属,总会落在一个数据片里。可重构性是指数据分片后能重组成原形。不相交性是希望数据片的归属是唯一的。

图2.11是数据分片的示意图。这里,一个关系(如图2.11所示的左部)可以逻辑上分成若干数据片,如图2.11中的中间部分,称为虚关系。物理上,它们会分派到不同的网络节点(如图2.11所示的右部),允许冗余存在,目的是使用方便、高效和保证可靠性。右部我们称之为物理关系。

图2.11 数据分片示意图

下面讨论主要的数据分片形态。