JDBC事務(wù)管理

JDBC事務(wù)管理

ID:47117272

大?。?4.63 KB

頁(yè)數(shù):14頁(yè)

時(shí)間:2019-08-07

JDBC事務(wù)管理_第1頁(yè)
JDBC事務(wù)管理_第2頁(yè)
JDBC事務(wù)管理_第3頁(yè)
JDBC事務(wù)管理_第4頁(yè)
JDBC事務(wù)管理_第5頁(yè)
資源描述:

《JDBC事務(wù)管理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、JDBC事務(wù)管理一、什么是事務(wù)1.1.概念事務(wù)(TRANSACTION)是作為單個(gè)邏輯工作單元執(zhí)行的一系列操作。這些操作作為一個(gè)整體一起向系統(tǒng)提交,要么都執(zhí)行、要么都不執(zhí)行。事務(wù)是一個(gè)不可分割的工作邏輯單元。事務(wù)是現(xiàn)代數(shù)據(jù)庫(kù)理論中的核心概念之一。如果一組處理步驟或者全部發(fā)生或者一步也不執(zhí)行,我們稱該組處理步驟為一個(gè)事務(wù)。當(dāng)所有的步驟像一個(gè)操作一樣被完整地執(zhí)行,我們稱該事務(wù)被提交。由于其中的一部分或多步執(zhí)行失敗,導(dǎo)致沒(méi)有步驟被提交,則事務(wù)必須回滾到最初的系統(tǒng)狀態(tài)。1.2.ACID原則事務(wù)必須服從ISO/IEC所制定的ACID原則。ACID是

2、原子性(atomicity)、一致性(consistency)、隔離性(isolation)和持久性(durability)的縮寫(xiě)。?原子性(Atomicity):事務(wù)是一個(gè)完整的操作。事務(wù)的各步操作是不可分的(原子的);要么都執(zhí)行,要么都不執(zhí)行。?一致性(Consistency):當(dāng)事務(wù)完成時(shí),數(shù)據(jù)必須處于一致?tīng)顟B(tài)。?隔離性(Isolation):對(duì)數(shù)據(jù)進(jìn)行修改的所有并發(fā)事務(wù)是彼此隔離的,這表明事務(wù)必須是獨(dú)立的,它不應(yīng)以任何方式依賴于或影響其他事務(wù)?永久性(Durability):事務(wù)完成后,它對(duì)數(shù)據(jù)庫(kù)的修改被永久保持,事務(wù)日志能夠保持

3、事務(wù)的永久性。事務(wù)的原子性表示事務(wù)執(zhí)行過(guò)程中的任何失敗都將導(dǎo)致事務(wù)所做的任何修改失效。一致性表示當(dāng)事務(wù)執(zhí)行失敗時(shí),所有被該事務(wù)影響的數(shù)據(jù)都應(yīng)該恢復(fù)到事務(wù)執(zhí)行前的狀態(tài)。隔離性表示并發(fā)事務(wù)是彼此隔離。持久性表示當(dāng)系統(tǒng)或介質(zhì)發(fā)生故障時(shí),確保已提交事務(wù)的更新不能丟失。持久性通過(guò)數(shù)據(jù)庫(kù)備份和恢復(fù)來(lái)保證。一、數(shù)據(jù)庫(kù)并發(fā)問(wèn)題當(dāng)多個(gè)用戶并發(fā)訪問(wèn)數(shù)據(jù)庫(kù)中相同的數(shù)據(jù)時(shí),可能會(huì)出現(xiàn)并發(fā)問(wèn)題。如果沒(méi)有鎖定且多個(gè)用戶同時(shí)訪問(wèn)一個(gè)數(shù)據(jù)庫(kù),則當(dāng)他們的事務(wù)同時(shí)使用相同的數(shù)據(jù)時(shí)可能會(huì)發(fā)生問(wèn)題。并發(fā)問(wèn)題包括:?丟失或覆蓋更新。?未確認(rèn)的相關(guān)性(臟讀)。?不一致的分析(非重復(fù)

4、讀)。?幻讀。2.1.丟失更新當(dāng)兩個(gè)或多個(gè)事務(wù)選擇同一行,然后基于最初選定的值更新該行時(shí),會(huì)發(fā)生丟失更新問(wèn)題。每個(gè)事務(wù)都不知道其他事務(wù)的存在。最后的更新將重寫(xiě)由其他事務(wù)所做的更新,這將導(dǎo)致數(shù)據(jù)丟失。例如,兩個(gè)編輯人員制作了同一文件的電子復(fù)本。每個(gè)編輯人員獨(dú)立地更改其復(fù)本,然后保存更改后的復(fù)本,這樣就覆蓋了原始文件。最后保存其更改復(fù)本的編輯人員覆蓋了第一個(gè)編輯人員所做的更改。如果在第一個(gè)編輯人員完成之后第二個(gè)編輯人員才能進(jìn)行更改,則能避免該問(wèn)題。2.1.未確認(rèn)的相關(guān)性(臟讀)當(dāng)?shù)诙€(gè)事務(wù)選擇其他事務(wù)正在更新的行時(shí),會(huì)發(fā)生未確認(rèn)的相關(guān)性問(wèn)題。

5、第二個(gè)事務(wù)正在讀取的數(shù)據(jù)還沒(méi)有確認(rèn)并且可能由更新此行的事務(wù)所更改。例如,一個(gè)編輯人員正在更改電子文件。在更改過(guò)程中,另一個(gè)編輯人員復(fù)制了該文件(該復(fù)本包含到目前為止所做的全部更改)并將其分發(fā)給預(yù)期的用戶。此后,第一個(gè)編輯人員認(rèn)為目前所做的更改是錯(cuò)誤的,于是刪除了所做的編輯并保存了文件。分發(fā)給用戶的文件包含不再存在的編輯內(nèi)容,并且這些編輯內(nèi)容應(yīng)認(rèn)為從未存在過(guò)。如果在第一個(gè)編輯人員確定最終更改前所有人都不能讀取更改的文件,則能避免該問(wèn)題。2.2.不一致的分析(非重復(fù)讀)當(dāng)?shù)诙€(gè)事務(wù)多次訪問(wèn)同一行而且每次讀取不同的數(shù)據(jù)時(shí),會(huì)發(fā)生不一致的分析問(wèn)題

6、。不一致的分析和未確認(rèn)的相關(guān)性類似,因?yàn)槠渌聞?wù)也是正在更改第二個(gè)事務(wù)正在讀取的數(shù)據(jù)。然而,在不一致的分析中,第二個(gè)事務(wù)讀取的數(shù)據(jù)是由已進(jìn)行了更改的事務(wù)提交的。而且,不一致的分析涉及多次(兩次或更多)讀取同一行,而且每次信息都由其他事務(wù)更改;因而該行被非重復(fù)讀取。例如,一個(gè)編輯人員兩次讀取同一文件,但在兩次讀取之間,作者重寫(xiě)了該文件。當(dāng)編輯人員第二次讀取文件時(shí),文件已更改。原始讀取不可重復(fù)。如果只有在作者全部完成編寫(xiě)后編輯人員才能讀取文件,則能避免該問(wèn)題。2.3.幻像讀當(dāng)對(duì)某行執(zhí)行插入或刪除操作,而該行屬于某個(gè)事務(wù)正在讀取的行的范圍時(shí),會(huì)

7、發(fā)生幻像讀問(wèn)題。事務(wù)第一次讀的行范圍顯示出其中一行已不復(fù)存在于第二次讀或后續(xù)讀中,因?yàn)樵撔幸驯黄渌聞?wù)刪除。同樣,由于其他事務(wù)的插入操作,事務(wù)的第二次或后續(xù)讀顯示有一行已不存在于原始讀中。例如,一個(gè)編輯人員更改作者提交的文件,但當(dāng)生產(chǎn)部門(mén)將其更改內(nèi)容合并到該文件的主復(fù)本時(shí),發(fā)現(xiàn)作者已將未編輯的新材料添加到該文件中。如果在編輯人員和生產(chǎn)部門(mén)完成對(duì)原始文件的處理之前,所有人都不能將新材料添加到文件中,則能避免該問(wèn)題。一、并發(fā)問(wèn)題的解決方案當(dāng)鎖定用作并發(fā)控制機(jī)制時(shí),他能解決并發(fā)問(wèn)題。這使所有事務(wù)得以在彼此完全隔離的環(huán)境中運(yùn)行,不過(guò)所有時(shí)候都能有

8、多個(gè)正在運(yùn)行的事務(wù)??纱行允峭ㄟ^(guò)運(yùn)行一組并發(fā)事務(wù)達(dá)到的數(shù)據(jù)庫(kù)狀態(tài),等同于這組事務(wù)按某種順序連續(xù)執(zhí)行時(shí)所達(dá)到的數(shù)據(jù)庫(kù)狀態(tài)。3.1.sql-92隔離級(jí)別盡管可串行性對(duì)于事務(wù)確保數(shù)據(jù)庫(kù)中的數(shù)據(jù)在所

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。