版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫原理與應(yīng)用快速入門7.1關(guān)于事務(wù)7.2關(guān)于并發(fā)控制第7章
了解事務(wù)管理7.1.1了解事務(wù)的概念與特征7.1.2了解MySQL事務(wù)模式7.1.3了解事務(wù)的工作原理7.1關(guān)于事務(wù)7.1.4了解數(shù)據(jù)庫系統(tǒng)的故障種類7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)7.1.1了解事務(wù)的概念與特征任何程序在計(jì)算機(jī)系統(tǒng)中運(yùn)行時(shí)難免會出現(xiàn)故障,數(shù)據(jù)庫系統(tǒng)也是如此。為了消除故障造成的嚴(yán)重后果,保障數(shù)據(jù)庫處于正確的狀態(tài),數(shù)據(jù)庫中引入了事務(wù)(Transaction)的概念。所謂事務(wù),指的是一個(gè)單元的工作。這個(gè)單元中可能包括很多工作步驟,它們要么全做,要么全不做。從SQL語句的角度看,在數(shù)據(jù)庫中,事務(wù)包含一條或多條SQL語句,這些語句,要么全部執(zhí)行,要么全部撤銷。7.1.1了解事務(wù)的概念與特征事務(wù)具有以下四個(gè)特征:1)原子性:一個(gè)事務(wù)是一個(gè)邏輯工作單位,是一個(gè)不可分割的整體。事務(wù)中包含的操作要么都做,要么都不做。2)一致性:事務(wù)的執(zhí)行結(jié)果必須使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變?yōu)榱硪粋€(gè)一致性狀態(tài)。一致性與原子性密切相關(guān)。3)隔離性:一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間互不干擾。4)持續(xù)性:一個(gè)事務(wù)成功完成之后,它對數(shù)據(jù)庫的所有更新都是永久的。7.1.2了解MySQL事務(wù)模式在MySQL中,事務(wù)提交方式有自動(dòng)提交和手動(dòng)提交兩種。1、自動(dòng)提交自動(dòng)提交事務(wù)是MySQL默認(rèn)的事務(wù)提交方式。每條單獨(dú)的語句都是一個(gè)事務(wù)。在與MySQL連接后,如不做更改,則采用自動(dòng)提交模式。7.1.2了解MySQL事務(wù)模式2、手動(dòng)提交用戶可以執(zhí)行以下命令,設(shè)置MySQL為手動(dòng)提交事務(wù)模式。SET@@autocommit=0;該設(shè)置只對當(dāng)前的MySQL命令行窗口有效,打開一個(gè)新的窗口時(shí),默認(rèn)還是自動(dòng)提交事務(wù)模式。7.1.2了解MySQL事務(wù)模式使用SQL語句來定義事務(wù),即為顯示事務(wù)。SQL定義顯示事務(wù)的語句有三條:STARTTRANSACTIONCOMMITROLLBACK7.1.2了解MySQL事務(wù)模式事務(wù)以STARTTRANSACTION開始,以COMMIT或ROLLBACK結(jié)束。COMMIT表示提交,當(dāng)事務(wù)所有操作能夠正常執(zhí)行后,提交所有操作,事務(wù)執(zhí)行完成。ROLLBACK表示回滾,即在事務(wù)運(yùn)行的過程中發(fā)生了某種故障,操作不能繼續(xù)執(zhí)行,系統(tǒng)將事務(wù)中對數(shù)據(jù)庫所有已完成的操作全部撤消,回滾到事務(wù)開始時(shí)的狀態(tài)。7.1.2了解MySQL事務(wù)模式【例7-1】假設(shè)在sc表中,學(xué)號為“210101001”的學(xué)生由于某些原因不選004號課程而改選002號課程,并且該課程的考試成績?yōu)?0分。嘗試完成以下操作,驗(yàn)證事務(wù)的特征。1、首先將當(dāng)前MySQL命令行窗口設(shè)置為手動(dòng)提交事務(wù)模式:SET@@autocommit=0;2、查看學(xué)生初始選課狀態(tài):SELECT*FROMscWHEREstuId='210101001'ANDcorId='004';7.1.2了解MySQL事務(wù)模式【例7-1】假設(shè)在sc表中,學(xué)號為“210101001”的學(xué)生由于某些原因不選004號課程而改選002號課程,并且該課程的考試成績?yōu)?0分。嘗試完成以下操作,驗(yàn)證事務(wù)的特征。3、將更改課程號和成績這兩個(gè)操作定義為一個(gè)事務(wù):7.1.2了解MySQL事務(wù)模式【例7-1】假設(shè)在sc表中,學(xué)號為“210101001”的學(xué)生由于某些原因不選004號課程而改選002號課程,并且該課程的考試成績?yōu)?0分。嘗試完成以下操作,驗(yàn)證事務(wù)的特征。4、由于操作人員輸入錯(cuò)誤,把“80”分誤寫為“8o”分(為英文字母o),導(dǎo)致出錯(cuò):7.1.2了解MySQL事務(wù)模式【例7-1】假設(shè)在sc表中,學(xué)號為“210101001”的學(xué)生由于某些原因不選004號課程而改選002號課程,并且該課程的考試成績?yōu)?0分。嘗試完成以下操作,驗(yàn)證事務(wù)的特征。數(shù)據(jù)修改的結(jié)果如圖7-5所示。從圖中可以看到,第一步操作將課程號修改成“002”也沒有執(zhí)行。這正好體現(xiàn)了事務(wù)的特性。7.1.3了解事務(wù)的工作原理事務(wù)確保數(shù)據(jù)的一致性和可恢復(fù)性。在數(shù)據(jù)庫進(jìn)行故障恢復(fù)時(shí),事務(wù)具有重要意義。事務(wù)的工作原理如右圖所示。7.1.3了解事務(wù)的工作原理事務(wù)開始后,事務(wù)包含的所有操作都將寫到事務(wù)日志文件中。這些操作一般有兩種:一種是針對數(shù)據(jù)的操作,一種是針對任務(wù)的操作。針對數(shù)據(jù)的操作,例如插入、刪除和修改,這是典型的事務(wù)操作,處理的對象是大量的數(shù)據(jù)。針對任務(wù)的操作,例如創(chuàng)建索引,這些任務(wù)操作在事務(wù)日志中記錄一個(gè)標(biāo)志,用于表示執(zhí)行了這種操作。當(dāng)事務(wù)撤銷時(shí),系統(tǒng)自動(dòng)執(zhí)行這些操作的逆操作,將數(shù)據(jù)恢復(fù)到事務(wù)開始前的狀態(tài),保證系統(tǒng)的一致性。7.1.4了解數(shù)據(jù)庫系統(tǒng)的故障種類數(shù)據(jù)庫里可能出現(xiàn)的各種故障包括:1、事務(wù)內(nèi)部的故障事務(wù)故障是某些對數(shù)據(jù)庫進(jìn)行操作的事務(wù)違反了系統(tǒng)設(shè)定的條件,如輸入數(shù)據(jù)錯(cuò)誤、運(yùn)算溢出等,使事務(wù)未能正常完成就終止(例7-1中出現(xiàn)的故障就屬于這種故障)。2、系統(tǒng)故障系統(tǒng)故障主要是由于數(shù)據(jù)庫服務(wù)器在運(yùn)行過程中,突然發(fā)生操作系統(tǒng)錯(cuò)誤、停電等原因造成的非正常中斷,系統(tǒng)正在執(zhí)行的事務(wù)被突然中斷,內(nèi)存緩沖區(qū)中的數(shù)據(jù)全部丟失,但硬盤、磁帶等外設(shè)上的數(shù)據(jù)未受損失(上面分析的銀行突然停電就屬于這種故障)。7.1.4了解數(shù)據(jù)庫系統(tǒng)的故障種類數(shù)據(jù)庫里可能出現(xiàn)的各種故障包括:3、介質(zhì)故障介質(zhì)故障是由于硬件的可靠性較差出現(xiàn)的存儲介質(zhì)發(fā)生物理損壞。數(shù)據(jù)庫的數(shù)據(jù)全部或部分丟失,破壞性較大。此外,還有計(jì)算機(jī)病毒等也會對數(shù)據(jù)庫系統(tǒng)構(gòu)成危害。7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)數(shù)據(jù)恢復(fù)技術(shù)的基本原則是建立冗余。這就是說,數(shù)據(jù)庫中任何一部分被破壞的或不正確的數(shù)據(jù)可以根據(jù)存儲在別處的冗余數(shù)據(jù)來重建。建立冗余數(shù)據(jù)最常用的技術(shù)是數(shù)據(jù)備份和登記日志文件。通常數(shù)據(jù)庫系統(tǒng)中,這兩種方法是一起使用的。7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)1、數(shù)據(jù)備份數(shù)據(jù)備份指的是數(shù)據(jù)庫管理員定期地將整個(gè)數(shù)據(jù)庫拷貝到磁帶或另一個(gè)磁盤上保存起來的過程。這些備用的數(shù)據(jù)文本稱為后備副本。數(shù)據(jù)備份可以分為靜態(tài)備份和動(dòng)態(tài)備份。7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)1、數(shù)據(jù)備份靜態(tài)備份是在系統(tǒng)中沒有事務(wù)在執(zhí)行時(shí)進(jìn)行的備份。備份操作開始時(shí),數(shù)據(jù)庫處于一致性狀態(tài),而備份期間不允許對數(shù)據(jù)庫的任何存取、修改活動(dòng)。靜態(tài)轉(zhuǎn)儲簡單,但轉(zhuǎn)儲必須等待正運(yùn)行的事務(wù)結(jié)束才能進(jìn)行,同樣,新的事務(wù)必須等待轉(zhuǎn)儲結(jié)束才能執(zhí)行。顯然,這會降低數(shù)據(jù)庫的可用性。動(dòng)態(tài)備份是指備份期間允許對數(shù)據(jù)進(jìn)行存取或修改。即備份和事務(wù)可以并發(fā)執(zhí)行。動(dòng)態(tài)備份可克服靜態(tài)備份的缺點(diǎn),它不用等待正在運(yùn)行的用戶事務(wù)結(jié)束,也不會影響新事務(wù)的運(yùn)行。但是,備份結(jié)束時(shí)后備副本上的數(shù)據(jù)并不能保證正確有效。7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)1、數(shù)據(jù)備份備份還可以分為海量備份和增量備份兩種方式。海量備份是指每次備份全部數(shù)據(jù)庫。增量備份則指每次只備份上一次備份后更新過的數(shù)據(jù)。從恢復(fù)角度看,使用海量備份得到的后備副本進(jìn)行恢復(fù)一般說來會更方便些。但如果數(shù)據(jù)庫很大,事務(wù)處理又十分頻繁,則增量備份方式更實(shí)用更有效。7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)2、登記日志文件事務(wù)日志文件是用來記錄事務(wù)對數(shù)據(jù)庫的更新操作的文件。數(shù)據(jù)庫系統(tǒng)自動(dòng)登記日志文件。不同數(shù)據(jù)庫系統(tǒng)采用的事務(wù)日志文件格式并不完全相同。概括起來事務(wù)日志文件主要有兩種格式:以記錄為單位和以數(shù)據(jù)為單位。7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)對于以記錄為單位的事務(wù)日志文件,文件中需要登記的內(nèi)容包括:(1)各個(gè)事務(wù)的開始(SRARTTRANSACTION)標(biāo)記(2)各個(gè)事務(wù)的結(jié)束(COMMIT或ROLLBACK)標(biāo)記(3)各個(gè)事務(wù)的所有更新操作這里每個(gè)事務(wù)開始的標(biāo)記、每個(gè)事務(wù)結(jié)束的標(biāo)記和每個(gè)更新操作均作為事務(wù)日志文件中的一個(gè)日志記錄
(logrecord)。7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)對于以數(shù)據(jù)塊為單位的事務(wù)日志文件,記錄的內(nèi)容包括事務(wù)標(biāo)識和被更新的數(shù)據(jù)塊。由于將更新的整個(gè)塊和更新后的整個(gè)塊都放入日志文件中,操作的類型和操作對象等信息就不必放入日志記錄中。為保證數(shù)據(jù)庫是可恢復(fù)的,登記事務(wù)日志文件時(shí)必須遵循兩條原則:(1)登記的次序嚴(yán)格按并發(fā)事務(wù)執(zhí)行的時(shí)間次序。(2)必須先登記事務(wù)日志文件,后修改數(shù)據(jù)庫。7.1.5了解事務(wù)恢復(fù)的實(shí)現(xiàn)技術(shù)謝謝!數(shù)據(jù)庫原理與應(yīng)用快速入門7.1關(guān)于事務(wù)7.2關(guān)于并發(fā)控制第7章
了解事務(wù)管理7.2.1了解并發(fā)控制的概念7.2.2了解封鎖的基本原理7.2.3了解封鎖技術(shù)7.2關(guān)于并發(fā)控制7.2.1了解并發(fā)控制的概念并發(fā)是數(shù)據(jù)庫技術(shù)中一個(gè)非常重要的概念,數(shù)據(jù)庫系統(tǒng)往往要考慮怎樣解決并發(fā)操作帶來的數(shù)據(jù)的不一致性問題。一般來說,并發(fā)操作帶來的數(shù)據(jù)不一致性包括三類:丟失修改、不可重復(fù)讀和讀“臟”數(shù)據(jù)。7.2.1了解并發(fā)控制的概念7.2.1了解并發(fā)控制的概念1、丟失修改(LostUpdate)兩個(gè)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了T1提交的結(jié)果,導(dǎo)致T1的修改被丟失,如圖7-9(a)所示。上面飛機(jī)訂票例子就屬于此類。2、不可重復(fù)讀(Non-RepeatableRead)不可重復(fù)讀是指事務(wù)T1讀數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次讀取結(jié)果,如圖7-9(b)所示。7.2.1了解并發(fā)控制的概念3、讀“臟”數(shù)據(jù)(DirtyRead)讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤消,這時(shí)T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù),如圖7-9(c)所示。7.2.1了解并發(fā)控制的概念3、讀“臟”數(shù)據(jù)(DirtyRead)讀“臟”數(shù)據(jù)是指事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤消,這時(shí)T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù),如圖7-9(c)所示。7.2.1了解并發(fā)控制的概念產(chǎn)生上述三類數(shù)據(jù)不一致性的原因是并發(fā)操作破壞了事務(wù)的隔離性。并發(fā)控制就是要用正確的方式調(diào)度并發(fā)操作,使一個(gè)用戶事務(wù)的執(zhí)行不受其他事務(wù)的干擾,從而避免造成數(shù)據(jù)的不一致性。7.2.2了解封鎖的基本原理封鎖是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù)。所謂封鎖就是事務(wù)T在對某個(gè)數(shù)據(jù)對象例如表、記錄等操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務(wù)T就對該數(shù)據(jù)對象有了一定的控制,在事務(wù)T釋放它的鎖之前,其他的事務(wù)不能更新此數(shù)據(jù)對象。7.2.2了解封鎖的基本原理基本的封鎖類型有兩種:排它鎖(ExclusiveLocks,簡稱X鎖)共享鎖(ShareLocks,簡稱S鎖)。7.2.2了解封鎖的基本原理排它鎖又稱為寫鎖。若事務(wù)T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其他任何事務(wù)不能對A加任何類型的鎖,直到T釋放A上的鎖。這就保證了其他事務(wù)在T釋放A上的鎖之前不能再讀取和修改A。共享鎖又稱為讀鎖。若事務(wù)T對數(shù)據(jù)對象A加上S鎖,則事務(wù)T可以讀A但不能修改A,其他事務(wù)只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務(wù)可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。7.2.3了解封鎖技術(shù)使用封鎖技術(shù)能解決了因并發(fā)操作引發(fā)的問題,為并發(fā)操作的正確調(diào)度提供一定的保證。就針對上面我們所說的飛機(jī)訂票活動(dòng)所出現(xiàn)的問題,采用封鎖技術(shù)來解決丟失修改:封鎖技術(shù)要求每個(gè)事務(wù)在修改某對象時(shí)都必須先對該數(shù)據(jù)封鎖。如圖7-10,佛山售票點(diǎn)在讀取和修改A之前先對A加X鎖,當(dāng)廣州售票點(diǎn)因?yàn)橐x取和修改A而請求加鎖時(shí)被拒絕,廣州售票點(diǎn)只能等待,等到佛山售票點(diǎn)釋放A上的鎖后,它才獲得對A的X鎖,這時(shí)它讀到的A已經(jīng)是佛山售票點(diǎn)更新過的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 4D生物材料調(diào)控免疫微環(huán)境的修復(fù)策略
- 2025年東莞市竹溪中學(xué)招聘體育臨聘教師備考題庫及1套完整答案詳解
- 九年級上冊第六單元課外古詩詞誦讀二《丑奴兒·書博山道中壁》課件
- 3D打印導(dǎo)板在神經(jīng)外科手術(shù)中的精準(zhǔn)穿刺技術(shù)
- 3D打印器官移植的倫理安全評估框架
- 簡約風(fēng)棕色團(tuán)隊(duì)建設(shè)培訓(xùn)
- 3D可視化技術(shù)在腦動(dòng)脈瘤手術(shù)中的應(yīng)用策略
- 張家港市第一人民醫(yī)院招聘勞務(wù)派遣人員20人備考題庫及1套完整答案詳解
- 陜西省西咸新區(qū)秦漢中學(xué)2026年教師招聘備考題庫有答案詳解
- 生成式人工智能在歷史競賽課堂中的應(yīng)用差異及適配性分析教學(xué)研究課題報(bào)告
- 2025天津大學(xué)招聘15人備考考試試題及答案解析
- 2025年山西大地環(huán)境投資控股有限公司社會招聘116人備考題庫有答案詳解
- 2026元旦主題晚會倒計(jì)時(shí)快閃
- 物理試卷答案浙江省9+1高中聯(lián)盟2025學(xué)年第一學(xué)期高三年級期中考試(11.19-11.21)
- 2025年交管12123學(xué)法減分考試題附含答案
- 2025至2030中國3D生物印刷行業(yè)調(diào)研及市場前景預(yù)測評估報(bào)告
- 2025抖音流量生態(tài)深度解析:算法邏輯、爆流密碼與運(yùn)營實(shí)戰(zhàn)全指南
- 2025至2030中國警用裝備行業(yè)項(xiàng)目調(diào)研及市場前景預(yù)測評估報(bào)告
- 環(huán)泊酚注射液-臨床用藥解讀
- 2023西方文化名著導(dǎo)讀期末考試答案
- 老年人護(hù)理需求評估表
評論
0/150
提交評論