分布式数据库管理系统 - 数据库环境

在本教程的这一部分中,我们将研究有助于设计分布式数据库环境的不同方面。 本章从分布式数据库的类型开始。 分布式数据库可以分为同构数据库和异构数据库,并进一步划分。 本章的下一节将讨论分布式架构,即客户端-服务器、点对点和多 DBMS。 最后,介绍了复制和碎片等不同的设计方案。

分布式数据库的类型

分布式数据库大致可分为同构和异构分布式数据库环境,每种环境又可进一步细分,如下图所示。

分布式数据库环境

同质分布式数据库

在同构分布式数据库中,所有站点都使用相同的 DBMS 和操作系统。 它的属性是 −

  • 这些网站使用非常相似的软件。

  • 这些站点使用相同的 DBMS 或来自同一供应商的 DBMS。

  • 每个站点都了解所有其他站点,并与其他站点合作处理用户请求。

  • 通过单个接口访问数据库,就好像它是单个数据库一样。

同构分布式数据库的类型

同构分布式数据库有两种类型−

  • 自治 − 每个数据库都是独立的,有自己的功能。 它们由控制应用程序集成,并使用消息传递来共享数据更新。

  • 非自治 − 数据分布在同构节点上,中央或主 DBMS 协调站点之间的数据更新。

异构分布式数据库

在异构分布式数据库中,不同站点有不同的操作系统、DBMS 产品和数据模型。 它的属性是 −

  • 不同的站点使用不同的架构和软件。

  • 系统可能由各种 DBMS 组成,例如关系型、网络型、分层型或面向对象型。

  • 由于架构不同,查询处理很复杂。

  • 由于软件不同,事务处理很复杂。

  • 某个网站可能不知道其他网站,因此在处理用户请求时的合作有限。

异构分布式数据库的类型

  • 联合 − 异构数据库系统本质上是独立的,但集成在一起,使它们作为一个数据库系统运行。

  • 非联合 − 数据库系统采用中央协调模块,通过该模块访问数据库。

分布式 DBMS 架构

DDBMS架构通常根据三个参数来开发 −

  • 分布 − 它说明了数据在不同站点之间的物理分布。

  • 自治 − 它表示数据库系统的控制权分布以及各组成DBMS能够独立运行的程度。

  • 异质性 − 它指的是数据模型、系统组件和数据库的一致性或相异性。

架构模型

一些常见的架构模型是 −

  • DDBMS 的客户端-服务器架构
  • DDBMS 的点对点架构
  • 多 DBMS 架构

DDBMS 的客户端-服务器架构

这是一个两级架构,其中功能分为服务器和客户端。 服务器功能主要包括数据管理、查询处理、优化和事务管理。 客户端功能主要包括用户界面。 但是,它们具有一些功能,例如一致性检查和事务管理。

两种不同的客户端-服务器架构是 −

  • 单服务器多客户端
  • 多服务器多客户端(如下图所示)
服务器架构

DDBMS 的点对点架构

在这些系统中,每个对等点既充当客户端又充当服务器,用于传递数据库服务。 同伴与其他同伴共享资源并协调他们的活动。

该架构一般有四个级别的模式 −

  • 全局概念架构 − 描绘数据的全局逻辑视图。

  • 本地概念架构 − 描述每个站点的逻辑数据组织。

  • 本地内部架构 − 描述每个站点的物理数据组织。

  • 外部架构 − 描述数据的用户视图。

点对点架构

多 DBMS 架构

这是一个由两个或多个自治数据库系统集合而成的集成数据库系统。

多DBMS可以通过六级模式来表达 −

  • 多数据库视图级别 − 描述由集成分布式数据库的子集组成的多个用户视图。

  • 多数据库概念级别 − 描述由全局逻辑多数据库结构定义组成的集成多数据库。

  • 多数据库内部级别 − 描绘不同站点之间的数据分布以及多数据库到本地数据的映射。

  • 本地数据库视图级别 − 描绘了本地数据的公众视图。

  • 本地数据库概念级别 − 描述每个站点的本地数据组织。

  • 本地数据库内部级别 − 描述每个站点的物理数据组织。

多 DBMS 有两种设计方案 −

  • 具有多数据库概念级别的模型。
  • 没有多数据库概念级别的模型。
多数据库概念级别

 无多数据库概念级别

设计方案

DDBMS 中表的分布设计替代方案如下 −

  • 非复制、非碎片
  • 完全复制
  • 部分复制
  • 支离破碎
  • 混合

非复制且非碎片

在此设计方案中,不同的桌子放置在不同的地点。 数据的放置位置应靠近最常使用的站点。 它最适合连接位于不同站点的表中的信息所需的查询百分比较低的数据库系统。 如果采用适当的分发策略,那么这种设计方案有助于降低数据处理过程中的通信成本。

完全复制

在此设计方案中,在每个站点都存储所有数据库表的一份副本。 由于每个站点都有自己的整个数据库副本,因此查询速度非常快,所需的通信成本可以忽略不计。 相反,数据的大量冗余在更新操作时需要巨大的成本。 因此,这适用于需要处理大量查询而数据库更新次数较少的系统。

部分复制

表的副本或部分表存储在不同的站点。 表的分配是根据访问频率进行的。 这考虑到了以下事实:访问表的频率因站点而异。 表(或部分)的副本数量取决于访问查询执行的频率以及生成访问查询的站点。

碎片化

在这种设计中,一个表被分为两个或多个称为片段或分区的片段,每个片段可以存储在不同的站点。 这考虑到这样的事实:很少发生给定站点需要表中存储的所有数据的情况。 此外,碎片增加了并行性并提供了更好的灾难恢复。 这里,系统中每个分片只有一份副本,即没有冗余数据。

三种碎片技术是 −

  • 垂直碎片化
  • 水平碎片化
  • 混合碎片

混合分布

这是碎片和部分复制的组合。 在这里,表最初以任何形式(水平或垂直)进行碎片化,然后根据访问碎片的频率在不同站点之间部分复制这些碎片。