分布式數(shù)據(jù)庫(kù)學(xué)習(xí)總結(jié)論文(共30頁(yè))_第1頁(yè)
分布式數(shù)據(jù)庫(kù)學(xué)習(xí)總結(jié)論文(共30頁(yè))_第2頁(yè)
分布式數(shù)據(jù)庫(kù)學(xué)習(xí)總結(jié)論文(共30頁(yè))_第3頁(yè)
分布式數(shù)據(jù)庫(kù)學(xué)習(xí)總結(jié)論文(共30頁(yè))_第4頁(yè)
分布式數(shù)據(jù)庫(kù)學(xué)習(xí)總結(jié)論文(共30頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、分布式數(shù)據(jù)庫(kù)系統(tǒng)姓名(xngmng):張定國(guó)學(xué)號(hào):s20130415分布式數(shù)據(jù)庫(kù)系統(tǒng)概述(i sh)第一章包含(bohn)五個(gè)部分內(nèi)容,分別是引言及準(zhǔn)備知識(shí)、分布庫(kù)系統(tǒng)的基本概、分布庫(kù)系統(tǒng)的作用和特點(diǎn)、分布式數(shù)據(jù)庫(kù)系統(tǒng)介紹、關(guān)鍵技術(shù)。引言及準(zhǔn)備知識(shí):分布數(shù)據(jù)庫(kù)管理系統(tǒng)興起于70年代中期,推動(dòng)其發(fā)展來(lái)自兩方面:一方面是應(yīng)用需求,另一方面是硬件環(huán)境的發(fā)展。這些應(yīng)用都涉及地理上分布的團(tuán)體、組織的局部業(yè)務(wù)管理和系統(tǒng)全局管理,采用成熟的集中式數(shù)據(jù)庫(kù)管理系統(tǒng)已無(wú)法實(shí)現(xiàn)應(yīng)用需求。在硬件環(huán)境上提供了功能強(qiáng)大的計(jì)算機(jī)和成熟的廣域范圍公用數(shù)據(jù)網(wǎng)及局域范圍局域網(wǎng)的硬件環(huán)境支持。分布式數(shù)據(jù)庫(kù)系統(tǒng)是地理(dl)上分散而

2、邏輯上集中的數(shù)據(jù)庫(kù)系統(tǒng)。即通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)將地理上分散的各局域結(jié)點(diǎn)連接起來(lái)共同組成一個(gè)邏輯上統(tǒng)一的大數(shù)據(jù)庫(kù)系統(tǒng)。因此可以說(shuō):分布式數(shù)據(jù)庫(kù)系統(tǒng)是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)的結(jié)合的產(chǎn)物。分布式數(shù)據(jù)庫(kù)系統(tǒng)與集中數(shù)據(jù)庫(kù)系統(tǒng)一樣(yyng),包含兩個(gè)重要部分:分布式數(shù)據(jù)庫(kù)和分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。分布庫(kù)系統(tǒng)(xtng)的基本概:數(shù)據(jù)庫(kù)-從用戶使用數(shù)據(jù)庫(kù)的角度出發(fā),可定義如下:數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述、存儲(chǔ),具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易于擴(kuò)展性,并可為各種用戶共享。數(shù)據(jù)庫(kù)設(shè)計(jì)-對(duì)一個(gè)給定的應(yīng)用環(huán)境(現(xiàn)實(shí)世界)設(shè)計(jì)最優(yōu)的數(shù)據(jù)模型,

3、然后,按模型建立數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)-人們用于管理和操作數(shù)據(jù)庫(kù)的軟件產(chǎn)品。為有效地管理和操作數(shù)據(jù)庫(kù),研制出數(shù)據(jù)庫(kù)管理系統(tǒng)(Database Management System),使用戶不必涉及數(shù)據(jù)的結(jié)構(gòu)描述及實(shí)際存儲(chǔ),方便、最優(yōu)地操作數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)管理系統(tǒng)可描述為用戶接口、查詢處理、查詢優(yōu)化、存儲(chǔ)管理四個(gè)基本模塊和事務(wù)管理、并發(fā)控制、恢復(fù)管理三個(gè)輔助模塊組成。模式-現(xiàn)實(shí)世界的信息抽象到數(shù)據(jù)庫(kù)存儲(chǔ)的數(shù)據(jù)是一個(gè)逐步抽象的過(guò)程。美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)和標(biāo)準(zhǔn)需求計(jì)劃委員會(huì)(SPARC)根據(jù)數(shù)據(jù)的抽象級(jí)別定義了三層模式參考模型。 關(guān)系模型-數(shù)據(jù)庫(kù)數(shù)據(jù)模型的三種模型(層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型和關(guān)

4、系數(shù)據(jù)模型)之一。關(guān)系是二維表,關(guān)系也稱表。表中的一行稱關(guān)系的一個(gè)元組,表中的一列稱關(guān)系的一個(gè)屬性。關(guān)系(gun x)代數(shù)-關(guān)系是一個(gè)集合(jh),關(guān)系的元組是集合的元素。關(guān)系代數(shù)包括5個(gè)集合運(yùn)算和3個(gè)特殊關(guān)系運(yùn)算。SQL-是一種非過(guò)程性語(yǔ)言。提供(tgng)了數(shù)據(jù)定義(建立數(shù)據(jù)庫(kù)和表結(jié)構(gòu))、數(shù)據(jù)操縱(輸入、修改、刪除和更新、數(shù)據(jù)查詢)、數(shù)據(jù)控制等數(shù)據(jù)庫(kù)操作命令,較好地滿足數(shù)據(jù)庫(kù)語(yǔ)言的要求。由于國(guó)際標(biāo)準(zhǔn)化組織指定了SQL標(biāo)準(zhǔn),具有可移植性, SQL又提供了靈活而強(qiáng)大的查詢功能方便復(fù)雜的查詢操作,使SQL為廣大用戶所采用。節(jié)點(diǎn)/場(chǎng)地-分布式數(shù)據(jù)庫(kù)系統(tǒng)是地理上分散而邏輯上集中的數(shù)據(jù)庫(kù)系統(tǒng)。管理分布

5、式數(shù)據(jù)庫(kù)的軟件稱分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。分布式系統(tǒng)通常是由計(jì)算機(jī)網(wǎng)絡(luò)將各地理上分散的邏輯單位連接起來(lái)。被連接的邏輯單位稱為節(jié)點(diǎn)(node)或場(chǎng)地(site)。節(jié)點(diǎn)/場(chǎng)地可是單獨(dú)一臺(tái)計(jì)算機(jī)也可是局域網(wǎng)組成。集中數(shù)據(jù)庫(kù)系統(tǒng)-所有數(shù)據(jù)駐留在同一場(chǎng)地上。我們稱傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)為集中式數(shù)據(jù)庫(kù)系統(tǒng)(DB)。分布式數(shù)據(jù)庫(kù)-分布在一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)上的多個(gè)邏輯相關(guān)的數(shù)據(jù)庫(kù)的集合。也就是說(shuō),分布式數(shù)據(jù)庫(kù)是一組結(jié)構(gòu)化的數(shù)據(jù)集合,邏輯上屬于同一系統(tǒng),物理上分布在計(jì)算機(jī)網(wǎng)絡(luò)的各個(gè)不同節(jié)點(diǎn)上。分布式數(shù)據(jù)庫(kù)系統(tǒng)介紹20世紀(jì)80年代以來(lái),這一時(shí)期商品化的產(chǎn)品如下:Sybase SQL Server。SYSBASE1987年推出的

6、。Informix-Online. INFORMIX 公司20世紀(jì)90年代推出。C-POREL.1990年由中國(guó)科學(xué)院數(shù)學(xué)所等單位開發(fā)集成的。分布庫(kù)系統(tǒng)的作用和特點(diǎn):作用(zuyng):分布式數(shù)據(jù)庫(kù)系統(tǒng)是地理上(或物理上)分散而邏輯上集中的數(shù)據(jù)庫(kù)系統(tǒng)。適合于分散型組織(zzh)結(jié)構(gòu)的任何信息系統(tǒng)。如:航空公司訂票系統(tǒng)、陸、海、空軍事指揮系統(tǒng)、CIMS制造業(yè)、銀行通存通兌系統(tǒng)和連鎖配送系統(tǒng)等等。以上每一系統(tǒng)都涉及分散在不同地理(dl)位置上數(shù)據(jù)的一致性、完整性及有效性,是集中式數(shù)據(jù)庫(kù)無(wú)法滿足的。在此推動(dòng)下,研制出分布式數(shù)據(jù)庫(kù)系統(tǒng),有效地適應(yīng)了地理上分散的、網(wǎng)絡(luò)環(huán)境下的、邏輯上統(tǒng)一的分布式系統(tǒng)的需

7、求。特點(diǎn):分布式數(shù)據(jù)庫(kù)系統(tǒng)是在集中式數(shù)據(jù)庫(kù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ)上發(fā)展起來(lái)的,同時(shí)提出了許多新觀點(diǎn)、新方法和實(shí)現(xiàn)的新技術(shù),有效地提高了分布系統(tǒng)的性能。因此,分布式數(shù)據(jù)庫(kù)系統(tǒng)具有許多集中庫(kù)系統(tǒng)所不具備的優(yōu)點(diǎn)。但由于分布庫(kù)系統(tǒng)復(fù)雜,有些技術(shù)的實(shí)現(xiàn)還不完善,如:恢復(fù)開銷龐大,導(dǎo)致系統(tǒng)效率嚴(yán)重下降;難于達(dá)到完全透明等。優(yōu)點(diǎn): 提高系統(tǒng)性能,如:吞吐率和響應(yīng)速度提高??衫矛F(xiàn)有設(shè)備和系統(tǒng),降低投資。系統(tǒng)允許存儲(chǔ)副本,提高可靠性、可用性和并行執(zhí)行度。根據(jù)實(shí)際需要,可增加或減少某一場(chǎng)地。系統(tǒng)具有可擴(kuò)展性。系統(tǒng)資源和數(shù)據(jù)分布在物理上不同場(chǎng)地上,為系統(tǒng)所有用戶共享。缺點(diǎn):經(jīng)驗(yàn)不足,系統(tǒng)不很完善。 系統(tǒng)復(fù)雜。 維護(hù)

8、開銷大。 需分布控制。 安全問(wèn)題。 系統(tǒng)難以改變。關(guān)鍵技術(shù):分布式數(shù)據(jù)庫(kù)設(shè)計(jì)中需要考慮下面幾個(gè)問(wèn)題:如何合理分布數(shù)據(jù)于各個(gè)場(chǎng)地上,如何設(shè)定復(fù)制型和非復(fù)制型數(shù)據(jù),如何實(shí)現(xiàn)目錄管理。查詢處理:事務(wù)到數(shù)據(jù)操作命令的轉(zhuǎn)換問(wèn)題,以最小代價(jià)(訪問(wèn)時(shí)間)執(zhí)行查詢策略的優(yōu)化問(wèn)題。并發(fā)控制:對(duì)多個(gè)用戶并發(fā)訪問(wèn)的同步問(wèn)題;事務(wù)的一致性和隔離性問(wèn)題;解決和預(yù)防死鎖問(wèn)題??煽啃裕合到y(tǒng)故障恢復(fù)問(wèn)題;事務(wù)的原子性和耐久性實(shí)現(xiàn)問(wèn)題。安全性與完整性方面,要解決:用戶授權(quán)和認(rèn)證問(wèn)題;訪問(wèn)權(quán)限控制問(wèn)題;數(shù)據(jù)完整性約束問(wèn)題。分布式數(shù)據(jù)庫(kù)系統(tǒng)的結(jié)構(gòu)(jigu)體系結(jié)構(gòu)框架是用于規(guī)范(gufn)系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)的指南。要建立一個(gè)分布式

9、數(shù)據(jù)庫(kù)系統(tǒng),首先要考慮系統(tǒng)的體系機(jī)構(gòu)。系統(tǒng)的體系結(jié)構(gòu)用于定義系統(tǒng)的結(jié)構(gòu),包括組成系統(tǒng)的組件,定義各組件的功能及組件之間的內(nèi)部聯(lián)系和彼此間的作用。本章包含(bohn)的主要內(nèi)容有:物理結(jié)構(gòu)和邏輯結(jié)構(gòu)、體系結(jié)構(gòu)、系統(tǒng)結(jié)構(gòu)、模式結(jié)構(gòu)、功能結(jié)構(gòu)、數(shù)據(jù)集成系統(tǒng)、MDBS體系結(jié)構(gòu)、P2PDBS、分布式數(shù)據(jù)庫(kù)系統(tǒng)分類、字典信息的組織。物理結(jié)構(gòu)和邏輯結(jié)構(gòu):系統(tǒng)結(jié)構(gòu):系統(tǒng)的體系結(jié)構(gòu)( Architecture):按組件、組件功能以及它們的交互作用定義系統(tǒng)的結(jié)構(gòu)(Structure)。參考體系結(jié)構(gòu)的目的:討論的框架、標(biāo)準(zhǔn)。DBMS 標(biāo)準(zhǔn)化:基于(jy)功能、基于(jy)組件、基于(jy)數(shù)據(jù)、最早的是基于數(shù)據(jù)組織

10、ANSI/SPARC Architecture(external view, conceptual view, internal view, )的三級(jí)模式結(jié)構(gòu)。組件結(jié)構(gòu):應(yīng)用處理器(AP)功能: 用戶接口:檢查用戶身份,接受用戶命令,如:SQL命令。語(yǔ)義數(shù)據(jù)控制器: 視圖管理、安全控制、語(yǔ)義完整性控制(全局概念模式)。這些約束定義在字典中。全局查詢處理器:將用戶命令翻譯成數(shù)據(jù)庫(kù)命令;生成全局查詢的分布執(zhí)行計(jì)劃;收集局部執(zhí)行結(jié)果并返回給用戶。全局執(zhí)行監(jiān)控器(全局事務(wù)管理器):調(diào)度協(xié)調(diào)和監(jiān)視AP和DP之間的分布執(zhí)行;保證復(fù)制數(shù)據(jù)的一致性;保證全局事務(wù)的原子性。DP功能局部查詢處理:實(shí)現(xiàn)全局命令到局

11、部命令的轉(zhuǎn)換;訪問(wèn)路徑選擇器,選擇最好的路徑執(zhí)行。局部恢復(fù)管理器: 維護(hù)本地?cái)?shù)據(jù)庫(kù)一致性的故障恢復(fù)。運(yùn)行支持處理器(存儲(chǔ)管理器):按調(diào)度命令訪問(wèn)數(shù)據(jù)庫(kù);控制數(shù)據(jù)庫(kù)緩存管理器;返回局部執(zhí)行結(jié)果;保證子事務(wù)執(zhí)行的正確性。局部事務(wù)管理器:以局部子事務(wù)為單位調(diào)度執(zhí)行,保證子事務(wù)執(zhí)行的正確性。局部調(diào)度管理器:負(fù)責(zé)局部場(chǎng)地上的并發(fā)控制,按可串行化調(diào)度和執(zhí)行數(shù)據(jù)操作。模式結(jié)構(gòu):我國(guó)分布式數(shù)據(jù)庫(kù)系統(tǒng)標(biāo)準(zhǔn)草案中給定的抽象為四層的模式結(jié)構(gòu):全局外層、全局概念層、局部概念層和局部?jī)?nèi)層。模式與模式之間是映射關(guān)系。全局模式或外模式(ES):全局外模式即全局用戶視圖,是分布式數(shù)據(jù)庫(kù)的全局用戶對(duì)分布式數(shù)據(jù)庫(kù)的最高層抽象。全

12、局用戶使用視圖時(shí),不必關(guān)心數(shù)據(jù)的分片和具體的物理分配細(xì)節(jié)。 全局概念模式(GCS): 全局概念模式即全局概念視圖,是分布式 數(shù)據(jù)庫(kù)的整體抽象,包含了全部數(shù)據(jù)特性(txng)和邏輯結(jié)構(gòu)。像集中式數(shù)據(jù)庫(kù)中的概念模式一樣,是對(duì)數(shù)據(jù)庫(kù)全體的描述。全局概念模式再經(jīng)過(guò)分片模式和分配模式映射到局部模式。分片模式是描述全局?jǐn)?shù)據(jù)的邏輯劃分視圖。即全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)根據(jù)某種條件的劃分,將全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)劃分為局部(jb)數(shù)據(jù)邏輯結(jié)構(gòu)。每一個(gè)邏輯劃分成一個(gè)分片。在關(guān)系數(shù)據(jù)庫(kù)中,一個(gè)關(guān)系中的一個(gè)子關(guān)系稱該關(guān)系的一個(gè)片段。分配模式是描述局部數(shù)據(jù)邏輯的局部物理結(jié)構(gòu),即劃分(hu fn)后的分片的物理分配視圖。局部概念視圖(

13、LCS):局部概念模式為局部概念視圖,是全局概念模式的子集。局部概念模式用于描述局部場(chǎng)地上的局部數(shù)據(jù)邏輯結(jié)構(gòu)。當(dāng)全局?jǐn)?shù)據(jù)模型與局部數(shù)據(jù)模型不同時(shí),還涉及數(shù)據(jù)模型轉(zhuǎn)換等內(nèi)容。 局部?jī)?nèi)模式定義局部物理視圖,是對(duì)物理數(shù)據(jù)庫(kù)的描述,類似集中數(shù)據(jù)庫(kù)的內(nèi)層。 分布式數(shù)據(jù)庫(kù)的四層結(jié)構(gòu)及模式定義描述了分布式數(shù)據(jù)庫(kù)是一組用網(wǎng)絡(luò)聯(lián)結(jié)的局部數(shù)據(jù)庫(kù)的邏輯集合。它將數(shù)據(jù)庫(kù)分為全局?jǐn)?shù)據(jù)庫(kù)和局部數(shù)據(jù)庫(kù)。全局?jǐn)?shù)據(jù)庫(kù)到局部數(shù)據(jù)庫(kù)由映射(1:N)模式描述。全局?jǐn)?shù)據(jù)庫(kù)是虛擬的,由全局概念層描述。局部數(shù)據(jù)庫(kù)是全局?jǐn)?shù)據(jù)庫(kù)的內(nèi)層,由局部概念層和局部?jī)?nèi)層描述。全局用戶只關(guān)心全局外層定義的數(shù)據(jù)庫(kù)用戶視圖,其內(nèi)部數(shù)據(jù)模型的轉(zhuǎn)換、場(chǎng)地分配節(jié)等由

14、系統(tǒng)自動(dòng)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)集成系統(tǒng):DDB 和 數(shù)據(jù)庫(kù)集成系統(tǒng)通常,分布式數(shù)據(jù)庫(kù)系統(tǒng)是自上而下(top-down)地設(shè)計(jì)數(shù)據(jù)庫(kù),可靈活地進(jìn)行分片和分配設(shè)計(jì)。用戶可得益于其“集中控制”和數(shù)據(jù)庫(kù)系統(tǒng)具有的數(shù)據(jù)處理能力。但分布式數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)庫(kù)組件數(shù)量的限制,通常不多于數(shù)十個(gè)數(shù)據(jù)庫(kù)組件。數(shù)據(jù)集成系統(tǒng)通過(guò)約束數(shù)據(jù)管理能力(只支持只讀),可將數(shù)據(jù)庫(kù)組件數(shù)量(shling)擴(kuò)展到數(shù)百個(gè)。在數(shù)據(jù)集成系統(tǒng)中,通常數(shù)據(jù)和數(shù)據(jù)庫(kù)已存在,是遵循自下而上(bottom-up)地集成各局部場(chǎng)地上的數(shù)據(jù)。多數(shù)據(jù)庫(kù)系統(tǒng)(MDB)MDBS 是在己經(jīng)存在的數(shù)據(jù)庫(kù)系統(tǒng) (稱為局部(jb)數(shù)據(jù)庫(kù)系統(tǒng):LDBs) 之上為用戶提供一個(gè)統(tǒng)

15、一的存取數(shù)據(jù)的環(huán)境。數(shù)據(jù)(shj)集成系統(tǒng):DDB 和 MDB的不同MDB:本地?cái)?shù)據(jù)管理器(data manager )都是完備的DBMS,具有它自己的DDL, DML和TM。 DDB:只有一個(gè)數(shù)據(jù)管理器和依賴于該管理器的存在于各局部場(chǎng)地上組件數(shù)據(jù)管理器(component-data-manager)。MDBS (多庫(kù)數(shù)據(jù)庫(kù)系統(tǒng)):在多數(shù)據(jù)庫(kù)系統(tǒng)中,不是所有子事務(wù)的成功或失敗都影響全局事務(wù)的執(zhí)行結(jié)果,多數(shù)據(jù)庫(kù)事務(wù)中的部分結(jié)果也可被其它事務(wù)引用。因此,在多數(shù)據(jù)庫(kù)系統(tǒng)中,需要松弛型事務(wù)(relaxed transaction);通常,多數(shù)據(jù)庫(kù)事務(wù)是長(zhǎng)事務(wù)(long transaction)。多數(shù)據(jù)

16、庫(kù)事務(wù)管理的目標(biāo)是要實(shí)現(xiàn)對(duì)多副本的全局?jǐn)?shù)據(jù)的并發(fā)操作,同時(shí),要保證數(shù)據(jù)的一致性和局部場(chǎng)地的自治性。多數(shù)據(jù)庫(kù)的并發(fā)控制:能同步全局事務(wù)和局部事務(wù)。若要支持多數(shù)據(jù)庫(kù)的任意更新操作,必須犧牲某些場(chǎng)地的自治性;若要保證局部場(chǎng)地的自治性,就必須限制全局事務(wù)的類型如只讀或單場(chǎng)地更新等。P2P數(shù)據(jù)庫(kù)系統(tǒng)(P2PDBS):對(duì)等型 模型(又稱P2P 模型)是一種新型的體系結(jié)構(gòu)模型,面向大范圍的多數(shù)據(jù)資源點(diǎn)的松散耦合。特點(diǎn):每個(gè)點(diǎn)均可貢獻(xiàn)數(shù)據(jù),系統(tǒng)資源具有豐富性、多樣性;可直接訪問(wèn)(fngwn)數(shù)據(jù)源中的數(shù)據(jù)資源,即時(shí)得到最新鮮的數(shù)據(jù),不同于如數(shù)據(jù)倉(cāng)庫(kù)等集中的數(shù)據(jù)資源倉(cāng);采用(ciyng)自組織原則,具有健壯性;

17、每個(gè)點(diǎn)可隨時(shí)加入和退出,系統(tǒng)(xtng)具有分散性、可擴(kuò)展性;以Web上的資源為Peer點(diǎn),系統(tǒng)部署簡(jiǎn)單,不需要復(fù)雜的框架部署實(shí)現(xiàn)。分布式數(shù)據(jù)庫(kù)系統(tǒng)分類:分布式數(shù)據(jù)庫(kù)系統(tǒng)的分類很多。為全面、系統(tǒng)地對(duì)分布式數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行分類,采用分布式數(shù)據(jù)庫(kù)的三個(gè)特性(分布性、異構(gòu)性、自治性)組成的三維空間圖來(lái)描述分布式數(shù)據(jù)庫(kù)的類型。 三個(gè)基本特性:分布性是指系統(tǒng)的各組成單元是否位于同一場(chǎng)地上。 分布式數(shù)據(jù)庫(kù)系統(tǒng)是物理上分散、邏輯上統(tǒng)一的系統(tǒng),即具有分布性。而集中式數(shù)據(jù)庫(kù)系統(tǒng)集中在一個(gè)場(chǎng)地上,所以不具有分布性。異構(gòu)性是指系統(tǒng)的各組成單元是否相同,不同為異構(gòu),相同為同構(gòu)。異構(gòu)主要:數(shù)據(jù)異構(gòu)性:指數(shù)據(jù)在格式上、語(yǔ)法

18、和語(yǔ)義上存在不同。數(shù)據(jù)系統(tǒng)異構(gòu)性:指各個(gè)場(chǎng)地上的局部數(shù)據(jù)庫(kù)系統(tǒng)是否相同。如:均采用ORACLE數(shù)據(jù)庫(kù)系統(tǒng)的同構(gòu)數(shù)據(jù)系統(tǒng)?;蚰承﹫?chǎng)地采用SYBASE數(shù)據(jù)庫(kù)系統(tǒng),某些場(chǎng)地采用INFORMIX系統(tǒng)的異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)。平臺(tái)異構(gòu)性:指計(jì)算機(jī)系統(tǒng)是否相同。如:均為微機(jī)系統(tǒng)組成的平臺(tái)同構(gòu)系統(tǒng)或由VAX或ALPHA系統(tǒng)等異構(gòu)平臺(tái)組成的系統(tǒng)。自治性是指每個(gè)場(chǎng)地的獨(dú)立自主能力。自治性通常由設(shè)計(jì)自治性、通訊自治性和執(zhí)行自治性三方面來(lái)描述。根據(jù)系統(tǒng)的自治性,可分為集中式系統(tǒng)、聯(lián)邦式系統(tǒng)(Federated DB)和多數(shù)據(jù)庫(kù)系統(tǒng)(Multi DB)。集中式系統(tǒng)即為傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)。聯(lián)邦式系統(tǒng):實(shí)現(xiàn)需要交互的所有數(shù)據(jù)庫(kù)對(duì)之

19、間的一對(duì)一連接。 多數(shù)據(jù)庫(kù)系統(tǒng):是指若干相關(guān)數(shù)據(jù)庫(kù)的集合。各個(gè)數(shù)據(jù)庫(kù)可以存在同一場(chǎng)地,也可分布多個(gè)場(chǎng)地。對(duì)多數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行管理的軟件稱多數(shù)據(jù)庫(kù)管理系統(tǒng),多數(shù)據(jù)庫(kù)管理系統(tǒng)是對(duì)一組自治的數(shù)據(jù)庫(kù)進(jìn)行管理,并提供透明訪問(wèn)。字典信息的組織:數(shù)據(jù)(shj)庫(kù)系統(tǒng)中采用數(shù)據(jù)字典存儲(chǔ)數(shù)據(jù)庫(kù)定義、管理等信息。數(shù)據(jù)庫(kù)系統(tǒng)中字典信息分全局字典和局部字典,其組織分兩種方式:集中式字典和分布式字典。集中式字典是系統(tǒng)中的字典信息集中存儲(chǔ)在某個(gè)(mu )場(chǎng)地存放,進(jìn)行統(tǒng)一管理。對(duì)集中式字典維護(hù)方便,但會(huì)成為系統(tǒng)性能的瓶頸。分布式字典是將字典中的信息分布在多個(gè)場(chǎng)地上存放(cnfng),對(duì)局部字典是指字典信息不是集中存放在一起

20、。分布式字典又分復(fù)制式分布和非復(fù)制式分布。復(fù)制式分布是在多個(gè)場(chǎng)地上存在字典信息的副本。非復(fù)制式分布是指將字典信息分散存儲(chǔ)在多個(gè)場(chǎng)地上。分布式數(shù)據(jù)庫(kù)設(shè)計(jì)在系統(tǒng)設(shè)計(jì)中,最基本問(wèn)題就是分布式數(shù)據(jù)庫(kù)的分布問(wèn)題,即如何對(duì)分布式數(shù)據(jù)庫(kù)進(jìn)行邏輯劃分和實(shí)際物理分配。數(shù)據(jù)的邏輯劃分稱數(shù)據(jù)分片。本章主要針對(duì)數(shù)據(jù)分布進(jìn)行介紹,以關(guān)系數(shù)據(jù)庫(kù)為例來(lái)說(shuō)明。包含的內(nèi)容有一下幾點(diǎn):兩種設(shè)計(jì)策略( Top-down 和 Bottom-up )、分片的定義、水平分片、水平分片的設(shè)計(jì)、垂直分片的設(shè)計(jì)、分片的表示方法、分配設(shè)計(jì)。兩種設(shè)計(jì)策略:Top_Down和 Bottom-UP應(yīng)用場(chǎng)合:Top_Down: 適于新設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)

21、。 (designed from scratch)Bottom-UP: 已存在許多數(shù)據(jù)庫(kù)系統(tǒng),并將它們集成為一個(gè)數(shù)據(jù)庫(kù)。典型的數(shù)據(jù)集成的研究。Top-down 設(shè)計(jì)過(guò)程基于五步遞歸實(shí)現(xiàn):1. 需求分析(Requirement analysis)2. 概念設(shè)計(jì)、視圖集成、E-R 表示、轉(zhuǎn)換到關(guān)系模式3. 分布設(shè)計(jì)、數(shù)據(jù)分片和分配4. 物理設(shè)計(jì)5. 性能(xngnng)調(diào)優(yōu)(Tuning)分片(fn pin):定義(dngy):片段(Fragment):是分布式數(shù)據(jù)庫(kù)中數(shù)據(jù)的存儲(chǔ)單位。分片(Fragmentation):對(duì)全局?jǐn)?shù)據(jù)的劃分。片段: 劃分的結(jié)果稱為片段。分配(Allocation):對(duì)

22、片段的存儲(chǔ)場(chǎng)地的指定,稱為分配。當(dāng)片段存儲(chǔ)在一個(gè)以上場(chǎng)地時(shí),稱為數(shù)據(jù)復(fù)制(Replication)。如果每個(gè)片段只存儲(chǔ)在一個(gè)場(chǎng)地,稱為數(shù)據(jù)分割(Partition)存儲(chǔ)。作用:減少網(wǎng)絡(luò)傳輸量。如:采用數(shù)據(jù)復(fù)制,可就近訪問(wèn)所需信息。需頻繁訪問(wèn)的信息分片存儲(chǔ)在本地場(chǎng)地上。增大事務(wù)處理的局部性。局部場(chǎng)地上所須數(shù)據(jù)分片分配在各自的場(chǎng)地上,減少數(shù)據(jù)訪問(wèn)的時(shí)間,增強(qiáng)局部事務(wù)效率。提高數(shù)據(jù)的可用性和查詢效率。就近訪問(wèn)數(shù)據(jù)分片或副本,可提高訪問(wèn)效率。同時(shí)當(dāng)某一場(chǎng)地出故障,若存在副本,非故障場(chǎng)地上的數(shù)據(jù)副本均是可用的。保證了數(shù)據(jù)的可用性、數(shù)據(jù)的完整性和系統(tǒng)的可靠性。使負(fù)載均衡。減少數(shù)據(jù)訪問(wèn)瓶頸,提高整個(gè)系統(tǒng)效率

23、。設(shè)計(jì)過(guò)程:分片過(guò)程是將全局?jǐn)?shù)據(jù)進(jìn)行邏輯劃分和實(shí)際物理分配的過(guò)程。全局?jǐn)?shù)據(jù)由分片模式定義分成各個(gè)片段數(shù)據(jù),各個(gè)片段數(shù)據(jù)由分配模式定義存儲(chǔ)在各場(chǎng)地上。原則:在構(gòu)成分布式數(shù)據(jù)庫(kù)系統(tǒng)時(shí),設(shè)計(jì)者必須考慮數(shù)據(jù)如何分布在各個(gè)場(chǎng)地上,即全局?jǐn)?shù)據(jù)如何進(jìn)行邏輯劃分和物理分配問(wèn)題。哪些數(shù)據(jù)須分布存放、哪些數(shù)據(jù)不需要分布存放、哪些數(shù)據(jù)需要復(fù)制等,對(duì)系統(tǒng)進(jìn)行全盤考慮,使系統(tǒng)性能最優(yōu)。但無(wú)論如何進(jìn)行分片,必須遵循下面原則:完備性:所有全局?jǐn)?shù)據(jù)必須映射到某個(gè)片段上??芍貥?gòu)性:所有片段必須可以重新構(gòu)成全局?jǐn)?shù)據(jù)。不相交性:劃分的各片段所包含的數(shù)據(jù)不允許相同。種類(zhngli):分布式系統(tǒng)按系統(tǒng)實(shí)際需求(xqi)對(duì)全局?jǐn)?shù)據(jù)進(jìn)

24、行分片和物理分配。分片的種類有三種。水平(shupng)分片:按元組進(jìn)行劃分,由分片條件決定。垂直分片:按關(guān)系屬性劃分,除關(guān)鍵字外,同一關(guān)系的某一屬性不允許出現(xiàn)在一個(gè)關(guān)系的多個(gè)分片中?;旌戏制杭窗ㄋ椒制舶ù怪狈制?。透明性:透明性:指對(duì)用戶和高層系統(tǒng)隱蔽具體實(shí)現(xiàn)細(xì)節(jié)。分布透明性指分片透明性、分配透明性和局部映射透明性。分片透明性:指用戶不必考慮數(shù)據(jù)屬于哪個(gè)片段。分配透明性:指用戶不必考慮各個(gè)片段的存儲(chǔ)場(chǎng)地。局部映射透明性:用戶不必考慮數(shù)據(jù)的局部存儲(chǔ)形式。水平分片的定義-將關(guān)系的元組集劃分成若干不相交的子集。每個(gè)水平片段由關(guān)系中的某個(gè)屬性上的條件來(lái)定義,該屬性稱為分片屬性,該條件稱為分片

25、條件。分片的表示方法 :采用直觀的圖形表示法外,還提供了分片樹表示法。圖形表示法:用圖形直觀描述說(shuō)明:整體全部表示為全局關(guān)系;部分表示分段;按水平劃分表示水平分段;按垂直劃分表示垂直分段;混合劃分既有水平劃分,又有垂直劃分。分片樹表示方法:一個(gè)分片可用分片樹表示。先了解分片樹的構(gòu)成。定義:一個(gè)分片樹由以下幾部分組成:根節(jié)點(diǎn)表示全局關(guān)系葉子節(jié)點(diǎn)表示最后得到的片段中間節(jié)點(diǎn)表示分片過(guò)程的中間結(jié)果邊表示分片,并用h(水平)和v(垂直)表示分片類型節(jié)點(diǎn)名表示(biosh)全局關(guān)系名和片段名分配(fnpi)設(shè)計(jì):全局?jǐn)?shù)據(jù)(shj)經(jīng)過(guò)分片設(shè)計(jì),得到各個(gè)劃分的片段,片段到物理場(chǎng)地的存儲(chǔ)映射過(guò)程稱為分配設(shè)計(jì)過(guò)

26、程。分配類型:非復(fù)制分配如果每個(gè)片段只存儲(chǔ)在一個(gè)場(chǎng)地上,稱為分割式分布,對(duì)應(yīng)的分布庫(kù),稱為全分割式分布庫(kù)。復(fù)制分配如果每個(gè)片段在每個(gè)場(chǎng)地上存有副本,稱為全復(fù)制分配,對(duì)應(yīng)的分布庫(kù)稱為全復(fù)制分布庫(kù)。如果每個(gè)片段只在部分場(chǎng)地上存有副本,稱為部分復(fù)制分配,對(duì)應(yīng)的分布庫(kù)稱為部分復(fù)制分布庫(kù)。從上面幾點(diǎn)考慮因素,可知:采用數(shù)據(jù)復(fù)制式分配可增加事務(wù)處理的局部性、提高系統(tǒng)的可靠性和可用性,但增加了系統(tǒng)的運(yùn)行和維護(hù)開銷和系統(tǒng)一致性維護(hù)的復(fù)雜性;采用全數(shù)據(jù)分割式分配可增加系統(tǒng)的并行性并可使系統(tǒng)負(fù)載均衡,但降低了事務(wù)處理的局部性和系統(tǒng)的可靠性和可用性。如何進(jìn)行分段的分配需綜合考慮應(yīng)用和系統(tǒng)需求,以求得到一個(gè)最佳的分布

27、式數(shù)據(jù)庫(kù)系統(tǒng)。 一般,如果存在只讀查詢/更新查詢1,則定義為復(fù)制式分配好些。數(shù)據(jù)復(fù)制技術(shù):數(shù)據(jù)復(fù)制的優(yōu)勢(shì) :減少網(wǎng)絡(luò)負(fù)載。就近訪問(wèn),減少網(wǎng)絡(luò)傳輸代價(jià)。提高系統(tǒng)性能。利用本地資源,并行處理。更好地均衡負(fù)載。負(fù)載分布到多個(gè)節(jié)點(diǎn)。采用復(fù)制式存儲(chǔ)技術(shù)也增強(qiáng)了維護(hù)數(shù)據(jù)一致性的數(shù)據(jù)維護(hù)代價(jià)。如同步數(shù)據(jù)時(shí),如何有效地解決沖突等。復(fù)制的常用方法 基于觸發(fā)器法:在主場(chǎng)地的主數(shù)據(jù)表(主副本)中創(chuàng)建相應(yīng)的觸發(fā)器,當(dāng)主表數(shù)據(jù)進(jìn)行更新、插入和刪除操作并成功提交時(shí),觸發(fā)器就會(huì)被觸發(fā),將當(dāng)前副本的變化反映到從副本中??捎糜谕綇?fù)制,但對(duì)于對(duì)等式復(fù)制和異構(gòu)復(fù)制較難實(shí)現(xiàn)。占用的系統(tǒng)資源較多,影響系統(tǒng)運(yùn)行效率,較適宜于小型數(shù)據(jù)庫(kù)

28、應(yīng)用?;谌罩痉ǎ和ㄟ^(guò)分析數(shù)據(jù)庫(kù)的操作日志信息來(lái)捕獲復(fù)制對(duì)象的變化。當(dāng)主副本被更改時(shí),復(fù)制代理只需將修改日志信息發(fā)送到從場(chǎng)地,由從場(chǎng)地代理實(shí)現(xiàn)本地?cái)?shù)據(jù)的同步(tngb)。實(shí)現(xiàn)方便,不占用太多額外的系統(tǒng)資源,對(duì)任何類型的復(fù)制都適用。基于時(shí)間戳法:主要根據(jù)數(shù)據(jù)的更新時(shí)間來(lái)判斷是否是最新數(shù)據(jù)。需要為每一個(gè)副本數(shù)據(jù)表定義一個(gè)時(shí)間戳字段,用于記錄(jl)每個(gè)表的修改時(shí)間,并需要監(jiān)控程序監(jiān)控時(shí)間戳字段的時(shí)間。該方法適合于對(duì)數(shù)據(jù)更改較少的系統(tǒng)?;贏PI 法:在應(yīng)用程序和數(shù)據(jù)庫(kù)之間引入第三方的程序(如中間件),通過(guò)API完成。在應(yīng)用程序?qū)?shù)據(jù)庫(kù)修改的同時(shí),記錄復(fù)制對(duì)象的變化(binhu)。該種方法可減輕DB

29、A的負(fù)擔(dān),但無(wú)法捕獲沒(méi)有經(jīng)過(guò)API的數(shù)據(jù)的更改操作,具有一定局限性。分布式查詢處理與優(yōu)化查詢處理是數(shù)據(jù)庫(kù)管理系統(tǒng)中的重要內(nèi)容。同集中式查詢處理相比,分布式環(huán)境中的查詢處理更加困難。因?yàn)榉植紨?shù)據(jù)庫(kù)是由邏輯上的全局?jǐn)?shù)據(jù)庫(kù)和分布于各局部場(chǎng)地上的物理數(shù)據(jù)組成的,用戶或應(yīng)用只看到全局關(guān)系組成的全局?jǐn)?shù)據(jù)庫(kù),并且只在全局關(guān)系上發(fā)布查詢命令。在查詢執(zhí)行過(guò)程中,查詢命令由系統(tǒng)將其轉(zhuǎn)換成內(nèi)部表示,經(jīng)查詢重寫、查詢優(yōu)化等過(guò)程,最終轉(zhuǎn)換為局部場(chǎng)地上的物理關(guān)系查詢。本章節(jié)包含內(nèi)容有:查詢優(yōu)化基礎(chǔ)、查詢處理概述、查詢分解、數(shù)據(jù)本地化、片段查詢的優(yōu)化。查詢優(yōu)化的基礎(chǔ):優(yōu)化目標(biāo)尋找執(zhí)行代價(jià)(費(fèi)用和時(shí)間)最小的查詢執(zhí)行策略,使

30、系統(tǒng)執(zhí)行效率降到最低。優(yōu)化的目標(biāo)就是指局部執(zhí)行代價(jià)和網(wǎng)絡(luò)傳輸代價(jià)的和最小。局部執(zhí)行代價(jià):主要指輸入/輸出次數(shù)(I/O代價(jià))及CPU處理代價(jià)。網(wǎng)絡(luò)傳輸代價(jià):主要指?jìng)鬏攩?dòng)代價(jià)和數(shù)據(jù)傳輸代價(jià)。從三種(sn zhn)策略看來(lái)雖然都能實(shí)現(xiàn)所要完成的功能,但三種實(shí)現(xiàn)方法所須的代價(jià)(diji)卻相差很大。在分布式系統(tǒng)中,對(duì)于多用戶、多應(yīng)用需求的復(fù)雜任務(wù),采用不同的實(shí)現(xiàn)策略會(huì)相差更大,將直接影響整個(gè)(zhngg)系統(tǒng)整體性能。因此,需要確定出一種執(zhí)行代價(jià)最小的查詢執(zhí)行策略。查詢處理概述:影響查詢處理效率的因素有:網(wǎng)絡(luò)傳輸代價(jià)(數(shù)據(jù)量和延遲等)、局部I/O代價(jià)及CPU使用情況代價(jià)等,但主要由網(wǎng)絡(luò)通信代價(jià)和局部

31、I/O代價(jià)來(lái)衡量。不同的分布式數(shù)據(jù)庫(kù)系統(tǒng)可能對(duì)評(píng)估查詢處理的傳輸代價(jià)和I/O代價(jià)的側(cè)重不同。為提高查詢的效率,在查詢處理過(guò)程中還要進(jìn)行優(yōu)化處理。查詢優(yōu)化就是確定出一種執(zhí)行代價(jià)最小的查詢執(zhí)行策略或?qū)ふ蚁鄬?duì)較優(yōu)的操作執(zhí)行步驟。一般可采用多級(jí)優(yōu)化。本章介紹全局查詢的處理與優(yōu)化。查詢處理將查詢轉(zhuǎn)換為過(guò)程操作來(lái)訪問(wèn)數(shù)據(jù)。分布查詢處理器還需要處理查詢分解(query decomposition)和數(shù)據(jù)局部化(data localization)。集中查詢處理器必須: 將演算查詢轉(zhuǎn)換為代數(shù)操作、 選擇最好的執(zhí)行計(jì)劃。對(duì)于分布式數(shù)據(jù)庫(kù), 查詢處理器必須考慮通信代價(jià)和選擇最佳場(chǎng)地。分解(Decompositio

32、n):查詢分解(QUERY DECOMPOSITION)輸入 : 基于全局關(guān)系的演算查詢規(guī)范化(Normalization):將查詢轉(zhuǎn)換為規(guī)范化形式(AND形式或OR形式 )。分析( Analysis):檢查不正確的查詢、得到關(guān)系演算子集。約簡(jiǎn)(Simplification):刪除冗余謂詞。查詢重構(gòu)(Restructuring):將演算查詢轉(zhuǎn)換為關(guān)系代數(shù)查詢、可能得到多種轉(zhuǎn)換結(jié)果、使用轉(zhuǎn)換規(guī)則。數(shù)據(jù)本地化:查詢的處理過(guò)程是從全局關(guān)系到片段關(guān)系,最后再到實(shí)際操作的副本關(guān)系。數(shù)據(jù)本地化是將介紹全局查詢(chxn)到片段查詢的變換。即利用全局關(guān)系與其片段關(guān)系的等價(jià)關(guān)系,將分布查詢中的全局關(guān)系替換為對(duì)

33、片段關(guān)系的查詢,變換后的查詢稱為片段查詢。對(duì)應(yīng)于片段查詢的查詢樹,稱為片段查詢樹。片段查詢樹的生成(shn chn)步驟將分片樹的h(水平)節(jié)點(diǎn)轉(zhuǎn)換(zhunhun)為查詢樹的(并集)節(jié)點(diǎn)。將分片樹的v(垂直)節(jié)點(diǎn)轉(zhuǎn)換為查詢樹的(聯(lián)接)節(jié)點(diǎn)。用替換后的分片樹代替全局查詢樹中的全局關(guān)系,得到片段查詢樹。片段查詢的優(yōu)化:片段查詢優(yōu)化規(guī)則準(zhǔn)則1:對(duì)于一元運(yùn)算,根據(jù)一元運(yùn)算的重復(fù)律,將葉子節(jié)點(diǎn)之前的選擇運(yùn)算作用于片段,如果不滿足片段的限定條件,則置為空關(guān)系。準(zhǔn)則2:對(duì)于聯(lián)接運(yùn)算的樹,若聯(lián)接條件不滿足,則將其置為空關(guān)系。準(zhǔn)則3:在查詢樹中,將聯(lián)接運(yùn)算()下移到并運(yùn)算()之前執(zhí)行。準(zhǔn)則4:消去不影響查詢運(yùn)

34、算的垂直片段。分布式查詢的存取優(yōu)化在上一章介紹了分布式查詢處理和優(yōu)化及其遵循的規(guī)則。本章將詳細(xì)介紹分布式查詢的存取優(yōu)化方法。在分布式查詢處理和優(yōu)化中,需要將全局關(guān)系等價(jià)變換到片段關(guān)系,再講分布式查詢樹轉(zhuǎn)換為片段查詢樹、在將查詢請(qǐng)求轉(zhuǎn)換為以關(guān)系代數(shù)描述的邏輯查詢查詢計(jì)劃生成物理查詢計(jì)劃,即指明要執(zhí)行的物理操作,以及這些操作執(zhí)行的順序和執(zhí)行操作時(shí)使用的算法。本章包含的主要內(nèi)容有:基本概念、優(yōu)化的理論基礎(chǔ)、半聯(lián)接優(yōu)化方法、SDD-1 系統(tǒng)優(yōu)化技術(shù)、枚舉法優(yōu)化技術(shù)、集中的查詢優(yōu)化。分布式查詢處理概述:查詢存取優(yōu)化:輸入:片段查詢找到好的(不必最優(yōu)的)全局調(diào)度(最小代價(jià)函數(shù)、分布Join處理、確定使用半

35、連接、Join方法)?;?jy)代價(jià)的優(yōu)化:搜索(su su)空間等價(jià)(dngji)的代數(shù)表達(dá)式 代價(jià)函數(shù)I/O 代價(jià) + CPU 代價(jià)+ communication代價(jià)不同的分布環(huán)境中各因素權(quán)重不同 (LAN vs WAN).最大吞吐量搜索算法:如何在解決空間中移動(dòng)窮舉搜索,啟發(fā)式算法 (遞歸改進(jìn)、模擬退火、遺傳法等)搜索空間:搜索空間由可選擇的執(zhí)行計(jì)劃描述側(cè)重Join樹若存在n個(gè)關(guān)系,有O(N!)等價(jià)的Join樹搜索空間:由啟發(fā)式規(guī)則約束如一元操作先于二元操作執(zhí)行約束join樹的形狀只考慮線性樹而忽略了稠密樹基本概念:分布執(zhí)行過(guò)程:場(chǎng)地發(fā)出查詢命令、從數(shù)據(jù)源獲取數(shù)據(jù)、確定最佳的執(zhí)行場(chǎng)地和

36、返回執(zhí)行結(jié)果的過(guò)程。查詢場(chǎng)地:指發(fā)出查詢命令和存儲(chǔ)最終查詢結(jié)果的場(chǎng)地。查詢場(chǎng)地也稱最終結(jié)果文件。源數(shù)據(jù)場(chǎng)地:指查詢命令需要訪問(wèn)的數(shù)據(jù)副本所在的場(chǎng)地,可能涉及到一個(gè)或一個(gè)以上的場(chǎng)地。源數(shù)據(jù)場(chǎng)地也稱源數(shù)據(jù)文件。執(zhí)行場(chǎng)地:指查詢操作執(zhí)行所在的場(chǎng)地。執(zhí)行場(chǎng)地可以和查詢場(chǎng)地或源數(shù)據(jù)場(chǎng)地處于同一場(chǎng)地,也可不處于同一場(chǎng)地。執(zhí)行場(chǎng)地也稱中間結(jié)果文件。存取優(yōu)化的理論基礎(chǔ) :查詢代價(jià)模型:通信代價(jià)(diji)、磁盤I/O代價(jià)、CPU代價(jià)、數(shù)據(jù)庫(kù)的特征參數(shù)、代價(jià)(diji)函數(shù) 總的時(shí)間(shjin)-所有時(shí)間組件的和 :減少每一個(gè)組件的時(shí)間代價(jià) 盡可能減少每個(gè)代價(jià)組件的代價(jià) 優(yōu)化資源利用率,增加系統(tǒng)吞吐率 響應(yīng)時(shí)

37、間-從查詢開始到執(zhí)行結(jié)束所用的時(shí)間 盡可能并行執(zhí)行增加總的活動(dòng)可能會(huì)增加總時(shí)間 半聯(lián)接優(yōu)化方法 :對(duì)聯(lián)接操作的優(yōu)化有兩種趨勢(shì),一種為采用半聯(lián)接技術(shù),減少聯(lián)接操作的操作數(shù),以降低傳輸費(fèi)用;另一種為采用全聯(lián)接技術(shù),主要考慮局部代價(jià)。一個(gè)系統(tǒng)需根據(jù)其目標(biāo)綜合確定其優(yōu)化算法。 半聯(lián)接的作用:用半聯(lián)接技術(shù)的優(yōu)化目標(biāo)是減少聯(lián)接操作的操作數(shù),以降低傳輸費(fèi)用。SDD-1系統(tǒng)優(yōu)化技術(shù):SDD-1是美國(guó)采用ARPANET遠(yuǎn)程網(wǎng)建立的世界上第一個(gè)分布式數(shù)據(jù)庫(kù)管理系統(tǒng)。該系統(tǒng)為人們進(jìn)一步理解和解決分布式數(shù)據(jù)庫(kù)中的一些問(wèn)題做出了很大貢獻(xiàn)。SDD-1的查詢優(yōu)化就是對(duì)片段數(shù)據(jù)使用選擇、投影、半聯(lián)接操作來(lái)最大限度地縮減。SD

38、D-1具體算法由兩部分組成:一是根據(jù)評(píng)估縮減算法確定一個(gè)收益最大的執(zhí)行策略,但此執(zhí)行策略的效率可能不一定高;二是進(jìn)行后優(yōu)化處理,將基本算法得到的解進(jìn)行修正,以得到更合理的執(zhí)行策略。優(yōu)化模型在SDD-1算法中,分別使用連接圖和概要圖來(lái)描述查詢中的條件限制和在關(guān)系上的特征參數(shù)。連接圖圖的節(jié)點(diǎn)表示關(guān)系,邊表示連接運(yùn)算,邊上標(biāo)號(hào)(bioho)表示連接條件,節(jié)點(diǎn)上標(biāo)號(hào)表示關(guān)系名和場(chǎng)地。查詢代價(jià)與收益(shuy)估計(jì)SDD-1算法(sun f)的基本優(yōu)化思想:聯(lián)接圖中的每個(gè)關(guān)系都用一元運(yùn)算進(jìn)行局部縮減;對(duì)受益半聯(lián)接集合中的所有半聯(lián)接進(jìn)行操作,逐個(gè)找出最優(yōu)的操作;選擇一個(gè)要求最少傳輸代價(jià)的場(chǎng)地,執(zhí)行操作。受

39、益半連接集:對(duì)于一個(gè)給定的半連接集合,所有利益超過(guò)代價(jià)的半聯(lián)接操作的集合,稱為受益半聯(lián)接集,記為P。SDD-1 后優(yōu)化處理SDD-1算法的后優(yōu)化處理的目的是通過(guò)考慮半連接的間接影響對(duì)優(yōu)化后的執(zhí)行策略進(jìn)行修改,以進(jìn)一步減少通信代價(jià)。后優(yōu)化處理主要基于以下兩個(gè)規(guī)則對(duì)執(zhí)行策略優(yōu)化:準(zhǔn)則1在執(zhí)行策略集中,消去用于縮減處于執(zhí)行場(chǎng)地上的關(guān)系的半連接操作。SDD-1 后優(yōu)化處理準(zhǔn)則2延遲執(zhí)行代價(jià)高的半聯(lián)接,以盡可能利用已縮減的關(guān)系。半聯(lián)接技術(shù)的不足半聯(lián)接技術(shù)是通過(guò)局部縮減操作縮減關(guān)系的數(shù)據(jù)量,發(fā)送縮減的關(guān)系到執(zhí)行場(chǎng)地,在執(zhí)行場(chǎng)地對(duì)縮減后的關(guān)系進(jìn)行查詢處理。優(yōu)點(diǎn)是大大降低了場(chǎng)地間傳遞的信息量,減少了整個(gè)系統(tǒng)的

40、傳輸代價(jià)。不足是增加了系統(tǒng)的局部處理代價(jià):枚舉法優(yōu)化技術(shù):查詢操作的代價(jià)評(píng)估:綜合考慮局部代價(jià)和傳輸代價(jià)。若側(cè)重傳輸代價(jià),局部代價(jià)可以忽略不計(jì)時(shí),采用半聯(lián)接技術(shù)較好;側(cè)重局部代價(jià)時(shí),采用直接聯(lián)接比采用半聯(lián)接優(yōu)越。枚舉法是基于直接聯(lián)接的實(shí)現(xiàn)方法。常見(chn jin)的直接連接算法主要有:嵌套循環(huán)連接算法、歸并排序連接算法、哈希連接(linji)算法、基于(jy)索引的連接算法。對(duì)每種直接連接算法進(jìn)行代價(jià)估計(jì):考慮執(zhí)行連接操作所需的磁盤I/O代價(jià)。對(duì)磁盤I/O代價(jià)的估計(jì)主要依賴于數(shù)據(jù)庫(kù)的特征參數(shù)。集中式系統(tǒng)中的查詢優(yōu)化算法 :分布式查詢優(yōu)化技術(shù)是在集中式查詢優(yōu)化技術(shù)基礎(chǔ)上的擴(kuò)展,其中增加了對(duì)通信

41、代價(jià)的評(píng)估,主要介紹四種優(yōu)化方法,核心是: INGRES和System R 。INGRESINGRES系統(tǒng)使用的是一種動(dòng)態(tài)查詢優(yōu)化算法,查詢優(yōu)化的過(guò)程劃分為兩個(gè)階段:第一階段:基于演算代數(shù)的查詢分解(decomposition)或稱( Detachment )。即將一個(gè)查詢分解為一個(gè)查詢序列,序列中的每個(gè)查詢包含一個(gè)獨(dú)立的關(guān)系及在這個(gè)關(guān)系上的查詢謂詞。第二階段:查詢優(yōu)化或查詢替換。針對(duì)序列中每個(gè)獨(dú)立的查詢,使用單變量查詢處理器為每個(gè)獨(dú)立查詢中的邏輯操作選擇合適的物理操作。單變量查詢:包含 一個(gè)變量的查詢多變量查詢:包含一個(gè)以上變量的查詢.System R 中的查詢優(yōu)化算法System R中的查

42、詢優(yōu)化算法是關(guān)系數(shù)據(jù)庫(kù)使用較多的算法。輸入:一個(gè)SQL語(yǔ)言描述的查詢被解析后的關(guān)系代數(shù)樹算法: 根據(jù)該樹描述的邏輯查詢計(jì)劃樹,生成大量的物理執(zhí)行計(jì)劃,并最終從中選擇出較優(yōu)的一個(gè)物理執(zhí)行計(jì)劃。 System R使用磁盤IO和CPU時(shí)間來(lái)評(píng)估物理執(zhí)行計(jì)劃代價(jià)。 System R主要使用動(dòng)態(tài)規(guī)劃算法來(lái)選擇代價(jià)最小的執(zhí)行計(jì)劃。System R的查詢優(yōu)化算法中,主要考慮以下兩個(gè)問(wèn)題:用于實(shí)現(xiàn)邏輯操作符的物理操作??梢苑譃樵趩为?dú)關(guān)系上的選擇謂詞操作和關(guān)系連接的二元操作相似(xin s)操作的排序,主要考慮多關(guān)系之間的連接操作。(n個(gè)關(guān)系的連接操作將有n!個(gè)排列,因此不能對(duì)每個(gè)排列都進(jìn)行代價(jià)估計(jì)。Syste

43、m R采用了動(dòng)態(tài)規(guī)劃方法 )。分布式事務(wù)管理事務(wù)是指一系列數(shù)據(jù)庫(kù)操作,它是保證數(shù)據(jù)庫(kù)正確性的基本邏輯單元。在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,分布式事務(wù)在外部特征上繼承了傳統(tǒng)事務(wù)的定義,同時(shí)(tngsh)由于其分布特征而具有自身特征的執(zhí)行方式。分布式事務(wù)管理的目的在于保證事務(wù)的正確執(zhí)行及執(zhí)行結(jié)果的有效性,主要解決系統(tǒng)可靠性、事務(wù)并發(fā)控制及系統(tǒng)資源的有效利用得問(wèn)題。在實(shí)現(xiàn)上,需要通過(guò)一整套的方法與技術(shù),來(lái)維護(hù)分布式的性質(zhì)和分布式數(shù)據(jù)庫(kù)的一致性和完整性,并采用適當(dāng)?shù)牟呗?,?lái)保證系統(tǒng)的可靠性課可用性。本章將介紹分布式事務(wù)的概念、特性及模型,然后分別討論分布式事務(wù)管理的實(shí)現(xiàn)及其現(xiàn)實(shí)中采用的協(xié)議。事務(wù)(shw)的基本

44、概念:事務(wù)的定義-由若干個(gè)為完成某一任務(wù)而邏輯相關(guān)的操作組成的操作序列,是保證數(shù)據(jù)庫(kù)正確性的基本邏輯單元。顯式聲明:應(yīng)用程序通過(guò)事務(wù)命令顯式地劃分事務(wù);隱式聲明:系統(tǒng)按照默認(rèn)規(guī)定自動(dòng)地劃分事務(wù);一個(gè)事務(wù)由三部分組成:開始標(biāo)識(shí)begin_transaction、數(shù)據(jù)庫(kù)操作、結(jié)束標(biāo)識(shí)commit或abort。事務(wù)的基本性質(zhì)-原子性、一致性、隔離性、耐久性原子性事務(wù)所包含的操作要么全做,要么全不做。由于輸入錯(cuò)誤、系統(tǒng)過(guò)載、死鎖等導(dǎo)致的事務(wù)廢棄而需要進(jìn)行的事務(wù)的原子性維護(hù),稱為事務(wù)恢復(fù)。由于系統(tǒng)崩潰(死機(jī)、掉電)而導(dǎo)致的事務(wù)廢棄或者提交結(jié)果的丟失而需要進(jìn)行的原子性維護(hù)處理,稱為故障恢復(fù)。一致性假如數(shù)據(jù)

45、庫(kù)的狀態(tài)滿足所有的完整性約束,則稱該數(shù)據(jù)庫(kù)是一致的。事務(wù)的一致性,是事務(wù)執(zhí)行的結(jié)果必須(bx)是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變化到另一個(gè)一致性狀態(tài),而不會(huì)停留在某種不一致的中間狀態(tài)上。隔離(gl)性事務(wù)的操作交叉執(zhí)行時(shí),若不加控制,一個(gè)事務(wù)的操作及所使用的數(shù)據(jù)可能(knng)會(huì)對(duì)其它事務(wù)造成影響。事務(wù)的隔離性是指:一個(gè)事務(wù)的執(zhí)行既不能被其它事務(wù)所干擾,同時(shí)也不能干擾其它事務(wù)。 具體來(lái)講,一個(gè)沒(méi)有結(jié)束的事務(wù)在提交之前不允許將其結(jié)果暴露給其它事務(wù)。這是因?yàn)槲刺峤坏氖聞?wù)有可能在以后的執(zhí)行中廢棄。那么,當(dāng)前結(jié)果不一定是最終結(jié)果,而是一個(gè)無(wú)效的數(shù)據(jù)。若存在其它事務(wù)使用了這種無(wú)效的數(shù)據(jù),則這些事務(wù)同樣也要進(jìn)行

46、廢棄。這種因一個(gè)事務(wù)的廢棄而導(dǎo)致其它事務(wù)被牽連地進(jìn)行廢棄的情況稱為“級(jí)聯(lián)廢棄”。耐久性久性體現(xiàn)在:當(dāng)一個(gè)事務(wù)提交后,系統(tǒng)保證該事務(wù)的結(jié)果不會(huì)因以后的故障而丟失。也就是說(shuō),事務(wù)一旦被提交,它對(duì)數(shù)據(jù)庫(kù)的更改將是永久性的。即使發(fā)生了故障,系統(tǒng)應(yīng)具備有效的恢復(fù)能力,將已提交事務(wù)的操作結(jié)果恢復(fù)過(guò)來(lái),即重做處理,使這些事務(wù)的執(zhí)行結(jié)果不受任何影響。事務(wù)的種類:平面事務(wù):每個(gè)事務(wù)都與系 統(tǒng)中其它事務(wù)相分離,并獨(dú)立于其它事務(wù)。平面事務(wù)是用begin和end括起來(lái)的自治執(zhí)行方式。嵌套事務(wù):指一個(gè)事務(wù)的執(zhí)行包括另一個(gè)事務(wù)。其中,內(nèi)部事務(wù)稱為外部事務(wù)的子事務(wù),外部事務(wù)稱為子事務(wù)的父事務(wù)。分布式事務(wù):分布式事務(wù)的定義:

47、分布式事務(wù):是指分布式數(shù)據(jù)庫(kù)應(yīng)用中的事務(wù),也稱為全局事務(wù)。子事務(wù):一個(gè)分布式事務(wù)在執(zhí)行時(shí)將被分解為若干個(gè)場(chǎng)地上獨(dú)立執(zhí)行的操作序列,即一個(gè)分布式事務(wù)在某個(gè)場(chǎng)地上操作的集合。進(jìn)程模型:全局事務(wù)為每一個(gè)子事務(wù)在相應(yīng)的場(chǎng)地上創(chuàng)建一個(gè)代理者進(jìn)程(也稱局部進(jìn)程或子進(jìn)程),由代理者進(jìn)程執(zhí)行該場(chǎng)地上的有關(guān)操作。同時(shí),為協(xié)調(diào)各子事務(wù)的操作,全局事務(wù)還要啟動(dòng)一個(gè)協(xié)調(diào)者進(jìn)程,來(lái)進(jìn)行代理者進(jìn)程間的通訊,控制和協(xié)調(diào)各代理者進(jìn)程的操作。源場(chǎng)地:發(fā)出分布式事務(wù)(shw)的場(chǎng)地(根代理所在的場(chǎng)地)。服務(wù)器模型:服務(wù)器模型要求在事務(wù)的每個(gè)執(zhí)行場(chǎng)地上創(chuàng)建一個(gè)服務(wù)器進(jìn)程,用于執(zhí)行發(fā)生在該場(chǎng)地上的所有子事務(wù)。每個(gè)服務(wù)器進(jìn)程可以交替地

48、為多個(gè)(du )事務(wù)的子事務(wù)服務(wù)。也就是說(shuō),不同全局事務(wù)中的子事務(wù)在同一個(gè)場(chǎng)地上共用一個(gè)服務(wù)器進(jìn)程。分布式事務(wù)管理的目標(biāo)(mbio):分布式事務(wù)管理的目標(biāo)是使事務(wù)的執(zhí)行具有較高的執(zhí)行效率,具有較高的可靠性和并發(fā)性。與事務(wù)執(zhí)行效率有關(guān)的因素還包括: CPU和內(nèi)存利用率、控制報(bào)文開銷、分布式執(zhí)行計(jì)劃、系統(tǒng)可用性。為此,提出分布式事務(wù)管理的目標(biāo)是:維護(hù)分布式事務(wù)的ACID性質(zhì);提高系統(tǒng)的性能,包括CPU、內(nèi)存等資源的使用效率和數(shù)據(jù)資源的使用效率,盡量減少控制報(bào)文的長(zhǎng)度及傳送次數(shù),加速事務(wù)的響應(yīng)速度;提高系統(tǒng)可靠性和可用性,當(dāng)系統(tǒng)的一部分或者局部發(fā)生故障時(shí),系統(tǒng)仍能正常運(yùn)轉(zhuǎn),而不是整個(gè)系統(tǒng)癱瘓。分布式

49、事務(wù)的提交協(xié)議:分布式數(shù)據(jù)庫(kù)中的全局事務(wù)由被分解為在各個(gè)場(chǎng)地上執(zhí)行的子事務(wù)所組成。只有當(dāng)各個(gè)場(chǎng)地上的子事務(wù)都正確執(zhí)行后,全局事務(wù)才可以提交。只要有一個(gè)子事務(wù)不能提交,則全局事務(wù)應(yīng)該廢棄,接下來(lái)所有的子事務(wù)也應(yīng)全部廢棄。因此,所有子事務(wù)均可以正確提交是分布式事務(wù)提交的前提。上述過(guò)程,通過(guò)兩階段提交協(xié)議來(lái)實(shí)現(xiàn),簡(jiǎn)稱2PC(2-Phase-Commit)協(xié)議。協(xié)調(diào)者和參與者:協(xié)調(diào)者:是協(xié)調(diào)者進(jìn)程的執(zhí)行方,即根代理,負(fù)責(zé)決定所有子事務(wù)的提交或廢棄;參與者:是代理者進(jìn)程的執(zhí)行方,即子代理,負(fù)責(zé)執(zhí)行本地?cái)?shù)據(jù)庫(kù)操作,負(fù)責(zé)本地子事務(wù)的提交或廢棄,并向協(xié)調(diào)者報(bào)告本地子事務(wù)的執(zhí)行狀態(tài);協(xié)調(diào)者和參與者都有本地日志,

50、他們?cè)谶M(jìn)行操作前都必須將該操作記錄到相應(yīng)的日志文件中,以進(jìn)行事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù)。兩階段提交協(xié)議(xiy)的基本思想:決定階段:有協(xié)調(diào)者發(fā)送預(yù)提交(prepare)命令,然后等待參與者的應(yīng)答。如果(rgu)所有的參與者都返回“準(zhǔn)備(zhnbi)提交(ready)”。那么協(xié)調(diào)者做出提交決定;如果至少有一個(gè)參與者返回“準(zhǔn)備廢棄”,那么協(xié)調(diào)者做出廢棄決定。執(zhí)行階段:協(xié)調(diào)者把在決定階段做出的決定發(fā)送給參與者。如果協(xié)調(diào)者向各個(gè)參與者發(fā)“提交”(Commit)命令,各個(gè)參與者執(zhí)行提交;如果協(xié)調(diào)者向各個(gè)參與者發(fā)出“廢棄”(Abort)命令,各個(gè)參與者執(zhí)行廢棄,取消對(duì)數(shù)據(jù)庫(kù)的修改。無(wú)論是“提交”還是“廢

51、棄”,各參與者執(zhí)行完畢后都要向協(xié)調(diào)者返回“確認(rèn)”(Ack)應(yīng)答,通知協(xié)調(diào)者執(zhí)行結(jié)束。分布式事務(wù)管理的實(shí)現(xiàn):LTM與DTM:分布式事務(wù)管理在功能上分為兩個(gè)層次:局部事務(wù)管理器(LTM)負(fù)責(zé)本場(chǎng)地的子事務(wù)執(zhí)行、故障恢復(fù)和并發(fā)控制; 分布式事務(wù)管理器(DTM) 協(xié)同全局事務(wù)的執(zhí)行、物理上多個(gè)、邏輯上是一個(gè)整體;三種控制模型:主從控制模型、三角控制模型、層次控制模型。主從控制模型DTM作為主控制器,LTM作為從屬控制器。一問(wèn)一答方式: DTM向LTM發(fā)送命令并收集應(yīng)答來(lái)實(shí)施狀態(tài)監(jiān)控。 LTM根據(jù)DTM的命令來(lái)執(zhí)行本場(chǎng)地的子事務(wù),并向?qū)TM返回最終結(jié)果。LTM之間無(wú)直接通信(由DTM轉(zhuǎn)發(fā) )。三角控制

52、模型三角控制模型與主從控制模型相類似,差別是:LTM之間可以直接通信,不需要DTM作為中介轉(zhuǎn)發(fā)。因此,同主從控制模型相比,三角控制模型在一定程度上減少了通信代價(jià),但使得DTM和LTM之間的協(xié)作控制變得更加復(fù)雜。層次控制模型每個(gè)LTM可以具有雙重角色,除了用來(lái)管理其本地的子事務(wù)外,還可以將其負(fù)責(zé)的子事務(wù)進(jìn)一步分解,衍生出一系列更下層的LTM ,每個(gè)分解部分由下一層的LTM負(fù)責(zé)執(zhí)行。這時(shí), LTM自身將成為一個(gè)新的DTM,并控制更下層的LTM的執(zhí)行。層次控制模型擴(kuò)展性好,其層數(shù)可以隨著任務(wù)量的增大而增加,但實(shí)現(xiàn)上更加復(fù)雜。兩段提交(tjio)協(xié)議(2PC)的實(shí)現(xiàn)(shxin)方法:基本(jbn)思

53、想:分布式事務(wù)提交過(guò)程分兩個(gè)階段:決定階段、執(zhí)行階段。實(shí)現(xiàn)方法:集中式2PC、分布式2PC、分層式2PC、線形2PC。集中式2PC:首先確定一個(gè)協(xié)調(diào)者場(chǎng)地,通常由事務(wù)的發(fā)起者場(chǎng)地(源場(chǎng)地)充當(dāng),完成事務(wù)提交的初始化。“集中式”主要體現(xiàn)在協(xié)調(diào)者在整個(gè)分布式事務(wù)提交過(guò)程中始終作為唯一的總控節(jié)點(diǎn)(發(fā)布命令、搜集狀態(tài)信息、做出決定)。通信只發(fā)生在協(xié)調(diào)者與參與者之間,參與者與參與者之間沒(méi)有直接通信。分布式2PC:“分布式”是指事務(wù)的所有參與者同時(shí)也都是協(xié)調(diào)者,都可以決定事務(wù)的提交和廢棄,提交過(guò)程是完全分布地完成。由事務(wù)的始發(fā)場(chǎng)地完成提交的初始化工作。分布式2PC最大的特點(diǎn)是事務(wù)的提交過(guò)程只需要一個(gè)階段,

54、即決定階段。所有場(chǎng)地都可以互相通信,使得各個(gè)場(chǎng)地均可以獲悉其它場(chǎng)地的當(dāng)前狀態(tài)(“準(zhǔn)備提交”或“準(zhǔn)備廢棄”),獨(dú)立地做出事務(wù)是否提交的決定。線性2PC:在線性2PC中,允許參與者之間相互通信,由事務(wù)的始發(fā)場(chǎng)地構(gòu)造一個(gè)線性有序的場(chǎng)地鏈表。表中第一個(gè)場(chǎng)地(源場(chǎng)地)和最后一個(gè)場(chǎng)地共同擔(dān)任協(xié)調(diào)者,在第一個(gè)場(chǎng)地后,依次為第一個(gè)參與者場(chǎng)地,第二個(gè)參與者場(chǎng)地,直到第n個(gè)參與者場(chǎng)地。線性2PC的特點(diǎn)是決定階段和執(zhí)行階段都是采用串行方式完成的。非阻塞分布式事務(wù)提交協(xié)議:兩階段提交協(xié)議存在的問(wèn)題:如果在兩段提交協(xié)議執(zhí)行的過(guò)程中出現(xiàn)協(xié)調(diào)者故障或網(wǎng)絡(luò)故障,那么參與者就不能及時(shí)收到協(xié)調(diào)者發(fā)出的“提交”命令,參與者處的子事

55、務(wù)將處于等待狀態(tài)。在故障恢復(fù)前,參與者子事務(wù)所占有的系統(tǒng)資源也不能被釋放,參與者的子事務(wù)進(jìn)入了阻塞狀態(tài)。若參與者一直收不到協(xié)調(diào)者的命令,則子事務(wù)將始終處于阻塞狀態(tài)而掛在相應(yīng)的執(zhí)行場(chǎng)地上,所占用的系統(tǒng)資源也不能被其它事務(wù)利用。如何改進(jìn)(gijn)兩段提交協(xié)議,使其成為非阻塞的分布式事務(wù)提交協(xié)議呢?三段提交協(xié)議(3PC),在一定程度上減少了事務(wù)阻塞的發(fā)生,提高(t go)了系統(tǒng)效率。三階段提交(tjio)協(xié)議的基本思想:全局事務(wù)的提交分為三個(gè)階段:階段一:投票表決階段、階段二:準(zhǔn)備提交階段、階段三:執(zhí)行階段。分布式恢復(fù)管理數(shù)據(jù)庫(kù)系統(tǒng)的可恢復(fù)性和高可靠性是保證各種應(yīng)用正確而可靠地運(yùn)行所不可缺少的重要

56、組成部分。盡管計(jì)算機(jī)系統(tǒng)可靠性在不斷提高,數(shù)據(jù)庫(kù)系統(tǒng)中也采用了很多措施和方法保證數(shù)據(jù)庫(kù)系統(tǒng)的正確運(yùn)行,但仍不可避免系統(tǒng)出現(xiàn)這樣那樣的故障,導(dǎo)致數(shù)據(jù)庫(kù)數(shù)據(jù)丟失或破壞。因此,一方面數(shù)據(jù)庫(kù)系統(tǒng)必須采取相應(yīng)的恢復(fù)措施,把數(shù)據(jù)庫(kù)系統(tǒng)從故障狀態(tài)恢復(fù)到一個(gè)已知的正確狀態(tài);另一方面還有考慮數(shù)據(jù)庫(kù)系統(tǒng)的可靠性,盡量將奔潰后數(shù)據(jù)庫(kù)的不可用的時(shí)間減少到最低,并保證事務(wù)的原子性和耐久性。本章主要介紹分布式數(shù)據(jù)庫(kù)系統(tǒng)的恢復(fù)管理和可靠性協(xié)議,首先介紹事務(wù)恢復(fù)所涉及的概念,然后分別針對(duì)集中式環(huán)境和分布式環(huán)境所采用的故障恢復(fù)方法加以介紹,最后闡述可靠性的概念和度量,并討論分布式數(shù)據(jù)庫(kù)的可靠性協(xié)議。分布式恢復(fù)管理:數(shù)據(jù)庫(kù)系統(tǒng)的

57、可恢復(fù)性和高可靠性是保證各種應(yīng)用正確而可靠地運(yùn)行所不可缺少的重要組成部分??苫謴?fù)性,提供恢復(fù)措施,把數(shù)據(jù)庫(kù)系統(tǒng)從故障狀態(tài)恢復(fù)到一個(gè)已知的正確狀態(tài);高可靠性,盡量將崩潰后數(shù)據(jù)庫(kù)的不可用的時(shí)間減少到最低,并保證事務(wù)的原子性和耐久性。分布式恢復(fù)概述:故障模型:故障(Fault):系統(tǒng)單元內(nèi)部發(fā)生的錯(cuò)誤或系統(tǒng)內(nèi)部設(shè)計(jì)錯(cuò)誤;錯(cuò)誤(Error):系統(tǒng)單元內(nèi)出現(xiàn)了不正確(zhngqu)的狀態(tài),是故障的內(nèi)在表現(xiàn)形式;失效(Failure):指系統(tǒng)的外部狀態(tài)中所表現(xiàn)出來(lái)(ch li)的錯(cuò)誤;當(dāng)系統(tǒng)單元被組建得不合理或系統(tǒng)內(nèi)部設(shè)計(jì)(shj)存在不足時(shí),將會(huì)引發(fā)系統(tǒng)故障,此時(shí)系統(tǒng)的內(nèi)部狀態(tài)處于錯(cuò)誤的狀態(tài),進(jìn)而使系統(tǒng)的外部環(huán)境受到影響,最終產(chǎn)生失效。恢復(fù)模型:在故障恢復(fù)過(guò)程中,數(shù)據(jù)庫(kù)恢復(fù)管理器依據(jù)數(shù)據(jù)庫(kù)日志文件(log)對(duì)數(shù)據(jù)庫(kù)事務(wù)進(jìn)行恢復(fù)操作。日志文件的格式和內(nèi)容反做(undo)和重做(redo)恢復(fù)策略故障恢復(fù)模型檢查點(diǎn)記錄檢查點(diǎn)是在日志中周期設(shè)定的操作標(biāo)志,目的是減少系統(tǒng)故障后的恢復(fù)的工作量。在檢查點(diǎn)上,需要完成的操作包括:首先,將日志緩沖區(qū)中的內(nèi)容寫入外存中的日志;然后,在外存日志中登記一個(gè)檢查點(diǎn)記錄;接下來(lái),將數(shù)據(jù)庫(kù)緩沖區(qū)的內(nèi)容寫入外存數(shù)據(jù)庫(kù);最后,把外存日志中檢查點(diǎn)的地址寫入重啟動(dòng)文件。軟故障的恢復(fù)模型當(dāng)軟故障發(fā)生時(shí),造成數(shù)據(jù)庫(kù)不一致狀態(tài)的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論