分布式數(shù)據(jù)庫系統(tǒng)(DDBS)概述
?
一、什么是分布式數(shù)據(jù)庫
?
分布式數(shù)據(jù)庫系統(tǒng)是在集中式數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)上發(fā)展來的。是數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)技術(shù)結(jié)合的產(chǎn)物。
?
分布式數(shù)據(jù)庫系統(tǒng)有兩種:一種是物理上分布的,但邏輯上卻是集中的。這種分布式數(shù)據(jù)庫只適宜用途比較單一的、不大的單位或部門。另一種分布式數(shù)據(jù)庫系統(tǒng)在物理上和邏輯上都是分布的,也就是所謂聯(lián)邦式分布數(shù)據(jù)庫系統(tǒng)。由于組成聯(lián)邦的各個(gè)子數(shù)據(jù)庫系統(tǒng)是相對(duì)“自治”的,這種系統(tǒng)可以容納多種不同用途的、差異較大的數(shù)據(jù)庫,比較適宜于大范圍內(nèi)數(shù)據(jù)庫的集成。
?
分布式數(shù)據(jù)庫系統(tǒng)(DDBS)包含分布式數(shù)據(jù)庫管理系統(tǒng)(DDBMS)和分布式數(shù)據(jù)庫(DDB)。
?
在分布式數(shù)據(jù)庫系統(tǒng)中,一個(gè)應(yīng)用程序可以對(duì)數(shù)據(jù)庫進(jìn)行透明操作,數(shù)據(jù)庫中的數(shù)據(jù)分別在不同的局部數(shù)據(jù)庫中存儲(chǔ)、由不同的DBMS進(jìn)行管理、在不同的機(jī)器上運(yùn)行、由不同的操作系統(tǒng)支持、被不同的通信網(wǎng)絡(luò)連接在一起。
?
一個(gè)分布式數(shù)據(jù)庫在邏輯上是一個(gè)統(tǒng)一的整體:即在用戶面前為單個(gè)邏輯數(shù)據(jù)庫,在物理上則是分別存儲(chǔ)在不同的物理節(jié)點(diǎn)上。一個(gè)應(yīng)用程序通過網(wǎng)絡(luò)的連接可以訪問分布在不同地理位置的數(shù)據(jù)庫。它的分布性表現(xiàn)在數(shù)據(jù)庫中的數(shù)據(jù)不是存儲(chǔ)在同一場地。更確切地講,不存儲(chǔ)在同一計(jì)算機(jī)的存儲(chǔ)設(shè)備上。 這就是與集中式數(shù)據(jù)庫的區(qū)別。從用戶的角度看,一個(gè)分布式數(shù)據(jù)庫系統(tǒng)在邏輯上和集中式數(shù)據(jù)庫系統(tǒng)一樣,用戶可以在任何一個(gè)場地執(zhí)行全局應(yīng)用。就好那些數(shù)據(jù)是存儲(chǔ)在同一臺(tái)計(jì)算機(jī)上,有單個(gè)數(shù)據(jù)庫管理系統(tǒng)(DBMS)管理一樣,用戶并沒有什么感覺不一樣。
?
分布式數(shù)據(jù)庫中每一個(gè)數(shù)據(jù)庫服務(wù)器合作地維護(hù)全局?jǐn)?shù)據(jù)庫的一致性。
?
分布式數(shù)據(jù)庫系統(tǒng)是一個(gè)客戶/服務(wù)器體系結(jié)構(gòu)。
?
在系統(tǒng)中的每一臺(tái)計(jì)算機(jī)稱為結(jié)點(diǎn)。如果一個(gè)結(jié)點(diǎn)具有管理數(shù)據(jù)庫軟件,該結(jié)點(diǎn)稱為數(shù)據(jù)庫服務(wù)器。如果一個(gè)結(jié)點(diǎn)為請(qǐng)求服務(wù)器的信息的一個(gè)應(yīng)用,該結(jié)點(diǎn)稱為客戶。在ORACLE客戶端,主要是執(zhí)行數(shù)據(jù)庫應(yīng)用,可存取數(shù)據(jù)信息和與用戶交互。在服務(wù)器端,執(zhí)行ORACLE軟件,處理對(duì)ORACLE數(shù)據(jù)庫并發(fā)、共享數(shù)據(jù)存取。ORACLE允許上述兩部分在同一臺(tái)計(jì)算機(jī)上,但當(dāng)客戶部分和服務(wù)器部分是由網(wǎng)連接的不同計(jì)算機(jī)上時(shí),更有效。
?
分布處理是由多臺(tái)處理機(jī)分擔(dān)單個(gè)任務(wù)的處理。在ORACLE數(shù)據(jù)庫系統(tǒng)中分布處理的例子如:
?
客戶和服務(wù)器是位于網(wǎng)絡(luò)連接的不同計(jì)算機(jī)上。
?
單臺(tái)計(jì)算機(jī)上有多個(gè)處理器,不同處理器分別執(zhí)行客戶應(yīng)用。
?
參與分布式數(shù)據(jù)庫的每一服務(wù)器是分別地獨(dú)立地管理數(shù)據(jù)庫,好像每一個(gè)數(shù)據(jù)庫不是網(wǎng)絡(luò)化的數(shù)據(jù)庫。每一個(gè)數(shù)據(jù)庫獨(dú)立地被管理,稱為場地自治性。場地自治性有下列好處:
?
◆系統(tǒng)的結(jié)點(diǎn)可反映公司的邏輯組織。
◆由局部數(shù)據(jù)庫管理員控制局部數(shù)據(jù),這樣每一個(gè)數(shù)據(jù)庫管理員責(zé)任域要小一些,可更好管理。
◆只要一個(gè)數(shù)據(jù)庫和網(wǎng)絡(luò)是可用,那么全局?jǐn)?shù)據(jù)庫可部分可用。不會(huì)因一個(gè)數(shù)據(jù)庫的故障而停止全部操作或引起性能瓶頸。
◆故障恢復(fù)通常在單個(gè)結(jié)點(diǎn)上進(jìn)行。
◆每個(gè)局部數(shù)據(jù)庫存在一個(gè)數(shù)據(jù)字典。
◆結(jié)點(diǎn)可獨(dú)立地升級(jí)軟件。
?
可從分布式數(shù)據(jù)庫的所有結(jié)點(diǎn)存取模式對(duì)象,因此正像非分布的局部的DBMS,必須提供一種機(jī)制,可在局部數(shù)據(jù)庫中引用一個(gè)對(duì)象。分布式DBMS必須提供一種命名模式,以致分布式數(shù)據(jù)庫中一個(gè)對(duì)象可在應(yīng)用中唯一標(biāo)識(shí)和引用。一般在層次結(jié)構(gòu)的每一層實(shí)施唯一性。分布式DBMS簡單地?cái)U(kuò)充層次命名模型,實(shí)施在網(wǎng)絡(luò)上唯一數(shù)據(jù)庫命名。因此一個(gè)對(duì)象的全局對(duì)象名保證在分布式數(shù)據(jù)庫內(nèi)是唯一。
?
??? ORACLE允許在SQL語句中使用全局對(duì)象名引用分布式數(shù)據(jù)庫中的模式對(duì)象(表、視圖和過程)。在ORACLE中,一個(gè)模式對(duì)象的全局名由三部分組成:包含對(duì)象的模式名、對(duì)象名、數(shù)據(jù)庫名、其形式如:
?
?
一個(gè)遠(yuǎn)程查詢?yōu)橐徊樵?,是從一個(gè)或多個(gè)遠(yuǎn)程表中選擇信息,這些表駐留在同一個(gè)遠(yuǎn)程結(jié)點(diǎn)。
?
一個(gè)分布式查詢可從兩個(gè)或多個(gè)結(jié)點(diǎn)檢索數(shù)據(jù)。一個(gè)分布式更新可修改兩個(gè)或兩個(gè)以上結(jié)點(diǎn)的數(shù)據(jù)。
?
一個(gè)遠(yuǎn)程事務(wù)為一個(gè)事務(wù),包含一人或多個(gè)遠(yuǎn)程語句,它所引用的全部是在同一個(gè)遠(yuǎn)程結(jié)點(diǎn)上.一個(gè)分布式事務(wù)中一個(gè)事務(wù),包含一個(gè)或多個(gè)語句修改分布式數(shù)據(jù)庫的兩個(gè)或多個(gè)不同結(jié)點(diǎn)的數(shù)據(jù).
?
在分布式數(shù)據(jù)庫中,事務(wù)控制必須在網(wǎng)絡(luò)上直轄市,保證數(shù)據(jù)一致性.兩階段提交機(jī)制保證參與分布式事務(wù)的全部數(shù)據(jù)庫服務(wù)器是全部提交或全部回滾事務(wù)中的語句.
?
ORACLE分布式數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)可由ORACLE數(shù)據(jù)庫管理員為終端用戶和應(yīng)用提供位置透明性,利用視圖、同義詞、過程可提供ORACLE分布式數(shù)據(jù)庫系統(tǒng)中的位置透明性.
?
ORACLE提供兩種機(jī)制實(shí)現(xiàn)分布式數(shù)據(jù)庫中表重復(fù)的透明性:表快照提供異步的表重復(fù);觸發(fā)器實(shí)現(xiàn)同步的表的重復(fù)。在兩種情況下,都實(shí)現(xiàn)了對(duì)表重復(fù)的透明性。
?
在單場地或分布式數(shù)據(jù)庫中,所有事務(wù)都是用COMMIT或ROLLBACK語句中止。
?
?
二、分布式數(shù)據(jù)庫系統(tǒng)的分類
?
(1) 同構(gòu)同質(zhì)型DDBS:各個(gè)場地都采用同一類型的數(shù)據(jù)模型(譬如都是關(guān)系型),并且是同一型號(hào)的DBMS。
?
(2)同構(gòu)異質(zhì)型DDBS:各個(gè)場地采用同一類型的數(shù)據(jù)模型,但是DBMS的型號(hào)不同,譬如DB2、ORACLE、SYBASE、SQL Server等。
?
(3)異構(gòu)型DDBS:各個(gè)場地的數(shù)據(jù)模型的型號(hào)不同,甚至類型也不同。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,異種機(jī)聯(lián)網(wǎng)問題已經(jīng)得到較好的解決,此時(shí)依靠異構(gòu)型DDBS就能存取全網(wǎng)中各種異構(gòu)局部庫中的數(shù)據(jù)。
?
?
三、分布式數(shù)據(jù)庫系統(tǒng)主要特點(diǎn)
?
DDBS的基本特點(diǎn):
?
(1)物理分布性:數(shù)據(jù)不是存儲(chǔ)在一個(gè)場地上,而是存儲(chǔ)在計(jì)算機(jī)網(wǎng)絡(luò)的多個(gè)場地上。
?
?? 邏輯整體性:數(shù)據(jù)物理分布在各個(gè)場地,但邏輯上是一個(gè)整體,它們被所有用戶(全局用戶)共享,并由一個(gè)DDBMS統(tǒng)一管理。
?
(2)場地自治性:各場地上的數(shù)據(jù)由本地的DBMS管理,具有自治處理能力,完成本場地的應(yīng)用(局部應(yīng)用)。
?
(3)場地之間協(xié)作性:各場地雖然具有高度的自治性,但是又相互協(xié)作構(gòu)成一個(gè)整體。
?
DDBS的其他特點(diǎn):
?
(1)數(shù)據(jù)獨(dú)立性
?
(2)集中與自治相結(jié)合的控制機(jī)制
?
(3)適當(dāng)增加數(shù)據(jù)冗余度
?
(4)事務(wù)管理的分布性
?
?
四、分布式數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn)
?
(1)更適合分布式的管理與控制。
?
分布式數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)更適合具有地理分布特性的組織或機(jī)構(gòu)使用,允許分布在不同區(qū)域、不同級(jí)別的各個(gè)部門對(duì)其自身的數(shù)據(jù)實(shí)行局部控制。例如:實(shí)現(xiàn)全局?jǐn)?shù)據(jù)在本地錄入、查詢、維護(hù),這時(shí)由于計(jì)算機(jī)資源靠近用戶,可以降低通信代價(jià),提高響應(yīng)速度,而涉及其他場地?cái)?shù)據(jù)庫中的數(shù)據(jù)只是少量的,從而可以大大減少網(wǎng)絡(luò)上的信息傳輸量;同時(shí),局部數(shù)據(jù)的安全性也可以做得更好。
?
(2)具有靈活的體系結(jié)構(gòu)。
?
集中式數(shù)據(jù)庫系統(tǒng)強(qiáng)調(diào)的是集中式控制,物理數(shù)據(jù)庫是存放在一個(gè)場地上的,由一個(gè)DBMS集中管理。多個(gè)用戶只可以通過近程或遠(yuǎn)程終端在多用戶操作系統(tǒng)支持下運(yùn)行該DBMS來共享集中是數(shù)據(jù)庫中的數(shù)據(jù)。而分布式數(shù)據(jù)庫系統(tǒng)的場地局部DBMS的自治性,使得大部分的局部事務(wù)管理和控制都能就地解決,只有在涉及其他場地的數(shù)據(jù)時(shí)才需要通過網(wǎng)絡(luò)作為全局事務(wù)來管理。分布式DBMS可以設(shè)計(jì)成具有不同程度的自治性,從具有充分的場地自治到幾乎是完全集中式的控制。
?
(3)系統(tǒng)經(jīng)濟(jì),可靠性高,可用性好。
?
與一個(gè)大型計(jì)算機(jī)支持一個(gè)大型的集中式數(shù)據(jù)庫在加一些進(jìn)程和遠(yuǎn)程終端相比,由超級(jí)微型計(jì)算機(jī)或超級(jí)小型計(jì)算機(jī)支持的分布式數(shù)據(jù)庫系統(tǒng)往往具有更高的性價(jià)比和實(shí)施靈活性。分布式系統(tǒng)比集中式系統(tǒng)具有更高的可靠性和更好的可用性。如由于數(shù)據(jù)分布在多個(gè)場地并有許多復(fù)制數(shù)據(jù),在個(gè)別場地或個(gè)別通信鏈路發(fā)生故障時(shí),不致于導(dǎo)致整個(gè)系統(tǒng)的崩潰,而且系統(tǒng)的局部故障不會(huì)引起全局失控。
?
(4)在一定條件下響應(yīng)速度加快。
?
如果存取的數(shù)據(jù)在本地?cái)?shù)據(jù)庫中,那么就可以由用戶所在的計(jì)算機(jī)來執(zhí)行,速度就快。
?
(5)可擴(kuò)展性好,易于集成現(xiàn)有系統(tǒng),也易于擴(kuò)充。
?
對(duì)于一個(gè)企業(yè)或組織,可以采用分布式數(shù)據(jù)庫技術(shù)在以建立的若干數(shù)據(jù)庫的基礎(chǔ)上開發(fā)全局應(yīng)用,對(duì)原有的局部數(shù)據(jù)庫系統(tǒng)作某些改動(dòng),形成一個(gè)分布式系統(tǒng)。這比重建一個(gè)大型數(shù)據(jù)庫系統(tǒng)要簡單,既省時(shí)間,又省財(cái)力、物力。也可以通過增加場地?cái)?shù)的辦法,迅速擴(kuò)充已有的分布式數(shù)據(jù)庫系統(tǒng)。
?
?
五、分布式數(shù)據(jù)庫系統(tǒng)的劣勢(shì)
?
(1)通信開銷較大,故障率高。
?
例如,在網(wǎng)絡(luò)通信傳輸速度不高時(shí),系統(tǒng)的響應(yīng)速度慢,與通信相關(guān)的因素往往導(dǎo)致系統(tǒng)故障,同時(shí)系統(tǒng)本身的復(fù)雜性也容易導(dǎo)致較高的故障率。當(dāng)故障發(fā)生后系統(tǒng)恢復(fù)也比較復(fù)雜,可靠性有待提高。
?
(2)數(shù)據(jù)的存取結(jié)構(gòu)復(fù)雜。
?
一般來說,在分布時(shí)數(shù)據(jù)庫中存取數(shù)據(jù),比在集中時(shí)數(shù)據(jù)庫中存取數(shù)據(jù)更復(fù)雜,開銷更大。
?
(3)數(shù)據(jù)的安全性和保密性較難控制。
?
在具有高度場地自治的分布時(shí)數(shù)據(jù)庫中,不同場地的局部數(shù)據(jù)庫管理員可以采用不同的安全措施,但是無法保證全局?jǐn)?shù)據(jù)都是安全的。安全性問題式分布式系統(tǒng)固有的問題。因?yàn)榉植际较到y(tǒng)式通過通信網(wǎng)絡(luò)來實(shí)現(xiàn)分布控制的,而通信網(wǎng)絡(luò)本身卻在保護(hù)數(shù)據(jù)的安全性和保密性方面存在弱點(diǎn),數(shù)據(jù)很容易被竊取。
?
分布式數(shù)據(jù)庫的設(shè)計(jì)、場地劃分及數(shù)據(jù)在不同場地的分配比較復(fù)雜。數(shù)據(jù)的劃分及分配對(duì)系統(tǒng)的性能、響應(yīng)速度及可用性等具有極大的影響。不同場地的通信速度與局部數(shù)據(jù)庫系統(tǒng)的存取部件的存取速度相比,是非常慢的。通信系統(tǒng)有較高的延遲,在CPU上處理通信信息的代價(jià)很高。分布式數(shù)據(jù)庫系統(tǒng)中要注意解決分布式數(shù)據(jù)庫的設(shè)計(jì)、查詢處理和優(yōu)化、事務(wù)管理及并發(fā)控制和目錄管理等問題。
?
?
六、分布式數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)分片
?
類型:
?
1、水平分片:
?
按一定的條件把全局關(guān)系的所有元組劃分成若干不相交的子集,每個(gè)子集為關(guān)系的一個(gè)片段。
?
2、垂直分片:
?
把一個(gè)全局關(guān)系的屬性集分成若干子集,并在這些子集上作投影運(yùn)算,每個(gè)投影稱為垂直分片。
?
3、導(dǎo)出分片:
?
又稱為導(dǎo)出水平分片,即水平分片的條件不是本關(guān)系屬性的條件,而是其他關(guān)系屬性的條件。
?
4、混合分片:
?
以上三種方法的混合??梢韵人椒制俅怪狈制?,或先垂直分片再水平分片,或其他形式,但他們的結(jié)果是不相同的。
?
條件:
?
(1)完備性條件:
?
必須把全局關(guān)系的所有數(shù)據(jù)映射到片段中,決不允許有屬于全局關(guān)系的數(shù)據(jù)卻不屬于它的任何一個(gè)片段。
?
(2)可重構(gòu)條件:
?
必須保證能夠由同一個(gè)全局關(guān)系的各個(gè)片段來重建該全局關(guān)系。對(duì)于水平分片可用并操作重構(gòu)全局關(guān)系;對(duì)于垂直分片可用聯(lián)接操作重構(gòu)全局關(guān)系。
?
(3)不相交條件:
?
要求一個(gè)全局關(guān)系被分割后所得的各個(gè)數(shù)據(jù)片段互不重疊(對(duì)垂直分片的主鍵除外)。
?
?
七、分布式數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)分配方式
?
(1)集中式:所有數(shù)據(jù)片段都安排在同一個(gè)場地上。
?
(2)分割式:
所有數(shù)據(jù)只有一份,它被分割成若干邏輯片段,每個(gè)邏輯片段被指派在一個(gè)特定的場地上。
?
(4)全復(fù)制式:數(shù)據(jù)在每個(gè)場地重復(fù)存儲(chǔ)。也就是每個(gè)場地上都有一個(gè)完整的數(shù)據(jù)副本。
?
(5)混合式:這是一種介乎于分割式和全復(fù)制式之間的分配方式。
?
?
八、分布式數(shù)據(jù)庫系統(tǒng):體系結(jié)構(gòu)
?
數(shù)據(jù)分片和數(shù)據(jù)分配概念的分離,形成了“數(shù)據(jù)分布獨(dú)立型”概念。
?
數(shù)據(jù)冗余的顯式控制。數(shù)據(jù)在各個(gè)場地的分配情況在分配模式中一目了然,便于系統(tǒng)管理。
?
局部DBMS的獨(dú)立性。這個(gè)特征也稱為“局部映射透明性”。此特征允許我們?cè)诓豢紤]局部DBMS專用數(shù)據(jù)模型的情況下,研究DDB管理的有關(guān)問題。
?
?
九、分布式數(shù)據(jù)庫管理系統(tǒng)
?
??? 分布式數(shù)據(jù)管理系統(tǒng)(DDBMS)主要負(fù)責(zé)以下工作:
?
1、接受用戶請(qǐng)求,并判定把它送到哪里,或必須訪問哪些計(jì)算機(jī)才能滿足該要求。
2、訪問網(wǎng)絡(luò)數(shù)據(jù)字典,了解如何請(qǐng)求和使用其中的信息。
3、如果目標(biāo)數(shù)據(jù)存儲(chǔ)于系統(tǒng)的多個(gè)計(jì)算機(jī)上,就必須進(jìn)行分布式處理。
4、通信接口功能。在用戶、局部DBMS和其他計(jì)算機(jī)的DBMS之間進(jìn)行協(xié)調(diào)。
5、在一個(gè)異構(gòu)型分布式處理環(huán)境中,還需提供數(shù)據(jù)和進(jìn)程移植的支持。這里的異構(gòu)型是指各個(gè)場地的硬件、軟件之間存在著差別。
?
?
?
?
?
?