分布式數(shù)據(jù)庫_第1頁
分布式數(shù)據(jù)庫_第2頁
分布式數(shù)據(jù)庫_第3頁
分布式數(shù)據(jù)庫_第4頁
分布式數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

分布式數(shù)據(jù)庫第一節(jié)基本概念一,集中式數(shù)據(jù)庫系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)1.集中式數(shù)據(jù)庫系統(tǒng),是指數(shù)據(jù)庫中的數(shù)據(jù)集中存儲在一臺計算機上,數(shù)據(jù)的處理也集中在一臺計算機上完成。2.分散式數(shù)據(jù)庫系統(tǒng),采用了數(shù)據(jù)分散存儲的辦法,將數(shù)據(jù)庫分成多個建立在多臺計算機上,此時各個數(shù)據(jù)庫的管理和應(yīng)用程序是分開的并獨立的,這種系統(tǒng)稱為分散式系統(tǒng)。3.分布式數(shù)據(jù)庫系統(tǒng),是指數(shù)據(jù)庫數(shù)據(jù)存放在計算機網(wǎng)絡(luò)上的不同場地的計算機中,每一個計算機都有自治處理能力,并完成局部應(yīng)用;而每一場地也參與(至少一種)全局應(yīng)用程序的執(zhí)行,全局應(yīng)用程序可以通過網(wǎng)絡(luò)通信訪問系統(tǒng)中的多個場地的數(shù)據(jù),這樣的系統(tǒng),稱為分布式數(shù)據(jù)庫系統(tǒng)。4.分布式數(shù)據(jù)庫管理系統(tǒng)DDBMS,是分布式數(shù)據(jù)庫系統(tǒng)的核心,它是分布式數(shù)據(jù)庫系統(tǒng)中的一組軟件,負(fù)責(zé)分布式數(shù)據(jù)庫的建立、查詢、更新、復(fù)制、管理的軟件。5.局部自治性,是指有獨立處理能力并能完成局部應(yīng)用。區(qū)分一個系統(tǒng)是分散式還是分布式系統(tǒng),就是判斷系統(tǒng)是否支持全局。二,分布式數(shù)據(jù)庫體統(tǒng)的透明性分布式數(shù)據(jù)庫系統(tǒng)具有位置透明性和復(fù)制透明性,使用戶看到的系統(tǒng)如同一個集中式數(shù)據(jù)庫系統(tǒng)。位置透明性:是指用戶或應(yīng)用程序員應(yīng)當(dāng)了解分片情況,但不必了解片段的存儲場地。位置透明性位于分片視圖與分配視圖之間。數(shù)據(jù)復(fù)制:是指數(shù)據(jù)在每個場地的重復(fù)存儲。復(fù)制透明性:即用戶或程序員不必關(guān)心數(shù)據(jù)庫在網(wǎng)絡(luò)中各個節(jié)點的數(shù)據(jù)復(fù)制情況,更新操作引起的波動由系統(tǒng)來處理。三,分布式數(shù)據(jù)庫的特點數(shù)據(jù)的分布性。分布式數(shù)據(jù)庫中的數(shù)據(jù)分布在網(wǎng)絡(luò)中的各個節(jié)點。統(tǒng)一性。包括數(shù)據(jù)在邏輯上的統(tǒng)一性和數(shù)據(jù)在管理上的統(tǒng)一性。邏輯上的統(tǒng)一性指的是分散在計算機網(wǎng)絡(luò)各個節(jié)點上的數(shù)據(jù)庫構(gòu)成一個在邏輯上單一的數(shù)據(jù)庫,呈現(xiàn)給用戶的如同一個統(tǒng)一的集中式數(shù)據(jù)庫。管理上的統(tǒng)一性指的是分布式數(shù)據(jù)庫是由分布式數(shù)據(jù)管理系統(tǒng)統(tǒng)一管理和維護。透明性。用戶在使用數(shù)據(jù)庫時,與使用集中式數(shù)據(jù)庫一樣,無需知道其所關(guān)心的數(shù)據(jù)存放的位置,存儲了幾次。用戶需要關(guān)心的僅僅是整個數(shù)據(jù)庫的邏輯結(jié)構(gòu)理想的分布式數(shù)據(jù)庫所具有的規(guī)則和目標(biāo)局部節(jié)點自治性。與集中式DBS相比,分布式DBS中數(shù)據(jù)庫的存儲是分布性的,即數(shù)據(jù)不是存儲在一個場地。與分散式DBS相比,分布式DBS中的數(shù)據(jù)庫具有與集中式DBS相比,分布式DBS中數(shù)據(jù)庫的存儲是分布性的,即數(shù)據(jù)不是存儲在一個場地。與分散式DBS相比,分布式DBS中的數(shù)據(jù)庫具有“邏輯整體性”,即從表面看,分布式數(shù)據(jù)庫的數(shù)據(jù)分散在各個場地,但這些數(shù)據(jù)在邏輯上卻是一個整體,如同一個集中式數(shù)據(jù)庫。能繼續(xù)操作。具有位置獨立性(位置透明性)。分片獨立性(分片透明性)。數(shù)據(jù)復(fù)制獨立性(復(fù)制透明性)支持分布查詢處理。支持分布事務(wù)管理。具有硬件獨立性。具有操作系統(tǒng)獨立性。具有網(wǎng)絡(luò)獨立性具有DBMS獨立性。三,分布式數(shù)據(jù)庫系統(tǒng)的分類1.按照DDBMS軟件的同構(gòu)度來分,分為同構(gòu)和異構(gòu)分布式數(shù)據(jù)庫。同構(gòu)分布式數(shù)據(jù)庫(homogeneousdistributeddatabase)中,所有的站點都使用同樣的數(shù)據(jù)庫管理系統(tǒng)軟件,彼此了解,合作處理用戶需求。異構(gòu)分布式數(shù)據(jù)庫(heterogeneousdistributeddatabase)中,不同的站點有不同的模式和不同的數(shù)據(jù)庫管理系統(tǒng)軟件。如果細(xì)分可以分三類:如果細(xì)分可以分三類:同構(gòu)同質(zhì)型DDBS:不同的站點采用同一類型的數(shù)據(jù)模型,相同的DBMS.同構(gòu)異質(zhì)型DDBS:不同的站點采用同一類型的數(shù)據(jù)模型,不同的DBMS.異構(gòu)性DDBS:不同的站點的數(shù)據(jù)庫模型是不同的,DBMS也不同。2.按照局部自治度來分,分為:無局部自治和局部自治局部自治分布式數(shù)據(jù)庫:當(dāng)局部事務(wù)允許對服務(wù)器軟件進行直接存取,則系統(tǒng)稱為有一定的局部自治。無局部自治分布式數(shù)據(jù)庫:當(dāng)對DDBMS的存取必須通過客戶軟件,則系統(tǒng)稱為無局部自治;四,分布式數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)全局外模式:它們是全局應(yīng)用的用戶視圖,是全局概念模式的子集。全局概念模式:定義分布式數(shù)據(jù)庫中數(shù)據(jù)的整體邏輯結(jié)構(gòu)。分片模式:每一個全局關(guān)系可以劃分為若干個不相交的部分,每一個部分稱為一個片斷。分片模式就是定義片段及全局關(guān)系到片斷的映像。(1:M)分布模式:每一個片斷物理上可以分配到網(wǎng)絡(luò)不同的節(jié)點上,分布模式定義片斷的存放節(jié)點。局部概念模式:被分配到某個場地上的邏輯片斷的集合。局部內(nèi)模式:局部內(nèi)模式是DDB中關(guān)于物理數(shù)據(jù)庫的描述。這種6層模式結(jié)構(gòu)具有顯著的特征:數(shù)據(jù)分片和數(shù)據(jù)分布概念的分離,形成了“數(shù)據(jù)分布獨立性”概念。數(shù)據(jù)冗余的顯式控制。數(shù)據(jù)在各個場地的分配情況在分配模式中一目了然,便于系統(tǒng)管理。局部DBMS的獨立性。這個特征也稱為:“局部映射透明性”。分布式數(shù)據(jù)庫的優(yōu)點:具有靈活的體系結(jié)構(gòu)。適應(yīng)分布式管理和控制機構(gòu)。經(jīng)濟性能優(yōu)越。系統(tǒng)可靠性高。局部應(yīng)用的響應(yīng)速度快??蓴U展性好,易于集成現(xiàn)有系統(tǒng)。分布式數(shù)據(jù)庫的缺點系統(tǒng)開銷大,主要在通信部分。復(fù)雜的存取結(jié)構(gòu),集中式系統(tǒng)的存取數(shù)據(jù)技術(shù),在分布式不再適用。數(shù)據(jù)的安全性和保密性較難處理。第二節(jié)分布式數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)分布式數(shù)據(jù)庫數(shù)據(jù)存儲可以從兩個角度考察:分片和分配。一,分布式數(shù)據(jù)庫數(shù)據(jù)分配:數(shù)據(jù)分配就是數(shù)據(jù)在計算機網(wǎng)絡(luò)各個場地上的分配策略,也稱為數(shù)據(jù)分布。1.數(shù)據(jù)分配的策略集中式:所有數(shù)據(jù)均安排在同一場地。分割式:數(shù)據(jù)在每個場地重復(fù)存儲。全復(fù)制:數(shù)據(jù)在每個場地重復(fù)存儲?;旌闲停簲?shù)據(jù)庫分成若干個可相交的子集,每一個子集安置在一個或多個場地上,但每一個場地未必保存全部數(shù)據(jù)。四個評估因素:存儲代價、可靠性、檢索代價、更新代價。存儲代價和可靠性是一對矛盾的因素。檢索代價和更新代價,是一對矛盾的因素。二,數(shù)據(jù)分片數(shù)據(jù)分片是指數(shù)據(jù)存放單位不是全部關(guān)系,而是關(guān)系的一個片斷,也就是關(guān)系的一部分。分布式數(shù)據(jù)庫中的數(shù)據(jù)可以被復(fù)制在網(wǎng)絡(luò)場地的各個物理數(shù)據(jù)庫中,數(shù)據(jù)分片是通過關(guān)系代數(shù)的基本運算實現(xiàn)的。1.數(shù)據(jù)分片包括三種:水平分片:按一定的條件把全局關(guān)系的所有元組劃分為若干個不相交的子集,每個子集為關(guān)系的一個片斷。垂直分片:把一個全局關(guān)系的屬性集分成若干個子集,并在這個子集上作投影運算,每個投影為一個垂直分片?;旌戏制簩⑺椒制痛怪狈制绞骄C合起來使用,則為混合分片。2.數(shù)據(jù)分片應(yīng)遵循的原則完備性條件:必須把全局關(guān)系的所有數(shù)據(jù)映射到各個片斷中,決不允許發(fā)生屬于全局關(guān)系的某一個數(shù)據(jù)不屬于任何一個片斷。重構(gòu)條件:劃分所采用的方法必須確保能夠由各個片斷重建全局關(guān)系。(指垂直分割)不相交條件:要求一個全局關(guān)系被劃分后,得到的各個數(shù)據(jù)片斷互不重疊。(指水平劃分)。三,分布式數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)全局外模式:它們是全局應(yīng)用的用戶視圖,是全局概念模式的子集。全局概念模式:它們定義了分布式數(shù)據(jù)庫中所有數(shù)據(jù)的邏輯結(jié)構(gòu)。分片模式:定義了片斷以及全局關(guān)系與片斷之間的映像。這種映像是一對多的,即每個片斷來自一個全局關(guān)系,而一個全局關(guān)系可分為多個片斷。分配模式:片斷是全局關(guān)系的邏輯部分,一個片斷在物理上可以分配到網(wǎng)絡(luò)上的不同場地上,分配模式根據(jù)分配策略的選擇定義片斷的存儲場地。四,分布的透明性分布透明性,也稱為分布的獨立性,是指用戶不必關(guān)心數(shù)據(jù)的邏輯分片,不必關(guān)心數(shù)據(jù)存放的物理位置等細(xì)節(jié),也不必關(guān)心各個場地上數(shù)據(jù)庫的數(shù)據(jù)模型。分片的透明性:用戶無需知道關(guān)系是如何分片的。位置的透明性:用戶不必知道數(shù)據(jù)存放的物理位置。局部數(shù)據(jù)庫模型的透明性:這個透明性位于分配視圖與局部概念視圖之間,指用戶或應(yīng)用程序要了解分片及各個片斷存儲的場地,但不必了解局部場地使用了何種數(shù)據(jù)模型。(復(fù)制透明性:用戶不必關(guān)系復(fù)制了什么數(shù)據(jù)對象,也不必關(guān)系副本的存放位置)分布式數(shù)據(jù)存儲(復(fù)制和分片)對于一個要存儲到數(shù)據(jù)庫中的關(guān)系R,在分布式DBS中有兩種方法:(1)復(fù)制:系統(tǒng)維護這個關(guān)系的幾個副本,各個副本存儲在不同的場地。(2)分片:把關(guān)系劃分為幾個片斷,每個片斷存儲在不同的站點上。分片和復(fù)制可以組合,一個關(guān)系可以分成幾個片,每個片有幾個副本。數(shù)據(jù)復(fù)制如果關(guān)系r被復(fù)制,則在兩個以上關(guān)系中存在副本,極端情況下是每個場地都有一個副本,稱為全復(fù)制(fullreplication)數(shù)據(jù)復(fù)制的優(yōu)點可用性。當(dāng)包含關(guān)系r的站點之一發(fā)生故障,系統(tǒng)仍可以運行。增加的并行性。由于有多個副本,增加了查詢操作的并行性。增加了更新的開銷。復(fù)制的缺點復(fù)制可以提高read操作的性能,但對數(shù)據(jù)更新的開銷增大,一致性維護復(fù)雜。如何保證兩個站點沒有對不同的數(shù)據(jù)項實用相同的名字?使用中央名字服務(wù)器(nameserver)注冊,確保名字不重復(fù)使用在名字的前面加上站點的標(biāo)識符以示卻別。但破壞了位置的透明性。五,分布式數(shù)據(jù)庫管理系統(tǒng)distributeddatabasemanagementsystem分布式數(shù)據(jù)庫管理系統(tǒng)的結(jié)構(gòu):LDBMS。局部場地上的數(shù)據(jù)庫管理系統(tǒng),其功能是建立和管理局部數(shù)據(jù)庫,提供場地自治、執(zhí)行局部應(yīng)用及全局查詢的子查詢。GDBMS。全局?jǐn)?shù)據(jù)庫管理系統(tǒng),其功能是提供分布透明性,協(xié)調(diào)全局事務(wù)的執(zhí)行,協(xié)調(diào)各局部DBMS以完成全局應(yīng)用,保證數(shù)據(jù)庫的全局一致性,執(zhí)行并發(fā)控制,實現(xiàn)更新同步,提供全局恢復(fù)功能。全局?jǐn)?shù)據(jù)字典。存放全局概念模式、分片模式、分布模式的定義及各模式之間的映像的定義。存放用戶存取權(quán)限、數(shù)據(jù)庫安全性,完整性約束條件。通信管理(CM)。在分布數(shù)據(jù)庫各場地之間傳送消息和數(shù)據(jù),完成通信功能。對全局控制有幾種方式:全局控制集中的DBMS:全局控制成分GDBMS集中在一個場地上。全局控制分散的DBMS:全局控制成分GDBMS分散在各個場地上。全局控制部分分散的DBMS:控制成分GDBMS分散在某些場地上。第三節(jié)分布式事務(wù)處理復(fù)習(xí):事務(wù)的ACID特性原子性atomicity:事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事物的操作要么都做,要么都不做。一致性consistency:事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)轉(zhuǎn)換為另一個一致性狀態(tài)。隔離性isolation:數(shù)據(jù)庫中一個事務(wù)的執(zhí)行同其他事務(wù)的執(zhí)行是隔離的,互不干擾。持續(xù)性durability:事務(wù)一旦提交,則對數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久的,以后的操作或故障不會對事務(wù)的操作產(chǎn)生影響。局部事務(wù)localtransaction:僅訪問和更新一個局部數(shù)據(jù)庫的事務(wù)。全局事務(wù)globaltransaction:訪問和更新多個局部數(shù)據(jù)庫中數(shù)據(jù)的事務(wù)。一,分布式事務(wù)的系統(tǒng)結(jié)構(gòu)組成:事務(wù)管理器和事務(wù)協(xié)調(diào)器(1)事務(wù)管理器,transactionmanager,管理那些訪問存儲在一個局部站點中數(shù)據(jù)的事務(wù)的執(zhí)行(即可以是局部事務(wù),也可以是全局事務(wù))。維護一個用戶恢復(fù)的日志。參與適當(dāng)?shù)牟l(fā)控制,以協(xié)調(diào)在該站點執(zhí)行的事務(wù)的并發(fā)執(zhí)行。(2)事務(wù)協(xié)調(diào)器transactioncoordinator,協(xié)調(diào)該站點上發(fā)起的各個不同事務(wù)的執(zhí)行(即有全局事務(wù),也有局部事務(wù))。(集中式DBS不需要事務(wù)協(xié)調(diào)器)啟動事務(wù)的執(zhí)行。將事務(wù)分裂為一些子事務(wù),并將這些子事務(wù)分派到恰當(dāng)站點上執(zhí)行。協(xié)調(diào)事務(wù)的終止,其結(jié)果是事務(wù)在所有站點上都提交或都終止。復(fù)習(xí)集中式數(shù)據(jù)庫事務(wù)的故障:復(fù)習(xí)集中式數(shù)據(jù)庫事務(wù)的故障:1.事務(wù)內(nèi)部故障(包括可預(yù)期的和不可預(yù)期的)2.系統(tǒng)故障(軟故障)3.介質(zhì)故障(硬故障)二,分布式數(shù)據(jù)庫事務(wù)的系統(tǒng)故障模式分布式系統(tǒng)的故障包括集中式的故障類型(事務(wù)內(nèi)部故障、系統(tǒng)故障、介質(zhì)故障、其他故障)外,分布式系統(tǒng)另外還有一些基本故障類型:站點故障、消息丟失、通信鏈路故障、網(wǎng)絡(luò)分割。故障恢復(fù)的難度,從小到大依次為:一是節(jié)點故障;二是節(jié)點故障和消息丟失,但無分區(qū)故障;三是節(jié)點故障、消息丟失、分區(qū)故障。三,兩段提交協(xié)議為了保證事務(wù)的原子性,就必須做到事務(wù)T要么在所有站點上都提交,要么都終止。為了保證這一原子特性,T的事務(wù)協(xié)調(diào)器必須執(zhí)行一個提交協(xié)議。兩端提交協(xié)議two-phasecommitprotocol,2PC是最簡單和使用最廣泛的提交協(xié)議。設(shè)定從一個站點Si發(fā)起一個事務(wù)T,并設(shè)Si的事務(wù)協(xié)調(diào)器是Ci階段1。Ci將記錄<prepareT>寫入日志中,并存入穩(wěn)定存儲器中。發(fā)送一條prepareT到所有站點。各站點接收到此消息,先加入到日志中去。當(dāng)站點事務(wù)管理器確定如果不愿意提交屬于該站點的事務(wù),事務(wù)管理器把記錄<noT>寫入日志,并向Ci發(fā)送一條abortT的消息。當(dāng)站點事務(wù)管理器愿意提交屬于該站點的事務(wù),則事務(wù)管理器把記錄<readyT>寫入日志,并向Ci發(fā)送一條readyT的消息。階段2。當(dāng)Ci發(fā)送prepareT消息一段預(yù)定時間間隔或者收到所有站點的回復(fù)時,Ci就可以確定該事務(wù)是提交還是終止。如果Ci收到所有站點的readyT消息,則將記錄<commitT>寫入日志,并向所有參與站點發(fā)送<commitT>消息。如果Ci收到有一個站點的abortT消息,則將記錄<abortT>寫入日志,并向所有參與站點發(fā)送<abortT>消息。由于事務(wù)的提交要求全體站點一致,只要有一個站點回答abortT消息,則事務(wù)T就被終止。只有全體站點響應(yīng)readyT則事務(wù)被提交。并把記錄寫入日志文件。當(dāng)所有站點收到commitT消息后,將<commitT>寫入日志文件,并提交該事務(wù)。兩階段提交的故障處理1.參與站點的故障failureofaparticipatingsite如果協(xié)調(diào)器Ci監(jiān)測到某個站點發(fā)生故障,如果該站點在用readyT消息回答Ci之前發(fā)生故障,則協(xié)調(diào)器認(rèn)為該站點是用abortT消息回答的,則事務(wù)終止。如果該站點是在發(fā)送readyT之后發(fā)生故障的,則協(xié)調(diào)器按照通常方式提交協(xié)議的剩余部分,忽略該站點的故障。此時,該站點故障恢復(fù)后,檢查日子文件,根據(jù)日志文件作以下操作:日志文件包含<commitT>記錄。執(zhí)行redo(T)。日志文件包含<abortT>記錄。執(zhí)行undo(T)。日志文件包含<readyT>記錄。詢問Ci確定T的最終結(jié)果,執(zhí)行相應(yīng)的redo(T)或者undo(T)操作。2.協(xié)調(diào)器故障failureofthecoordinator如果協(xié)調(diào)器在為事務(wù)T執(zhí)行提交協(xié)議的過程發(fā)生故障,則必須根據(jù)參與站點的日志決定T的最終結(jié)果。如果某個活躍站點日志中包括<commitT>記錄,則T必須被提交。如果某個活躍站點日志中包括<abortT>記錄,則T必須被終止。如果某個活躍站點日志中不包含<readyT>記錄,則T被終止。如果上述情況都不成立,則所有活躍站點都包含<readyT>記錄,還有別的站點包含<commitT>或<abortT>記錄,因此必須等待Ci故障恢復(fù),這段時間,其他事務(wù)必須被迫等待,因此發(fā)生阻塞。3.網(wǎng)絡(luò)分割networkpartition協(xié)調(diào)器同他的參與者處于一個分區(qū),這種情況故障對提交協(xié)議沒有影響。協(xié)調(diào)器和他的參與者處在不同分區(qū),不在協(xié)調(diào)器分區(qū)的站點執(zhí)行處理協(xié)調(diào)器故障的協(xié)議;在協(xié)調(diào)器分區(qū)的執(zhí)行一般提交協(xié)議。因此,2PC的主要缺陷在于發(fā)生協(xié)調(diào)器故障時可能導(dǎo)致阻塞,這種情況必須等到Ci恢復(fù)才能做出是提交還是終止T的決定?;謴?fù)與并發(fā)控制為了處理分布式提交協(xié)議(2PC或3PC),恢復(fù)過程必須對疑問十五進行特殊對待:疑問事務(wù)是發(fā)現(xiàn)有<readyT>日志記錄,但未發(fā)現(xiàn)<commitT>或<abortT>的日志記錄的事務(wù)。如果協(xié)調(diào)器發(fā)生故障,而任何站點都沒有關(guān)于未完事務(wù)的狀態(tài)(提交/終止),在使用2PC時就存在著恢復(fù)被阻塞的可能。為了克服這個問題,恢復(fù)算法通常提供對在日志中記載封鎖信息的支持(假設(shè)這里用于并發(fā)控制),此時所寫的日志記錄不再是<readyT>,而是<readyT,L>,其中L是寫入日志記錄時事務(wù)T所有的寫鎖的列表。當(dāng)恢復(fù)時,對所有的寫鎖需要從新獲取。當(dāng)所有疑問事務(wù)的鎖從新獲取完成后,即使疑問事務(wù)的提交-終止?fàn)顟B(tài)確定之前,該站點的事務(wù)處理就可以開始了。疑問事務(wù)的提交和回滾與新事務(wù)的執(zhí)行是并發(fā)的。這樣,站點的恢復(fù)就會加快,并且不會產(chǎn)生阻塞。三,三階段提交3PC三階段提交是兩階段提交的擴展,在某種前提條件下可以避免阻塞問題,只有在大于k個站點發(fā)生故障時才發(fā)生阻塞。如果網(wǎng)絡(luò)分割會產(chǎn)生多于k個站點,仍然會發(fā)生阻塞。3PC協(xié)議由于開銷太大,沒有被廣泛使用。四,并發(fā)控制并發(fā)控制是為了保證事務(wù)的原子性,是保證多個事務(wù)的高效、正確的執(zhí)行,是分布式事務(wù)管理的基本任務(wù)之一。在數(shù)據(jù)庫系統(tǒng)中,事務(wù)是以發(fā)出讀操作和寫操作原語的方式來存取數(shù)據(jù)的,事務(wù)的并發(fā)控制就是保證事務(wù)的并發(fā)操作正確執(zhí)行。在實際應(yīng)用中,可以采用鎖的方法和時間戳方法來實現(xiàn)事務(wù)的可串行化調(diào)度。1.鎖模型基本思想原則:事務(wù)對任何數(shù)據(jù)的操作必須先申請該數(shù)據(jù)項的鎖,只有申請到鎖以后,即加鎖成功以后,才可以對數(shù)據(jù)項進行操作。操作完成以后,要釋放已申請的鎖。通過鎖的共享與排斥的特性,實現(xiàn)事務(wù)的可串行化。對于基本鎖,不區(qū)分共享鎖和排他鎖,有可能降低事務(wù)的并發(fā)程度。讀鎖,共享鎖:是對數(shù)據(jù)項進行讀操作時加的鎖,可共享操作。寫鎖,排他鎖:是對數(shù)據(jù)項進行寫操作時加的鎖,不可共享操作。讀鎖寫鎖讀鎖共享排他寫鎖排他排他兩段鎖協(xié)議:任何事務(wù)對數(shù)據(jù)項的操作先加鎖,加鎖的方法是事務(wù)中全部加鎖操作在第一個解鎖操作之前完成。因此,加鎖和解鎖分布在事務(wù)的兩個階段,故稱為兩段鎖協(xié)議,即2PL協(xié)議。在集中式數(shù)據(jù)庫中,2PL可以保證事務(wù)可串行化調(diào)度。在分布式數(shù)據(jù)庫系統(tǒng)中,也遵循兩段鎖協(xié)議,實現(xiàn)分布式事務(wù)的并發(fā)處理。因此,全局事務(wù)遵循2PL協(xié)議時,各子事務(wù)也遵循2PL協(xié)議。2.時間戳模型對每一個事務(wù)在激活是分配一個時間戳,唯一標(biāo)識該事務(wù)和事務(wù)激活的順序。事務(wù)對數(shù)據(jù)項的操作時,先把自己的時間錯賦予該數(shù)據(jù)項。當(dāng)事務(wù)間發(fā)生沖突時,時間戳小的先執(zhí)行,時間戳大的后執(zhí)行。當(dāng)一個事務(wù)的時間戳小于另一個已經(jīng)執(zhí)行的事務(wù)時,該事務(wù)被終止,并重新啟動,且賦予一個新的時間戳。時間戳分為讀時間戳和寫時間戳。在鎖的方式中,當(dāng)兩個以上的事務(wù)互相鎖住對方所需的資源時,系統(tǒng)就發(fā)生了死鎖。因此需要有死鎖檢測和消除機制及死鎖防治機制,進行死鎖后處理和預(yù)防。而時間戳協(xié)議中,事務(wù)要么繼續(xù)執(zhí)行,要么終止,重新獲得時間戳,因此不會發(fā)生死鎖。但重新啟動頻繁。時間戳的算法有兩種:基本時間戳方法和保守時間戳方法。第四節(jié)分布式查詢分布式查詢有兩個新特點:網(wǎng)絡(luò)通信速率較低,因此考慮查詢處理時各節(jié)點之間通信造成的明顯時間延遲。由于各節(jié)點有獨立的計算機,有了在各臺計算機上進行并行處理各個子查詢部分,以及在各節(jié)點之間進行并行傳送數(shù)據(jù)的可能性。分布式數(shù)據(jù)庫系統(tǒng)中的查詢處理過程:由全局?jǐn)?shù)據(jù)庫管理系統(tǒng)在查詢產(chǎn)生節(jié)點時對查詢進行詞法和語法分析,生成查詢樹。對全局查詢樹進行變化,查詢分解,把查詢分解成若干個子查詢,確定處理子查詢的運算次序和節(jié)點。對子查詢進行優(yōu)化和執(zhí)行。子查詢結(jié)果的匯總和處理。一,全局查詢樹的變換為了提高查詢執(zhí)行效率,可對全局查詢樹進行下述變換。用片斷替換查詢樹中的全局關(guān)系。水平分割用“并”操作,垂直分割用“聯(lián)結(jié)”操作。盡可能把選擇、投影等一元操作推向查詢樹的葉端。減少查詢中間結(jié)果,降低網(wǎng)絡(luò)數(shù)據(jù)傳輸。合并公共子表達式。減少查詢次數(shù)。消除空的關(guān)系和冗余度。使用邏輯化簡規(guī)則消除空關(guān)系和冗余度。移去無用的垂直葉片,減少聯(lián)結(jié)操作和網(wǎng)絡(luò)傳輸。二,副本的選擇和多副本的更新策略。為了提高訪問的局部性和系統(tǒng)的可用性,關(guān)系和片斷常常設(shè)置多個復(fù)本,分布于不同的節(jié)點,這樣,查詢處理時就存在復(fù)本選擇的問題:盡可能提高訪問的局部性,減少遠距離訪問。盡可能減少通信開銷,尤其要減少大量數(shù)據(jù)傳輸。適當(dāng)考慮節(jié)點負(fù)荷的平衡。雖然多復(fù)本可以提高訪問的局部性和系統(tǒng)的堅固性,但是更新時,必須保證多復(fù)本的一致性:在事務(wù)提交前更新全部復(fù)本。(只要有一個復(fù)本未更新,則事務(wù)就失?。┝⒓锤掠行Ч?jié)點的復(fù)本,失效節(jié)點復(fù)本留待修復(fù)后更新。主復(fù)本法。指定一個復(fù)本為主復(fù)本,其他為副本。更新時只更新主復(fù)本,所有副本根據(jù)主復(fù)本廣播的內(nèi)容進行更新。主復(fù)本和副本之間可能出現(xiàn)不一致。為此可以讓每個副本附加一個版本號,如果主復(fù)本的版本號同副本的版本號相同,則可以讀副本,否則,讀主復(fù)本或待更新后再度副本。快照法。是指數(shù)據(jù)在某一時刻的狀態(tài),他不隨數(shù)據(jù)庫中的數(shù)據(jù)更新而即時更新。如統(tǒng)計報表中的“截止×月×日止”。三,查詢樹的分解查詢樹的分解一般采用后序遍歷法。全局優(yōu)化的核心問題是執(zhí)行分布式聯(lián)結(jié)的策略。四,分布式查詢通常采用半聯(lián)結(jié)的查詢優(yōu)化策略有時候作聯(lián)結(jié)操作時,并不需要將整個關(guān)系(或片斷)都傳送到對方,只要傳送聯(lián)結(jié)時與對方匹配的元組就夠了。半聯(lián)結(jié)可以減少節(jié)點間的數(shù)據(jù)傳輸量和運算量。在廣域網(wǎng)中,通信開銷是主要矛盾,通常采用半聯(lián)結(jié)方式的查詢優(yōu)化策略。五,查詢優(yōu)化應(yīng)考慮的問題優(yōu)化的代價函數(shù)對系統(tǒng)的影響:響應(yīng)時間。系統(tǒng)的吞吐量??偟木植抠Y源利用率(CPU利用率、FO操作等)網(wǎng)絡(luò)通信量。網(wǎng)絡(luò)中各節(jié)點負(fù)載的均衡分布。在集中式數(shù)據(jù)庫系統(tǒng)中,已經(jīng)建立的優(yōu)化算法通常是以耗費的CPU時間和FO操作來衡量代價函數(shù)的。分布式數(shù)據(jù)庫系統(tǒng)則比較復(fù)雜,全局優(yōu)化執(zhí)行方案受下面因素的影響:多種復(fù)本的選擇。多種執(zhí)行次序。對于多元聯(lián)結(jié)個并操作,利用結(jié)合律和交換律組成多種次序。多個執(zhí)行地點。多種聯(lián)結(jié)方法。分布式數(shù)據(jù)庫的查詢優(yōu)化按實現(xiàn)方法可以分為:靜態(tài)優(yōu)化法和動態(tài)優(yōu)化法。靜態(tài)優(yōu)化法:在事務(wù)執(zhí)行前進行優(yōu)化。動態(tài)優(yōu)化法:在事務(wù)執(zhí)行過程中進行優(yōu)化,優(yōu)化質(zhì)量高于靜態(tài)優(yōu)化法。第五節(jié)網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫系統(tǒng)的設(shè)計實施任務(wù):定義全局?jǐn)?shù)據(jù)庫的概念模式。設(shè)計物理數(shù)據(jù)庫,將概念模式映射到存儲區(qū)域并確定適當(dāng)?shù)拇嫒》椒?。設(shè)計分片。確定將全局關(guān)系進行水平、垂直、或混合劃分,以便分配。設(shè)計片段的分配。確定片斷分配到各個場地的分配情況和復(fù)制的片斷。一,數(shù)據(jù)的分布設(shè)計1.?dāng)?shù)據(jù)劃分原則和分片方法按DDB外部特征來劃分。如按照部門來劃分。按DDB的內(nèi)部特征來劃分。對DDB的組成性質(zhì)劃分后仍應(yīng)保持其原有的性質(zhì)。劃分后個邏輯關(guān)系必須遵守下列原則:完整性原則。不允許某些數(shù)據(jù)屬于全局但不屬于任何一個片斷??芍貥?gòu)原則。對于水平劃分的可利用‘并操作’重構(gòu),對于垂直劃分的,可利用聯(lián)結(jié)操作重構(gòu)。不相交原則。不允許一個全局關(guān)系的某些數(shù)據(jù)即屬于該全局關(guān)系的某一個片斷,同時又屬于該關(guān)系的另一個片斷(適用于水平劃分)。(3)分片方法:水平分片、垂直分片和混合分片。水平分片:按一定的條件將關(guān)系按行(水平方向)劃分為不相交的若干子集,每個子集就是一個片斷。垂直分片:將關(guān)系按照列(垂直方向)分為若干子集,每個子集就是一個片斷?;旌戏制?。采用水平分片和垂直分片相結(jié)合的方法進行劃分。2.數(shù)據(jù)分配的策略和一般準(zhǔn)則DDB中全局關(guān)系經(jīng)邏輯劃分后,其分配通常由4種類型。集中型。數(shù)據(jù)雖經(jīng)劃分,但所有邏輯片斷仍然存放在一個場地上。分割型。數(shù)據(jù)劃分后,所有邏輯片斷各自分配到一個場地所有場地上分配的知識全局關(guān)系的一個子關(guān)系。全復(fù)制型。數(shù)據(jù)被劃分后,所有邏輯片斷在每個場地上均重復(fù)設(shè)置?;旌闲?。數(shù)據(jù)被劃分后的邏輯片斷根據(jù)需要分配。共享的片斷重復(fù)設(shè)置,高度私用的片斷只設(shè)置在所需的片斷。對各種劃分方法的評估。4個評估因素:存儲代價、可靠性、更新代價、檢索代價。集中型:存儲代價:無;可靠性:差;更新代價:無;檢索代價:高。分割型:存儲代價:無增加;可靠性好;更新代價:無;檢索代價:低。全復(fù)制型:存儲代價高;檢索代

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論