這篇文章主要介紹“數(shù)據(jù)庫中事務(wù)的定義”,在日常操作中,相信很多人在數(shù)據(jù)庫中事務(wù)的定義問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”數(shù)據(jù)庫中事務(wù)的定義”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是成都創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對成都網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)站制作、網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無止境。假設(shè)用戶A要從他的賬戶里面給B轉(zhuǎn)賬1000元,那么就需要兩步來實(shí)現(xiàn),首先從A的賬號減去1000元,再給B賬號加1000元。這兩個步驟中,任何一步都不能少或者出錯,這兩步要么都得到成功操作完成,要么什么都不做,中途出錯也要回滾到轉(zhuǎn)賬開始之前的狀態(tài)。這樣的一個過程就是我們經(jīng)常說的事務(wù)。根據(jù)這個例子,下來我們就給事務(wù)定義如下:
事務(wù)(transaction)是為了保證數(shù)據(jù)的一致性和完整性,由一系列數(shù)據(jù)操作或指令組成的一個不可分割的邏輯單元,這些操作或指令要么全都得到執(zhí)行,要么全都不執(zhí)行。如果事務(wù)成功執(zhí)行,則該事務(wù)中對所有數(shù)據(jù)所做的更改均會成為數(shù)據(jù)庫中持久性更改;如果事務(wù)執(zhí)行過程中遇到錯誤,則所有執(zhí)行的操作和更改均應(yīng)得到取消,回滾到事務(wù)執(zhí)行前的狀態(tài)。從定義看,事務(wù)應(yīng)該滿足四個屬性,即ACID,也就是原子性、一致性、隔離性、持久性。
原子性(Atomicity,或稱不可分割性):事務(wù)中的所有操作,要么全部都成功執(zhí)行,要么全部都沒有執(zhí)行完成。這種不可中斷的一系列操作就是原子性。轉(zhuǎn)賬過程中,A賬號減去1000元和B賬號加1000元,必須都得到執(zhí)行,或者都不執(zhí)行,否則都不符合邏輯和實(shí)際情況。
一致性(Consistency):事務(wù)開始之前和事務(wù)完成以后,所有相關(guān)的數(shù)據(jù)狀態(tài)都會保持一致,不會使數(shù)據(jù)庫的完整性得到破壞。原子性會確保數(shù)據(jù)保持一致性,轉(zhuǎn)賬過程產(chǎn)生中斷,第一步執(zhí)行了,第二步?jīng)]有執(zhí)行,這個時候,只是A賬號少了1000元,而B賬號沒有加1000元,這個時候,數(shù)據(jù)就不一致了。
隔離性(Isolation,又稱獨(dú)立性):數(shù)據(jù)庫中多個并發(fā)事務(wù)同時執(zhí)行時,一個事務(wù)的執(zhí)行不能受到其他事務(wù)的干擾,也就是說,一個事務(wù)內(nèi)的操作和使用的數(shù)據(jù)對其他事務(wù)是隔離的,不會受到其他并發(fā)的事務(wù)影響。例如:事務(wù)查看數(shù)據(jù)所處的狀態(tài),要么是另一個并發(fā)事務(wù)的修改之前的狀態(tài),要么就是另一個事務(wù)修改之后的狀態(tài),不會是中間狀態(tài)的數(shù)據(jù)。
持久性(Durability):事務(wù)執(zhí)行完后,對數(shù)據(jù)的修改就是永久的,即便系統(tǒng)出現(xiàn)故障,不會產(chǎn)生回滾,也不會影響到執(zhí)行結(jié)果。
通常,事務(wù)以3種模式運(yùn)行,他們分別是:自動提交事務(wù)、顯式事務(wù)和隱式事務(wù)。
1.自動提交事務(wù)
每一條單獨(dú)的SQL語句都在其執(zhí)行完成后進(jìn)行自動提交事務(wù),即執(zhí)行SQL語句后就會馬上自動隱式執(zhí)行COMMIT操作。如果出現(xiàn)錯誤,則進(jìn)行事務(wù)回滾至之前狀態(tài)。
2.顯式事務(wù)
通過指定事務(wù)開始語句來顯式開啟事務(wù)來作為開始,并由以提交命令或者回滾命令來提交或者回滾事務(wù)作為結(jié)束的一段代碼就是一個用戶定義的顯式事務(wù)。
3.隱式事務(wù)
在隱式事務(wù)中,無需使用BEGINTRANASACTION來開啟事務(wù),每個SQL語句第一次執(zhí)行就會開啟一個事務(wù),直到用COMMIT[TRANSACTION]來提交或者ROLLBACK[TRANSACTION]來回滾結(jié)束事務(wù)。
在ORACLE、MYSQL和SQLSERVER中,這幾種模式的開啟和關(guān)閉方式都有著自己不同的命。
到此,關(guān)于“數(shù)據(jù)庫中事務(wù)的定義”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
分享文章:數(shù)據(jù)庫中事務(wù)的定義-創(chuàng)新互聯(lián)
本文URL:http://aaarwkj.com/article28/iejjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、云服務(wù)器、網(wǎng)站設(shè)計公司、定制開發(fā)、外貿(mào)建站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容