分布式数据库的数据碎片、复制和分配技术


数据碎片

将数据库划分为多个较小的部分或子表的过程称为碎片化。较小的部分或子表称为碎片,并存储在不同的位置。数据碎片化应以能够从碎片重建原始父数据库的方式进行。可以使用 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

数据复制

数据复制意味着创建副本,即数据在多个位置复制以提高数据的可用性。它用于消除同一数据之间的不一致性,从而导致分布式数据库,以便用户可以执行其任务而不会中断其他用户的操作。

数据复制类型

事务复制

它创建数据库的完整副本以及更改后的数据。事务一致性得到保证,因为数据顺序在从发布者复制到订阅者数据库时是相同的。它在服务器到服务器的环境中使用,通过一致且准确地复制数据库中的更改。

快照复制

这是最简单的一种类型,它以特定时刻出现的方式分发数据,而不管数据中的任何更新如何。它复制数据的“快照”。当数据库更改不频繁时,它很有用。它比事务复制慢,因为数据是从一端到另一端批量发送的。它通常用于订阅者不需要更新数据并且处于只读模式的情况。

合并复制

它将来自多个数据库的数据合并到单个数据库中。这是最复杂类型的复制,因为发布者和订阅者都可以进行数据库更改。它用于服务器到客户端的环境,并将更改从一个发布者发送到多个订阅者。

数据分配

它是决定在数据库中的确切位置存储数据的过程。还涉及关于哪种类型的数据必须存储在哪个特定位置的决策。数据分配的三种主要类型是集中式、分区式和复制式。

集中式:整个数据库存储在单个站点。不会发生数据分布

分区式:数据库被划分为不同的碎片,这些碎片存储在多个站点。

复制式:数据库的副本存储在不同的位置以访问数据。

结论

本文分为三个部分。第一部分介绍数据碎片化,它将数据划分为子表并将其存储在不同的位置。数据碎片化的类型包括水平碎片化,它将表水平划分为行组,然后是垂直碎片化,它将表垂直划分为列组,最后是混合碎片化,它是通过同时执行水平和垂直分区来完成的。第二部分介绍数据复制,其中数据在多个位置复制。复制类型包括事务复制,它创建数据库的完整副本以及发生的更改,然后是快照复制,它复制数据的快照以进行分发,最后是合并复制,它将数据合并到单个数据库中。第三部分介绍数据分配,它告诉我们存储数据的位置。

更新于: 2023年7月13日

16K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告