分布式數(shù)據(jù)庫(kù)及相關(guān)問(wèn)題課件_第1頁(yè)
分布式數(shù)據(jù)庫(kù)及相關(guān)問(wèn)題課件_第2頁(yè)
分布式數(shù)據(jù)庫(kù)及相關(guān)問(wèn)題課件_第3頁(yè)
分布式數(shù)據(jù)庫(kù)及相關(guān)問(wèn)題課件_第4頁(yè)
分布式數(shù)據(jù)庫(kù)及相關(guān)問(wèn)題課件_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第六部分 分布式數(shù)據(jù)庫(kù)及相關(guān)技術(shù)的討論(第8-11章內(nèi)容)一 分布式數(shù)據(jù)庫(kù)概述產(chǎn)生和發(fā)展概念和分類(lèi)體系結(jié)構(gòu)模式結(jié)構(gòu)及獨(dú)立性。二 分布式數(shù)據(jù)庫(kù)系統(tǒng)中存在的技術(shù)問(wèn)題分布式DB的設(shè)計(jì)分布式DB的查詢(xún)分布式DB的事務(wù)管理及并發(fā)。第1頁(yè),共85頁(yè)。一 分布式數(shù)據(jù)庫(kù)概述I 分布式數(shù)據(jù)庫(kù)的產(chǎn)生及發(fā)展a 經(jīng)濟(jì)的發(fā)展b 計(jì)算機(jī)硬件環(huán)境及網(wǎng)絡(luò)的發(fā)展發(fā)展歷程:產(chǎn)生于20世紀(jì)70年代末期,成長(zhǎng)于80年代 第一個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng)SDD-1是美國(guó)計(jì)算機(jī)公司(CAA)于1976年-1978年設(shè)計(jì),79年在DEC-10/20上實(shí)現(xiàn)。德國(guó)斯圖加特大學(xué)研制的porel系統(tǒng)美國(guó)IBM的R*和system R美國(guó)加大學(xué)伯克利分校的I

2、ngres法國(guó)INRA研制的SIRIUS-DELTA。第2頁(yè),共85頁(yè)。1987年:C.J Date提出了完全的,真正的分布式DBS應(yīng)遵循的12條規(guī)則:本地自治性不依賴(lài)于中心站點(diǎn)可連續(xù)操作位置獨(dú)立性數(shù)據(jù)分片獨(dú)立性數(shù)據(jù)復(fù)制獨(dú)立性分布式查詢(xún)獨(dú)立性分布式事務(wù)管理硬件獨(dú)立性操作系統(tǒng)獨(dú)立性網(wǎng)絡(luò)獨(dú)立性DBMS獨(dú)立性第3頁(yè),共85頁(yè)。II 分布式數(shù)據(jù)庫(kù)系統(tǒng)的定義及分類(lèi)1 分布式數(shù)據(jù)庫(kù)的定義: 分布式數(shù)據(jù)庫(kù)是一個(gè)數(shù)據(jù)集合,這些數(shù)據(jù)分布在由計(jì)算機(jī)網(wǎng)絡(luò)連接起來(lái)的若干節(jié)點(diǎn)上,每個(gè)節(jié)點(diǎn)可以管理本地的數(shù)據(jù)應(yīng)用,也可以參與全局?jǐn)?shù)據(jù)應(yīng)用。同時(shí)這些數(shù)據(jù)在邏輯上形成一個(gè)整體,由統(tǒng)一的數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行管理。(DDBMS)注:幾

3、個(gè)基本的概念站點(diǎn):計(jì)算機(jī)連接的一個(gè)邏輯單位,稱(chēng)為一個(gè)站點(diǎn)。本地(或稱(chēng):局部)用戶(hù)、本地應(yīng)用:一個(gè)用戶(hù)或應(yīng)用只訪問(wèn)他所注冊(cè)的那個(gè)站點(diǎn)。全局用戶(hù)、全局應(yīng)用:一個(gè)用戶(hù)訪問(wèn)涉及兩個(gè)或兩個(gè)以上的站點(diǎn)中的數(shù)據(jù)。全局?jǐn)?shù)據(jù)庫(kù)(GDB)、局部數(shù)據(jù)庫(kù)(LDB):。第4頁(yè),共85頁(yè)。2.分布式數(shù)據(jù)庫(kù)系統(tǒng)的基本特點(diǎn):A 結(jié)構(gòu)特點(diǎn):物理分布,邏輯相關(guān)。B 應(yīng)用特點(diǎn):站點(diǎn)自治。第5頁(yè),共85頁(yè)。多處理機(jī)系統(tǒng)C.數(shù)據(jù)分布透明性:數(shù)據(jù)的物理獨(dú)立性?xún)?nèi)容更豐富,增加了數(shù)據(jù)分布透明性。-數(shù)據(jù)的邏輯分片、數(shù)據(jù)的物理位置分布、數(shù)據(jù)的復(fù)制,對(duì)用戶(hù)透明。D.集中與自治兼?zhèn)涞臄?shù)據(jù)庫(kù)系統(tǒng)控制機(jī)制.-兩個(gè)層次的數(shù)據(jù)共享:局部/全局?jǐn)?shù)據(jù)共享。第6

4、頁(yè),共85頁(yè)。E.增加數(shù)據(jù)冗余度。-利用數(shù)據(jù)冗余提高系統(tǒng)可靠性、可用性和系統(tǒng)性能。F.事務(wù)管理的分布性。-分布環(huán)境下,維護(hù)事務(wù)的原子性、一致性、隔離性和持久性。第7頁(yè),共85頁(yè)。3.分布式數(shù)據(jù)庫(kù)系統(tǒng)的模式結(jié)構(gòu)第8頁(yè),共85頁(yè)。4.分布式數(shù)據(jù)庫(kù)系統(tǒng)的分類(lèi)A 按局部DBMS的數(shù)據(jù)模型分類(lèi):-同構(gòu)型:數(shù)據(jù)模型相同 *同質(zhì)同構(gòu):數(shù)據(jù)模型相同且局部DBMS相同。 *異質(zhì)同構(gòu):數(shù)據(jù)模型相同外交部局部DBMS不同。 SDD-1和DDM 美國(guó)CCA公司 SYSTEM R* 美國(guó)IBM公司 POREL 德國(guó)斯圖加特大學(xué) -異構(gòu)型 :數(shù)據(jù)模型不同 MULTIBASE 美國(guó)CCA1981研制 IMADAS:H 佛羅

5、里達(dá)大學(xué)1984研制 DDTS HONEYWELL公司1980年研制。第9頁(yè),共85頁(yè)。B 按全局控制系統(tǒng)類(lèi)型分類(lèi):-全局控制集中型DDBS DDBS的全局控制機(jī)制及數(shù)據(jù)字典位于一個(gè)中心站點(diǎn),由中心站點(diǎn)完成全局事務(wù)的協(xié)調(diào)和局部數(shù)據(jù)庫(kù)的轉(zhuǎn)換等所有控制功能。-全局控制分散型DDBS DDBS的全局控制機(jī)制及數(shù)據(jù)字典分散在網(wǎng)絡(luò)的各個(gè)站點(diǎn)上,每個(gè)站點(diǎn)都能完成全局事務(wù)的協(xié)調(diào)和局部數(shù)據(jù)轉(zhuǎn)換。-全局控制可變型(主從型) 將站點(diǎn)分成兩組,一組都包含全局控制機(jī)制和數(shù)據(jù)字典,另一組為輔助站點(diǎn),只包含自己的數(shù)據(jù)應(yīng)用。第10頁(yè),共85頁(yè)。4.分布式數(shù)據(jù)庫(kù)管理系統(tǒng)的功能結(jié)構(gòu):除了具有集中式DBMS具有的功能外,還要有如

6、下附加 的功能: * 數(shù)據(jù)跟蹤 * 分布式查詢(xún)處理能力 * 分布式事務(wù)管理的能力 * 復(fù)制數(shù)據(jù)的能力 * 安全性 * 分布式目錄管理第11頁(yè),共85頁(yè)。二.分布式數(shù)據(jù)庫(kù)系統(tǒng)中存在的技術(shù)問(wèn)題: 1 分布式數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì) -全局模式的設(shè)計(jì) -數(shù)據(jù)分片,分布 2 分布式數(shù)據(jù)庫(kù)的查詢(xún)處理 3 分布式數(shù)據(jù)庫(kù)的事務(wù)管理及并發(fā)控制 4 分布式數(shù)據(jù)庫(kù)的可靠性 5 異構(gòu)數(shù)據(jù)庫(kù)的連接 6 安全性 7 目錄管理第12頁(yè),共85頁(yè)。1.分布式數(shù)據(jù)庫(kù)設(shè)計(jì)一 方法:根據(jù)設(shè)計(jì)是基于現(xiàn)存的數(shù)據(jù)系統(tǒng)還是構(gòu)造一個(gè)全新的數(shù)據(jù)庫(kù)系統(tǒng),有兩種方法創(chuàng)建分布式數(shù)據(jù)庫(kù): 組合法:基于現(xiàn)有的系統(tǒng),建立一個(gè)協(xié)調(diào)管理系統(tǒng)。 -采用自底向上的方式

7、構(gòu)建 重構(gòu)法:創(chuàng)建全新的數(shù)據(jù)庫(kù)系統(tǒng) -自頂向下的方式構(gòu)建二 分布式數(shù)據(jù)庫(kù)設(shè)計(jì)的內(nèi)容: 1. 數(shù)據(jù)庫(kù)設(shè)計(jì)基礎(chǔ)-需求分析 1)數(shù)據(jù)需求 2)應(yīng)用需求 應(yīng)用的原發(fā)站點(diǎn):發(fā)出應(yīng)用請(qǐng)求的站點(diǎn) 應(yīng)用在站點(diǎn)被激活的頻率 應(yīng)用對(duì)數(shù)據(jù)對(duì)象訪問(wèn)次數(shù)、類(lèi)型和分布統(tǒng)計(jì)第13頁(yè),共85頁(yè)。2. 數(shù)據(jù)庫(kù)設(shè)計(jì)(設(shè)計(jì)的核心任務(wù)) 全局模式設(shè)計(jì) 局部數(shù)據(jù)庫(kù)設(shè)計(jì) 數(shù)據(jù)分片設(shè)計(jì) 片段的位置分配設(shè)計(jì)三 分布式數(shù)據(jù)庫(kù)設(shè)計(jì)的目標(biāo): 確保數(shù)據(jù)庫(kù)數(shù)據(jù)和應(yīng)用具有最大程度的本地性。 分布式數(shù)據(jù)的可用性和可靠性 工作負(fù)荷分布 存儲(chǔ)的能力和費(fèi)用第14頁(yè),共85頁(yè)。四 自頂向下的方式構(gòu)建分布式數(shù)據(jù)庫(kù)需求分析全局概念模型全局邏輯模型分片設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)試運(yùn)

8、行及維護(hù)分布設(shè)計(jì)局部邏輯設(shè)計(jì)物理設(shè)計(jì)1 設(shè)計(jì)的步驟:第15頁(yè),共85頁(yè)。2 數(shù)據(jù)庫(kù)的分片設(shè)計(jì)(1). 什么叫“片段”? 指在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,某一站點(diǎn)上存儲(chǔ)的數(shù)據(jù)集合。(2).分片設(shè)計(jì)的目的? 產(chǎn)生全局?jǐn)?shù)據(jù)的一個(gè)合理的劃分,從而使每個(gè)站點(diǎn)只獲得它所需要的數(shù)據(jù),最大可能保證應(yīng)用的本地性。(3)分片應(yīng)遵循的一般規(guī)則:設(shè):R = R1, R2, , Rn 1)完整性 即,tR, 則,必有t Ri ( i = 1,2, , n ) 2)可重構(gòu)性 即,R = Ri ( i = 1,2, , n ) 或R = Ri ( i = 1, , n ) 3)不相交性 即,Ri Rj = (i,j= 1, , n

9、,且i j) 或Ri Rj = 主碼屬性(i ,j= 1, , n,且i j)第16頁(yè),共85頁(yè)。(4)分片的基本類(lèi)型和方法 水平分片,垂直分片,混合分片A 水平分片:對(duì)全關(guān)系進(jìn)行選擇操作,把具有相同性質(zhì)的元組進(jìn)行分組,構(gòu)成若干不相交的子集。初級(jí)分片和導(dǎo)出分片 初級(jí)分片:以關(guān)系自身屬性性質(zhì)分組例1 S( S#, Sname, Age, Sex )define fragment S1 asselect * from S where Sex = M ;define fragment S2 asselect * from S where Sex = F;第17頁(yè),共85頁(yè)。 導(dǎo)出分片:用其它關(guān)系的屬

10、性對(duì)某一全關(guān)系進(jìn)行分組例2 設(shè):全局關(guān)系 SC( S#, C#, Grade ) S( S#, Sname, Age, Sex )設(shè)計(jì)需求:按S的“性別”屬性(Sex)去劃分SCDefine fragment SC1 as select SC.S#, C#, Grade from SC, S where SC.S# = S.S# and S.Sex = MDefine fragment SC2 as select SC.S#, C#, Grade from SC, S where SC.S# = S.S# and S.Sex = F第18頁(yè),共85頁(yè)。 B 垂直分片:利用投影操作把全關(guān)系的屬性

11、分成若干組,目標(biāo)是把頻繁使用的屬性聚集在一起,且各片段只在鍵屬性下重疊。例3 設(shè):全局關(guān)系EMP(E#,Name,Dept,Job,Sal,tel)Key = E# 垂直分片: EMP1(E#, Name, Sal, tel) EMP2(E#, Dept, Job)第19頁(yè),共85頁(yè)。3 數(shù)據(jù)庫(kù)片段位置分配的設(shè)計(jì)兩種方式: 非冗余分配:一個(gè)片段映射到一個(gè)站點(diǎn) 冗余分配:一個(gè)片段映射到多個(gè)站點(diǎn)非冗余“最佳適應(yīng)”分配法: 計(jì)算:Bij = k( Fkj * Nki ) 即,計(jì)算所有的應(yīng)用在站點(diǎn)j上訪問(wèn)片段i 的總次數(shù)。 對(duì)所有站點(diǎn)j確定j, 使得Bij = max( Bij )即,把片段Ri分配到

12、有最大訪問(wèn)次數(shù)的站點(diǎn)j。i-片段序號(hào)j-站點(diǎn)序號(hào)k-應(yīng)用序號(hào)Fkj-應(yīng)用k在站點(diǎn)j上激活的頻率Rki-應(yīng)用k對(duì)片段i 進(jìn)行檢索訪問(wèn)的次數(shù)(Read)Uki-應(yīng)用k對(duì)片段i 進(jìn)行更新訪問(wèn)的次數(shù)Nki = Rki + Uki -應(yīng)用k對(duì)片段i進(jìn)行訪問(wèn)的總次數(shù)第20頁(yè),共85頁(yè)。冗余分配比較復(fù)雜,一般采用下列方法之一進(jìn)行估算:-所有得益站點(diǎn)法:-附加復(fù)制法(1)“所有得益站點(diǎn)”法對(duì)所有站點(diǎn)確定非冗余分配方案。從全部結(jié)點(diǎn)中選擇一組站點(diǎn),使得給這組站點(diǎn)分配片段Ri的一個(gè)拷貝所得到的檢索效益,大于從其它站點(diǎn)對(duì)Ri實(shí)施更新的代價(jià)。把片段Ri拷貝分配給該組站點(diǎn)第21頁(yè),共85頁(yè)。(2)附加拷貝法對(duì)所有站點(diǎn)確定

13、非冗余分配方案。計(jì)算把片段Ri分配給所有站點(diǎn)所能得到的總效益fi(以及一個(gè)站點(diǎn)分得Ri所得到的效益)從分得片段Ri能夠獲取最大益處的站點(diǎn)起,對(duì)各站點(diǎn)依次附加片段Ri的一個(gè)拷貝,直到增加片段Ri不能使系統(tǒng)得到明顯效益(或者說(shuō)效益增大“接近”fi )為止??偨Y(jié):數(shù)據(jù)庫(kù)片段及位置分配的設(shè)計(jì)所需要 的參數(shù)均從應(yīng)用需求中得來(lái),總結(jié)這些參數(shù)可用如下三個(gè)表表達(dá):A 頻率表:各站點(diǎn)每一應(yīng)用激活的次數(shù)B 劃分表:各實(shí)體的潛在水平分片規(guī)則C 極化表:給定站點(diǎn)發(fā)出一給定應(yīng)用訪問(wèn)一給定片段的概率第22頁(yè),共85頁(yè)。需求分析全局概念模型全局邏輯模型分片設(shè)計(jì)系統(tǒng)實(shí)現(xiàn)試運(yùn)行及維護(hù)分布設(shè)計(jì)局部邏輯設(shè)計(jì)物理設(shè)計(jì)頻率表劃分表極化

14、表第23頁(yè),共85頁(yè)。分布式數(shù)據(jù)庫(kù)設(shè)計(jì)的一個(gè)例子訂票系統(tǒng)維護(hù)分布在三個(gè)網(wǎng)絡(luò)站點(diǎn)(與機(jī)場(chǎng)1,2,3處于同一地理區(qū)域)上的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)存儲(chǔ)機(jī)場(chǎng)規(guī)程、班機(jī)起降和旅客訂票等數(shù)據(jù)。(1)概念設(shè)計(jì)-全局概念模式(E-R圖)第24頁(yè),共85頁(yè)。(2)收集數(shù)據(jù)與其最相關(guān)的應(yīng)用知識(shí)-用操作模式表示a 訂票: 用于旅客預(yù)訂機(jī)票。第25頁(yè),共85頁(yè)。b 登記: 用于旅客登機(jī)登記任務(wù)記錄。第26頁(yè),共85頁(yè)。c 起飛應(yīng)用:查詢(xún)即將從一個(gè)機(jī)場(chǎng)起飛的30個(gè)班機(jī)信息。第27頁(yè),共85頁(yè)。(3)在操作模式的基礎(chǔ)上,對(duì)每一實(shí)體估算應(yīng)用的定量數(shù)據(jù),建立邏輯訪問(wèn)表例“班機(jī)”實(shí)體邏輯訪問(wèn)表第28頁(yè),共85頁(yè)。(4)分布需求分析a.

15、 頻率表:調(diào)研并給出在三個(gè)站點(diǎn)上使用各個(gè)應(yīng)用的頻率(激活的次數(shù))第29頁(yè),共85頁(yè)。b.劃分表:分析各個(gè)實(shí)體各種可能的分片方式及其選擇性*基本劃分第30頁(yè),共85頁(yè)。*導(dǎo)出劃分注釋表:第31頁(yè),共85頁(yè)。c.極化表:調(diào)研并給出從一個(gè)站點(diǎn)發(fā)出一個(gè)應(yīng)用所需要訪問(wèn)某片段的概率。第32頁(yè),共85頁(yè)。(5)飛機(jī)訂票系統(tǒng)的分布式設(shè)計(jì)a.為各個(gè)實(shí)體選擇合適的分片,原則:滿(mǎn)足本地性,不造成應(yīng)用困難。對(duì)本例來(lái)予,各個(gè)實(shí)體采用水平分片: “機(jī)場(chǎng)” 由基于區(qū)域的基本水平分片(片段(F1F3):機(jī)場(chǎng)1,機(jī)場(chǎng)2,機(jī)場(chǎng)3) “班機(jī)” 由基于起飛機(jī)場(chǎng)區(qū)域的導(dǎo)出水平分片(片段(A1A3) :班機(jī)1,班機(jī)2,班機(jī)3) “旅客”

16、 由基于旅客訂票涉及的班機(jī)起飛機(jī)場(chǎng)所在區(qū)域的導(dǎo)出水平分片(片段(P1P7):旅客1,旅客2,旅客3,旅客7)第33頁(yè),共85頁(yè)。b.進(jìn)行片段的非冗余分配:1)站點(diǎn)1:機(jī)場(chǎng)1,班機(jī)1,旅客12)站點(diǎn)2:機(jī)場(chǎng)2,班機(jī)2,旅客2 旅客4,旅客6,旅客73)站點(diǎn)3:機(jī)場(chǎng)3,班機(jī)3,旅客3 旅客5根據(jù)頻率表和極化表c.進(jìn)行片段的冗余分配: 根據(jù)應(yīng)用可以將旅客4.5.6分配在兩個(gè)站點(diǎn)上,旅客7分配在三個(gè)站點(diǎn)上。第34頁(yè),共85頁(yè)。(6)重構(gòu)局部模式第35頁(yè),共85頁(yè)。第36頁(yè),共85頁(yè)。第37頁(yè),共85頁(yè)。本節(jié)要點(diǎn)1. 理解分布式數(shù)據(jù)庫(kù)系統(tǒng)的基本概念及特征,總結(jié)分布式數(shù)據(jù)庫(kù)分片設(shè)計(jì)方法。熟練掌握使用SQL

17、語(yǔ)句,定義全局關(guān)系模式的分片方法。2. 總結(jié)“自頂向下”設(shè)計(jì)分布式數(shù)據(jù)庫(kù)的方法。掌握從設(shè)計(jì)全局設(shè)計(jì)模式到各站點(diǎn)上局部模式的分布設(shè)計(jì)方法。3. 理解分布式數(shù)據(jù)庫(kù)片段分配設(shè)計(jì)方法的思想。第38頁(yè),共85頁(yè)。2.分布式數(shù)據(jù)庫(kù)查詢(xún)處理一、分布式查詢(xún)處理的步驟查詢(xún)分析若該查詢(xún)屬于局部查詢(xún),則執(zhí)行局部查詢(xún)處理后,即可結(jié)束。查詢(xún)分解把全局查詢(xún)或遠(yuǎn)程查詢(xún)轉(zhuǎn)換成定義在全局關(guān)系上的關(guān)系代數(shù)表達(dá)式,并優(yōu)化該表達(dá)式。查詢(xún)本地化把一個(gè)全局關(guān)系上的查詢(xún),轉(zhuǎn)化為對(duì)片段的局部查詢(xún)。全局查詢(xún)優(yōu)化:找出對(duì)各個(gè)片段局部查詢(xún)結(jié)果之間的最佳操作次序,使得代價(jià)最小。其重點(diǎn)在連接運(yùn)算和并運(yùn)算的優(yōu)化局部?jī)?yōu)化:由確定的片段所在站點(diǎn)執(zhí)行第39頁(yè)

18、,共85頁(yè)。二、分布式查詢(xún)處理的代價(jià)QC估算: QC=I/O+通信代價(jià)T*通信代價(jià)T估算T = 傳輸次數(shù)(每次傳輸延遲時(shí)間+ 每次傳輸數(shù)據(jù)量/ 數(shù)據(jù)傳輸速率)= 傳輸次數(shù)(C0 + X / D)第40頁(yè),共85頁(yè)。三、分布式查詢(xún)策略的重要性:例設(shè):教學(xué)數(shù)據(jù)庫(kù)中:S(S#, Sname, Age, Sex) 10,000個(gè)元組, 存放在A站點(diǎn)(男/女各一半)SC(S#, C#, Grade) 1,000,000個(gè)元組, 存放在A站點(diǎn)(每人選課100門(mén))C(C#, Cname, Teacher) 100,000個(gè)元組, 存放在B站點(diǎn)假設(shè):每個(gè)元組的長(zhǎng)度為100 bit; 通信系統(tǒng)傳輸速率為10,0

19、00bit / 秒;每次通信延遲時(shí)間為1秒。查詢(xún):選修課名Maths 的男生的學(xué)號(hào)和姓名對(duì)于本例, C0 = 1秒,D = 10,000 bit / 秒第41頁(yè),共85頁(yè)。解:SQL語(yǔ)句是: SELECT S.S#, Sname FROM S, SC, C WHERE S.S# = SC.S# AND SC.C# = C.C# AND SEX = M AND Cname = Maths策略1:把關(guān)系C傳到A站點(diǎn);在A站點(diǎn)進(jìn)行處理。T1 = 1 + (100,000 *100) / 10,000 16.7(分)第42頁(yè),共85頁(yè)。策略2:先在A站點(diǎn)找出男生選課情況(每人平均選100門(mén)課),再根據(jù)

20、C#向B站點(diǎn)核查這些男生的選課是否是Maths。(結(jié)果在A站點(diǎn))T3 = 2 * 500,000 *1秒 11.6 (天)策略3:先在B站點(diǎn)找出Maths元組(假設(shè)最多有10門(mén)),再把查找結(jié)果傳到A站點(diǎn),在A站點(diǎn)繼續(xù)執(zhí)行查詢(xún)處理。T6 = 1 + 10* 100/10,000 1秒第43頁(yè),共85頁(yè)。四、基于關(guān)系代數(shù)等價(jià)變換的查詢(xún)優(yōu)化例1 S(S#, Sname, Age, Sex) SC(S#, C#, Grade)其中,S 和SC都采取水平分片:用戶(hù)查詢(xún):SELECT distinct Sname FROM S, SC WHERE S.S# = SC.S# and Sex = M and

21、Grade 90轉(zhuǎn)成關(guān)系代數(shù)表達(dá)式:Sname ( Sex = M Grade 90 ( S.S#=SC.S#( S SC ) ) )第44頁(yè),共85頁(yè)。把關(guān)系代數(shù)表達(dá)式轉(zhuǎn)換成查詢(xún)樹(shù)并優(yōu)化從全局查詢(xún)到片段查詢(xún)的轉(zhuǎn)換第45頁(yè),共85頁(yè)。優(yōu)化片段查詢(xún)樹(shù)a. 對(duì)于水平分片,檢查選擇運(yùn)算()與水平分片的條件(謂詞)。b. 對(duì)于垂直分片,注意消去不提供連接運(yùn)算后所需要屬性的分支。第46頁(yè),共85頁(yè)。例2 設(shè):全局關(guān)系:EMP(E#, Ename, Sal, Dept, Dname)現(xiàn)采取垂直分片:查詢(xún)問(wèn)題:SELECT Ename, SalFROM EMP查詢(xún)關(guān)系代數(shù)表達(dá)式Ename, Sal( EMP

22、 )第47頁(yè),共85頁(yè)。第48頁(yè),共85頁(yè)。五 基于半連接算法的全局查詢(xún)優(yōu)化1、半連接運(yùn)算:由投影和連接操作導(dǎo)出的一種關(guān)系代數(shù)操作。設(shè):關(guān)系R和S在屬性R.A=S.B上的半連接操作記為:RA=BS=R ( RA=BS )(B (S)=RA=BSA=BR=S ( SA=BR )(A (R)=SA=B或者:2、利用半連接運(yùn)算實(shí)現(xiàn)連接運(yùn)算S=RA=B(RA=BS)A=BS(SA=BR)A=BR或者:S=RA=B第49頁(yè),共85頁(yè)。3.采用半連接運(yùn)算實(shí)現(xiàn)連接運(yùn)算的代價(jià)及優(yōu)化令:tuple(R) 表示關(guān)系R的元組數(shù) size(B) 表示屬性B的數(shù)據(jù)長(zhǎng)度現(xiàn)假設(shè),用戶(hù)希望在站點(diǎn)2上得到R 與 S自然連接的結(jié)

23、果RS網(wǎng)絡(luò)站點(diǎn)1站點(diǎn)2RS網(wǎng)絡(luò)站點(diǎn)1站點(diǎn)2(1)B(S)(2)傳送B(S)(3)R=RB(S)B(4)傳送R(5)RSB第50頁(yè),共85頁(yè)??偞鷥r(jià):T半= 2C0 + C1 *size(B) * tuple(B(S) +size(R) * tuple(R) 采用半連接操作優(yōu)化的原理:兩個(gè)關(guān)系進(jìn)行連接操作之前,去掉無(wú)用的無(wú)組,減少數(shù)據(jù)傳輸量。采用直接連接運(yùn)算的總代價(jià):T = C0 + C1 * size(R) * tuple(R)選擇半連接實(shí)現(xiàn)連接運(yùn)算的原則:經(jīng)半連接操作產(chǎn)生少量元組。4. 查詢(xún)優(yōu)化策略1)計(jì)算各種半連接運(yùn)算的代價(jià)。2)計(jì)算直接連接運(yùn)算的代價(jià)。3)比較并選出最優(yōu)者。第51頁(yè),共8

24、5頁(yè)。六 基于直接連接算法的查詢(xún)優(yōu)化1、利用站點(diǎn)依賴(lài)信息的連接算法R1R2=F11F21(F12F22)其成立的條件是什么?第52頁(yè),共85頁(yè)。條件: A(F11) A(F12) = A(F21) A(F22) = A(F11) A(F22) = A(F12) A(F21) = 站點(diǎn)依賴(lài):設(shè):RiA、RjA、SiA 、SjA分別表示關(guān)系R、S在站點(diǎn)i、j的A屬性上的取值。若對(duì)于i j ,有: RiA SjA = ,則稱(chēng)關(guān)系R和S在屬性A上站點(diǎn)依賴(lài)。性質(zhì):若關(guān)系R和S在屬性A上站點(diǎn)依賴(lài),則:iRS=(RiSi)第53頁(yè),共85頁(yè)。推論:* 如果R和S在屬性A上站點(diǎn)依賴(lài),B A,則,R和S在屬性B

25、上站點(diǎn)依賴(lài)。* 如果R和S在屬性A上站點(diǎn)依賴(lài), S和T在屬性B上站點(diǎn)依賴(lài),則:RS=(RiSiTiTi)使用站點(diǎn)依賴(lài)算法實(shí)現(xiàn)直接連接運(yùn)算的優(yōu)點(diǎn):1)無(wú)數(shù)據(jù)傳送2)可進(jìn)行并行計(jì)算3)可利用本地索引在查詢(xún)優(yōu)化過(guò)程中,可以判斷什么時(shí)候使用站點(diǎn)依賴(lài)算法(P87)第54頁(yè),共85頁(yè)。2、分片和復(fù)制算法當(dāng)查詢(xún)不能在無(wú)數(shù)據(jù)傳送方式下處理,可采用分片和復(fù)制算法,算法的原理: 選擇一組站點(diǎn),將查詢(xún)中的某一個(gè)關(guān)系的所有片段分布到這些站點(diǎn)上,然后把查詢(xún)中的其余關(guān)系復(fù)制到每一個(gè)選定的站點(diǎn)上。優(yōu)點(diǎn):1)可進(jìn)行并行計(jì)算 2)在一定程度上可利用本地索引選擇方法:從假定某一關(guān)系分片,其余關(guān)系復(fù)制,計(jì)算代價(jià),然后再選擇另一關(guān)系

26、為分片,最后從中選擇代價(jià)最小的方案。第55頁(yè),共85頁(yè)。本節(jié)重點(diǎn)1. 總結(jié)分布式數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化的主要步驟,并與集中式數(shù)據(jù)庫(kù)查詢(xún)優(yōu)化相比較。2. 總結(jié)利用半連接算法實(shí)現(xiàn)直接連接運(yùn)算的全局查詢(xún)優(yōu)化方法特點(diǎn)。在什么條件下可以利用半連接算法實(shí)現(xiàn)直接連接運(yùn)算?第56頁(yè),共85頁(yè)。3.分布式事務(wù)管理及恢復(fù)的討論一、分布式事務(wù)概述1.事務(wù)的特點(diǎn)分布式數(shù)據(jù)庫(kù)的事務(wù)稱(chēng)為全局事務(wù)。一個(gè)全局事務(wù)在執(zhí)行時(shí)分解為由若干與相應(yīng)站點(diǎn)有關(guān)的操作序列組成的“子事務(wù)”。1. 原子性 2. 一致性(或可串行性)3. 隔離性 4. 持久性 5. 系統(tǒng)效率6. 系統(tǒng)可用性:分布式事務(wù)既不能影響本站點(diǎn)上事務(wù)的執(zhí)行,也不能影響其它站點(diǎn)上事

27、務(wù)的執(zhí)行第57頁(yè),共85頁(yè)。Begin Transaction 開(kāi)始事務(wù)T1T2TnCommit / Abort (或Rollback) 結(jié)束事務(wù)子事務(wù)或操作序列全局事務(wù)3 分布式事務(wù)代理執(zhí)行機(jī)制2. 分布式事務(wù)的結(jié)構(gòu)事務(wù)代理的概念:一個(gè)事務(wù)代理就是一個(gè)站點(diǎn)上的一個(gè)進(jìn)程第58頁(yè),共85頁(yè)。應(yīng)用請(qǐng)求(源站點(diǎn)總代理根代理)RollbackCommit總代理(根代理)子事務(wù)1失敗子事務(wù)1成功子事務(wù)代理n子事務(wù)代理1Begin Transaction子事務(wù)n失敗子事務(wù)n成功第59頁(yè),共85頁(yè)。例銀行轉(zhuǎn)帳事務(wù):把帳號(hào)FROM_ACC上數(shù)量為AMOUNT的資金,轉(zhuǎn)入帳號(hào)TO_ACC。全局應(yīng)用事務(wù):read

28、(AMOUNT, FROM_ACC, TO_ACC);begin transactionselect BALANCE into FROM_AMOUNTfrom ACCOUNT_TABLEwhere ACCOUNT_NO = FROM_ACC;if FROM_AMOUNT - AMOUNT 0then abortelse beginupdate ACCOUNT_TABLEset BALANCE = BALANCE - AMOUNTwhere ACCOUNT_NO = FROM_ACC;update ACCOUNT_TABLEset BALANCE = BALANCE + AMOUNTwhere

29、ACCOUNT_NO = TO_ACC;commitend第60頁(yè),共85頁(yè)。設(shè):轉(zhuǎn)出帳戶(hù)在源站點(diǎn)上。ROOT_AGENT:read(AMOUNT, FROM_ACC, TO_ACC);begin transactionselect BALANCE into FROM_AMOUNTfrom ACCOUNT_TABLEwhere ACCOUNT_NO = FROM_ACC;if FROM_AMOUNT - AMOUNT 0then abortelse beginupdate ACCOUNT_TABLEset BALANCE = BALANCE - AMOUNTwhere ACCOUNT_NO =

30、 FROM_ACC;create AGENT;send to AGENT(AMOUNT, TO_ACC);waittingcommit / abortend第61頁(yè),共85頁(yè)。AGENT(子代理):begin transactionreceive from ROOT_AGENT( AMOUNT,TO_ACC );update ACCOUNT_TABLEset BALANCE = BALANCE + AMOUNTwhere ACCOUNT_NO = TO_ACC;send to ROOT_AGENT(SUCCESS / FAIL)waittingcommit / abort第62頁(yè),共85頁(yè)。二

31、. 分布式事務(wù)的兩階段提交協(xié)議2-PC:Two-Phase Commitment Protocal協(xié)調(diào)者日志參與者。參與者參與者日志日志日志兩階段提交協(xié)議的活動(dòng)機(jī)制:第63頁(yè),共85頁(yè)。初始協(xié)調(diào)者寫(xiě)end of trans到日志初始參與者寫(xiě)begin transaction等待準(zhǔn)備提交寫(xiě)ready到日志有要求撤消的?寫(xiě)abort到日志提交撤消就緒消息類(lèi)型?撤消提交準(zhǔn)備撤消提交全局撤消全局提交寫(xiě)abort到日志no寫(xiě)commit到日志no寫(xiě)abort到日志abort寫(xiě)commit到日志commit第64頁(yè),共85頁(yè)。兩階段提交協(xié)議的執(zhí)行過(guò)程:1)表決階段:對(duì)當(dāng)前事務(wù)形成一個(gè)決定。 協(xié)調(diào)者: 寫(xiě)“

32、開(kāi)始事務(wù)”日志; 向各個(gè)參與者發(fā)出“準(zhǔn)備”命令; 進(jìn)入等待狀態(tài)。 對(duì)于每一個(gè)參與者 參與者接收“準(zhǔn)備”消息; 參與者檢查子事務(wù),確定是否提交子事務(wù): Case1:可以提交子事務(wù): 參與者寫(xiě)“就緒”日志; 向協(xié)調(diào)者發(fā)“建議提交”消息; 參與者進(jìn)入“就緒”狀態(tài)。 Case2:不可以提交子事務(wù): 參與者寫(xiě)“撤消”日志; 向協(xié)調(diào)者發(fā)“建議撤消”消息; 參與者進(jìn)入“撤消”狀態(tài)。第65頁(yè),共85頁(yè)。 協(xié)調(diào)者接收到所有參與者的回答后,作出決定:Case1: 若所有參與者發(fā)出“建議提交”的消息,則,協(xié)調(diào)者作出提交全局事務(wù)的決定。 協(xié)調(diào)者寫(xiě)提交日志; 協(xié)調(diào)者發(fā)出“全局提交”消息; 協(xié)調(diào)者進(jìn)入“提交”狀態(tài)。Cas

33、e2: 若發(fā)現(xiàn)某參與者發(fā)出“建議撤消”的消息,則,協(xié)調(diào)者作出撤消全局事務(wù)的決定。 協(xié)調(diào)者寫(xiě)撤消日志; 協(xié)調(diào)者發(fā)出“全局撤消”消息; 協(xié)調(diào)者進(jìn)入“撤消”狀態(tài)。 “一票否決”制!2)執(zhí)行階段 對(duì)于每一個(gè)處于“就緒”狀態(tài)的參與者: 參與者根據(jù)協(xié)調(diào)者發(fā)出的全局事務(wù)處理指令,或者撤消子事務(wù),或者提交子事務(wù)第66頁(yè),共85頁(yè)。 參與者發(fā)出“確認(rèn)”(ACK)收到全局事務(wù)處理指令消息。 參與者進(jìn)入“撤消”或“提交”狀態(tài)。 協(xié)調(diào)者寫(xiě)“結(jié)束事務(wù)”日志。兩階段提交協(xié)議的特點(diǎn): 參與者有權(quán)單方面撤消事務(wù)。 參與者作出“建議提交” 或“建議撤消”決定之后,不能“翻悔”。 處于“就緒”狀態(tài)的參與者可能進(jìn)入提交狀態(tài),或撤消

34、狀態(tài)。 協(xié)調(diào)者和參與者可能進(jìn)入互相等待狀態(tài)。第67頁(yè),共85頁(yè)。1. 試比較集中式、分布式事務(wù)的特點(diǎn)。2. 總結(jié)分布式數(shù)據(jù)庫(kù)2-PC的特點(diǎn),并指出它所存在的問(wèn)題。本節(jié)重點(diǎn)第68頁(yè),共85頁(yè)。4.分布式數(shù)據(jù)庫(kù)并發(fā)控制機(jī)制一、分布式并發(fā)控制概述1 分布式并發(fā)控制的目的:為并發(fā)執(zhí)行的全局事務(wù),產(chǎn)生一個(gè)可串行化調(diào)度。2 局部調(diào)度:每個(gè)站點(diǎn)上的調(diào)度稱(chēng)為局部調(diào)度3 全局調(diào)度:數(shù)據(jù)庫(kù)系統(tǒng)全局事務(wù)的調(diào)度。4全局調(diào)度的可串行性局部調(diào)度的可串行性!局部調(diào)度的可串行性:全局調(diào)度的可串行性?問(wèn)題:一個(gè)數(shù)據(jù)對(duì)象x,可能存在多個(gè)副本x1, x2, , xn。第69頁(yè),共85頁(yè)。T1: Read(y);y := y 15;

35、Write(y);Commit;T2: Read(y);y := y * 2;Write(y);Commit;站點(diǎn)1 調(diào)度S1 = R1, W1, C1, R2, W2, C2 站點(diǎn)2 調(diào)度S2 = R2, W2, C2 , R1, W1, C1 設(shè):站點(diǎn)1,站點(diǎn)2上都有y的副本,且都執(zhí)行事務(wù)T1, T2。全局調(diào)度不可串行!5. 全局調(diào)度的沖突可串行性應(yīng)滿(mǎn)足的條件:單副本控制協(xié)議1) 每一個(gè)局部調(diào)度是沖突可串行化的。2) 任意兩個(gè)沖突操作在它們同時(shí)出現(xiàn)的各個(gè)局部調(diào)度中,必須有相同的執(zhí)行順序。第70頁(yè),共85頁(yè)。二、并發(fā)控制法并發(fā)控制算法悲觀法樂(lè)觀法封鎖法時(shí)標(biāo)排序法混合法加鎖法時(shí)標(biāo)排序法集中式加

36、鎖主副本加鎖分布式加鎖基本時(shí)標(biāo)排序法多版本時(shí)標(biāo)排序保守時(shí)標(biāo)排序第71頁(yè),共85頁(yè)。1)集中式加鎖法:網(wǎng)絡(luò)中某一個(gè)站點(diǎn)被指定為主站點(diǎn),用于存放整個(gè)分布式數(shù)據(jù)庫(kù)的加鎖表,負(fù)責(zé)整個(gè)系統(tǒng)事務(wù)的加鎖.2)主副本加鎖法:每個(gè)數(shù)據(jù)對(duì)象指定一個(gè)主副本,不同數(shù)據(jù)對(duì)象的主副本放在不同站點(diǎn)上。算法:對(duì)主副本加鎖;執(zhí)行更新操作;開(kāi)鎖3)分布式加鎖算法:鎖的管理由各個(gè)站點(diǎn)調(diào)度器參與、協(xié)調(diào),本地調(diào)度器負(fù)責(zé)本站數(shù)據(jù)加鎖。算法:對(duì)全部副本加鎖;執(zhí)行更新操作;開(kāi)鎖第72頁(yè),共85頁(yè)。三、分布式數(shù)據(jù)庫(kù)并發(fā)控制的加鎖技術(shù)1. 分布式數(shù)據(jù)庫(kù)加鎖準(zhǔn)則 讀,鎖一個(gè);寫(xiě),鎖全部(ROWA協(xié)議)。 遵守鎖的相容性規(guī)則 遵守兩段鎖協(xié)議(Two

37、 Phase Locking-2PL) 持有X鎖的事務(wù),必須到結(jié)束事務(wù)才能開(kāi)鎖。2、死鎖管理1)全局死鎖:分布式數(shù)據(jù)庫(kù)中,涉及多個(gè)站點(diǎn)的死鎖稱(chēng)為全局死鎖。第73頁(yè),共85頁(yè)。站點(diǎn)A站點(diǎn)B事務(wù)T1持有對(duì)X的鎖事務(wù)T2持有對(duì)Y的鎖事務(wù)T2請(qǐng)求對(duì)X的鎖事務(wù)T1請(qǐng)求對(duì)Y的鎖T2等待T1完成釋放對(duì)X的鎖T1等待T2完成釋放對(duì)Y的鎖第74頁(yè),共85頁(yè)。2)全局等待圖(GWFG)站點(diǎn)A:擁有x 、y的副本;T1: read(x), write(y)站點(diǎn)B:擁有y 、z的副本;T2: read(y), write(z)站點(diǎn)C:擁有z 的副本; T3: read(z), write(x)T1T2T3Xyz第75

38、頁(yè),共85頁(yè)。3)死鎖的檢測(cè)A 集中式死鎖檢測(cè)法 指定某站點(diǎn)上的鎖管理器作為全局死鎖檢測(cè)器 其余站點(diǎn)周期地向全局死鎖檢測(cè)器發(fā)送LWFG 全局死鎖檢測(cè)器產(chǎn)生GWFG,并檢測(cè)有無(wú)回路B 分布式死鎖檢測(cè)法 每個(gè)站點(diǎn)都有死鎖檢測(cè)器,負(fù)責(zé)檢測(cè)本地可能的死鎖。 每個(gè)站點(diǎn)按照一定規(guī)則,向相關(guān)站點(diǎn)發(fā)送潛在的死鎖回路圖。4)死鎖的解決原則:撤消并恢復(fù)代價(jià)最小的事務(wù)。 撤消并恢復(fù)年輕的事務(wù)。 撤消并恢復(fù)占用資源較少的事務(wù)。 撤消并恢復(fù)具有最短運(yùn)行時(shí)間的事務(wù)。第76頁(yè),共85頁(yè)。四 并發(fā)控制的時(shí)標(biāo)技術(shù)1. 時(shí)標(biāo):唯一識(shí)別一個(gè)事務(wù),并用于對(duì)事務(wù)進(jìn)行排序的標(biāo)識(shí)符。2. 時(shí)標(biāo)的構(gòu)成:“本地計(jì)數(shù)器值, 站點(diǎn)標(biāo)識(shí)符3. 時(shí)標(biāo)

39、的創(chuàng)建:一個(gè)事務(wù)Ti 初始化時(shí),事務(wù)管理器給該事務(wù)分配一個(gè)時(shí)標(biāo)ts(Ti )4. 時(shí)標(biāo)排序(TO)規(guī)則:已知Qi和Qj是分別屬于事務(wù)Ti和Tj沖突操作。若ts(Ti) ts(Tj) , 則Qi在Qj之前執(zhí)行。5、基本時(shí)標(biāo)法第77頁(yè),共85頁(yè)。規(guī)則:1)每個(gè)事務(wù)在本地站點(diǎn)開(kāi)始時(shí)被賦以一個(gè)全局唯一的時(shí)標(biāo)。3)事務(wù)的每個(gè)讀或?qū)懖僮鞫加性撌聞?wù)的時(shí)標(biāo)。2)如果事務(wù)被重新啟動(dòng),則被賦予新的時(shí)標(biāo)。4)在事務(wù)結(jié)束之前,不對(duì)數(shù)據(jù)庫(kù)進(jìn)行物理操作。5)對(duì)于數(shù)據(jù)庫(kù)每個(gè)數(shù)據(jù)對(duì)象x,記錄對(duì)它進(jìn)行讀操作和寫(xiě)操作的最大時(shí)標(biāo)RTM(x)和WTM(x)基本時(shí)標(biāo)法的執(zhí)行過(guò)程:1)設(shè)TS是對(duì)數(shù)據(jù)對(duì)象x進(jìn)行讀操作的當(dāng)前時(shí)標(biāo)。若TS WTM(x), 則, 拒絕該操作;并使發(fā)出該操作的事務(wù)用新時(shí)標(biāo)重新啟動(dòng);否則, 執(zhí)行讀操作,且使: RTM(x) = max(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論