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