分散式資料庫管理系統 - 設計策略



在上一章中,我們介紹了不同的設計方案。本章我們將學習有助於採用這些設計的策略。這些策略可以大致分為複製和分片。但是,在大多數情況下,兩者結合使用。

資料複製

資料複製是在兩個或多個站點儲存資料庫的單獨副本的過程。它是分散式資料庫中一種流行的容錯技術。

資料複製的優點

  • 可靠性 - 如果任何站點發生故障,資料庫系統仍然可以工作,因為在其他站點(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";

混合分片

在混合分片中,結合使用水平和垂直分片技術。這是最靈活的分片技術,因為它生成的碎片包含最少的冗餘資訊。但是,重建原始表通常是一項代價高昂的任務。

混合分片可以透過兩種替代方式完成:

  • 首先,生成一組水平分片;然後從一個或多個水平分片生成垂直分片。

  • 首先,生成一組垂直分片;然後從一個或多個垂直分片生成水平分片。

廣告