![Distributed DBMS Tutorial](/distributed_dbms/images/distributed-dbms-mini-logo.jpg)
- 分布式数据库管理系统教程
- DDBMS - 首页
- DDBMS - 数据库管理系统概念
- DDBMS - 分布式数据库
- 分布式数据库设计
- 分布式数据库环境
- DDBMS - 设计策略
- DDBMS - 分布式透明性
- DDBMS - 数据库控制
- 分布式数据库管理系统安全
- 数据库安全与加密
- 分布式数据库中的安全
- 分布式数据库管理系统资源
- DDBMS - 快速指南
- DDBMS - 有用资源
- DDBMS - 讨论
分布式数据库管理系统 - 数据库环境
在本教程的这一部分,我们将学习有助于设计分布式数据库环境的不同方面。本章首先介绍分布式数据库的类型。分布式数据库可以分为同构和异构数据库,并有进一步的划分。本章的下一部分讨论了分布式架构,即客户端-服务器、对等和多数据库管理系统。最后,介绍了复制和碎片等不同的设计方案。
分布式数据库的类型
分布式数据库可以广泛地分为同构和异构分布式数据库环境,每个环境都有进一步的细分,如下所示。
![Distributed Database Environments](/distributed_dbms/images/distributed_database_environments.jpg)
同构分布式数据库
在同构分布式数据库中,所有站点都使用相同的数据库管理系统和操作系统。其特性如下:
站点使用非常相似的软件。
站点使用相同的数据库管理系统或来自同一供应商的数据库管理系统。
每个站点都了解所有其他站点,并与其他站点合作处理用户请求。
数据库通过单个接口访问,就像它是一个单个数据库一样。
同构分布式数据库的类型
同构分布式数据库有两种类型:
自治型 - 每个数据库都是独立的,可以自行运行。它们由一个控制应用程序集成,并使用消息传递来共享数据更新。
非自治型 - 数据分布在同构节点上,一个中央或主数据库管理系统协调跨站点的更新。
异构分布式数据库
在异构分布式数据库中,不同的站点具有不同的操作系统、数据库管理系统产品和数据模型。其特性如下:
不同的站点使用不同的模式和软件。
系统可能由各种数据库管理系统组成,如关系型、网络型、层次型或面向对象型。
由于模式不同,查询处理很复杂。
由于软件不同,事务处理很复杂。
一个站点可能不知道其他站点,因此在处理用户请求时合作有限。
异构分布式数据库的类型
联邦型 - 异构数据库系统本质上是独立的,并集成在一起,以便它们能够作为一个单一的数据库系统运行。
非联邦型 - 数据库系统采用一个中央协调模块,通过该模块访问数据库。
分布式数据库管理系统架构
DDBMS 架构通常根据三个参数开发:
分布 - 它表示数据在不同站点上的物理分布。
自治 - 它表示数据库系统的控制分布以及每个组成数据库管理系统能够独立运行的程度。
异构性 - 它指的是数据模型、系统组件和数据库的统一性或差异性。
架构模型
一些常见的架构模型包括:
- DDBMS 的客户端-服务器架构
- DDBMS 的对等架构
- 多数据库管理系统架构
DDBMS 的客户端-服务器架构
这是一种两层架构,其中功能分为服务器和客户端。服务器功能主要包括数据管理、查询处理、优化和事务管理。客户端功能主要包括用户界面。但是,它们也具有一些功能,如一致性检查和事务管理。
两种不同的客户端-服务器架构是:
- 单服务器多客户端
- 多服务器多客户端(如下图所示)
![Server Architecture](/distributed_dbms/images/server_architecture.jpg)
DDBMS 的对等架构
在这些系统中,每个对等节点都充当客户端和服务器以提供数据库服务。对等节点共享其资源与其他对等节点,并协调其活动。
此架构通常具有四级模式:
全局概念模式 - 描述数据的全局逻辑视图。
本地概念模式 - 描述每个站点的逻辑数据组织。
本地内部模式 - 描述每个站点的物理数据组织。
外部模式 - 描述用户对数据的视图。
![Peer- to-Peer Architecture](/distributed_dbms/images/peer_to_peer_architecture.jpg)
多数据库管理系统架构
这是一个由两个或多个自治数据库系统组成的集成数据库系统。
多数据库管理系统可以通过六级模式表达:
多数据库视图级 - 描述包含集成分布式数据库子集的多个用户视图。
多数据库概念级 - 描述包含全局逻辑多数据库结构定义的集成多数据库。
多数据库内部级 - 描述数据在不同站点和多数据库到本地数据的映射之间的分布。
本地数据库视图级 - 描述本地数据的公共视图。
本地数据库概念级 - 描述每个站点的本地数据组织。
本地数据库内部级 - 描述每个站点的物理数据组织。
多数据库管理系统有两个设计方案:
- 带有多数据库概念级的模型。
- 没有多数据库概念级的模型。
![Multi-database Conceptual Level](/distributed_dbms/images/multi_database_conceptual_level.jpg)
![Without Multi-database Conceptual Level](/distributed_dbms/images/without_multi_database_conceptual.jpg)
设计方案
DDBMS 中表的分布设计方案如下:
- 非复制且非碎片化
- 完全复制
- 部分复制
- 碎片化
- 混合
非复制和非碎片化
在此设计方案中,不同的表放置在不同的站点。数据放置在靠近其使用最多的站点的位置。它最适合于查询需要连接放置在不同站点上的表信息的百分比较低的数据库系统。如果采用适当的分布策略,则此设计方案有助于降低数据处理期间的通信成本。
完全复制
在此设计方案中,每个站点都存储所有数据库表的副本。由于每个站点都有整个数据库的副本,因此查询速度非常快,所需的通信成本可以忽略不计。相反,数据的大量冗余需要在更新操作期间付出巨大的成本。因此,这适用于需要处理大量查询而数据库更新数量较少的系统。
部分复制
表的副本或表的一部分存储在不同的站点。表的分布是根据访问频率进行的。这考虑了这样一个事实,即访问表的频率在不同站点之间存在很大差异。表的副本(或部分)的数量取决于访问查询执行的频率以及生成访问查询的站点。
碎片化
在此设计中,一个表被分成两个或多个称为片段或分区的块,每个片段可以存储在不同的站点。这考虑了这样一个事实,即在给定站点很少需要存储在表中的所有数据。此外,碎片化提高了并行性并提供了更好的灾难恢复。在这里,系统中每个片段只有一个副本,即没有冗余数据。
三种碎片化技术是:
- 垂直碎片化
- 水平碎片化
- 混合碎片化
混合分布
这是碎片化和部分复制的组合。在此,表最初以任何形式(水平或垂直)进行碎片化,然后根据访问片段的频率将这些片段部分复制到不同的站点。