久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

數(shù)據(jù)庫中事務(wù)的定義

141次閱讀
沒有評論

共計(jì) 1464 個字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。

這篇文章主要介紹“數(shù)據(jù)庫中事務(wù)的定義”,在日常操作中,相信很多人在數(shù)據(jù)庫中事務(wù)的定義問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”數(shù)據(jù)庫中事務(wù)的定義”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學(xué)習(xí)吧!

假設(shè)用戶 A 要從他的賬戶里面給 B 轉(zhuǎn)賬 1000 元,那么就需要兩步來實(shí)現(xiàn),首先從 A 的賬號減去 1000 元,再給 B 賬號加 1000 元。這兩個步驟中,任何一步都不能少或者出錯,這兩步要么都得到成功操作完成,要么什么都不做,中途出錯也要回滾到轉(zhuǎn)賬開始之前的狀態(tài)。這樣的一個過程就是我們經(jīng)常說的事務(wù)。根據(jù)這個例子,下來我們就給事務(wù)定義如下:

事務(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ù)的運(yùn)行模式

通常,事務(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)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-28發(fā)表,共計(jì)1464字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 威海市| 桐庐县| 安新县| 申扎县| 青海省| 长子县| 新绛县| 盖州市| 白河县| 即墨市| 四平市| 宁南县| 逊克县| 自治县| 南通市| 汉川市| 留坝县| 宁阳县| 米易县| 阜城县| 恩施市| 上林县| 东乌| 永靖县| 新巴尔虎左旗| 泽普县| 榆中县| 同德县| 类乌齐县| 喀喇| 阳江市| 内黄县| 铜山县| 抚远县| 佛教| 武陟县| 耿马| 桑植县| 神池县| 阳信县| 南投市|