分布式数据库系统的功能(DBMS)

2024年8月28日 | 阅读 8 分钟

分布式数据库本质上是一个分布在多个站点(即多台计算机或计算机网络)上的数据库,而不是仅限于单个系统。分布式数据库系统分布在多个具有不同物理组件的位置。当世界各地不同的人需要访问某个特定数据库时,这可能是有必要的。它必须被处理,以便对用户来说,它看起来就像一个单一的数据库。

类型

1. 同构数据库:同构数据库在所有位置统一存储数据。所有站点都使用相同的操作系统、数据库管理系统和数据结构。因此,它们易于管理。

2. 异构数据库:对于异构分布式数据库,多个位置可能使用不同的软件和模式,这可能会导致查询和事务出现问题。此外,一个站点可能甚至不知道其他站点的存在。不同计算机可能使用不同的操作系统和数据库应用程序。它们甚至可能采用不同的数据库数据模型。因此,在不同站点之间进行通信需要翻译。

分布式数据存储

使用分布式数据存储,数据可以通过两种方式存储在多个位置:

1. 复制 - 使用此策略,连接的每个部分都冗余地存储在两个或多个位置。如果整个数据库都可以从每个位置访问,则它是完全冗余的数据库。由于复制,系统会保留数据的副本。

这有优点,因为它使得更多的数据在多个位置可用。此外,现在可以并行处理查询请求。

但是,也有一些缺点。数据必须经常更新。为了避免不一致的结果,在一个站点上执行的所有更改都必须在存储该关系的每个站点上进行记录。这里存在很大的开销。此外,由于现在必须跨多个站点监控并发访问,因此并发管理变得更加复杂。

2. 分片 - 在此方法中,关系被分解成更小的片段,每个片段存储在需要它的各个位置。为确保没有数据丢失,必须以允许重构原始关系的方式创建片段。由于分片不会导致数据重复,因此一致性不是问题。

关系可以有两种方式分片:

  • 通过行将关系分解成组,称为水平分片,其中每个元组至少分配给一个片段。
  • 垂直分片,也称为按列拆分,当关系模式被分解成更小的模式时发生。为了保证无损连接,每个片段必须包含一个通用的候选键。

有时会采用结合分片和复制的策略。

分布式数据库的用途

  • 企业管理信息系统使用它。
  • 多媒体应用程序使用它。
  • 用于连锁酒店、军事指挥系统等。
  • 生产控制系统也使用它。

分布式数据库系统是一种数据库管理系统,它将数据存储在通过网络连接的多个计算机或站点上。分布式数据库系统中的每个位置都有自己的数据库,这些数据库链接在一起形成一个单一的、集成的系统。

分布式数据库系统的关键优势在于,与集中式数据库系统相比,它可以提供更高的可用性和可靠性。由于数据分布在多个位置,即使一个或多个位置发生故障,系统仍然可以运行。此外,通过将数据和处理负担分散到多个站点,分布式数据库系统可以提供卓越的性能。

分布式数据库系统有几种可能的架构,包括:

客户端-服务器架构:用户连接到一个中央服务器,该服务器控制分布式数据库系统。服务器负责维护数据存储、控制访问和组织事务。

对等架构:在此设计下,分布式数据库系统的每个站点都与其他站点相连。每个网站都负责监督其自身的数据管理和组织与其他网站的业务。

联邦架构:在此架构中,分布式数据库系统中的每个站点都维护一个独立、自主的数据库。但是,这些数据库通过中间件层连接,该中间件层提供了一个访问和查询数据的标准接口。

分布式数据库系统的应用程序包括电子商务、金融服务和电话。在创建和管理分布式数据库系统时,必须仔细考虑数据分发、复制和一致性等问题。

在分布式或去中心化的多代理平台中达成共识的过程。消息传递机制取决于它。

示例

网络中的进程共同选择领导者。每个过程都从领导层竞标开始。共识用于经典或传统的分布式系统中,以提供可靠性和容错能力。它表明,在每个参与者都独立且有权自行决定时,在去中心化环境中,某些节点或参与者可能会故意或不当地行事。因此,在某些特定情况下,达成结论或分享观点至关重要。所以,最大的挑战是在人们可能故意或不当地破坏操作的环境中达成共识。因此,在这种类型的分布式系统中,我们的目标是保持可靠性,这意味着即使有坏人存在,也要确保事情正常运行。

达成分布式共识的方法

为了达成分布式共识,必须满足几个要求:

  • 每个非故障进程最终都必须做出决定。
  • 共识 - 每个非故障进程的结果必须相同。
  • 有效性 - 每个非故障进程在开始和结束时都必须具有相同的值。
  • 完整性 - 每个正确的人只确定一个值,并且该值必须由其他人提出。

基本上,我们应该得出一个结论,其值必须代表某个进程的初始值,因为在达成的价值不反映任何人的首选时,这是荒谬的。

分布式共识协议的准确性

它可以由以下两个特征来表征。

  • 安全属性:此功能可确保您和网络中的正确人员永远不会收敛到错误的值。
  • 根据活性属性,每个正确的值最终都必须被接受,这意味着最终会发生一些积极的事情。

分布式共识应用

  • 在容错环境中选举领导者,以启动一项全球倡议,而无需添加单点故障。
  • 在分布式网络中维护一致性。假设不同的节点正在监视相同的环境。在其中一个节点崩溃的情况下,共识过程可确保对此类缺陷的弹性。

本质上,分布式化使得系统的设计和执行更加复杂。为了实现以下潜在的好处:

  • 网络透明性
  • 更高的可靠性
  • 性能改进
  • 便于扩展

集中式 DBMS 的功能

  • 集中式 DBMS 的基本目的是为我们提供数据的完整视图。例如,我们可以运行一个查询来查看有多少人热衷于在全球范围内购买。
  • 与分布式系统相比,易于管理是集中式 DBMS 的第二个基本特征。

除了集中式 DBMS 的功能外,分布式数据库还必须能够执行以下任务:

分布式数据库系统功能

  • 数据跟踪 - 通过扩展 DDBMS 目录,DDBMS 的主要目的是监控数据的分发、分片和复制。
  • 分布式查询处理 - DDBMS 的主要作用本质上是它能够连接到远程位置,并在通信网络上传输数据和查询。
  • 复制数据管理:DDBMS 的基本任务是选择要访问的复制数据项的哪个副本,并确保这些副本是一致的。
  • 分布式数据库可以从单个站点崩溃和全新的故障(包括通信线路中断)中恢复。
  • 安全 - DDBMS 的基本任务是在正确管理用户授权和数据安全的同时执行分布式事务。
  • 分布式目录管理 - 目录本质上是数据库数据的存储库。目录可以是每个站点的本地目录,也可以是整个 DDB 的全局目录。目录的放置和分发可能存在设计和策略方面的困难。
  • 分布式数据库管理系统 (DDBMS) 的基本任务是设计访问来自多个站点的查询和事务的执行计划,同步对分布式数据的访问,并本质上维护整个数据库的完整性。

然而,这些功能本质上使 DDBMS 比集中式 DBMS 更复杂。

由分布在多个站点的相互连接的多个数据库组成的分布式数据库系统。分布式数据库系统执行以下任务:

  • 数据分发:将数据分发到多个站点是分布式数据库系统的主要任务之一。这可以最大限度地减少需要通过网络传输的数据量,并确保数据存储在靠近需要它的地方。
  • 分布式数据库系统可以在不同站点之间复制数据。复制即使在一个站点发生故障时也能使数据可用,从而提高了系统的可用性和可靠性。
  • 数据分片是将大型数据库分成更小的部分并将其分发到多个网站的过程。通过减少需要通过网络传输的数据量,这有助于提高系统性能。
  • 处理用户请求并从分布式数据库系统中获取信息称为查询处理。为了响应用户请求,可能需要从多个站点聚合数据,这使得这是一个具有挑战性的过程。
  • 事务管理:在分布式数据库系统中,事务可能跨越多个位置。有必要协调这些事务以确保其准确有效的完成。
  • 安全和访问控制:确保分布式数据库系统中的数据安全且访问受到限制至关重要。必须实施适当的安全措施和访问控制机制来保护数据免受非法访问或修改。
  • 分布式数据库系统的效率必须得到优化,才能管理大量数据和用户请求。这可能包括提高网络性能、查询处理算法优化或数据库参数调整。
  • 系统管理:系统管理是监督和维护分布式数据库系统的过程。这可能包括执行备份数据、跟踪系统性能和修复系统问题等任务。

DBMS 需要分布式数据库

让我们从数据库及其各种类型开始。

数据库是信息的有序集合。在数据库中,数据可以方便地访问、管理、修改、更新、控制和组织。

数据库的两个主要类别是分布式数据库和集中式数据库。我们在 DBMS 中为什么需要分布式数据库呢?目前,让我们设想我们只有集中式数据库。

  • 所有数据都将输入一个数据库。增加其大小,以至于即使查询单个条目也需要很长时间。
  • 由于我们只有一个数据库,如果发生问题,我们就无法再满足用户请求。
  • 即使我们想,也没有办法进行扩展,可用性也降低了,这会降低吞吐量。

吞吐量、延迟、可扩展性、可用性、容错能力以及在使用单个系统和单个数据库时可能遇到的许多其他问题都可以通过分布式数据库得到解决。


下一个主题DBMS 中的饥饿