事務(wù)調(diào)度與并發(fā)控制
9.1事務(wù)與事務(wù)調(diào)度
9.1.1 事務(wù)的概念
1、 事務(wù)是構(gòu)成數(shù)據(jù)庫應(yīng)用中一個(gè)獨(dú)立邏輯工作單元的操作的集合,也是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元。數(shù)據(jù)庫系統(tǒng)通過執(zhí)行各種事務(wù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的操作,管理和執(zhí)行事務(wù)是DBMS的基本功能。
9.1.2 事務(wù)的特性(ACID特性)
1、原子性(Atomicity)
一個(gè)事務(wù)對(duì)數(shù)據(jù)庫的所有操作是一個(gè)不可分割的工作單元,這些操作要么全部執(zhí)行,要么一個(gè)也不執(zhí)行。
2、 一致性(Consistency)
當(dāng)一個(gè)事務(wù)獨(dú)立執(zhí)行時(shí),其執(zhí)行結(jié)果應(yīng)維護(hù)數(shù)據(jù)庫的一致性,即數(shù)據(jù)庫不會(huì)因事務(wù)執(zhí)行而受到破壞。數(shù)據(jù)庫滿足全部完整性約束,處于正確的狀態(tài);
3、 隔離性(Isolation)
當(dāng)多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),系統(tǒng)應(yīng)保證一個(gè)事務(wù)的執(zhí)行結(jié)果不受其他事務(wù)的干擾,事務(wù)并發(fā)執(zhí)行結(jié)果與這些事務(wù)串行執(zhí)行時(shí)的結(jié)果是一樣的;
4、 持久性(Durability)
一個(gè)事務(wù)一旦成功完成全部操作,則它對(duì)數(shù)據(jù)庫的所有更新就永久地反映在數(shù)據(jù)庫中,即使以后數(shù)據(jù)庫發(fā)生了故障;
9.1.3 事務(wù)調(diào)度
1、 一個(gè)事務(wù)中各操作的執(zhí)行順序和執(zhí)行時(shí)機(jī)一方面取決于事務(wù)自身內(nèi)部邏輯,另一方面也受DBMS中事務(wù)調(diào)度機(jī)制的控制。當(dāng)多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),DBMS必須采用合適的并發(fā)調(diào)度機(jī)制合理安排各個(gè)事務(wù)執(zhí)行順序,以保證事務(wù)的ACID特性。
2、 調(diào)度分為串行調(diào)度和并發(fā)調(diào)度,串行調(diào)度的特點(diǎn)是一個(gè)事務(wù)的所有操作都執(zhí)行完后才開始執(zhí)行另一事務(wù),不存在事務(wù)操作的交叉執(zhí)行;不同事務(wù)操作的交叉執(zhí)行稱為并發(fā)調(diào)度,DBMS交叉執(zhí)行來自多個(gè)事務(wù)的各個(gè)操作,以提高數(shù)據(jù)庫系統(tǒng)的性能。
9.1.4 可串行化調(diào)度
1、 事務(wù)的串行調(diào)度能夠產(chǎn)生正確的結(jié)果,但執(zhí)行效率低,如果并發(fā)調(diào)度S等價(jià)于某一定義在TS上的串行調(diào)度,那么S稱為可串行化調(diào)度;
2、 給定兩個(gè)定義在事務(wù)集TS上的的調(diào)度S和S’,如果可以通過交換S中一系列非沖突操作的執(zhí)行順序?qū)轉(zhuǎn)換為S’,則稱S與S’是沖突等價(jià)。
3、 如果定義在事務(wù)TS上的并發(fā)調(diào)度S沖突等價(jià)于事務(wù)集TS上的某個(gè)串行調(diào)度S’,則稱S是沖突可串行的。
4、 在引入沖突可串行概念后,判斷一個(gè)并發(fā)調(diào)度是否正確可以歸結(jié)為判斷該調(diào)度是否沖突可串行的。
9.2 基于鎖的并發(fā)控制技術(shù)
9.2.1 鎖的概念
1、 對(duì)數(shù)據(jù)庫系統(tǒng)中每個(gè)可能被多個(gè)事務(wù)并發(fā)訪問的數(shù)據(jù)項(xiàng)設(shè)置鎖,鎖代表了對(duì)該數(shù)據(jù)項(xiàng)的訪問權(quán)限。即事務(wù)T在訪問數(shù)據(jù)項(xiàng)Q前須向DBMS申請(qǐng)獲得設(shè)置在Q上的鎖,如成功,則T獲得對(duì)Q的訪問權(quán),T對(duì)Q操作完成后,釋放所占用的鎖,允許其他事務(wù)獲得該鎖并訪問Q,在T釋放設(shè)置在Q上的鎖前,其他事務(wù)不能訪問Q。
2、 鎖的類型有兩種:
(1) 互斥鎖(X鎖):若T獲得Q上的X鎖,則T可以對(duì)Q讀寫,其他事務(wù)不能再對(duì)Q進(jìn)行任何操作,直到T釋放Q上的鎖;
(2) 共享鎖(S鎖):若T獲得Q上的S鎖,則T可以對(duì)Q進(jìn)行讀取操作,但不可以修改,同時(shí),允許其他事務(wù)再申請(qǐng)獲得Q上的S鎖,與T并行讀取Q,但在T釋放Q上的S鎖前,其他事務(wù)不能對(duì)Q做任何修改;
2015年全國(guó)職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 | |
全國(guó)職稱計(jì)算機(jī)考試速成過關(guān)系列套裝:W .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書籍 |