分布式数据库管理系统 - 设计策略
在上一章中,我们介绍了不同的设计方案。 在本章中,我们将研究有助于采用设计的策略。 这些策略大致可分为复制策略和碎片策略。 不过,在大多数情况下,会结合使用两者。
数据复制
数据复制是在两个或多个站点存储数据库的单独副本的过程。 是目前流行的分布式数据库容错技术。
数据复制的优点
可靠性 − 如果任何站点出现故障,数据库系统将继续工作,因为另一个站点有可用的副本。
减少网络负载 − 由于可以使用数据的本地副本,因此可以在减少网络使用的情况下完成查询处理,特别是在黄金时段。 数据更新可以在非黄金时段进行。
更快的响应 − 本地数据副本的可用性可确保快速查询处理,从而确保快速响应时间。
事务更简单 − 事务需要较少数量的位于不同站点的表的连接以及最少的网络协调。 因此,它们本质上变得更简单。
数据复制的缺点
增加存储要求 − 维护多个数据副本会增加存储成本。 所需的存储空间是集中式系统所需存储空间的倍数。
数据更新的成本和复杂性增加 − 每次更新数据项时,更新都需要反映在不同站点的所有数据副本中。 这需要复杂的同步技术和协议。
不良应用程序 - 数据库耦合 − 如果不使用复杂的更新机制,消除数据不一致需要在应用程序级别进行复杂的协调。 这会导致不良的应用程序——数据库耦合。
一些常用的复制技术是 −
- 快照复制
- 近实时复制
- 拉取复制
碎片化
碎片是将一个表分成一组较小的表的任务。 表的子集称为片段。 碎片可以分为三种类型:水平碎片、垂直碎片和混合碎片(水平和垂直的组合)。 水平分片又可以分为原水平分片和派生水平分片两种技术。
碎片应该以某种方式完成,以便可以从碎片重建原始表。 这是必要的,以便在需要时可以从片段重建原始表。 这一要求称为"可重构性"。
碎片化的优点
由于数据存储在靠近使用地点的位置,因此提高了数据库系统的效率。
本地查询优化技术足以满足大多数查询,因为数据在本地可用。
由于网站上无法获取无关数据,因此可以维护数据库系统的安全性和隐私性。
碎片化的缺点
当需要不同分片的数据时,访问速度可能会很低。
如果出现递归碎片,重建工作将需要昂贵的技术。
不同站点中缺乏数据备份副本可能会导致数据库在站点发生故障时失效。
垂直碎片
在垂直分段中,表的字段或列被分组为分段。 为了保持可重构性,每个片段应包含表的主键字段。 垂直碎片可用于加强数据隐私。
例如,让我们考虑大学数据库在具有以下架构的学生表中保存所有注册学生的记录。
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";
混合碎片
在混合分段中,结合使用了水平和垂直分段技术。 这是最灵活的分段技术,因为它生成的片段具有最少的无关信息。 然而,重建原始表通常是一项昂贵的任务。
混合碎片可以通过两种替代方式完成 −
首先生成一组水平片段; 然后从一个或多个水平片段生成垂直片段。
首先,生成一组垂直片段; 然后从一个或多个垂直片段生成水平片段。