祁 迪(91336部隊,河北 秦皇島 066326)
?
分布式數據庫特點及其設計方法
祁迪
(91336部隊,河北秦皇島066326)
摘 要:分布式數據庫系統的誕生為現代化企業(yè)的數據存儲提供了新的思路。本文闡述了分布式數據庫的概念、架構及其典型特征,在此基礎上討論了分布式數據庫的設計方法。
關鍵詞:分布式;數據庫;設計
隨著社會經濟的發(fā)展,許多大企業(yè)、大集團等在許多區(qū)域甚至全球設立分支機構,對于這樣的企業(yè)或單位,數據按實際需要已在網絡上分布存儲,當采用集中式數據庫存儲時,其他地點對數據進行訪問會產生大量的網絡傳輸,網絡會變得非常擁擠,進而產生延遲、錯誤等問題。分布式數據庫系統正是在計算機、網絡等相關技術的不斷發(fā)展和實際應用需求日益強烈等因素推動下產生的,它是數據庫系統和計算機網絡相結合的產物,網絡可以將各地分散的數據連接起來,從而實現對數據的“分散管理,集中控制”,達到不同層次的數據共享。
分布式數據庫系統是通過網絡將物理上分散的數據庫連接起來,并使用分布式數據庫管理系統對其進行集中管理和控制。這些物理上分散的數據庫可能相隔甚遠,但在邏輯上卻是一個統一的整體,并統一由一個分布式數據庫管理系統進行管理。
與集中式數據庫不同,分布式數據庫系統中與網絡聯結的每一個數據庫系統稱為一個站點,每個站點都是獨立的完整的數據庫應用系統,由數據庫、數據庫管理系統和用戶構成。每個站點擁有的數據庫稱為局部數據庫,所有站點的數據庫共同構成邏輯上統一的數據庫,稱為全局數據庫,局部數據庫由局部數據庫管理系統進行管理,全局數據庫由全局數據庫管理系統進行管理。只訪問本地站點的用戶稱為局部用戶,訪問兩個或兩個以上站點數據的用戶稱為全局用戶。
通過了解分布式數據庫系統的概念與架構,可以看出分布式數據庫系統應該具有以下特征:
(1)物理上分布但邏輯上整體。分布式數據庫系統中的數據不是存儲在一個站點上的,而是分散地存儲在由計算機網絡連接起來的若干個站點上,只是這種分散存儲對用戶來說是感覺不到的。這些分布存儲的數據在邏輯上構成一個整體,并由一個統一的分布式數據庫管理系統管理,且被所有的用戶共享。正是因為邏輯的統一性,才使得數據的物理分布對用戶來說是透明的。
(2)站點自治與集中控制相結合。站點自治是指各站點上的數據均由本地的DBMS管理,并完成基于本地的應用。這一層次的數據共享發(fā)生在站點內,即該站點的所有用戶均可訪問本站點的數據庫,稱為局部數據共享。另一方面,系統中的所有數據庫均授受一個統一的全局數據庫管理系統的管理。全局用戶可以通過全局數據庫管理系統訪問其他站點上存儲的數據,完成全局應用。
(3)數據分片和分布的透明性。數據分片和分布的透明性是分布式數據庫系統中實現數據獨立性的基本要求。數據分片與分布的獨立性是指數據庫中各表的邏輯分片及在各站點上的分布對于用戶來說是透明的,用戶不必知道自己訪問的數據是從哪個具體站點中得來的,會認為自己訪問的是一個數據庫。
(4)系統中保留適當的數據冗余。數據庫設計需要減少冗余以降低維護數據完整性的代價,但在分布式數據庫管理系統中提倡冗余存儲,以保證系統的可靠性。當把數據片段存儲在多個站點上時,當一個站點發(fā)生故障時,其余站點仍能繼續(xù)支持數據訪問操作。當然,數據冗余帶來的問題是副本的一致性問題,因此需要制定合理的冗余策略及相應的一致性保證機制。
(5)事務管理的分布性。數據的分布性形成事務管理的分布性。如果一個查詢涉及的數據可能在多個站點中,此時該查詢事務將會分解成在多個站點執(zhí)行的子查詢事務。如果一個更新操作多個站點,則更新事務也會分解成在多個站點執(zhí)行的子事務。當事務需要分解成在多個站點執(zhí)行的子事務時,則事務的原子性、一致性、持久性和隔離性就會面臨新的問題。如何對事務進行分布管理便成了必須著力解決的問題,否則無法保證系統的可用性。
4.1設計目標
(1)盡量保證應用的本地性。對于分布式數據庫系統,各站點之間的通信次數及數據傳輸量對訪問效率的影響很大,因此訪問數據盡量在本地獲取,如果本地站點沒有,則盡量在離其最近的通信狀態(tài)最好的站點獲取,從而減少站點間的通信次數和數據傳輸量。在設計數據庫時,要將數據分配在與其密切相關的應用站點上或者靠近這些站點,使應用最大程度地本地化。
(2)適當的數據冗余。數據冗余保證系統的可用性和可靠性的同時,也是保證應用本地性的重要途徑。但數據冗余太多,會使維護各站點同步更新的開銷增加,因此分布式數據庫系統在設計時需要對數據冗余把握有度。
(3)站點負載平衡。負載平衡即將工作負荷合理地分布在網絡中的各個站點上,不讓某些站點過于疲憊,也不讓其他一些站點過于閑置,從而充分發(fā)揮每個站點的計算能力,提高應用執(zhí)行和數據傳輸的并行程度,增強系統的整體性能。因此,如何最合理地利用各個節(jié)點的運算存儲資源是平衡負載的關鍵。
(4)存儲能力。在分布式數據庫系統中,各站點的存儲能力并不相同,有的站點存儲容量大,有的站點存儲能力有限,所以必須考慮各站點可用存儲空間的條件,合理分配有限的空間資源。
4.2構建方法
根據是否基于各站點已有的數據庫系統,分布式數據庫系統的構建方法有兩種:組合法和重構法。
(1)組合法。組合法是利用現有的計算機網絡和獨立存在于各站點的原有數據庫系統,構建一個分布式協調管理系統,并將這些獨立的數據庫系統集成在一起,形成邏輯上統一的分布式數據庫系統。組合法是基于各站點已有的數據庫系統進行的一種自底向上的創(chuàng)建方法。此方法需要對原有的網絡系統進行剖析,對各站點上原有的數據庫系統進行剖析,還要對數據的一致性、完整性及可靠性進行剖析,并且一般針對的是異構型數據系統,即它們的DBMS或數據模型不同,需要解決數據模型的轉換問題以及各DBMS的互聯問題。
(2)重構法。重構法是從無到有建立分布式數據庫系統的方法。該方法與集中式數據庫系統的建立過程極為相似,均從對用戶的需求分析開始,設計數據庫的全局概念模式、分布模式、局部概念模式等,一步一步完成分步式數據庫系統的設計和創(chuàng)建。重構法采用自頂向下的建立方法,按統一的思想考慮分布式數據庫系統中的各種問題,從而能夠較好地解決分布式數據庫系統的完整性、一致性和可靠性。重構法具有建設周期長、花費的人力物力大的特點,這種方法建立的分布式數據庫系統一般是同構同質型或同構異質型,同構同質型是數據庫的數據模型和DBMS都相同,同構異質型是數據庫的數據模型相同而DBMS不全相同。
4.3設計方法
根據分布式數據庫系統的構建方法,相對應的分布式數據庫系統的設計方法有兩種:自頂向下的設計和自底向上的設計。
自頂向下的設計是設計者通過理解用戶的應用需求實現數據庫從邏輯到物理的轉變過程。在此過程中,數據庫設計者經歷概念模型的設計、邏輯模型的設計、物理設計等,并逐步將數據從現實中抽取出來,進行從高級格式到低級格式直到與計算機系統相關的格式描述。
自底向上的方法則是設計者通過理解各站點原有的數據庫系統的規(guī)格說明,產生一個全局的數據規(guī)格說明,從而設計出系統的全局概念模型。
以上兩種方法并不是孤立的,在一個分布式數據庫設計過程中,設計者一般會結合兩種方法進行數據庫的設計,首先從總體上進行自頂向下的分析設計,然后自底向上進行考察,以確定設計中是否存在不合理的地方,從而進行修改,如此反復進行,最終得到一個完美的解決方案。
分布式數據庫系統近年來一直是人們關注的熱點問題,如何通過網絡建立起既能自治又能共享、具有高可靠性、能相互協作處理訪問的數據庫系統,是下一步需要思考與解決的問題。隨著研究的深入,分布式數據庫技術一定會越來越完善,在實際應用中發(fā)揮更大的作用。
參考文獻:
[1]邵佩英.分布式數據庫系統及其應用[M].北京:科學出版社,2000:7-8.
[2]肖凌,劉繼紅,姚建初.分布式數據庫系統的研究與應用[J].計算機工程2001,27(01):33-35.
[3]李文虎.分布式數據庫系統的設計淺析[J].科技資訊,2009(34).
[4]杜金蓮.高級數據庫技術[M].北京:清華大學出版社,2013:272-274.
[5]呂玲玲.數據庫技術的發(fā)展現狀與趨勢[J].信息與電腦,2011(08):118-120.
作者簡介:祁迪(1991-),男,陜西涇陽人,本科,助理工程師,研究方向:數據庫設計以及軟件開發(fā)分布式數據庫特點及其設計方法。
DOI :10.16640/j.cnki.37-1222/t.2016.01.137