分布式数据库管理系统 - 设计策略



在上一章中,我们介绍了不同的设计方案。本章我们将学习有助于采用这些设计的策略。这些策略可以大致分为复制和分片。但是,在大多数情况下,两者结合使用。

数据复制

数据复制是在两个或多个站点存储数据库的单独副本的过程。它是分布式数据库中一种流行的容错技术。

数据复制的优点

  • 可靠性 - 如果任何站点发生故障,数据库系统仍然可以工作,因为在其他站点(s)上有一个副本可用。

  • 减少网络负载 - 由于可以使用本地数据副本,因此可以减少网络使用量来进行查询处理,尤其是在高峰时段。数据更新可以在非高峰时段进行。

  • 更快的响应 - 本地数据副本的可用性确保了快速的查询处理,从而缩短了响应时间。

  • 更简单的交易 - 事务需要更少的位于不同站点的表连接,以及跨网络的最小协调。因此,它们变得更简单。

数据复制的缺点

  • 增加存储需求 - 维持多个数据副本与增加存储成本相关。所需的存储空间是集中式系统所需存储空间的倍数。

  • 增加数据更新的成本和复杂性 - 每次更新数据项时,都需要在不同站点的所有数据副本中反映该更新。这需要复杂的同步技术和协议。

  • 不良的应用程序 - 数据库耦合 - 如果不使用复杂的更新机制,消除数据不一致性需要在应用程序级别进行复杂的协调。这会导致不良的应用程序 - 数据库耦合。

一些常用的复制技术包括:

  • 快照复制
  • 近实时复制
  • 拉取复制

分片

分片是将表分成一组较小表的任务。表的子集称为分片。分片可以分为三种类型:水平分片、垂直分片和混合分片(水平分片和垂直分片的组合)。水平分片可以进一步分为两种技术:主水平分片和派生水平分片。

分片应以一种方式进行,以便可以从分片重建原始表。这是为了确保在需要时可以从分片重建原始表。此要求称为“可重构性”。

分片的优点

  • 由于数据存储在使用站点附近,因此数据库系统的效率提高了。

  • 由于数据是本地可用的,因此大多数查询都足够使用本地查询优化技术。

  • 由于站点上没有无关数据,因此可以维护数据库系统的安全性和隐私。

分片的缺点

  • 当需要来自不同分片的数据时,访问速度可能会非常慢。

  • 在递归分片的情况下,重建工作将需要昂贵的技术。

  • 不同站点缺乏数据备份副本可能会导致站点故障时数据库无效。

垂直分片

在垂直分片中,表的字段或列被分组成分片。为了保持可重构性,每个分片都应包含表的primary key字段。垂直分片可用于强制执行数据的隐私。

例如,让我们考虑一个大学数据库在一个名为Student的表中保存所有注册学生记录,该表具有以下模式:

学生

学号(Regd_No) 姓名(Name) 课程(Course) 地址(Address) 学期(Semester) 费用(Fees) 分数(Marks)

现在,费用详细信息保存在会计部门。在这种情况下,设计人员将对数据库进行如下分片:

CREATE TABLE STD_FEES AS 
   SELECT Regd_No, Fees 
   FROM STUDENT;

水平分片

水平分片根据一个或多个字段的值对表的元组进行分组。水平分片也应符合可重构性规则。每个水平分片必须具有原始基表的所有列。

例如,在学生模式中,如果需要在计算机科学学院维护所有计算机科学课程学生的详细信息,则设计人员将对数据库进行如下水平分片:

CREATE COMP_STD AS 
   SELECT * FROM STUDENT  
   WHERE COURSE = "Computer Science";

混合分片

在混合分片中,结合使用水平和垂直分片技术。这是最灵活的分片技术,因为它生成的碎片包含最少的冗余信息。但是,重建原始表通常是一项代价高昂的任务。

混合分片可以通过两种替代方式完成:

  • 首先,生成一组水平分片;然后从一个或多个水平分片生成垂直分片。

  • 首先,生成一组垂直分片;然后从一个或多个垂直分片生成水平分片。

广告