摘要:通過對集中式數據庫和分布式數據庫進行比較,指出集中式數據庫在存儲能力、訪問速度等方面存在的問題;對分布式數據庫中的數據復制和分片的概念、原則、方法進行了詳細的論述;最后對數據復制和分片要解決的關鍵問題進行了分析。
關鍵詞:集中式數據庫;分布式數據庫;數據復制;數據分片;數據透明性
中圖分類號:TP311.133文獻標識瑪:B 文章編號:1009-3044(2008)26-1633-02
Analysis of data replication and fragmentation in Distributed Database
YAN Qiu-ling1, ZHU Jun-tao2
(1.College of Information Science and Technology, Henan University of Technology ,Zhengzhou 450001,China;2.Zhengzhou Railway vocational and Technical College, Zhengzhou 450052,China)
Abstract: This paper compares distributed database with centralized database, and anaysises the problems in the storage and access speed of centralized database. In this paper, we give the concept of data replication and fragmentation in distributed database ,as well as principles and methods. Finally, we analysis the key problems data replication and fragmentation solved.
Key words:centralized database; distributed database; data replication; data fragmentation; data transparency
1 引言
在集中式數據庫中,將所有數據集中存儲到一臺計算機上,由主機上的數據庫管理系統統一管理整個數據庫,用戶可從終端上發出數據操作命令,經主機上的數據庫管理系統接收處理后,將結果數據返回給用戶。隨著企業規模越來越大,企業分布于物理位置不同的多個地方,尤其是一些跨國公司,在全球有很多的分公司。采用集中式數據庫的體系結構,位于多個位置的站點要訪問一個存放數據的主機,這樣,對主機的要求[1]就很高:首先,當企業規模很大,數據量很大時,數據僅僅存放在一臺計算機上,該計算機的存儲空間就要求很高,通常是一個中型機或者小型機,而這樣的配置通常費用會很高。其次,當多個計算機同時訪問該主機時,會造成訪問速度很慢,性能下降,這種速度有時甚至是難以忍受的。最后,過多的依賴于中間的主機節點,一旦該節點出現故障,會使整個系統處于崩潰狀態。
2 分布式數據庫的特點
基于上面的這些原因,集中式的結構不能適應當前的物理位置上分散的要求。分布式數據庫是物理上分散而邏輯上集中的數據庫系統。它有這樣的一些優點:1)物理分布性 數據按照就近原則,存放在距離它最近的一個或者多個站點;2)邏輯整體性 雖然數據存放在各個不同的站點,但將各個站點的數據集合起來,仍然是集中式中的整個數據庫中的數據;3)站點的自治性 相互的站點之間不存在主從關系,地位是平等的,任何一個站點出現問題,不影響其它站點,每個站點上的數據由本地的數據庫管理系統來進行管理。
分布式數據庫系統通過把分布在計算機網絡的不同結點或場地,物理上屬于多個數據子集,邏輯上屬于同一系統之數據集合的海量數據實現數據應用,以實現比集中式數據庫系統更好的性能、可擴充性、可用性和自治性。從數據意義上講,數據分布即數據分片與分配的合理與否或者說合理性的高低,不僅影響著訪問的局部性,即盡可能地把用戶要求訪問的數據就在本結點或本場地,而且也制約著數據查詢及事務處理的效率。
要實現分布式系統,必須要對數據進行復制和分片[2]。所謂復制,就是將數據存放在多個站點上,這樣,在一個站點出現故障時,可以通過訪問存放在另外站點上的副本,仍然可以正常工作。分片就是系統把數據劃分為幾個片,各片存儲在不同的分片上。在實際應用中,通常是將兩者結合在一起,先對數據進行分片,然后將分片進行復制。
3 數據復制和分片
3.1 數據復制和分片的目的
將數據進行分片和復制后存放在多個站點上[3],當一個站點發生故障時,整個系統仍然可以正常工作,提高整個系統的可用性和可靠性。
3.2 數據分片的原則[4]
設全局關系R被劃分為邏輯片段S={S1,S2,… ,Sn},則S滿足:
1)完整性:所有的分片S1,S2,…,Sn應該可以組合成一個整體S;
2)不相交性:各個分片都應該是不相交的;
3)重構性:所有的分片應該可以重構成原來的關系R。
3.3分片的方法
通常有兩種基本的方法:水平分片和垂直分片。
1)水平分片:一個表T被分成若干片:T1,T2,…,Tn,其中每個片包含T的一部分行并且T的每一行都會出現在一個片中。
2)垂直分片:一個表T被分成若干片: T1,T2,…,Tn,每片包含T的一部分列。每一列必須至少被一個片包含,并且每個片必須包含候選碼的列。(值得注意的是,在垂直分片中,為了以后可以重構的需要,必須在每個分片中包括候選鍵的屬性列[5]。)
4 數據分配
4.1 數據分配
所謂數據分配,就是將分片的數據放在多個站點,利用冗余[6]來達到系統的最大可用性和可靠性。將分片的副本放在多個站點,當本地系統要訪問數據時,首先判斷該數據是本地的數據還是其他站點的數據,如果是本地的數據,就直接可以在本地進行讀取。這樣就縮短了系統的響應時間。當要訪問的數據的站點發生故障不可用時,系統可以直接訪問其副本所在的站點,以此來達到系統的最大可用性。
4.2 數據分配的原則
1)處理局部性 將數據盡量放在本地站點及其相鄰的站點,這樣可以在一定程度上減少站點之間的通信代價。
2)各個站點負荷的平衡性 使各個站點的負荷(各個站點所負擔的全局任務和局部任務)均勻化,提高各站點的本地和全局應用,盡量提高各站點的并行性。
5 數據透明性
數據透明性是指對于用戶而言,并不需要知道數據的存儲情況,分片情況以及位置情況。
數據透明性包括三個方面:
1)分片透明性(fragmentation transparency) 指的是用戶或應用程序不用去考慮關系是如何分片以及具體的分片情況,就可以對全局關系進行操作;
2)復制透明性(replication transparency) 指的是用戶并不需要知道數據的副本存放在哪個或哪幾個站點;
3)位置透明性(location transparency)指的是用戶或者應用程序不用去考慮邏輯片斷存儲在哪個具體的結點。
6 數據復制和分片產生的問題
分布式數據庫中,進行數據復制和分片可以有效的提高物理分散站點之間訪問的速度,提高系統的可用性。但是也產生了如何保持多個分布的一致性和副本更新的一致性[7],以及事務管理的問題。
1)保持多副本的一致性:保持多副本的一致性,也就是使得當對一個數據進行更新時,要保證其所有的副本的數據也得到更新,并且所有的副本的數據是一致的。進行數據的復制,提高了讀操作的性能,在很大程度上保證了站點的可用性,但是卻增加了更新時的開銷,從而造成系統效率下降。
2)保持分布的一致性:數據被更新之后,使得數據的原有分片不再從邏輯上是一個整體。比如將全校學生按照系別進行分片,數學系的張三因為轉系到計算機系,導致其系別屬性值變為“計算機”,而他的信息因為分片的原因,仍然存放在“數學系”的分片中。導致“數學系”的分片從邏輯上不在是一個整體。
3)分布事務管理:由于數據是分布在不同站點的,對數據的更新操作也應該是分布的,這涉及到并發控制和恢復的問題。也就是保證對數據進行更新時,要把所有的數據都更新。一旦有一個副本沒有更新,那么整個事務處理失敗。
7 結束語
分布式數據庫系統符合當今社會發展的趨勢,為物理上分散,邏輯上集中的企業提供了很好的體系結構[8]。具有靈活的體系結構,可靠性高,可用性好,資源利用率高等優點。數據的復制和分片是進行分布式數據庫設計的重要環節,直接影響分布式數據庫的應用。然而,隨著各個分片放在不同的站點上,產生了很多在集中式數據庫情況下所沒有的問題。直到目前為止,許多技術上的問題仍然沒有有效的解決,需要我們投入更多的精力進行更多的研究。
參考文獻:
[1] 田俊峰,王子賢,肖冰.分布式數據庫服務器的可信性研究.[J].計算機工程與應用.2007,43(4):181-185.
[2] 楊晶,劉天時,馬剛.分布式數據庫數據分片與分配[J].現代電子技術.2006,29(18):119-121.
[3] 劉廣鐘,劉方鑫.分布式數據庫系統中數據分布模型的研究與建立[J].小型微型計算系統,2001,22(1):7-10.
[4] 肖凌,劉繼紅.分布式數據庫系統的研究與應用[J].計算機工程.2001,27(1):33-35.
[5] Silberschatz A, Korth H F, Sudarshan S.Database Concept.3rd ed[M]. 北京:機械工業出版社,2000.
[6] Hoffer J A,Prescott M B,著,袁方,羅文劼,李寧,譯.現代數據庫管理[M].7版.北京:電子工業出版社,2006.
[7] (美)Ponniah P,韓宏志.Database Design and Development: An Essential Guide for IT Professionals[M].北京:清華大學出版社,2005.
[8] 周龍驤.分布式數據庫管理系統實現技術[M].北京:科學出版社,1999.