第24章 數據庫的發展方向(1 / 3)

9.1 分布式數據庫係統

數據庫技術作為信息技術的有機組成,有十分重要的地位,並在需求驅動下得到很大的發展。

本章主要介紹的內容包括:將分布式技術與數據庫技術相結合形成的分布式數據庫技術;將並行技術與數據庫技術相結合形成的並行數據庫技術。實際上,在數據庫家族成員中還有很多新的成員,例如:對象數據庫、知識庫、模糊數據庫、多媒體數據庫、空間數據庫、統計數據庫等。可以認為,數據庫技術已經成為當前信息技術的基本內容,並已成為計算機應用係統和計算機信息係統的基礎和核心。

由於數據庫家族的技術內容豐富,現僅就最常用和常見的兩種做簡要介紹,掌握這些知識是對數據庫知識的進一步了解。

9.1.1 分布式數據庫係統的定義

分布式數據庫是由一組數據組成的,這組數據分布在計算機網絡的不同計算機上,網絡中的每個結點具有獨立的數據庫係統,它有自己的數據庫,自己的用戶,自己的CPU,運行自己的DBMS,執行局部應用,具有獨立處理的能力。同時,每個結點也能通過網絡執行全局應用。每個場地是具有高度的自治性,同時又相互協作組成一個整體。數據在物理上分布在各自的結點上,但邏輯上則是屬於同一個數據庫係統。對於用戶來說,一個分布式數據庫係統邏輯上與一個集中式數據庫係統一樣,用戶可以在任何一個場地執行全局應用。

從上述定義可以看到,分布式數據庫主要強調分布性和邏輯整體性。分布性是指數據庫的數據不存儲在同一計算機的存儲設備上,這與集中式數據庫有區別;邏輯整體性是指這些數據邏輯上是互相聯係的一個整體,即邏輯上與集中式數據庫相同。

9.1.2 分布式數據庫係統的特點

分布式數據庫係統是在集中式數據庫係統的基礎上發展起來的,它具有自己的性質和特征。集中式數據庫的許多概念和技術(如數據獨立性,數據共享和減少冗餘度,並發控製,完整性,安全性和恢複等)在分布式數據庫係統中都有了不同的更加豐富的內容。

1.數據獨立性

數據獨立性是數據庫追求的主要目標之一。在集中式數據庫中,數據獨立性包括兩方麵:數據的邏輯獨立性與數據的物理獨立性,其含義是用戶程序與數據的全局邏輯結構與數據的存儲結構無關。

在分布式數據庫中,數據獨立性這一特性更加重要,並具有更多的內容。除了數據的邏輯獨立性與物理獨立性外,還有數據的分布獨立性,也稱分布透明性(Distribution Transparency)。分布透明性指用戶不必關心數據的邏輯分片,不必關心數據物理位置分布的細節,也不必關心重複副本(冗餘數據)一致性問題,同時也不必關心局部場地上數據庫支持哪種數據模型。分布透明性也可以歸入數據的物理獨立性範圍。

分布透明性的優點是很明顯的。有了分布透明性,用戶的應用程序書寫起來就如同數據沒有分布一樣。當數據從一個場地移到另一個場地時不必改寫應用程序,當增加某些數據的重複副本時也不必改寫應用程序。數據分布的信息由係統存儲在數據字典中,用戶對非本地數據的訪問請求由係統根據數據字典予以解釋,轉換,傳送。

在集中式數據庫中,數據獨立性是指通過係統的三級模式(外模式、模式和內模式)和它們之間的二級映像保證的。在分布式數據庫係統中,分布透明性是通過引入新的模式和模式間的映像保證的。

2.集中與自治共享結合的控製結構

數據庫中的數據是共享的資源,數據的共享有兩個層麵:一是局部共享,即在局部數據庫中存儲供本地多用戶共享的數據;二是全局共享,即在分布式數據庫的各個場地同時存儲供其他場地的用戶共享的數據,支持係統的全局應用。因此,相應的控製機構也有兩個層麵:集中和自治。各局部的DBMS可以獨立地管理局部數據庫,具有自治的功能;同時,係統又設有集中控製機製,協調各個局部DBMS的工作,執行全局應用。

當然,不同的係統,集中和自治的程度不盡相同。有些係統高度自治,連全局應用事務的協調都由局部DBMS和局部DBA共同承擔,而不設全局DBA。有些係統則集中控製程度較高,場地自治功能較弱。

3.適當增加數據冗餘度

在集中式數據庫中,係統的目標之一是盡量減少冗餘。原因是冗餘數據浪費存儲空間,而且容易造成副本之間的不一致。為了保證數據的一致性,需要付出一定的維護代價。數據共享可以減少冗餘度。而在分布式數據庫中卻希望增加冗餘數據,在不同的場地存儲同一數據的不同副本,其原因如下。

提高係統的可靠性,可用性。當某一場地出現故障時,係統可以對另一場地上的相同副本進行操作,不會因一處故障而造成整個係統的癱瘓。

提高係統性能。係統可以根據距離選擇用戶最近的數據副本進行操作,減少通信代價,改善整個係統的性能。

冗餘副本之間數據不一致性的問題是分布式數據庫必須著力解決的問題。一般地講,增加冗餘度方便了檢索,提高了係統的可用性,可靠性,但不利於更新,增加了係統維護的代價,因此應在這方麵作出權衡,進行優化。

4.全局的一致性、可恢複性和並發操作的可串行性

分布式數據庫中各數據庫應滿足集中式數據庫的一致性、可恢複性和並發操作的可串行性。除此之外還應保證數據庫的全局一致性,並發操作的可串行性和係統的全局可恢複性。因為全局應用要涉及兩個以上結點的數據,所以分布式數據庫係統中一個事務可能由不同結點的多個操作組成。如銀行轉賬事務包括兩個結點上的數據更新,這樣,當其中某一個結點出現故障操作失敗後如何使另一個結點撤銷已執行操作?這些技術要比集中式數據庫複雜和困難的多,分布式數據庫係統必須解決這些問題。

9.1.3 分布式數據庫係統的結構

從整體上可以分為兩大部分:下麵是集中式數據庫的模式結構,代表各結點上局部數據庫係統的基本結構;上麵是分布式數據庫係統增加的模式級別。

1.四級模式

分布式數據庫係統的模式結構包括下列四級模式。

(1)全局外模式:全局應用的用戶視圖,是全局概念模式的子集。

(2)全局概念模式:定義分布式數據庫中數據的整體邏輯結構,全局概念模式中所用的數據模型應該易於向關係模型轉換。全局概念模式定義了一組全局關係。

(3)分片模式:每一個全局關係可以分為若幹個不相交的部分,每一部分稱為一個片段。分片模式定義了全局關係到片段的映像,一個片段來自一個全局關係,而一個全局關係可以對應多個片段。

(4)分布模式:片段是全局關係的邏輯部分,一個片段在物理上可以分布到網絡的不同結點上。分布模式定義了片段存放結點的映像。若映像是一對多的,即一個片段分布到多個結點上存放,則是冗餘的分布式數據庫,若映像是一對一的,則是非冗餘的分布式數據庫。

根據分布模式提供的信息,一個全局查詢可以分解為多個子查詢,每一個子查詢要訪問的數據屬於同一結點的局部數據庫,通過分布模式到各局部數據庫的映像把存儲在局部場地的全局關係的片段轉換成局部場地的DBMS所支持的數據模型。

分片模式和分布模式均是全局的,分布式數據庫係統中增加的這些模式和相應的映像使分布式數據庫係統具有了分布透明性。

2.數據分片

將數據分片,使數據存放的基本單位不是關係而是片段,既有利於數據的分布,也有利於控製數據的冗餘度。分片的方式有多種,水平分片和垂直分片是兩種基本的分片方式。

水平分片是指按一定的條件將關係按行(水平方向)分為若幹個子集,每個子集為關係的一個片段。

垂直分片是指將關係按列(垂直方向)分為若幹個子集。垂直分片的片段必須能夠重構原來的全局關係,即用連接的方法可恢複關係,因此垂直分片的諸片段通常都包含關係的碼。

3.分布透明性

從模式結構可以看到分布透明性包括分片透明性、位置透明性和局部數據模型透明性。

分片透明性是指用戶或應用程序隻對全局關係進行操作而不必考慮關係的分片。當分片模式改變時,隻需要修改全局模式到分片模式的映像,而全局關係和應用程序都不必修改。分片透明性是分布透明性的最高層次。

位置透明性是指用戶或應用程序不必了解片段的存儲場地。當存儲場地改變了,隻需要修改分片模式到分布模式的映像,應用程序不必修改。位置透明性是分布透明性的下一個層次。

局部數據模型透明性是指用戶或用戶程序不必了解局部結點上使用的是哪種數據模型,模型的轉換及語言的轉換均由分布模式到各局部數據庫的映像完成。