版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
05數(shù)據(jù)庫事務(wù)與并發(fā)處理1教學(xué)內(nèi)容2數(shù)據(jù)庫事務(wù)的概念聲明事務(wù)邊界并發(fā)問題設(shè)置事務(wù)隔離級(jí)別使用悲觀鎖解決并發(fā)問題使用樂觀鎖解決并發(fā)問題數(shù)據(jù)庫事務(wù)的概念3事務(wù)是指一組相互依賴的操作行為,如銀行交易,股票交易或網(wǎng)上購物。事務(wù)的成功取決于這些相互依賴的操作行為是否都能執(zhí)行成功,只要有一個(gè)操作行為失敗,就意味著整個(gè)事務(wù)的失敗,例如:Tony到銀行辦理轉(zhuǎn)帳事務(wù),把
100元錢轉(zhuǎn)到j(luò)ack的帳號(hào)上,這個(gè)事務(wù)包含以下操作行為:1.從tom的帳戶上減去100元。2.往jack的帳戶上增加100元。以上兩個(gè)操作必需作為一個(gè)不可分割的工作單元,任何一個(gè)行為的失敗整個(gè)轉(zhuǎn)帳都不會(huì)成功。數(shù)據(jù)庫事務(wù)是對(duì)現(xiàn)實(shí)生活中事務(wù)的模擬,它由一組在業(yè)務(wù)邏輯上相互依賴的SQL語句組成。事務(wù)的四個(gè)特性4原子性:Atomicity一致性:Consistency隔離性:Isolation持久性:Durability數(shù)據(jù)庫事務(wù)的生命周期5聲明事務(wù)的邊界6事務(wù)的開始邊界事務(wù)的正常結(jié)束邊界(COMMIT):提交事務(wù),永久的保存被事務(wù)更新后的數(shù)據(jù)庫狀態(tài)。事務(wù)的異常結(jié)束邊界(ROLLBACK):撤銷事務(wù),使數(shù)據(jù)庫退回到執(zhí)行事務(wù)前的初始狀態(tài)。通過JDBC
API來聲明事務(wù)邊界7Connection類提供了用于控制事務(wù)的方法:setAutoCommit(booleanautoCommit):設(shè)置是否自動(dòng)提交事務(wù)commit():提交事務(wù)rollback():撤銷事務(wù)通過Hibernate
API聲明事務(wù)的邊界8聲明事務(wù)的開始邊界Transaction
tx
=
session.beginTransaction();提交事務(wù)mit();撤銷事務(wù)tx.
rollback()多個(gè)事務(wù)并發(fā)運(yùn)行時(shí)的并發(fā)問題9單個(gè)事務(wù)能保證單項(xiàng)業(yè)務(wù)的數(shù)據(jù)完整性,但是當(dāng)多個(gè)事務(wù)同時(shí)運(yùn)行時(shí)可能帶來并發(fā)問題,具體體現(xiàn)在:第一類丟失更新:在撤銷一個(gè)事務(wù)時(shí),把其它事務(wù)提交的更新數(shù)據(jù)覆蓋。臟讀:一個(gè)事務(wù)讀到另一事務(wù)未提交的更新數(shù)據(jù)。虛讀:一個(gè)事務(wù)讀到另一事務(wù)已提交的新插入的數(shù)據(jù)。不可重復(fù)讀:一個(gè)事務(wù)讀到另一事務(wù)已提交的更新數(shù)據(jù)。第二類丟失更新:這是不可重復(fù)讀中的特例,一個(gè)事務(wù)覆蓋另一事務(wù)已提交的更新數(shù)據(jù)。第一類丟失問題時(shí)間取款事務(wù)轉(zhuǎn)賬事務(wù)T1開始事務(wù)T2開始事務(wù)T3查詢賬戶余額為1000元T4查詢賬戶余額為1000元T5匯入100元把余額改為1100元T6提交事務(wù)T7取出100元把余額改為900元T8撤銷事務(wù)余額恢復(fù)為1000元10臟讀問題時(shí)間取款事務(wù)轉(zhuǎn)賬事務(wù)T1開始事務(wù)T2開始事務(wù)T3T4查詢賬戶余額為1000元T5取出100元把余額改為900元T6查詢賬戶余額為900元(臟讀)T7撤銷事務(wù)余額恢復(fù)為1000元T8匯入100元把余額改為1000元T9提交事務(wù)11虛讀問題時(shí)間注冊事務(wù)統(tǒng)計(jì)事務(wù)T1T2開始事務(wù)開始事務(wù)T3統(tǒng)計(jì)注冊客戶總數(shù)為10000人T4T5T6注冊一個(gè)新用戶提交事務(wù)統(tǒng)計(jì)注冊客戶總數(shù)為10001人T7到底哪一個(gè)統(tǒng)計(jì)數(shù)據(jù)有效?12不可重復(fù)讀轉(zhuǎn)賬事務(wù)時(shí)
間 取款事務(wù)T1
開始事務(wù)元T2T3查詢賬戶余額為1000開始事務(wù)T4T5取出100元把余額改為900元查詢賬戶余額為1000元T6T7提交事務(wù)查詢賬戶余額為900元T8余額到底是1000元還是900元?13第二類丟失更新時(shí)
間 取款事務(wù)轉(zhuǎn)賬事務(wù)開始事務(wù)查詢賬戶余額為1000元取出100元把余額改為900元提交事務(wù)T1
開始事務(wù)T2T3
查詢賬戶余額為1000元T4T5T6T7T8匯入100元把余額改為1100元T9提交事務(wù)14數(shù)據(jù)庫的事務(wù)隔離級(jí)別15隔離級(jí)別與并發(fā)性能的關(guān)系16設(shè)定隔離級(jí)別的原則17隔離級(jí)別越高,越能保證數(shù)據(jù)的完整性和一致性,但是對(duì)并發(fā)性能的影響也越大。對(duì)于多數(shù)據(jù)應(yīng)用程序,可以優(yōu)先考慮把數(shù)據(jù)庫系統(tǒng)的隔離級(jí)別設(shè)為ReadCommitted,它能夠避免臟讀,而且具有較好的并發(fā)性能。盡管它會(huì)導(dǎo)致不可重復(fù)讀,虛讀和第二類丟失更新這些并發(fā)問題,在可能出現(xiàn)這類問題的個(gè)別場合,可以由應(yīng)用程序悲觀鎖和樂觀鎖來解決。在hibernate中設(shè)置隔離級(jí)別18使用悲觀鎖19利用悲觀鎖協(xié)調(diào)并發(fā)事務(wù)20使用樂觀鎖21利用<version>元素對(duì)Accounts表中的記錄進(jìn)行版本控制22利用<version>元素對(duì)Accounts表中的記錄進(jìn)行版本控制23利用<version>元素對(duì)Accounts表中的記錄進(jìn)行版本控制24利用<version>元素對(duì)Accounts表中的記錄進(jìn)行版本控制25利用樂觀鎖協(xié)調(diào)并發(fā)事務(wù)的處理26時(shí)間取款事務(wù)支票轉(zhuǎn)帳事務(wù)T1開始事務(wù)T2開始事務(wù)T3Select
*fromcounts
where
id=1,查詢結(jié)果顯示余額為1000T4Select
*fromcounts
where
id=1查詢結(jié)果顯示余額為1000,樂觀鎖字段
version值為0T5取出100,updatecounts
set
amount=
900,version=1whereid=1and
version
=
0T6提交事務(wù)T7匯入操作:updatecounts
set
amount=1100,
version=1where
id=1
andversion=0,找不到匹配的記錄,拋出:StaleObjectStateException實(shí)現(xiàn)樂觀鎖的其它方式27注解的方式加樂觀鎖28@org.hibernate.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年都江堰市社會(huì)招聘事業(yè)單位工作人員(公共行業(yè)類)筆試真題
- 2024年玉溪申請(qǐng)客運(yùn)從業(yè)資格證考試題和答案
- 精準(zhǔn)疫苗研發(fā)行業(yè)經(jīng)營模式分析
- 2024年貴陽客運(yùn)從業(yè)資格證培訓(xùn)資料
- 2024年鄭州客運(yùn)資格證考試題
- 2024年興安申請(qǐng)客運(yùn)從業(yè)資格證2024年試題
- 個(gè)體化營養(yǎng)藥物行業(yè)三年發(fā)展預(yù)測分析報(bào)告
- 2024年呼和浩特客運(yùn)資格證需要什么條件
- 農(nóng)業(yè)科技與機(jī)器學(xué)習(xí)行業(yè)技術(shù)趨勢分析
- 2024年滄州道路旅客運(yùn)輸資格證考試
- 2022-2023年E中國AIoT市場規(guī)模及預(yù)測情況
- 工業(yè)相機(jī)與機(jī)器視覺知識(shí)考試題庫及答案
- 全文2023年《質(zhì)量強(qiáng)國建設(shè)綱要》教育
- Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)PPT完整全套教學(xué)課件
- 封陽臺(tái)工程合同協(xié)議書
- 社會(huì)工作者作文(通用6篇)
- 2020AHA心肺復(fù)蘇指南(成人基礎(chǔ)及高級(jí)生命支持)
- 遼寧阜新煤化工基地產(chǎn)業(yè)發(fā)展規(guī)劃
- 學(xué)院意識(shí)形態(tài)工作責(zé)任制實(shí)施細(xì)則
- 芬太尼透皮貼劑的護(hù)理
- 簡易烤三文魚做法
評(píng)論
0/150
提交評(píng)論