分散式資料庫系統(DDBS) 概述

咕嚕咕嚕先生發表於2018-06-08

一、什麼是分散式資料庫

  分散式資料庫系統(DDBS:Distributed Database System)是在集中式資料庫系統的基礎上發展來的。是資料庫技術與網路技術結合的產物。

  分散式資料庫系統有兩種一種是物理上分佈的,但邏輯上卻是集中的。這種分散式資料庫只適宜用途比較單一的、不大的單位或部門。另一種分散式資料庫系統在物理上和邏輯上都是分佈的,也就是所謂聯邦式分佈資料庫系統。由於組成聯邦的各個子資料庫系統是相對自治的,這種系統可以容納多種不同用途的、差異較大的資料庫,比較適宜於大範圍內資料庫的整合。

  分散式資料庫系統(DDBS)包含分散式資料庫管理系統(DDBMS)和分散式資料庫(DDB)

  在分散式資料庫系統中,一個應用程式可以對資料庫進行透明操作,資料庫中的資料分別在不同的區域性資料庫中儲存、由不同的DBMS進行管理、在不同的機器上執行、由不同的作業系統支援、被不同的通訊網路連線在一起。

  一個分散式資料庫在邏輯上是一個統一的整體:即在使用者面前為單個邏輯資料庫,在物理上則是分別儲存在不同的物理節點上。一個應用程式透過網路的連線可以訪問分佈在不同地理位置的資料庫。它的分佈性表現在資料庫中的資料不是儲存在同一場地。更確切地講,不儲存在同一計算機的儲存裝置上。 這就是與集中式資料庫的區別。從使用者的角度看,一個分散式資料庫系統在邏輯上和集中式資料庫系統一樣,使用者可以在任何一個場地執行全域性應用。就好那些資料是儲存在同一臺計算機上,有單個資料庫管理系統(DBMS)管理一樣,使用者並沒有什麼感覺不一樣。

  分散式資料庫中每一個資料庫伺服器合作地維護全域性資料庫的一致性。

  分散式資料庫系統是一個客戶/伺服器體系結構。

  在系統中的每一臺計算機稱為結點。如果一結點具有管理資料庫軟體,該結點稱為資料庫伺服器。如果一個結點為請求伺服器的資訊的一應用,該結點稱為客戶。在ORACLE客戶,執行資料庫應用,可存取資料資訊和與使用者互動。在伺服器,執行ORACLE軟體,處理對ORACLE資料庫併發、共享資料存取。ORACLE允許上述兩部分在同一臺計算機上,但當客戶部分和伺服器部分是由網連線的不同計算機上時,更有效。

  分佈處理是由多臺處理機分擔單個任務的處理。在ORACLE資料庫系統中分佈處理的例子如:

  客戶和伺服器是位於網路連線的不同計算機上。

  單臺計算機上有多個處理器,不同處理器分別執行客戶應用。

  參與分散式資料庫的每一伺服器是分別地獨立地管理資料庫,好像每一資料庫不是網路化的資料庫。每一個資料庫獨立地被管理,稱為場地自治性。場地自治性有下列好處:

  系統的結點可反映公司的邏輯組織。

  由區域性資料庫管理員控制區域性資料,這樣每一個資料庫管理員責任要小一些,可更好管理。

  只要一個資料庫和網路是可用,那麼全域性資料庫可部分可用。不會因一個資料庫的故障而停止全部操作或引起效能瓶頸

  故障恢復通常在單個結點上進行。

  每個區域性資料庫存在一個資料字典。

結點可獨立地升級軟體。

  可從分散式資料庫的所有結點存取模式物件,因此正像非分佈的區域性的DBMS,必須提供一種機制,可在區域性資料庫中引用一個物件。分散式DBMS必須提供一種命名模式,以致分散式資料庫中一個物件可在應用中唯一標識和引用。一般在層次結構的每一層實施唯一性。分散式DBMS簡單地擴充層次命名模型,實施在網路上唯一資料庫命名。因此一個物件的全域性物件名保證在分散式資料庫內是唯一。

ORACLE允許在SQL語句中使用全域性物件名引用分散式資料庫中的模式物件(表、檢視和過程)。在ORACLE中,一個模式物件的全域性名由三部分組成:包含物件的模式名、物件名、資料庫名其形式如:

  SCOTT.EMP@SALES.DIVISION3.ACME.COM

  

一個遠端查詢為一查詢,是從一個或多個遠端表中選擇資訊,這些表駐留在同一個遠端結點.

  一個分散式查詢可從兩個或多個結點檢索資料.一個分散式更新可修改兩個或兩個以上結點的資料.

  一個遠端事務為一個事務,包含一或多個遠端語句,它所引用的全部是在同一個遠端結點上.一個分散式事務中一個事務,包含一個或多個語句修改分散式資料庫的兩個或多個不同結點的資料.

在分散式資料庫中,事務控制必須在網路上直轄,保證資料一致性.兩階段提交機制保證參與分散式事務的全部資料庫伺服器是全部提交或全部回滾事務中的語句.

  ORACLE分散式資料庫系統結構可由ORACLE資料庫管理員為終端使用者和應用提供位置透明性,利用檢視、同義詞、過程可提供ORACLE分散式資料庫系統中的位置透明性.

  ORACLE提供兩種機制實現分散式資料庫中表重複的透明性錶快照提供非同步的表重複;觸發器實現同步的表的重複。在兩種情況下,都實現了對錶重複的透明性。

在單場地或分散式資料庫中,所有事務都是用COMMITROLLBACK語句中止。

二、分散式資料庫系統的分類:

  (1) 同構同質型DDBS:各個場地都採用同一型別的資料模型(譬如都是關係型),並且是同一型號的DBMS

  (2) 同構異質型DDBS:各個場地採用同一型別的資料模型,但是DBMS的型號不同,譬如DB2ORACLESYBASESQL Server等。

(3) 異構型DDBS:各個場地的資料模型的型號不同,甚至型別也不同。隨著計算機網路技術的發展,異種機聯網問題已經得到較好的解決,此時依靠異構型DDBS就能存取全網中各種異構區域性庫中的資料。

三、分散式資料庫系統主要特點:

DDBS的基本特點:

  (1)物理分佈性:資料不是儲存在一個場地上,而是儲存在計算機網路的多個場地上。

   邏輯整體性:資料物理分佈在各個場地,但邏輯上是一個整體,它們被所有使用者(全域性使用者)共享,並由一個DDBMS統一管理。

  (2)場地自治性:各場地上的資料由本地的DBMS管理,具有自治處理能力,完成本場地的應用(區域性應用)

  (3)場地之間協作性:各場地雖然具有高度的自治性,但是又相互協作構成一個整體。

  

DDBS的其他特點

  (1)資料獨立性

  (2)集中與自治相結合的控制機制

  (3)適當增加資料冗餘度

(4)事務管理的分佈性

四、分散式資料庫系統的優點:

  (1) 更適合分散式的管理與控制。

分散式資料庫系統的結構更適合具有地理分佈特性的組織或機構使用,允許分佈在不同區、不同級別的各個部門對其自身的資料實行區域性控制。例如:實現全域性資料在本地錄入、查詢、維護,這時由於計算機資源靠近使用者,可以降低通訊代價,提高響應速度,而涉及其他場地資料庫中的資料只是少量的,從而可以大大減少網路上的資訊傳輸量;同時,區域性資料的安全性也可以做得更好。

  (2) 具有靈活的體系結構。

集中式資料庫系統強調的是集中式控制,物理資料庫是存放在一個場地上的,由一個DBMS集中管理。多個使用者只可以透過近程或遠端終端在多使用者作業系統支援下執行該DBMS來共享集中是資料庫中的資料。而分散式資料庫系統的場地區域性DBMS的自治性,使得大部分的區域性事務管理和控制都能就地解決,只有在涉及其他場地的資料時才需要透過網路作為全域性事務來管理。分散式DBMS可以設計成具有不同程度的自治性,從具有充分的場地自治到幾乎是完全集中式的控制。

  (3) 系統經濟,可靠性高,可用性好。

與一個大型計算機支援一個大型的集中式資料庫在加一些程式和遠端終端相比,由超級微型計算機或超級小型計算機支援的分散式資料庫系統往往具有更高的價效比和實施靈活性。分散式系統比集中式系統具有更高的可靠性和更好的可用性。如由於資料分佈在多個場地並有許多複製資料,在個別場地或個別通訊鏈路發生故障時,不致於導致整個系統的崩潰,而且系統的區域性故障不會引起全域性失控。

  (4) 在一定條件下響應速度加快。

如果存取的資料在本地資料庫中,那麼就可以由使用者所在的計算機來執行,速度就快。

  (5) 可擴充套件性好,易於整合現有系統,也易於擴充。

對於一個企業或組織,可以採用分散式資料庫技術在以建立的若干資料庫的基礎上開發全域性應用,對原有的區域性資料庫系統作某些改動,形成一個分散式系統。這比重建一個大型資料庫系統要簡單,既省時間,又省財力、物力。也可以透過增加場地數的辦法,迅速擴充已有的分散式資料庫系統。

五、分散式資料庫系統的劣勢:

  (1) 通訊開銷較大,故障率高。

例如,在網路通訊傳輸速度不高時,系統的響應速度慢,與通訊相關的因素往往導致系統故障,同時系統本身的複雜性也容易導致較高的故障率。當故障發生後系統恢復也比較複雜,可靠性有待提高。

  (2) 資料的存取結構複雜。

一般來說,在分佈時資料庫中存取資料,比在集中時資料庫中存取資料更復雜,開銷更大。

  (3) 資料的安全性和保密性較難控制。

  在具有高度場地自治的分佈時資料庫中,不同場地的區域性資料庫管理員可以採用不同的安全措施,但是無法保證全域性資料都是安全的。安全性問題式分散式系統固有的問題。因為分散式系統式透過通訊網路來實現分佈控制的,而通訊網路本身卻在保護資料的安全性和保密性方面存在弱點,資料很容易被竊取。

分散式資料庫的設計、場地劃分及資料在不同場地的分配比較複雜。資料的劃分及分配對系統的效能、響應速度及可用性等具有極大的影響。不同場地的通訊速度與區域性資料庫系統的存取部件的存取速度相比,是非常慢的。通訊系統有較高的延遲,在CPU上處理通訊資訊的代價很高。分散式資料庫系統中要注意解決分散式資料庫的設計、查詢處理和最佳化、事務管理及併發控制和目錄管理等問題。

六、分散式資料庫系統:資料分片

  型別:

  1、水平分片:

   按一定的條件把全域性關係的所有元組劃分成若干不相交的子集,每個子集為關係的一個片段。

  2、垂直分片:

   把一個全域性關係的屬性集分成若干子集,並在這些子集上作投影運算,每個投影稱為垂直分片。

  3、匯出分片:

   又稱為匯出水平分片,即水平分片的條件不是本關係屬性的條件,而是其他關係屬性的條件。

  4、混合分片:

   以上三種方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他們的結果是不相同的。

  條件:

  (1) 完備性條件:

   必須把全域性關係的所有資料對映到片段中,決不允許有屬於全域性關係的資料卻不屬於它的任何一個片段。

  (2) 可重構條件:

   必須保證能夠由同一個全域性關係的各個片段來重建該全域性關係。對於水平分片可用並操作重構全域性關係;對於垂直分片可用聯接操作重構全域性關係。

  (3) 不相交條件:

   要求一個全域性關係被分割後所得的各個資料片段互不重疊(對垂直分片的主鍵除外)

七、分散式資料庫系統:資料分配方式

(1) 集中式:

所有資料片段都安排在同一個場地上。

  (2) 分割式:

   所有資料只有一份,它被分割成若干邏輯片段,每個邏輯片段被指派在一個特定的場地上。

(3) 全複製式:

資料在每個場地重複儲存。也就是每個場地上都有一個完整的資料副本。

(4) 混合式:

這是一種介乎於分割式和全複製式之間的分配方式。

八、分散式資料庫系統:體系結構

  資料分片和資料分配概念的分離,形成了資料分佈獨立型概念。

資料冗餘的顯式控制。資料在各個場地的分配情況在分配模式中一目瞭然,便於系統管理。

區域性DBMS的獨立性。這個特徵也稱為區域性對映透明性。此特徵允許我們在不考慮區域性DBMS專用資料模型的情況下,研究DDB管理的有關問題。

九、分散式資料庫管理系統

  接受使用者請求,並判定把它送到哪裡,或必須訪問哪些計算機才能滿足該要求。

  訪問網路資料字典,瞭解如何請求和使用其中的資訊。

  如果目標資料儲存於系統的多個計算機上,就必須進行分散式處理。

  通訊介面功能。在使用者、區域性DBMS和其他計算機的DBMS之間進行協調。

在一個異構型分散式處理環境中,還需提供資料和程式移植的支援。這裡的異構型是指各個場地的硬體、軟體之間存在著差別。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31480736/viewspace-2155830/,如需轉載,請註明出處,否則將追究法律責任。

相關文章