日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈事务

發(fā)布時(shí)間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈事务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

事務(wù):

?定義:所謂事務(wù),它是一個(gè)操作序列,這些操作要么都執(zhí)行,要么都不執(zhí)行,它是一個(gè)不可分割的工作單位。

ACID:

?定義:是指在可靠數(shù)據(jù)庫管理系統(tǒng)(DBMS)中,事務(wù)(transaction)所應(yīng)該具有的四個(gè)特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)

一。原子性:?原子性是指事務(wù)是一個(gè)不可再分割的工作單位,事務(wù)中的操作要么都發(fā)生,要么都不發(fā)生。

二。一致性:?一致性是指在事務(wù)開始之前和事務(wù)結(jié)束以后,數(shù)據(jù)庫的完整性約束沒有被破壞。這是說數(shù)據(jù)庫事務(wù)不能破壞關(guān)系數(shù)據(jù)的完整性以及業(yè)務(wù)邏輯上的一致性。

三。隔離性:多個(gè)事務(wù)并發(fā)訪問時(shí),事務(wù)之間是隔離的,一個(gè)事務(wù)不應(yīng)該影響其它事務(wù)運(yùn)行效果。

這指的是在并發(fā)環(huán)境中,當(dāng)不同的事務(wù)同時(shí)操縱相同的數(shù)據(jù)時(shí),每個(gè)事務(wù)都有各自的完整數(shù)據(jù)空間。由并發(fā)事務(wù)所做的修改必須與任何其他并發(fā)事務(wù)所做的修改隔離。事務(wù)查看數(shù)據(jù)更新時(shí),數(shù)據(jù)所處的狀態(tài)要么是另一事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會(huì)查看到中間狀態(tài)的數(shù)據(jù)。

四。持久性:?意味著在事務(wù)完成以后,該事務(wù)所對(duì)數(shù)據(jù)庫所作的更改便持久的保存在數(shù)據(jù)庫之中,并不會(huì)被回滾。

1.事務(wù)之間的相互影響

???????事務(wù)之間的相互影響分為幾種,分別為:臟讀,不可重復(fù)讀,幻讀,丟失更新

???????臟讀意味著一個(gè)事務(wù)讀取了另一個(gè)事務(wù)未提交的數(shù)據(jù),而這個(gè)數(shù)據(jù)是有可能回滾的;

   ?不可重復(fù)讀

???? 不可重復(fù)讀意味著,在數(shù)據(jù)庫訪問中,一個(gè)事務(wù)范圍內(nèi)兩個(gè)相同的查詢卻返回了不同數(shù)據(jù)。這是由于查詢時(shí)系統(tǒng)中其他事務(wù)修改的提交而引起的。

   幻讀(虛讀)

? ? ? ? 幻讀,是指當(dāng)事務(wù)不是獨(dú)立執(zhí)行時(shí)發(fā)生的一種現(xiàn)象,例如第一個(gè)事務(wù)對(duì)一個(gè)表中的數(shù)據(jù)進(jìn)行了修改,這種修改涉及到表中的全部數(shù)據(jù)行。同時(shí),第二個(gè)事務(wù)也修改這個(gè)表中的數(shù)據(jù),這種修改是向表中插入一行新數(shù)據(jù)。

   丟失更新

???????兩個(gè)事務(wù)同時(shí)讀取同一條記錄,A先修改記錄,B也修改記錄(B是不知道A修改過),B提交數(shù)據(jù)后B的修改結(jié)果覆蓋了A的修改結(jié)果。

主意:

SQL Server隔離事務(wù)之間的影響是通過鎖來實(shí)現(xiàn)的,通過阻塞來阻止上述影響。不同的隔離級(jí)別是通過加不同的鎖,造成阻塞來實(shí)現(xiàn)的,所以會(huì)以付出性能作為代價(jià);安全級(jí)別越高,處理效率越低;安全級(jí)別越低,效率高。

SQL SERVER通過write-ahead transaction log來保證持久性。write-ahead transaction log的意思是,事務(wù)中對(duì)數(shù)據(jù)庫的改變?cè)趯懭氲綌?shù)據(jù)庫之前,首先寫入到事務(wù)日志中。而事務(wù)日志是按照順序排號(hào)的(LSN)。當(dāng)數(shù)據(jù)庫崩潰或者服務(wù)器斷點(diǎn)時(shí),重啟動(dòng)SQL SERVER,SQLSERVER首先會(huì)檢查日志順序號(hào),將本應(yīng)對(duì)數(shù)據(jù)庫做更改而未做的部分持久化到數(shù)據(jù)庫,從而保證了持久性。

總結(jié):

???????事務(wù)的(ACID)特性是由關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS,數(shù)據(jù)庫系統(tǒng))來實(shí)現(xiàn)的。數(shù)據(jù)庫管理系統(tǒng)采用日志來保證事務(wù)的原子性、一致性和持久性。日志記錄了事務(wù)對(duì)數(shù)據(jù)庫所做的更新,如果某個(gè)事務(wù)在執(zhí)行過程中發(fā)生錯(cuò)誤,就可以根據(jù)日志,撤銷事務(wù)對(duì)數(shù)據(jù)庫已做的更新,使數(shù)據(jù)庫退回到執(zhí)行事務(wù)前的初始狀態(tài)。

  數(shù)據(jù)庫管理系統(tǒng)采用鎖機(jī)制來實(shí)現(xiàn)事務(wù)的隔離性。當(dāng)多個(gè)事務(wù)同時(shí)更新數(shù)據(jù)庫中相同的數(shù)據(jù)時(shí),只允許持有鎖的事務(wù)能更新該數(shù)據(jù),其他事務(wù)必須等待,直到前一個(gè)事務(wù)釋放了鎖,其他事務(wù)才有機(jī)會(huì)更新該數(shù)據(jù)。

轉(zhuǎn)載于:https://www.cnblogs.com/yiweiaimeng/p/4940500.html

總結(jié)

以上是生活随笔為你收集整理的浅谈事务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。