分散式資料庫系統

分散式資料庫系統

分散式資料庫系統(Distributed Database System)由分佈於若干個計算機結點上的若干子資料庫系統所組成的資料庫系統。它提供有效的存取手段來操縱這些子資料庫,分散式資料庫在使用上可視為一個完整的資料庫,而實際它是分佈在地理上分散的各個節點上。分佈在各個節點上的子資料庫在邏輯上是相關的,操縱這些子資料庫的軟體稱為分散式資料庫管理系統(DDBMS)。

系統定義


一個分散式資料庫在邏輯上是一個統一的整體,在物理上則是分別存儲在不同的物理節點上。一個應用程序通過網路的連接可以訪問分佈在不同地理位置的資料庫。它的分佈性表現在資料庫中的數據不是存儲在同一場地。更確切地講,不存儲在同一計算機的存儲設備上。這就是與集中式資料庫的區別。從用戶的角度看,一個分散式資料庫系統在邏輯上和集中式資料庫系統一樣,用戶可以在任何一個場地執行全局應用。就好像那些數據是存儲在同一台計算機上,有單個資料庫管理系統(DBMS)管理一樣,用戶並沒有什麼感覺不一樣。
分散式資料庫系統是在集中式資料庫系統的基礎上發展起來的,是計算機技術和網路技術結合的產物。分散式資料庫系統適合於單位分散的部門,允許各個部門將其常用的數據存儲在本地,實施就地存放本地使用,從而提高響應速度,降低通信費用。分散式資料庫系統與集中式資料庫系統相比具有可擴展性,通過增加適當的數據冗餘,提高系統的可靠性。在集中式資料庫中,盡量減少冗餘度是系統目標之一。其原因是,冗餘數據浪費存儲空間,而且容易造成各副本之間的不一致性。而為了保證數據的一致性,系統要付出一定的維護代價。減少冗餘度的目標是用數據共享來達到的。而在分散式資料庫中卻希望增加冗餘數據,在不同的場地存儲同一數據的多個副本。其原因是:①提高系統的可靠性、可用性當某一場地出現故障時,系統可以對另一場地上的相同副本進行操作,不會因一處故障而造成整個系統的癱瘓。②提高系統性能系統可以根據距離選擇離用戶最近的數據副本進行操作,減少通信代價,改善整個系統的性能。

系統結構


從結構上分,分散式資料庫系統可分為兩類:全局型分散式資料庫系統和聯邦型分散式資料庫系統。
全局型分散式資料庫系統是最常用的類型,在這種結構中,一個資料庫以完整的方式分佈在一個計算機網路的各個節點上,節點間的所有信息交換都由系統軟體處理,它對用戶是透明的。這樣結構具有如的下特徵:採用完全分佈方法;允許有多份副本;由分散式資料庫管理系統來控制進程間的同步;系統進行故障恢復處理;系統具有較高性能。
採用這樣結構的分散式資料庫系統中,用戶看到的是一個完整的資料庫,他們不必了解他們的數據所在位置。同樣,對於應用程序而言,通信將在資料庫管理系統中進行,並且由分散式資料庫管理系統來處理。
聯邦型分散式資料庫系統的結構用於以下情況:存在若干個現存的、分離的資料庫節點,且這些資料庫的類型可以相同,也可以不同。這類結構具有如下特徵:分離的資料庫必須在邏輯上以某種方式聯成一個整體,從單個終端用戶的觀點來看,他們要求訪問若干不同的資料庫。但是,不必了解新的介面進程,用戶所需要的是一個“友善的”和與所有查詢相容的介面。同時,事務處理由系統軟體自動進行。
聯邦型結構往往在“更新”情況下採用,因此受到原有軟體的限制。另外,由於開銷原因,也不宜有網路範圍內的“恢復”機制。最後,儘管有NDD和合作的數據字典提供有用的幫助,但用戶通常仍需知道它們數據的存放位置。

主要功能


分散式資料庫管理系統的主要功能如下:
(1)接收用戶請求,並判定送往何處,或必須訪問哪些結點計算機才能滿足該請求。
(2)訪問網路數據字典,或者至少了解如何請求和使用其中的信息。
(3)如果目標數據存在於系統的多個結點計算機上,就可以進行并行處理。
(4)在用戶進程、局部資料庫管理系統和其他計算機的資料庫管理系統之間進行通信服務。
(5)在一個異構型分散式處理環境中,還需要提供數據和進程移植的支持,所謂異構型是指在系統的每個結點上的資料庫系統是有差別的。

主要優點


(1)具有靈活的體系結構。
(2)適應分散式的管理和控制機構。
(3)經濟性能優越。
(4)系統的可靠性高、可用性好。
(5)局部應用的響應速度快。
(6)可擴展性好,易於集成現有系統。

主要缺點


(1)系統開銷大,主要花在通信部分。
(2)複雜的存取結構,原來在集中式系統中有效存取數據的技術,在分散式系統中都不再適用。
(3)數據的安全性和保密性較難處理。

系統目標


分散式資料庫系統的目標,也就是研製分散式資料庫系統的目的、動機,主要包括技術和組織兩方面的目標。

系統特性


適應性

使用資料庫的單位在組織上常常是分佈的(如分為部門、科室、車間等等),在地理上也是分佈的.分散式資料庫系統的結構符合部門分佈的組織結構,允許各個部門對自己常用的數據存儲在本地,在本地錄入、查詢、維護,實行局部控制.由於計算機資源靠近用戶,因而可以降低通信代價,提高響應速度,使這些部門使用資料庫更方便更經濟。

可靠性可用性

改善系統的可靠性和可用性是分散式資料庫的主要目標.將數據分佈於多個場地,並增加適當的冗餘度可以提供更好的可靠性.一些可靠性要求較高的系統,這一點尤其重要.因為一個地出了故障不會引起整個系統崩潰.因為故障場地的用戶可以通過其它場地進入系統.而其它場地的用戶可以由系統自動選擇存取路徑,避開故障場地,利用其它數據副本執行操作,不影響業務的正常運行.

充分性

提高現有集中式資料庫的利用率
當在一個大企業或大部門中已建成了若干個資料庫之後,為了利用相互的資源,為了開發全局應用,就要研製分散式資料庫系統.這種情況可稱為自底向上的建立分散式系統.這種方法雖然也要對各現存的局部資料庫系統做某些改動、重構,但比起把這些資料庫集中起來重建一個集中式資料庫,則無論從經濟上還是從組織上考慮,分散式資料庫均是較好的選擇.

擴展性

當一個單位規模擴大要增加新的部門(如銀行系統增加新的分行,工廠增加新的科室、車間)時,分散式資料庫系統的結構為擴展系統的處理能力提供了較好的途徑:在分散式資料庫系統中增加一個新的結點.這樣做比在集中式系統中擴大系統規模要方便、靈活、經濟得多。
集中式系統中為了擴大規模常用的方法有兩種:一種是在開始設計時留有較大的餘地.這容易造成浪費,而且由於預測困難,設計結果仍可能不適應情況的變化.另一種方法是系統升級,這會影響現有應用的正常運行.並且當升級涉及不兼容的硬體或系統軟體有了重大修改而要相應地修改已開發的應用軟體時,升級的代價就十分昂貴而常常使得升級的方法不可行.分散式資料庫系統能方便地把一個新的結點納入系統,不影響現有系統的結構和系統的正常運行,提供了逐漸擴展系統能力的較好途徑,有時甚至是唯一的途徑。