第10章事務(wù)管理與恢復(fù)_第1頁
第10章事務(wù)管理與恢復(fù)_第2頁
第10章事務(wù)管理與恢復(fù)_第3頁
第10章事務(wù)管理與恢復(fù)_第4頁
第10章事務(wù)管理與恢復(fù)_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1 1北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)第第1010章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)第五項修練u 第一項修練:自我超越u 第二項修練:改善心智模式u 第三項修練:建立共同愿景u 第四項修練:團隊學(xué)習(xí)u 第五項修練:系統(tǒng)思考 作者:美國商業(yè)周刊推崇為當(dāng)今最有影響力的管理大師之一2022-2-52022-2-52 2北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理

2、與恢復(fù)目目 錄錄事務(wù) 10.1并發(fā)控制 10.2恢復(fù)與備份 10.32022-2-52022-2-53 3北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)問題背景問題背景 n 現(xiàn)實應(yīng)用中,現(xiàn)實應(yīng)用中,數(shù)據(jù)庫的操作與操作之間往往具有一定的語義數(shù)據(jù)庫的操作與操作之間往往具有一定的語義和關(guān)聯(lián)性和關(guān)聯(lián)性。數(shù)據(jù)庫應(yīng)用希望。數(shù)據(jù)庫應(yīng)用希望將這些有關(guān)聯(lián)的操作當(dāng)作一個邏將這些有關(guān)聯(lián)的操作當(dāng)作一個邏輯工作單元輯工作單元看待,看待,要么都執(zhí)行,要么都不執(zhí)行要么都執(zhí)行,要么都不執(zhí)行。 n 例例10.1

3、飛機訂票系統(tǒng)有兩個表飛機訂票系統(tǒng)有兩個表Sale和和Flight,分別記錄各售,分別記錄各售票點的票點的售票數(shù)售票數(shù)及全部航班的及全部航班的剩余票數(shù)剩余票數(shù): Sale(agentNo, flightNo, date, saledNumber) Flight(flightNo, date, remainNumber)n 現(xiàn)有現(xiàn)有A0010售票點欲出售售票點欲出售F005航班航班2008年年8月月8日機票日機票2張。張。2022-2-52022-2-54 4北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管

4、理與恢復(fù)事務(wù)管理與恢復(fù)問題背景問題背景n 可編制如下程序:可編制如下程序: 查詢查詢F005航班航班2008年年8月月8日剩余票數(shù)日剩余票數(shù)A; (1) if (A2) 拒絕操作,并通知票源不足;拒絕操作,并通知票源不足; else 更新更新A0010售票點的售票數(shù);售票點的售票數(shù); 更新更新F005航班的剩余票數(shù);航班的剩余票數(shù);如何用SQL語句分別實現(xiàn)語句(1)和語句(2)?n 語句語句(1)可用可用SQL語句表示為:語句表示為:SELECT remainNumber FROM Flight WHERE flightNo=F005 AND date=2008-08-08(2)2022-2-

5、52022-2-55 5北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)問題背景問題背景n 語句語句(2)是在當(dāng)是在當(dāng)F005航班航班2008年年8月月8日的剩余票數(shù)大于請求日的剩余票數(shù)大于請求票數(shù)時更新票數(shù)時更新Sale和和Flight表。該更新包括兩個表。該更新包括兩個update操作:操作: UPDATE Sale SET saledNumber=saledNumber+2 WHERE agentNo=A0010 AND flightNo=F005 AND date=2008

6、-08-08 UPDATE Flight SET remainNumber=remainNumber2 WHERE flightNo=F005 AND date=2008-08-08如果第一個UPDATE語句執(zhí)行成功,而第二個UPDATE語句執(zhí)行失敗,會發(fā)生什么問題呢?2022-2-52022-2-56 6北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)問題背景問題背景n 假設(shè)假設(shè)F005航班共有航班共有200個座位,個座位,2008年年8月月8日機票已售日機票已售198張張(其中

7、被其中被A0010售出售出20張張),余票,余票2張。張。n 當(dāng)?shù)诋?dāng)?shù)?個個UPDATE語句執(zhí)行成功時,即語句執(zhí)行成功時,即A0010已售票數(shù)更新已售票數(shù)更新為為22。當(dāng)系統(tǒng)發(fā)生故障重新提供服務(wù)時,如果又有售票點請。當(dāng)系統(tǒng)發(fā)生故障重新提供服務(wù)時,如果又有售票點請求出售求出售F005航班航班2008年年8月月8日機票日機票2張,由于張,由于F005的剩余票的剩余票數(shù)未更新數(shù)未更新(仍為仍為2),因此滿足其要求又出售了,因此滿足其要求又出售了2張。張。n 結(jié)果多賣了結(jié)果多賣了2張票!張票!出現(xiàn)上述問題的原因是什么? 出現(xiàn)故障后,系統(tǒng)重新提供服務(wù)時數(shù)據(jù)庫狀態(tài)與現(xiàn)實世界狀態(tài)出現(xiàn)了不一致。對于機票系統(tǒng)來

8、說,一航班的剩余票數(shù)加上已售出票數(shù)應(yīng)等于該航班全部座位數(shù)。而重新提供服務(wù)時,F(xiàn)005的已售票數(shù)與剩余票數(shù)之和為202(不等于200!),導(dǎo)致多買了2張。 2022-2-52022-2-57 7北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)問題背景問題背景n 為解決上述問題,數(shù)據(jù)庫管理系統(tǒng)引入了為解決上述問題,數(shù)據(jù)庫管理系統(tǒng)引入了事務(wù)事務(wù)概念,它概念,它將這些有內(nèi)在聯(lián)系的操作當(dāng)作一個邏輯單元看待將這些有內(nèi)在聯(lián)系的操作當(dāng)作一個邏輯單元看待,并采,并采取相應(yīng)策略取相應(yīng)策略保證一個邏輯單

9、元內(nèi)的全部操作保證一個邏輯單元內(nèi)的全部操作要么都執(zhí)行要么都執(zhí)行成功,要么都不執(zhí)行成功,要么都不執(zhí)行。n 對數(shù)據(jù)庫用戶而言,只需對數(shù)據(jù)庫用戶而言,只需將具有完整邏輯意義的一組操將具有完整邏輯意義的一組操作正確地作正確地定義在一個事務(wù)之內(nèi)定義在一個事務(wù)之內(nèi)即可。即可。2022-2-52022-2-58 8北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)概念事務(wù)概念 n 對于對于用戶用戶而言,而言,事務(wù)事務(wù)是是具有完整邏輯意義的數(shù)據(jù)庫操作序列具有完整邏輯意義的數(shù)據(jù)庫操作序列的集合。的

10、集合。n 對于對于數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)而言,而言,事務(wù)事務(wù)則是則是一個一個讀寫操作序列讀寫操作序列。這。這些操作是一個不可分割的邏輯工作單元,些操作是一個不可分割的邏輯工作單元,要么都做要么都做,要么都要么都不做不做。n 事務(wù)事務(wù)是數(shù)據(jù)庫管理系統(tǒng)中是數(shù)據(jù)庫管理系統(tǒng)中競爭資源、并發(fā)控制和恢復(fù)的基本競爭資源、并發(fā)控制和恢復(fù)的基本單元單元。 它是由數(shù)據(jù)庫操作語言它是由數(shù)據(jù)庫操作語言(如如SQL)或高級編程語言(如或高級編程語言(如Java、C、C+)提供的)提供的事務(wù)開始語句事務(wù)開始語句、事務(wù)結(jié)束語句事務(wù)結(jié)束語句以及以及由它們包含的全部由它們包含的全部數(shù)據(jù)庫操作語句數(shù)據(jù)庫操作語句組成。組成。

11、2022-2-52022-2-59 9北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)結(jié)束語句事務(wù)結(jié)束語句n 事務(wù)結(jié)束的兩種類型:事務(wù)結(jié)束的兩種類型:l事務(wù)提交事務(wù)提交(commit):將成功完成事務(wù)的:將成功完成事務(wù)的執(zhí)行結(jié)果執(zhí)行結(jié)果(即更新即更新)永久化永久化,并釋放事務(wù)占有的全部資源。,并釋放事務(wù)占有的全部資源。l事務(wù)回滾事務(wù)回滾(rollback):中止當(dāng)前事務(wù)、:中止當(dāng)前事務(wù)、撤銷其對數(shù)據(jù)庫所撤銷其對數(shù)據(jù)庫所做的更新做的更新,并釋放事務(wù)占有的全部資源。,并釋放事務(wù)占有

12、的全部資源。2022-2-52022-2-51010北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)SQL Server事務(wù)模式事務(wù)模式n SQL Server數(shù)據(jù)庫提供了三種類型的事務(wù)模式:數(shù)據(jù)庫提供了三種類型的事務(wù)模式:l顯式事務(wù)顯式事務(wù)是指用戶是指用戶使用使用Transact-SQL事務(wù)語句所定義事務(wù)語句所定義的事務(wù)的事務(wù),其事務(wù)語句包括:,其事務(wù)語句包括:事務(wù)開始事務(wù)開始:BEGIN TRANSACTION事務(wù)提交事務(wù)提交:COMMIT TRANSACTION,COMMIT

13、 WORK事務(wù)回滾事務(wù)回滾:ROLLBACK TRANSACTION,ROLLBACK WORKl隱式事務(wù)隱式事務(wù)是指事務(wù)提交或回滾后,系統(tǒng)自動開始新的是指事務(wù)提交或回滾后,系統(tǒng)自動開始新的事務(wù)。事務(wù)。該類事務(wù)不需要采用該類事務(wù)不需要采用BEGIN TRANSACTION語句標(biāo)識事務(wù)的開始。語句標(biāo)識事務(wù)的開始。l自動定義事務(wù)自動定義事務(wù):當(dāng)一個語句成功執(zhí)行后,它被自動提當(dāng)一個語句成功執(zhí)行后,它被自動提交,而當(dāng)執(zhí)行過程中出錯時,則被自動回滾交,而當(dāng)執(zhí)行過程中出錯時,則被自動回滾。2022-2-52022-2-51111北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)

14、計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)SQL Server事務(wù)定義舉例事務(wù)定義舉例n 例例10.2 利用利用SQL Server提供的顯式事務(wù)模式定義提供的顯式事務(wù)模式定義例例10.1中的數(shù)據(jù)庫更新事務(wù)。中的數(shù)據(jù)庫更新事務(wù)。 BEGIN TRANSACTION UPDATE Sale SET saledNumber=saledNumber+2 WHERE agentNo=A0010 AND flightNo=F005 AND date=2008-08-08 UPDATE Flight SET remainNumber=remainNumber- -

15、2 WHERE flightNo=F005 AND date=2008-08-08 COMMIT TRANSACTION2022-2-52022-2-51212北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)特性事務(wù)特性 n 為了保證事務(wù)為了保證事務(wù)并發(fā)執(zhí)行并發(fā)執(zhí)行或或發(fā)生故障發(fā)生故障時數(shù)據(jù)庫的時數(shù)據(jù)庫的一致性一致性(完整性完整性),事務(wù)應(yīng)具有以下特性:),事務(wù)應(yīng)具有以下特性:l原子性原子性(atomicity)。事務(wù)的。事務(wù)的所有操作所有操作要么要么全部都被執(zhí)行,全部都被執(zhí)行

16、,要么都不被執(zhí)行。要么都不被執(zhí)行。l一致性一致性(consistency)。一個單獨執(zhí)行的事務(wù)一個單獨執(zhí)行的事務(wù)應(yīng)保證其執(zhí)行應(yīng)保證其執(zhí)行結(jié)果的一致性,即總是結(jié)果的一致性,即總是將數(shù)據(jù)庫從一個一致性狀態(tài)轉(zhuǎn)化到將數(shù)據(jù)庫從一個一致性狀態(tài)轉(zhuǎn)化到另一個一致性狀態(tài)另一個一致性狀態(tài)。l隔離性隔離性(isolation)。當(dāng)。當(dāng)多個事務(wù)并發(fā)執(zhí)行多個事務(wù)并發(fā)執(zhí)行時,一個事務(wù)的時,一個事務(wù)的執(zhí)行不能影響另一個事務(wù),即執(zhí)行不能影響另一個事務(wù),即并發(fā)執(zhí)行的各個事務(wù)不能互并發(fā)執(zhí)行的各個事務(wù)不能互相干擾相干擾。l持久性持久性(durability)。一個。一個事務(wù)成功提交事務(wù)成功提交后,后,它對數(shù)據(jù)庫的它對數(shù)據(jù)庫的改變必

17、須是永久的改變必須是永久的,即使隨后系統(tǒng)出現(xiàn)故障也不會受到影,即使隨后系統(tǒng)出現(xiàn)故障也不會受到影響。響。2022-2-52022-2-51313北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)DBMS保證事務(wù)特性措施保證事務(wù)特性措施n 原子性原子性也稱為也稱為故障原子性故障原子性或或(故障故障)可靠性可靠性l 由由DBMS通過通過撤銷未完成事務(wù)對數(shù)據(jù)庫的影響撤銷未完成事務(wù)對數(shù)據(jù)庫的影響來實現(xiàn)。來實現(xiàn)。n 一致性一致性是指是指單個事務(wù)的一致性單個事務(wù)的一致性,也稱為,也稱為并發(fā)原子性并

18、發(fā)原子性或或正確性正確性l 由編寫該事務(wù)代碼的由編寫該事務(wù)代碼的應(yīng)用程序員應(yīng)用程序員負責(zé),但有時也可利用負責(zé),但有時也可利用DBMS提供的提供的數(shù)據(jù)庫完整性約束數(shù)據(jù)庫完整性約束(如觸發(fā)器如觸發(fā)器)的自動檢查功能來保證的自動檢查功能來保證。n 隔離性隔離性也稱為也稱為執(zhí)行原子性執(zhí)行原子性或或可串行化可串行化,可以看作是多個事務(wù),可以看作是多個事務(wù)并發(fā)執(zhí)行時的一致性或正確性要求并發(fā)執(zhí)行時的一致性或正確性要求l 由由DBMS的的并發(fā)控制模塊并發(fā)控制模塊保證。保證。n 持久性持久性也稱為也稱為恢復(fù)原子性恢復(fù)原子性或或恢復(fù)可靠性恢復(fù)可靠性l 它是利用已記錄在它是利用已記錄在穩(wěn)固存儲介質(zhì)穩(wěn)固存儲介質(zhì)(如如

19、磁盤陣列磁盤陣列)中的恢復(fù)信息中的恢復(fù)信息(如日志、如日志、備份等備份等)來實現(xiàn)丟失數(shù)據(jù)來實現(xiàn)丟失數(shù)據(jù)(如因中斷而丟失的存放在主存中但還未保存如因中斷而丟失的存放在主存中但還未保存到磁盤數(shù)據(jù)庫中去的數(shù)據(jù)等到磁盤數(shù)據(jù)庫中去的數(shù)據(jù)等)的恢復(fù)。的恢復(fù)。l 它是由它是由DBMS的的恢復(fù)管理模塊恢復(fù)管理模塊保證。保證。2022-2-52022-2-51414北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行事務(wù)并發(fā)執(zhí)行n 數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)允許多個事務(wù)并發(fā)執(zhí)行:允許多個事

20、務(wù)并發(fā)執(zhí)行:l優(yōu)點優(yōu)點增加系統(tǒng)吞吐量增加系統(tǒng)吞吐量(throughput)。吞吐量吞吐量是指是指單位時間系統(tǒng)完成事務(wù)單位時間系統(tǒng)完成事務(wù)的數(shù)量的數(shù)量。當(dāng)一事務(wù)需等待磁盤。當(dāng)一事務(wù)需等待磁盤I/O時,時,CPU可去處理其它正在等待可去處理其它正在等待CPU的事務(wù)。這樣,可減少的事務(wù)。這樣,可減少CPU和磁盤空閑時間,增加給定時間和磁盤空閑時間,增加給定時間內(nèi)完成事務(wù)的數(shù)量。內(nèi)完成事務(wù)的數(shù)量。減少平均響應(yīng)時間減少平均響應(yīng)時間(average response time)。事務(wù)響應(yīng)時間事務(wù)響應(yīng)時間是指是指事事務(wù)從提交給系統(tǒng)到最后完成所需要的時間務(wù)從提交給系統(tǒng)到最后完成所需要的時間。事務(wù)的執(zhí)行時間有長

21、。事務(wù)的執(zhí)行時間有長有短,如果按事務(wù)到達的順序依次執(zhí)行,則短事務(wù)就可能會由于有短,如果按事務(wù)到達的順序依次執(zhí)行,則短事務(wù)就可能會由于等待長事務(wù)導(dǎo)致完成時間的延長。如果允許并發(fā)執(zhí)行,等待長事務(wù)導(dǎo)致完成時間的延長。如果允許并發(fā)執(zhí)行,短事務(wù)可短事務(wù)可以較早地完成以較早地完成。因此,并發(fā)執(zhí)行可減少事務(wù)的平均響應(yīng)時間。因此,并發(fā)執(zhí)行可減少事務(wù)的平均響應(yīng)時間。l缺點缺點若不對事務(wù)的并發(fā)執(zhí)行加以控制,則可能若不對事務(wù)的并發(fā)執(zhí)行加以控制,則可能破壞數(shù)據(jù)庫的一致性破壞數(shù)據(jù)庫的一致性。2022-2-52022-2-51515北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理

22、與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行可能出現(xiàn)的問題事務(wù)并發(fā)執(zhí)行可能出現(xiàn)的問題n 讀臟數(shù)據(jù)讀臟數(shù)據(jù)。如果事務(wù)如果事務(wù)T2讀取事務(wù)讀取事務(wù)T1修改但未提交修改但未提交的的數(shù)據(jù)后,事務(wù)數(shù)據(jù)后,事務(wù)T1由于某種原因由于某種原因中止而撤銷中止而撤銷,這時事,這時事務(wù)務(wù)T2就讀取了不一致的數(shù)據(jù)。數(shù)據(jù)庫中就讀取了不一致的數(shù)據(jù)。數(shù)據(jù)庫中將這種讀未將這種讀未提交且被撤銷的數(shù)據(jù)為讀提交且被撤銷的數(shù)據(jù)為讀“臟數(shù)據(jù)臟數(shù)據(jù)”。n 丟失更新丟失更新。兩個或多個事務(wù)都讀取了同一數(shù)據(jù)值并。兩個或多個事務(wù)都讀取了同一數(shù)據(jù)值并修改,修改,最后提交事務(wù)最后提交事務(wù)的執(zhí)行結(jié)果覆蓋了的執(zhí)

23、行結(jié)果覆蓋了前面提交事前面提交事務(wù)務(wù)的執(zhí)行結(jié)果,從而導(dǎo)致前面事務(wù)的更新被丟失的執(zhí)行結(jié)果,從而導(dǎo)致前面事務(wù)的更新被丟失。 2022-2-52022-2-51616北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行可能出現(xiàn)的問題事務(wù)并發(fā)執(zhí)行可能出現(xiàn)的問題n 不可重復(fù)讀不可重復(fù)讀。是指事務(wù)。是指事務(wù)Ti兩次從數(shù)據(jù)庫中讀取的結(jié)果不兩次從數(shù)據(jù)庫中讀取的結(jié)果不同,可分為三種情況:同,可分為三種情況:l事務(wù)事務(wù)Ti讀取一數(shù)據(jù)后,讀取一數(shù)據(jù)后,事務(wù)事務(wù)Tj對該數(shù)據(jù)進行了更改對該數(shù)據(jù)進行了

24、更改。當(dāng)事。當(dāng)事務(wù)務(wù)Ti再次讀該數(shù)據(jù)時,則再次讀該數(shù)據(jù)時,則會讀到與前一次不同的值會讀到與前一次不同的值。l事務(wù)事務(wù)Ti按某條件讀取數(shù)據(jù)庫中某些記錄后,按某條件讀取數(shù)據(jù)庫中某些記錄后,事務(wù)事務(wù)Tj刪除了刪除了其中部分記錄其中部分記錄。當(dāng)事務(wù)。當(dāng)事務(wù)Ti再次按相同條件讀取時,再次按相同條件讀取時,發(fā)現(xiàn)記發(fā)現(xiàn)記錄數(shù)變少了錄數(shù)變少了。(幻影現(xiàn)象(幻影現(xiàn)象1)l事務(wù)事務(wù)Ti按某條件讀取數(shù)據(jù)庫中某些記錄后,按某條件讀取數(shù)據(jù)庫中某些記錄后,事務(wù)事務(wù)Tj插入了插入了新的記錄新的記錄。當(dāng)事務(wù)。當(dāng)事務(wù)Ti再次按相同條件讀取時,再次按相同條件讀取時,發(fā)現(xiàn)記錄數(shù)發(fā)現(xiàn)記錄數(shù)變多了變多了。(幻影現(xiàn)象(幻影現(xiàn)象2)202

25、2-2-52022-2-51717北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行問題舉例事務(wù)并發(fā)執(zhí)行問題舉例n 例例10.3 設(shè)設(shè)A航班的剩余票數(shù)為航班的剩余票數(shù)為10張,有兩個事務(wù)張,有兩個事務(wù)T1和和T2同時請求出售該航班機票同時請求出售該航班機票2張和張和3張。它們各自的執(zhí)行序張。它們各自的執(zhí)行序列如圖列如圖10-1所示所示(這里只考慮對航班剩余票數(shù)的更新這里只考慮對航班剩余票數(shù)的更新)。 T1R(A)A=A-2W(A) T2R(A)A=A-3W(A)圖10-1

26、 更新事務(wù)T1和T22022-2-52022-2-51818北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行問題舉例事務(wù)并發(fā)執(zhí)行問題舉例n 如果是如果是串行執(zhí)行串行執(zhí)行,則不管是,則不管是T1先執(zhí)行再執(zhí)行先執(zhí)行再執(zhí)行T2(圖圖10-2(a),還是還是T2先執(zhí)行再執(zhí)行先執(zhí)行再執(zhí)行T1(圖圖10-2(b),都可得到正確的執(zhí)行結(jié),都可得到正確的執(zhí)行結(jié)果,即剩余票數(shù)都為果,即剩余票數(shù)都為5。 T1R(A)A=A-2W(A) T2R(A)A= A-3W(A) T1R(A)A=A-

27、2W(A)T2R(A)A=A-3W(A)A1088 5A10775(a)(b)圖10-2 T1和T2串行執(zhí)行2022-2-52022-2-51919北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行問題舉例事務(wù)并發(fā)執(zhí)行問題舉例n 讀臟數(shù)據(jù)讀臟數(shù)據(jù):在圖在圖10-3中,事務(wù)中,事務(wù)T1在在T2讀取其讀取其更新值更新值(8)后后回回滾滾,而,而T2仍然使用讀到仍然使用讀到T1修改后的值進行運算,得到的修改后的值進行運算,得到的結(jié)結(jié)果是果是5。但實際上。但實際上T1未執(zhí)行成功,

28、系統(tǒng)只出售了未執(zhí)行成功,系統(tǒng)只出售了3張票,張票,余余票數(shù)應(yīng)為票數(shù)應(yīng)為7。 T1R(A)A=A-2W(A)rollback T2R(A)A=A-3W(A)A10885圖10-3 T2讀臟數(shù)據(jù)2022-2-52022-2-52020北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行問題舉例事務(wù)并發(fā)執(zhí)行問題舉例n 不可重復(fù)讀不可重復(fù)讀:如圖:如圖10-4所示,所示,T3第一次讀時第一次讀時余票數(shù)為余票數(shù)為10張張,第二次讀時為第二次讀時為8張張,兩次讀結(jié)果不一致。,兩次讀結(jié)果

29、不一致。 T3R(A)R(A)A101088 T1R(A)A=A-2W(A)圖10-4 T3不可重復(fù)讀2022-2-52022-2-52121北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行問題舉例事務(wù)并發(fā)執(zhí)行問題舉例n 丟失更新丟失更新:在圖:在圖10-5中,中,T1和和T2都讀到都讀到余票數(shù)為余票數(shù)為10,由于,由于T1后于后于T2提交,導(dǎo)致提交,導(dǎo)致T2的更新操作沒有發(fā)生作用,被的更新操作沒有發(fā)生作用,被T1的的更新更新值值(8)覆蓋覆蓋。 T1R(A)A=A-2

30、W(A) T2R(A)A=A-3W(A)A1010788圖10-5 T2更新丟失 是不是所有并發(fā)執(zhí)行事務(wù)都會出現(xiàn)這些問題呢? 2022-2-52022-2-52222北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)并發(fā)執(zhí)行得到正確的結(jié)果事務(wù)并發(fā)執(zhí)行得到正確的結(jié)果n 例例10.4 設(shè)設(shè)A和和B航班的剩航班的剩余票數(shù)分別為余票數(shù)分別為10和和15,事,事務(wù)務(wù)T4與與T5并發(fā)執(zhí)行。事務(wù)并發(fā)執(zhí)行。事務(wù)T4請求出售請求出售A航班機票航班機票2張張和和B航班機票航班機票2張,事務(wù)張,事務(wù)T

31、5請求出售請求出售A航班機票航班機票3張和張和B航班機票航班機票3張。它們的執(zhí)張。它們的執(zhí)行序列如圖行序列如圖10-6所示。所示。圖10-6 T4和T5并發(fā)執(zhí)行T4R(A)A=A-2W(A)R(B)B=B-2W(B)T5R(A)A=A-3W(A)R(B)B=B-3W(B)B15131310A10885n 可以驗證圖可以驗證圖10-6中中并發(fā)執(zhí)行并發(fā)執(zhí)行的結(jié)的結(jié)果與果與T4、T5按先后順序按先后順序串行執(zhí)行串行執(zhí)行的結(jié)果是一樣的,也是正確的。的結(jié)果是一樣的,也是正確的。啟示:如果一組并發(fā)執(zhí)行事務(wù)的執(zhí)行結(jié)果與它們串行執(zhí)行得到的結(jié)果是相同的,那么就可以認為該并發(fā)執(zhí)行的結(jié)果是正確的。2022-2-52

32、022-2-52323北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)事務(wù)調(diào)度定義事務(wù)調(diào)度定義n 事務(wù)并發(fā)執(zhí)行順序是隨機的,事務(wù)并發(fā)執(zhí)行順序是隨機的,將由多個事務(wù)操作組將由多個事務(wù)操作組成的隨機執(zhí)行序列成的隨機執(zhí)行序列稱為一個稱為一個調(diào)度調(diào)度。n 對由一組事務(wù)操作組成的調(diào)度序列而言,應(yīng)滿足下對由一組事務(wù)操作組成的調(diào)度序列而言,應(yīng)滿足下列條件:列條件:l 該調(diào)度應(yīng)包括該組事務(wù)的該調(diào)度應(yīng)包括該組事務(wù)的全部操作全部操作;l 屬于屬于同一個事務(wù)的操作同一個事務(wù)的操作應(yīng)保持應(yīng)保持在原事務(wù)中的

33、執(zhí)行順序在原事務(wù)中的執(zhí)行順序。2022-2-52022-2-52424北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)串行調(diào)度串行調(diào)度n 定義定義10.1(10.1(串行調(diào)度串行調(diào)度) ) 在調(diào)度在調(diào)度S中,如果中,如果屬于同一屬于同一事務(wù)的操作都是相鄰的事務(wù)的操作都是相鄰的,則稱,則稱S是是串行調(diào)度串行調(diào)度。n 對由對由n個事務(wù)組成的一組事務(wù)而言,共有個事務(wù)組成的一組事務(wù)而言,共有n!種有效種有效串行調(diào)度。串行調(diào)度。n 事務(wù)事務(wù)串行執(zhí)行串行執(zhí)行可保證數(shù)據(jù)庫的可保證數(shù)據(jù)庫的一致性一

34、致性,如果能判斷如果能判斷一個一個并發(fā)調(diào)度并發(fā)調(diào)度的執(zhí)行結(jié)果等價于一個的執(zhí)行結(jié)果等價于一個串行調(diào)度串行調(diào)度的結(jié)的結(jié)果,就稱該并發(fā)調(diào)度可保證數(shù)據(jù)庫的一致性。果,就稱該并發(fā)調(diào)度可保證數(shù)據(jù)庫的一致性。2022-2-52022-2-52525北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)沖突操作與沖突等價沖突操作與沖突等價n 假設(shè)調(diào)度假設(shè)調(diào)度S包含兩個事務(wù)包含兩個事務(wù)Ti與與Tj,若兩個相鄰操作,若兩個相鄰操作Oi Ti,Oj Tj訪問訪問不同的數(shù)據(jù)對象不同的數(shù)據(jù)對象,則,則交換交換Oi

35、與與Oj不會影響調(diào)度中不會影響調(diào)度中任何操作的結(jié)果任何操作的結(jié)果。若。若Oi與與Oj訪問訪問相同的數(shù)據(jù)對象相同的數(shù)據(jù)對象,并且有,并且有一個為一個為寫操作寫操作時時,則,則不能改變它們被調(diào)度執(zhí)行的順序不能改變它們被調(diào)度執(zhí)行的順序。 n 定義定義10.210.2 在一調(diào)度在一調(diào)度S中,如果中,如果Oi與與Oj是不同事務(wù)在是不同事務(wù)在相同數(shù)相同數(shù)據(jù)對象據(jù)對象上的操作上的操作,并且其中,并且其中至少有一個是至少有一個是寫操作寫操作,則稱,則稱Oi與與Oj是是沖突操作沖突操作;否則稱為;否則稱為非沖突操作非沖突操作。n 定義定義10.310.3 如果一如果一調(diào)度調(diào)度S可以經(jīng)過交換一系列可以經(jīng)過交換一系

36、列非沖突操作非沖突操作執(zhí)行的順序而得到一個新的調(diào)度執(zhí)行的順序而得到一個新的調(diào)度S,則稱,則稱S與與S是是沖突等價沖突等價的的(conflict equivalent)。2022-2-52022-2-52626北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)沖突可串行化沖突可串行化 n 定義定義10.410.4 如果一如果一調(diào)度調(diào)度S與一與一串行串行調(diào)度調(diào)度是沖突等價的是沖突等價的,則稱,則稱S是是沖突沖突可串行化可串行化的的(conflict serializable).n 在圖在

37、圖10-6的調(diào)度中,通過交互非的調(diào)度中,通過交互非沖突操作可得到圖沖突操作可得到圖10-7所示的串所示的串行調(diào)度行調(diào)度,故圖,故圖10-6的調(diào)度的調(diào)度是沖突可串行化的。是沖突可串行化的。T4R(A)A=A-2W(AR(B)B=B-2W(B) T5R(A)A=A-3W(A)R(B)B=B-3W(B)圖10-7 交換圖10-6的非沖突操作后得到的串行調(diào)度 2022-2-52022-2-52727北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)沖突可串行化沖突可串行化n 沖突可串行化沖突

38、可串行化僅僅是僅僅是正正確調(diào)度的充分條件,并確調(diào)度的充分條件,并不是必要條件不是必要條件,即,即沖突沖突可串行化調(diào)度執(zhí)行結(jié)果可串行化調(diào)度執(zhí)行結(jié)果一定是正確的,而正確一定是正確的,而正確的調(diào)度不一定都是沖突的調(diào)度不一定都是沖突可串行化的可串行化的。T4R(A)A=A-2W(A)R(B)B=B-2W(B)T6R(B)B=B-3W(B)R(A)A=A-3W(A)B15121210A10885圖10-8 不滿足沖突可串行化的正確調(diào)度2022-2-52022-2-52828北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章

39、 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)優(yōu)先圖優(yōu)先圖 n 設(shè)設(shè)S是一個調(diào)度。由是一個調(diào)度。由S構(gòu)造一個有向圖,稱為構(gòu)造一個有向圖,稱為優(yōu)先圖優(yōu)先圖,記為記為G=(V, E),其中,其中V是頂點集,是頂點集,E是邊集。是邊集。頂點集由頂點集由所有參與調(diào)度的事務(wù)組成所有參與調(diào)度的事務(wù)組成,邊集由滿足下列邊集由滿足下列3個條件個條件之一的邊之一的邊TiTj組成組成:lTi執(zhí)行了執(zhí)行了Wi(Q)后后Tj執(zhí)行執(zhí)行Rj(Q);lTi執(zhí)行了執(zhí)行了Ri(Q)后后Tj執(zhí)行執(zhí)行Wj(Q);lTi執(zhí)行了執(zhí)行了Wi(Q)后后Tj執(zhí)行執(zhí)行Wj(Q)。T1T2T2T1(a)(b)圖10-9 圖10-2的優(yōu)先圖2022-2-5202

40、2-2-52929北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)優(yōu)先圖優(yōu)先圖lT= t1: R1(X) W1(X) C1; t2: R2(X) R2(Y) W2(X) C2; t3: R3(Y) W3(Y) C3 HTR1(X) R2(X) W1(X) R2(Y) C1 W2(X) R3(Y) C2 W3(Y) C3SG(HT): HTR1(X) W1(X) R2(X) R2(Y) C1 W2(X) R3(Y) C2 W3(Y) C3 SG(HT): t1 t2 t3 t1 t2

41、 t32022-2-52022-2-53030北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)基于優(yōu)先圖的沖突可串行化判別基于優(yōu)先圖的沖突可串行化判別n 基于優(yōu)先圖的沖突可串行化判別準(zhǔn)則:基于優(yōu)先圖的沖突可串行化判別準(zhǔn)則:如果優(yōu)先圖中無如果優(yōu)先圖中無環(huán),則環(huán),則S是沖突可串行化的;如果優(yōu)先圖中有環(huán),則是沖突可串行化的;如果優(yōu)先圖中有環(huán),則S是是非沖突可串行化的。非沖突可串行化的。 n 測試沖突可串行化的算法:測試沖突可串行化的算法:l構(gòu)建構(gòu)建S的優(yōu)先圖;的優(yōu)先圖;l采用采用環(huán)路測試

42、算法環(huán)路測試算法(如基于深度優(yōu)先搜索的環(huán)檢測算法)(如基于深度優(yōu)先搜索的環(huán)檢測算法)檢測檢測S中中是否有環(huán)是否有環(huán);l若若S包含環(huán),則包含環(huán),則S是是非沖突可串行化的非沖突可串行化的,否則調(diào)度,否則調(diào)度S是是沖突沖突可串行化的可串行化的。2022-2-52022-2-53131北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)n 例例10.5 設(shè)并發(fā)調(diào)度事務(wù)集為:設(shè)并發(fā)調(diào)度事務(wù)集為: T=t1: R1(X) W1(X) C1, t2: R2(X) R2(Y) W2(X) C2, t3

43、: R3(Y) W3(Y) C3兩個并發(fā)調(diào)度分別為:兩個并發(fā)調(diào)度分別為: HTR1(X) R2(X) W1(X) R2(Y) C1 W2(X) R3(Y) C2 W3(Y) C3 HTR2(X) R3(Y) R2(Y) W2(X) C2 R1(X) W3(Y) C3 W1(X) C1試判斷這兩個調(diào)度是否是沖突可串行化調(diào)度?試判斷這兩個調(diào)度是否是沖突可串行化調(diào)度?因此,因此,調(diào)度調(diào)度HT不是沖突可串行化的不是沖突可串行化的;而;而調(diào)度調(diào)度HT是沖突可串是沖突可串行化的行化的,它沖突等價于串行調(diào)度它沖突等價于串行調(diào)度或或。 t1t2t3t2t3t1(a) 調(diào)度HT的優(yōu)先圖(b) 調(diào)度HT的優(yōu)先圖基

44、于優(yōu)先圖的沖突可串行化判別基于優(yōu)先圖的沖突可串行化判別2022-2-52022-2-53232北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)n 例如例如: lHT=R1(X) W1(X) R2(Y) W2(Y) C2 R1(Y) W1(Y) C1 R3(X) W3(Y) C3 lSG(HT): l因此,因此,調(diào)度調(diào)度HT是沖突可串行化的是沖突可串行化的,它沖突等價于串行調(diào)度它沖突等價于串行調(diào)度Ls=(t2, t1, t3) HsT=R2(Y) W2(Y) C2 | R1(X) W

45、1(X) R1(Y) W1(Y) C1 | R3(X) W3(Y) C3 t2 t1 t3 t2 t1 t3基于優(yōu)先圖的沖突可串行化判別基于優(yōu)先圖的沖突可串行化判別2022-2-52022-2-53333北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)發(fā)現(xiàn)一個等價的串行調(diào)度發(fā)現(xiàn)一個等價的串行調(diào)度n 例如例如: lHT= R1(X) W1(X) R2(Y) W2(Y) C2 R1(Y) W1(Y) C1 R3(X) W3(Y) C3lHT= R2(Y) W2(Y) C2 R1(X)

46、W1(X) R1(Y) W1(Y) C1 R3(X) W3(Y) C3 t2 t1 t3 lHT= R1(X) W1(X) R2(Y) W2(Y) C2 R1(Y) W1(Y) C1 R3(X) W3(Y) C3lHT= R1(X) W1(X) R2(Y) W2(Y) C2 R1(Y) W1(Y) C1 R3(X) W3(Y) C3?2022-2-52022-2-53434北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)目目 錄錄事務(wù) 10.1并發(fā)控制 10.2恢復(fù)與備份 10.3

47、2022-2-52022-2-53535北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)并發(fā)控制概述并發(fā)控制概述n 并發(fā)控制機制大體上可分為并發(fā)控制機制大體上可分為悲觀的悲觀的和和樂觀的樂觀的兩種。兩種。n 悲觀的并發(fā)控制方法悲觀的并發(fā)控制方法認為數(shù)據(jù)庫的一致性經(jīng)常會受認為數(shù)據(jù)庫的一致性經(jīng)常會受到破壞,因此到破壞,因此在事務(wù)訪問數(shù)據(jù)對象前須采取一定措在事務(wù)訪問數(shù)據(jù)對象前須采取一定措施加以控制施加以控制,只有得到訪問許可時,才能訪問數(shù)據(jù),只有得到訪問許可時,才能訪問數(shù)據(jù)對象,如對象,

48、如基于封鎖的并發(fā)控制方法基于封鎖的并發(fā)控制方法。n 樂觀的并發(fā)控制方法樂觀的并發(fā)控制方法則認為數(shù)據(jù)庫的一致性通常不則認為數(shù)據(jù)庫的一致性通常不會遭到破壞,故事務(wù)執(zhí)行時可直接訪問數(shù)據(jù)對象,會遭到破壞,故事務(wù)執(zhí)行時可直接訪問數(shù)據(jù)對象,只在事務(wù)結(jié)束時才驗證數(shù)據(jù)庫的一致性是否會遭到只在事務(wù)結(jié)束時才驗證數(shù)據(jù)庫的一致性是否會遭到破壞破壞,如,如基于有效性驗證方法基于有效性驗證方法。n 本章介紹本章介紹基于封鎖的并發(fā)控制方法基于封鎖的并發(fā)控制方法。2022-2-52022-2-53636北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 1

49、0 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)基于封鎖方法的基本思想基于封鎖方法的基本思想n 基本思想基本思想:當(dāng)事務(wù)當(dāng)事務(wù)T需訪問數(shù)據(jù)對象需訪問數(shù)據(jù)對象Q時,先申請對時,先申請對Q的的鎖。鎖。如批準(zhǔn)獲得,則事務(wù)如批準(zhǔn)獲得,則事務(wù)T繼續(xù)執(zhí)行,繼續(xù)執(zhí)行,且此后不允許其且此后不允許其他任何事務(wù)修改他任何事務(wù)修改Q,直到事務(wù),直到事務(wù)T釋放釋放Q上的鎖為止。上的鎖為止。n 基本鎖類型:基本鎖類型:l共享鎖共享鎖(shared lock, 記為記為S):如果事務(wù)):如果事務(wù)T獲得了數(shù)據(jù)對獲得了數(shù)據(jù)對象象Q的共享鎖,則事務(wù)的共享鎖,則事務(wù)T可讀可讀Q但不能寫但不能寫Q。l排它鎖排它鎖(eXclusive loc

50、k, 記為記為X):如果事務(wù)):如果事務(wù)T獲得了數(shù)據(jù)獲得了數(shù)據(jù)對象對象Q上的排它鎖,則事務(wù)上的排它鎖,則事務(wù)T既可讀既可讀Q又可寫又可寫Q。2022-2-52022-2-53737北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)鎖相容性鎖相容性n “鎖相容鎖相容”是指如果是指如果Ti已持有數(shù)據(jù)對象已持有數(shù)據(jù)對象Q的某類型鎖后,事務(wù)的某類型鎖后,事務(wù)Tj也申請對也申請對Q的封鎖。如果的封鎖。如果允許事務(wù)允許事務(wù)Tj獲得對獲得對Q的鎖的鎖,則稱事,則稱事務(wù)務(wù)Tj申請鎖類型與事務(wù)申請鎖類

51、型與事務(wù)Ti的持有的持有鎖類型相容鎖類型相容;否則稱為不相容;否則稱為不相容。n 基本鎖類型的封鎖相容性原則:基本鎖類型的封鎖相容性原則:l共享鎖與共享鎖共享鎖與共享鎖相容相容l排它鎖與共享鎖排它鎖與共享鎖、排它鎖與排它鎖排它鎖與排它鎖是不相容的。是不相容的。X+SXS TiTj圖10-12 基本鎖類型的相容性矩陣“”表示相容“”表示不相容2022-2-52022-2-53838北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)單個事務(wù)封鎖舉例單個事務(wù)封鎖舉例n 申請和釋放鎖操作:申

52、請和釋放鎖操作:lSL(Q)申請申請數(shù)據(jù)對象數(shù)據(jù)對象Q上的上的共享鎖共享鎖;lXL(Q)申請申請數(shù)據(jù)對象數(shù)據(jù)對象Q上的上的排它鎖排它鎖;lUL(Q)釋放釋放數(shù)據(jù)對象數(shù)據(jù)對象Q上的鎖。上的鎖。n 例例10.6 假設(shè)事務(wù)在訪問完數(shù)據(jù)對象后假設(shè)事務(wù)在訪問完數(shù)據(jù)對象后立即釋放鎖立即釋放鎖,則,則添加了封鎖操作的事務(wù)添加了封鎖操作的事務(wù)T4操作序列如圖操作序列如圖10-12所示。由所示。由于事務(wù)于事務(wù)T4要對要對A、B進行讀寫操作,因此訪問進行讀寫操作,因此訪問A和和B之前之前都使用都使用XL操作申請排它鎖。這樣操作申請排它鎖。這樣事務(wù)事務(wù)T4在釋放在釋放A(或或B)的封鎖之前,其他事務(wù)不能訪問的封鎖之

53、前,其他事務(wù)不能訪問A(或或B)。 2022-2-52022-2-53939北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù) T4XL(A)R(A)A=A-2W(A)UL(A)XL(B)R(B)B=B-2W(B)UL(B)COMMIT圖10-13 增加了封鎖的事務(wù)T4操作序列 封鎖能否保證并發(fā)執(zhí)行事務(wù)的沖突可串行化?其他事務(wù)在此期間不允許訪問數(shù)據(jù)對象A其他事務(wù)在此期間不允許訪問數(shù)據(jù)對象B2022-2-52022-2-54040北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算

54、機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù) 并發(fā)事務(wù)封鎖舉例并發(fā)事務(wù)封鎖舉例n 例例10.7 考慮并發(fā)事務(wù)考慮并發(fā)事務(wù)T1、T2和和T3,它們申請鎖和釋,它們申請鎖和釋放鎖的規(guī)則是:放鎖的規(guī)則是:l訪問數(shù)據(jù)對象前根據(jù)操作類型申請鎖;訪問數(shù)據(jù)對象前根據(jù)操作類型申請鎖;l訪問完后訪問完后立即釋放鎖立即釋放鎖;l當(dāng)一個事務(wù)釋放鎖后,由等待時間較長的事務(wù)優(yōu)先獲當(dāng)一個事務(wù)釋放鎖后,由等待時間較長的事務(wù)優(yōu)先獲得鎖。得鎖。它們的一個可能的并發(fā)執(zhí)行過程如圖它們的一個可能的并發(fā)執(zhí)行過程如圖10-13所示。所示。2022-2-52022-2-5414

55、1北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù) T1XL(A)等待等待等待R(A)A=A-2W(A)UL(A)ROLLBACKT2XL(A)等待等待等待等待等待等待等待R(A)A=A-3W(A)UL(A)COMMITT3SL(A)R(A)UL(A)SL(A)等待等待等待等待等待等待等待等待R(A)UL(A)COMMIT步驟123456789101112131415161718圖10-14 T1、T2和T3上鎖操作序列該調(diào)度存在什么問題?2022-2-52022-2-54242北

56、京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)并發(fā)事務(wù)封鎖舉例并發(fā)事務(wù)封鎖舉例n 該調(diào)度該調(diào)度避免了丟失更避免了丟失更新新,即,即不會有多個寫不會有多個寫事務(wù)讀取同一數(shù)據(jù)對事務(wù)讀取同一數(shù)據(jù)對象的相同值象的相同值,因為一,因為一個數(shù)據(jù)對象任何時候個數(shù)據(jù)對象任何時候只能有一個排它鎖。只能有一個排它鎖。 T1XL(A)等待等待等待R(A)A=A-2W(A)UL(A)ROLLBACKT2XL(A)等待等待等待等待等待等待等待R(A)A=A-3W(A)UL(A)COMMITT3SL(A)R(

57、A)UL(A)SL(A)等待等待等待等待等待等待等待等待R(A)UL(A)COMMIT步驟123456789101112131415161718圖10-14 T1、T2和T3上鎖操作序列2022-2-52022-2-54343北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)并發(fā)事務(wù)封鎖舉例并發(fā)事務(wù)封鎖舉例n 但仍然存在以下問題:但仍然存在以下問題:l 讀臟數(shù)據(jù)讀臟數(shù)據(jù)。如。如T2在步在步驟驟11讀了讀了T1修改后的修改后的數(shù)據(jù),而數(shù)據(jù),而T1在步驟在步驟12需需ROLLBACK。

58、T1XL(A)等待等待等待R(A)A=A-2W(A)UL(A)ROLLBACKT2XL(A)等待等待等待等待等待等待等待R(A)A=A-3W(A)UL(A)COMMITT3SL(A)R(A)UL(A)SL(A)等待等待等待等待等待等待等待等待R(A)UL(A)COMMIT步驟123456789101112131415161718圖10-14 T1、T2和T3上鎖操作序列2022-2-52022-2-54444北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)并發(fā)事務(wù)封鎖舉例并發(fā)事務(wù)封

59、鎖舉例n 但仍然存在以下問題:但仍然存在以下問題:l 不可重復(fù)讀不可重復(fù)讀。如。如T3兩兩次讀到次讀到A的值不同。的值不同。 T1XL(A)等待等待等待R(A)A=A-2W(A)UL(A)ROLLBACKT2XL(A)等待等待等待等待等待等待等待R(A)A=A-3W(A)UL(A)COMMITT3SL(A)R(A)UL(A)SL(A)等待等待等待等待等待等待等待等待R(A)UL(A)COMMIT步驟123456789101112131415161718圖10-14 T1、T2和T3上鎖操作序列2022-2-52022-2-54545北京理工大學(xué)珠海學(xué)院北京理工大學(xué)珠海學(xué)院 計算機學(xué)院計算機學(xué)院

60、 數(shù)據(jù)庫原理與設(shè)計數(shù)據(jù)庫原理與設(shè)計 張申勇張申勇第第 10 10 章章 事務(wù)管理與恢復(fù)事務(wù)管理與恢復(fù)并發(fā)事務(wù)封鎖舉例并發(fā)事務(wù)封鎖舉例n 但仍然存在以下問題:但仍然存在以下問題:l 不可串行化不可串行化。無論如。無論如何交換非沖突操作,何交換非沖突操作,上述調(diào)度都不能等價上述調(diào)度都不能等價于于T1、T2和和T3的任何的任何一個串行調(diào)度。一個串行調(diào)度。出現(xiàn)上述問題的原因是事務(wù)過早釋放了其持有的鎖! T1XL(A)等待等待等待R(A)A=A-2W(A)UL(A)ROLLBACKT2XL(A)等待等待等待等待等待等待等待R(A)A=A-3W(A)UL(A)COMMITT3SL(A)R(A)UL(A)S

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論