分散式資料庫的資料碎片、複製和分配技術


資料碎片

將資料庫劃分為多個較小的部分或子表的過程稱為碎片化。較小的部分或子表稱為碎片,並存儲在不同的位置。資料碎片化應以能夠從碎片重建原始父資料庫的方式進行。可以使用 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+ 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.