做網(wǎng)站指導(dǎo)seo流量工具
分布式數(shù)據(jù)庫(kù)系統(tǒng)是數(shù)據(jù)庫(kù)技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物,其基本思想是將傳統(tǒng)的集中式數(shù)據(jù)庫(kù)中的數(shù)據(jù)分布于網(wǎng)絡(luò)上的多臺(tái)計(jì)算機(jī)中。分布式數(shù)據(jù)庫(kù)系統(tǒng)通常使用較小的計(jì)算機(jī)系統(tǒng),每臺(tái)計(jì)算機(jī)可單獨(dú)放在一個(gè)地方,每臺(tái)計(jì)算機(jī)中都有DBMS的一份完整的復(fù)制副本,并具有自己局部的數(shù)據(jù)庫(kù),位于不同地點(diǎn)的許多計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)互相連接,共同組成一個(gè)完整的、全局的大型數(shù)據(jù)庫(kù)。
?一.分布式數(shù)據(jù)庫(kù)概述
?分布式數(shù)據(jù)庫(kù)是由一組數(shù)據(jù)組成的,這組數(shù)據(jù)分布在計(jì)算機(jī)網(wǎng)絡(luò)的不同計(jì)算機(jī)上,網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)具有獨(dú)立處理的能力,即場(chǎng)地自治,它可以執(zhí)行局部應(yīng)用,同時(shí),每個(gè)節(jié)點(diǎn)也能通過(guò)網(wǎng)絡(luò)通信子系統(tǒng)執(zhí)行全局應(yīng)用。分布式數(shù)據(jù)庫(kù)系統(tǒng)是在集中式數(shù)據(jù)庫(kù)系統(tǒng)技術(shù)上的基礎(chǔ)發(fā)展而來(lái),有如下特點(diǎn):
(1)數(shù)據(jù)獨(dú)立性。包括邏輯獨(dú)立性與物理獨(dú)立性,還有數(shù)據(jù)分布獨(dú)立性。
(2)集中與自治共享結(jié)合的控制結(jié)構(gòu)。各局部的DBMS可以獨(dú)立地管理局部數(shù)據(jù)庫(kù),具有自治的功能,同時(shí)有設(shè)有集中控制機(jī)制,協(xié)調(diào)各局部DBMS的工作,執(zhí)行全局應(yīng)用。
(3)適當(dāng)增加數(shù)據(jù)冗余度。在不同場(chǎng)地存儲(chǔ)同一數(shù)據(jù)的多個(gè)副本,這樣,可以提高系統(tǒng)的可靠性和可用性,同時(shí)也能提高系統(tǒng)性能。
(4)全局的一致性、可串行和可恢復(fù)性。
1.分布式數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)
在分布式數(shù)據(jù)庫(kù)中,局部DBMS中的內(nèi)模式與概念模式與集中數(shù)據(jù)庫(kù)是完全一致的,不同之處在于新增的全局DBMS,而整個(gè)全局DMBS,可以看作是相對(duì)于局部概念模式的外模式。
(1)全局外模式。全局外模式是全局應(yīng)用的用戶(hù)視圖,是全局概念模式的子集,該層直接與用戶(hù)或者應(yīng)用程序進(jìn)行交互。
(2)全局概念模式。全局概念模式定義分布式數(shù)據(jù)庫(kù)中數(shù)據(jù)的整體邏輯結(jié)構(gòu),數(shù)據(jù)就如圖根本沒(méi)有分布一樣,可用傳統(tǒng)的集中式數(shù)據(jù)庫(kù)中所采取的方法進(jìn)行定義。
(3)分片模式。在某些情況下,需要將一個(gè)關(guān)系模式分解成幾個(gè)數(shù)據(jù)片,分片模式正式用于完成此工作的。
(4)分布模式。分布式數(shù)據(jù)庫(kù)的本質(zhì)特征就是數(shù)據(jù)分布在不同的物理位置。分布模式的主要職責(zé)是定義數(shù)據(jù)片段的存放節(jié)點(diǎn)。
(5)局部概念模式。局部概念模式是局部數(shù)據(jù)庫(kù)的概念模式。
(6)局部?jī)?nèi)模式。局部?jī)?nèi)模式是局部數(shù)據(jù)庫(kù)的內(nèi)模式。
2.分布式數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)
(1)分布式數(shù)據(jù)庫(kù)可以解決企業(yè)部門(mén)分散而數(shù)據(jù)需要相互聯(lián)系的問(wèn)題。
(2)分布式系統(tǒng)可以在對(duì)當(dāng)前機(jī)構(gòu)影響最小的情況下進(jìn)行擴(kuò)充。
(3)分布式數(shù)據(jù)庫(kù)可以滿(mǎn)足負(fù)載均衡的需要。
(4)可靠性高,出現(xiàn)故障的影響小。
二.數(shù)據(jù)分片
數(shù)據(jù)分片將數(shù)據(jù)庫(kù)整體邏輯結(jié)構(gòu)分解為合適的邏輯單位,然后由分布模式來(lái)定義片段及其副本在各場(chǎng)地的物理分布。
1.數(shù)據(jù)分片的分類(lèi)
(1)水平分片。水平分片將一個(gè)全局關(guān)系中的元祖分類(lèi)成多個(gè)子集,每個(gè)子集為一個(gè)片段。分片條件由關(guān)系中的屬性表示。
(2)垂直分片。垂直分片將一個(gè)全局關(guān)系按屬性分裂成多個(gè)子集,應(yīng)滿(mǎn)足不相交性。對(duì)與垂直分片,重構(gòu)全局關(guān)系可通過(guò)連續(xù)運(yùn)算實(shí)現(xiàn)。
(3)導(dǎo)出分片。導(dǎo)出分片又稱(chēng)為導(dǎo)出水平分片,即水平分片的條件不是本關(guān)系屬性的條件,而是其他關(guān)系屬性的條件。
(4)混合分片?;旌戏制窃诜制胁捎盟椒制痛怪狈制瑑煞N形式的混合。
2.數(shù)據(jù)分片的原則
(1)完整性。全局關(guān)系的所有數(shù)據(jù)都必須分配到各個(gè)片段中,不允許某些數(shù)據(jù)屬于全局關(guān)系但不屬于任務(wù)片段。
(2)重構(gòu)性。各個(gè)片段可以重構(gòu)原來(lái)的全局關(guān)系。
(3)不相交性。全局關(guān)系中的每個(gè)元祖僅屬于一個(gè)片段,不能在多個(gè)片段中重復(fù)出現(xiàn)。
3.分布透明性
分布透明性是指用戶(hù)不必關(guān)心數(shù)據(jù)的邏輯分片,不必關(guān)心數(shù)據(jù)存儲(chǔ)的物理位置分布小細(xì)節(jié),也不必關(guān)心局部場(chǎng)地上數(shù)據(jù)庫(kù)的數(shù)據(jù)模型。分布透明性包括分片透明,位置透明,局部數(shù)據(jù)模型透明。
(1)分片透明。分片透明是分布透明性的最高層次,它是指用戶(hù)或應(yīng)用程序只對(duì)全局關(guān)系進(jìn)行操作而不必考慮數(shù)據(jù)的分片。
(2)位置透明性。位置透明是指用戶(hù)或應(yīng)用程序應(yīng)當(dāng)了解分片情況,但不必了解片段的存儲(chǔ)位置。
(3)局部數(shù)據(jù)模型透明性。局部數(shù)據(jù)模型透明性是指用戶(hù)或者應(yīng)用程序應(yīng)當(dāng)了解分片及各片段的存儲(chǔ)場(chǎng)地,但不必了解局部場(chǎng)地上使用的是何種數(shù)據(jù)模型。
三.分布式數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化
分布式數(shù)據(jù)庫(kù)在結(jié)構(gòu)上與集中式數(shù)據(jù)庫(kù)存在一定的差異,所以?xún)烧咴诓樵?xún)優(yōu)化方面各有側(cè)重。在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,從查詢(xún)涉及的數(shù)據(jù)和查詢(xún)處理過(guò)程中的通信模式來(lái)劃分,可以分為局部查詢(xún)、遠(yuǎn)程查詢(xún)和全局查詢(xún)?nèi)N類(lèi)型。
全局查詢(xún)是指用戶(hù)查詢(xún)涉及多個(gè)場(chǎng)地的數(shù)據(jù),因此查詢(xún)處理和優(yōu)化技術(shù)要比其他兩種要復(fù)雜的得多。具體方法有:全局查詢(xún)樹(shù)的變換,副本的選擇與多副本的更新策略,查詢(xún)數(shù)的分解,半直連與直接連接等。
1.全局查詢(xún)樹(shù)的變換
為了提高執(zhí)行效率,可對(duì)全局查詢(xún)樹(shù)進(jìn)行如下變換:
(1)用片段替換查詢(xún)樹(shù)中的全局關(guān)系。
(2)盡可能將選擇和投影等一元操作推向查詢(xún)樹(shù)的葉端。
(3)合并公共子表達(dá)式。
(4)消除空關(guān)系和冗余度。
(5)移去無(wú)用的垂直葉片。
2.副本的選擇與多副本的更新策略。
副本選擇原則:
(1)盡可能提供訪問(wèn)的局部性,尤其要減少大量數(shù)據(jù)的傳送。
(2)盡可能減少通信開(kāi)銷(xiāo),尤其要減少大量數(shù)據(jù)的傳送。
(3)適當(dāng)考慮節(jié)點(diǎn)負(fù)載的平衡。
副本的更新策略:
(1)在事務(wù)提交前更新全部副本。
(2)立即更新所有節(jié)點(diǎn)的副本。
(3)主副本法,指定一個(gè)副本為主副本,執(zhí)行更新操作時(shí)候,事務(wù)提交前進(jìn)更新主副本,所有副本在事務(wù)提交后根據(jù)主副本廣播的內(nèi)容進(jìn)行更新。
(4)快照法??煺辗ㄊ侵笖?shù)據(jù)在某一時(shí)刻的狀態(tài),它不隨數(shù)據(jù)庫(kù)中數(shù)據(jù)的更新而即時(shí)更新。
3.查詢(xún)樹(shù)的分解
查詢(xún)樹(shù)分解的一般方法是采用后續(xù)遍歷法。
4.半連接與直接連接
有時(shí)候,在做連接操作時(shí),并不需要將整個(gè)關(guān)系(或片段)傳送到對(duì)方,只要傳送連接時(shí)與對(duì)方匹配的元組就夠了。半連接操作可以幫助從關(guān)系(或片段)篩選出連接時(shí)匹配的元組,減少節(jié)點(diǎn)之間的數(shù)據(jù)傳輸量和運(yùn)算暈,但也增加了投影操作和選擇操作。在實(shí)際應(yīng)用中,是否采用半連接,必須做代價(jià)比較。