登錄

分布式數(shù)據(jù)庫(kù)

百科 > 信息管理術(shù)語(yǔ) > 分布式數(shù)據(jù)庫(kù)

1.什么是分布式數(shù)據(jù)庫(kù)

  分布式數(shù)據(jù)庫(kù)系統(tǒng)有兩種:一種是物理上分布的,但邏輯上卻是集中的。這種分布式數(shù)據(jù)庫(kù)只適宜用途比較單一的、不大的單位或部門(mén)。另一種分布式數(shù)據(jù)庫(kù)系統(tǒng)在物理上和邏輯上都是分布的,也就是所謂聯(lián)邦式分布數(shù)據(jù)庫(kù)系統(tǒng)。由于組成聯(lián)邦的各個(gè)子數(shù)據(jù)庫(kù)系統(tǒng)是相對(duì)“自治”的,這種系統(tǒng)可以容納多種不同用途的、差異較大的數(shù)據(jù)庫(kù),比較適宜于大范圍內(nèi)數(shù)據(jù)庫(kù)的集成。

2.分布式數(shù)據(jù)庫(kù)的分類

  分布式數(shù)據(jù)庫(kù)系統(tǒng)(DDBS)包含分布式數(shù)據(jù)庫(kù)管理系統(tǒng)(DDBMS)和分布式數(shù)據(jù)庫(kù)(DDB)。在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,一個(gè)應(yīng)用程序可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行透明操作,數(shù)據(jù)庫(kù)中的數(shù)據(jù)分別在不同的局部數(shù)據(jù)庫(kù)中存儲(chǔ)、由不同的DBMS進(jìn)行管理、在不同的機(jī)器上運(yùn)行、由不同的操作系統(tǒng)支持、被不同的通信網(wǎng)絡(luò)連接在一起。

  一個(gè)分布式數(shù)據(jù)庫(kù)在邏輯上是一個(gè)統(tǒng)一的整體,在物理上則是分別存儲(chǔ)在不同的物理節(jié)點(diǎn)上。一個(gè)應(yīng)用程序通過(guò)網(wǎng)絡(luò)的連接可以訪問(wèn)分布在不同地理位置的數(shù)據(jù)庫(kù)。它的分布性表現(xiàn)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)不是存儲(chǔ)在同一場(chǎng)地。更確切地講,不存儲(chǔ)在同一計(jì)算機(jī)的存儲(chǔ)設(shè)備上。這就是與集中式數(shù)據(jù)庫(kù)的區(qū)別。從用戶的角度看,一個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng)在邏輯上和集中式數(shù)據(jù)庫(kù)系統(tǒng)一樣,用戶可以在任何一個(gè)場(chǎng)地執(zhí)行全局應(yīng)用。就好那些數(shù)據(jù)是存儲(chǔ)在同一臺(tái)計(jì)算機(jī)上,有單個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)管理一樣,用戶并沒(méi)有什么感覺(jué)不一樣。

  分布式數(shù)據(jù)庫(kù)系統(tǒng)是在集中式數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)上發(fā)展起來(lái)的,是計(jì)算機(jī)技術(shù)網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫(kù)系統(tǒng)適合于單位分散的部門(mén),允許各個(gè)部門(mén)將其常用的數(shù)據(jù)存儲(chǔ)在本地,實(shí)施就地存放本地使用,從而提高響應(yīng)速度,降低通信費(fèi)用。分布式數(shù)據(jù)庫(kù)系統(tǒng)與集中式數(shù)據(jù)庫(kù)系統(tǒng)相比具有可擴(kuò)展性,通過(guò)增加適當(dāng)?shù)?a href="/wiki/%E6%95%B0%E6%8D%AE%E5%86%97%E4%BD%99" title="數(shù)據(jù)冗余">數(shù)據(jù)冗余,提高系統(tǒng)的可靠性。在集中式數(shù)據(jù)庫(kù)中,盡量減少冗余度是系統(tǒng)目標(biāo)之一。其原因是,冗余數(shù)據(jù)浪費(fèi)存儲(chǔ)空間,而且容易造成各副本之間的不一致性。而為了保證數(shù)據(jù)的一致性,系統(tǒng)要付出一定的維護(hù)代價(jià)。減少冗余度的目標(biāo)是用數(shù)據(jù)共享來(lái)達(dá)到的。而在分布式數(shù)據(jù)庫(kù)中卻希望增加冗余數(shù)據(jù),在不同的場(chǎng)地存儲(chǔ)同一數(shù)據(jù)的多個(gè)副本,其原因是:

  1、提高系統(tǒng)的可靠性、可用性當(dāng)某一場(chǎng)地出現(xiàn)故障時(shí),系統(tǒng)可以對(duì)另一場(chǎng)地上的相同副本進(jìn)行操作,不會(huì)因一處故障而造成整個(gè)系統(tǒng)的癱瘓。

  2、提高系統(tǒng)性能系統(tǒng)可以根據(jù)距離選擇離用戶最近的數(shù)據(jù)副本進(jìn)行操作,減少通信代價(jià),改善整個(gè)系統(tǒng)的性能。

3.分布式數(shù)據(jù)庫(kù)的特性

  1、數(shù)據(jù)獨(dú)立性與位置透明性。數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫(kù)方法追求的主要目標(biāo)之一,分布透明性指用戶不必關(guān)心數(shù)據(jù)的邏輯分區(qū),不必關(guān)心數(shù)據(jù)物理位置分布的細(xì)節(jié),也不必關(guān)心重復(fù)副本(冗余數(shù)據(jù))的一致性問(wèn)題,同時(shí)也不必關(guān)心局部場(chǎng)地上數(shù)據(jù)庫(kù)支持哪種數(shù)據(jù)模型。分布透明性的優(yōu)點(diǎn)是很明顯的。有了分布透明性,用戶的應(yīng)用程序書(shū)寫(xiě)起來(lái)就如同數(shù)據(jù)沒(méi)有分布一樣。當(dāng)數(shù)據(jù)從一個(gè)場(chǎng)地移到另一個(gè)場(chǎng)地時(shí)不必改寫(xiě)應(yīng)用程序。當(dāng)增加某些數(shù)據(jù)的重復(fù)副本時(shí)也不必改寫(xiě)應(yīng)用程序。數(shù)據(jù)分布的信息由系統(tǒng)存儲(chǔ)在數(shù)據(jù)字典中。用戶對(duì)非本地?cái)?shù)據(jù)的訪問(wèn)請(qǐng)求由系統(tǒng)根據(jù)數(shù)據(jù)字典予以解釋、轉(zhuǎn)換、傳送。

  2、集中和節(jié)點(diǎn)自治相結(jié)合。數(shù)據(jù)庫(kù)是用戶共享的資源。在集中式數(shù)據(jù)庫(kù)中,為了保證數(shù)據(jù)庫(kù)的安全性和完整性,對(duì)共享數(shù)據(jù)庫(kù)的控制是集中的,并設(shè)有DBA負(fù)責(zé)監(jiān)督和維護(hù)系統(tǒng)的正常運(yùn)行。在分布式數(shù)據(jù)庫(kù)中,數(shù)據(jù)的共享有兩個(gè)層次:一是局部共享,即在局部數(shù)據(jù)庫(kù)中存儲(chǔ)局部場(chǎng)地上各用戶的共享數(shù)據(jù)。這些數(shù)據(jù)是本場(chǎng)地用戶常用的。二是全局共享,即在分布式數(shù)據(jù)庫(kù)的各個(gè)場(chǎng)地也存儲(chǔ)可供網(wǎng)中其它場(chǎng)地的用戶共享的數(shù)據(jù),支持系統(tǒng)中的全局應(yīng)用。因此,相應(yīng)的控制結(jié)構(gòu)也具有兩個(gè)層次:集中和自治。分布式數(shù)據(jù)庫(kù)系統(tǒng)常常采用集中和自治相結(jié)合的控制結(jié)構(gòu),各局部的DBMS可以獨(dú)立地管理局部數(shù)據(jù)庫(kù),具有自治的功能。同時(shí),系統(tǒng)又設(shè)有集中控制機(jī)制,協(xié)調(diào)各局部DBMS的工作,執(zhí)行全局應(yīng)用。當(dāng)然,不同的系統(tǒng)集中和自治的程度不盡相同。有些系統(tǒng)高度自治,連全局應(yīng)用事務(wù)的協(xié)調(diào)也由局部DBMS、局部DBA共同承擔(dān)而不要集中控制,不設(shè)全局DBA,有些系統(tǒng)則集中控制程度較高,場(chǎng)地自治功能較弱。

  3、支持全局?jǐn)?shù)據(jù)庫(kù)的一致性和和可恢復(fù)性。分布式數(shù)據(jù)庫(kù)中各局部數(shù)據(jù)庫(kù)應(yīng)滿足集中式數(shù)據(jù)庫(kù)的一致性、可串行性和可恢復(fù)性。除此以外還應(yīng)保證數(shù)據(jù)庫(kù)的全局一致性、并行操作的可串行性和系統(tǒng)的全局可恢復(fù)性。這是因?yàn)槿謶?yīng)用要涉及兩個(gè)以上結(jié)點(diǎn)的數(shù)據(jù)。因此在分布式數(shù)據(jù)庫(kù)系統(tǒng)中一個(gè)業(yè)務(wù)可能由不同場(chǎng)地上的多個(gè)操作組成。例如,銀行轉(zhuǎn)帳業(yè)務(wù)包括兩個(gè)結(jié)點(diǎn)上的更新操作。這樣,當(dāng)其中某一個(gè)結(jié)點(diǎn)出現(xiàn)故障操作失敗后如何使全局業(yè)務(wù)滾回呢?如何使另一個(gè)結(jié)點(diǎn)撤銷已執(zhí)行的操作(若操作已完成或完成一部分)或者不必再執(zhí)行業(yè)務(wù)的其它操作(若操作尚沒(méi)執(zhí)行)?這些技術(shù)要比集中式數(shù)據(jù)庫(kù)復(fù)雜和困難得多,分布式數(shù)據(jù)庫(kù)系統(tǒng)必須解決這些問(wèn)題。

  4、復(fù)制透明性。用戶不用關(guān)心數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的復(fù)制情況,被復(fù)制的數(shù)據(jù)的更新都由系統(tǒng)自動(dòng)完成。在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,可以把一個(gè)場(chǎng)地的數(shù)據(jù)復(fù)制到其他場(chǎng)地存放,應(yīng)用程序可以使用復(fù)制到本地的數(shù)據(jù)在本地完成分布式操作,避免通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù),提高了系統(tǒng)的運(yùn)行和查詢效率。但是對(duì)于復(fù)制數(shù)據(jù)的更新操作,就要涉及到對(duì)所有復(fù)制數(shù)據(jù)的更新。

  5、易于擴(kuò)展性。在大多數(shù)網(wǎng)絡(luò)環(huán)境中,單個(gè)數(shù)據(jù)庫(kù)服務(wù)器最終會(huì)不滿足使用。如果服務(wù)器軟件支持透明的水平擴(kuò)展,那么就可以增加多個(gè)服務(wù)器來(lái)進(jìn)一步分布數(shù)據(jù)和分擔(dān)處理任務(wù)。

4.分布式數(shù)據(jù)庫(kù)的目標(biāo)

  分布式數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo),也就是研制分布式數(shù)據(jù)庫(kù)系統(tǒng)的目的、動(dòng)機(jī),主要包括技術(shù)和組織兩方面的目標(biāo)。

  1、適應(yīng)部門(mén)分布的組織結(jié)構(gòu),降低費(fèi)用。使用數(shù)據(jù)庫(kù)的單位在組織上常常是分布的(如分為部門(mén)、科室、車間等等),在地理上也是分布的。分布式數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)符合部門(mén)分布的組織結(jié)構(gòu),允許各個(gè)部門(mén)對(duì)自己常用的數(shù)據(jù)存儲(chǔ)在本地,在本地錄入、查詢、維護(hù),實(shí)行局部控制。由于計(jì)算機(jī)資源靠近用戶,因而可以降低通信代價(jià),提高響應(yīng)速度,使這些部門(mén)使用數(shù)據(jù)庫(kù)更方便更經(jīng)濟(jì)

  2、提高系統(tǒng)的可靠性和可用性。改善系統(tǒng)的可靠性和可用性是分布式數(shù)據(jù)庫(kù)的主要目標(biāo)。將數(shù)據(jù)分布于多個(gè)場(chǎng)地,并增加適當(dāng)?shù)娜哂喽瓤梢蕴峁└玫目煽啃?。一?a href="/wiki/%E5%8F%AF%E9%9D%A0%E6%80%A7" title="可靠性">可靠性要求較高的系統(tǒng),這一點(diǎn)尤其重要。因?yàn)橐粋€(gè)地出了故障不會(huì)引起整個(gè)系統(tǒng)崩潰。因?yàn)楣收蠄?chǎng)地的用戶可以通過(guò)其它場(chǎng)地進(jìn)入系統(tǒng)。而其它場(chǎng)地的用戶可以由系統(tǒng)自動(dòng)選擇存取路徑,避開(kāi)故障場(chǎng)地,利用其它數(shù)據(jù)副本執(zhí)行操作,不影響業(yè)務(wù)的正常運(yùn)行。

  3、充分利用數(shù)據(jù)庫(kù)資源,提高現(xiàn)有集中式數(shù)據(jù)庫(kù)的利用率。當(dāng)在一個(gè)大企業(yè)或大部門(mén)中已建成了若干個(gè)數(shù)據(jù)庫(kù)之后,為了利用相互的資源,為了開(kāi)發(fā)全局應(yīng)用,就要研制分布式數(shù)據(jù)庫(kù)系統(tǒng)。這種情況可稱為自底向上的建立分布式系統(tǒng)。這種方法雖然也要對(duì)各現(xiàn)存的局部數(shù)據(jù)庫(kù)系統(tǒng)做某些改動(dòng)、重構(gòu),但比起把這些數(shù)據(jù)庫(kù)集中起來(lái)重建一個(gè)集中式數(shù)據(jù)庫(kù),則無(wú)論從經(jīng)濟(jì)上還是從組織上考慮,分布式數(shù)據(jù)庫(kù)均是較好的選擇。

  4、逐步擴(kuò)展處理能力和系統(tǒng)規(guī)模。當(dāng)一個(gè)單位規(guī)模擴(kuò)大要增加新的部門(mén)(如銀行系統(tǒng)增加新的分行,工廠增加新的科室、車間)時(shí),分布式數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)為擴(kuò)展系統(tǒng)的處理能力提供了較好的途徑:在分布式數(shù)據(jù)庫(kù)系統(tǒng)中增加一個(gè)新的結(jié)點(diǎn)。這樣做比在集中式系統(tǒng)中擴(kuò)大系統(tǒng)規(guī)模要方便、靈活、經(jīng)濟(jì)得多。

  在集中式系統(tǒng)中為了擴(kuò)大規(guī)模常用的方法有兩種:一種是在開(kāi)始設(shè)計(jì)時(shí)留有較大的余地。這容易造成浪費(fèi),而且由于預(yù)測(cè)困難,設(shè)計(jì)結(jié)果仍可能不適應(yīng)情況的變化。另一種方法是系統(tǒng)升級(jí),這會(huì)影響現(xiàn)有應(yīng)用的正常運(yùn)行。并且當(dāng)升級(jí)涉及不兼容的硬件或系統(tǒng)軟件有了重大修改而要相應(yīng)地修改已開(kāi)發(fā)的應(yīng)用軟件時(shí),升級(jí)的代價(jià)就十分昂貴而常常使得升級(jí)的方法不可行。分布式數(shù)據(jù)庫(kù)系統(tǒng)能方便地把一個(gè)新的結(jié)點(diǎn)納入系統(tǒng),不影響現(xiàn)有系統(tǒng)的結(jié)構(gòu)和系統(tǒng)的正常運(yùn)行,提供了逐漸擴(kuò)展系統(tǒng)能力的較好途徑,有時(shí)甚至是唯一的途徑。

5.分布式數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)

  1、具有靈活的體系結(jié)構(gòu)。

  2、適應(yīng)分布式的管理和控制機(jī)構(gòu)?!?

  3、經(jīng)濟(jì)性能優(yōu)越。

  4、系統(tǒng)的可靠性高、可用性好?!?

  5、局部應(yīng)用的響應(yīng)速度快。

  6、可擴(kuò)展性好,易于集成現(xiàn)有系統(tǒng)。

6.分布式數(shù)據(jù)庫(kù)的缺點(diǎn)

  1、系統(tǒng)開(kāi)銷大,主要花在通信部分。

  2、復(fù)雜的存取結(jié)構(gòu),原來(lái)在集中式系統(tǒng)中有效存取數(shù)據(jù)的技術(shù),在分成式系統(tǒng)中都不再適用。

  3、數(shù)據(jù)的安全生和保密性較難處理。

評(píng)論  |   0條評(píng)論