分布式数据库的数据碎片、复制和分配技术
数据碎片
将数据库划分为多个较小的部分或子表的过程称为碎片化。较小的部分或子表称为碎片,并存储在不同的位置。数据碎片化应以能够从碎片重建原始父数据库的方式进行。可以使用 UNION 或 JOIN 操作进行恢复。
数据库碎片化分为三种类型:水平碎片化、垂直碎片化和混合或混合碎片化。
水平碎片化
它将表水平划分为一组行,以创建表的多个碎片或子集。然后,这些碎片可以分配到数据库中的不同站点。重建是使用 UNION 或 JOIN 操作完成的。在关系代数中,它表示为 σp(T),对于任何给定的表(T)。
示例
在此示例中,我们将了解水平碎片化在表中的外观。
输入
学生
id name age salary 1 aman 21 20000 2 naman 22 25000 3 raman 23 35000 4 sonam 24 36000
示例
SELECT * FROM student WHERE salary<35000; SELECT * FROM student WHERE salary>35000;
输出
id name age salary 1 aman 21 20000 2 naman 22 25000
id name age salary 4 soman 24 36000
水平碎片化有三种类型:主碎片化、派生碎片化和完整水平碎片化
A: 主水平碎片化:它是在行方式下使用一组条件分割单个表的过程。
示例
此示例演示了如何使用带条件的 Select 语句提供输出。
SELECT * FROM student SALARY<30000;
输出
id name age salary 1 aman 21 20000 2 naman 22 25000
B: 派生水平碎片化:从主关系派生的碎片化。
示例
此示例演示了如何使用 where 子句的 Select 语句提供输出。
SELECT * FROM student WHERE age=21 AND salary<30000;
输出
id name age salary 1 aman 21 20000
C: 完整水平碎片化:它派生一组水平碎片,以使表至少具有一部分。
垂直碎片化
它将表垂直划分为一组列,以创建表的多个碎片或子集。然后,这些碎片可以分配到数据库中的不同站点。重建是使用全外部联接操作完成的。
示例
此示例演示了如何使用 Select 语句进行碎片化并提供输出。
输入表
学生
id name age salary 1 aman 21 20000 2 naman 22 25000 3 raman 23 35000 4 sonam 24 36000
示例
SELECT * FROM name;#fragmentation 1 SELECT * FROM id, age;#fragmentation 2
输出
name aman naman raman sonam
age 21 22 23 24
混合或混合碎片化
它是通过同时执行水平和垂直分区来完成的。它是关系中的一组行和列。
示例
此示例演示了如何使用 where 子句的 Select 语句提供输出。
SELECT * FROM name WHERE age=22;
输出
name age naman 22
数据复制
数据复制意味着创建副本,即数据在多个位置复制以提高数据的可用性。它用于消除同一数据之间的不一致性,从而导致分布式数据库,以便用户可以执行其任务而不会中断其他用户的操作。
数据复制类型
事务复制
它创建数据库的完整副本以及更改后的数据。事务一致性得到保证,因为数据顺序在从发布者复制到订阅者数据库时是相同的。它在服务器到服务器的环境中使用,通过一致且准确地复制数据库中的更改。
快照复制
这是最简单的一种类型,它以特定时刻出现的方式分发数据,而不管数据中的任何更新如何。它复制数据的“快照”。当数据库更改不频繁时,它很有用。它比事务复制慢,因为数据是从一端到另一端批量发送的。它通常用于订阅者不需要更新数据并且处于只读模式的情况。
合并复制
它将来自多个数据库的数据合并到单个数据库中。这是最复杂类型的复制,因为发布者和订阅者都可以进行数据库更改。它用于服务器到客户端的环境,并将更改从一个发布者发送到多个订阅者。
数据分配
它是决定在数据库中的确切位置存储数据的过程。还涉及关于哪种类型的数据必须存储在哪个特定位置的决策。数据分配的三种主要类型是集中式、分区式和复制式。
集中式:整个数据库存储在单个站点。不会发生数据分布
分区式:数据库被划分为不同的碎片,这些碎片存储在多个站点。
复制式:数据库的副本存储在不同的位置以访问数据。
结论
本文分为三个部分。第一部分介绍数据碎片化,它将数据划分为子表并将其存储在不同的位置。数据碎片化的类型包括水平碎片化,它将表水平划分为行组,然后是垂直碎片化,它将表垂直划分为列组,最后是混合碎片化,它是通过同时执行水平和垂直分区来完成的。第二部分介绍数据复制,其中数据在多个位置复制。复制类型包括事务复制,它创建数据库的完整副本以及发生的更改,然后是快照复制,它复制数据的快照以进行分发,最后是合并复制,它将数据合并到单个数据库中。第三部分介绍数据分配,它告诉我们存储数据的位置。