一、事務(wù)

1.1 事務(wù)的概念

  事務(wù)是作為單個(gè)工作單元而執(zhí)行的一系列操作,比如查詢和修改數(shù)據(jù)等。

  事務(wù)是數(shù)據(jù)庫并發(fā)控制的基本單位,一條或者一組語句要么全部成功,對(duì)數(shù)據(jù)庫中的某些數(shù)據(jù)成功修改; 要么全部不成功,數(shù)據(jù)庫中的數(shù)據(jù)還原到這些語句執(zhí)行之前的樣子。

比如網(wǎng)上訂火車票,要么你定票成功,余票顯示就減一張; 要么你定票失敗獲取取消訂票,余票的數(shù)量還是那么多。不允許出現(xiàn)你訂票成功了,余票沒有減少或者你取消訂票了,余票顯示卻少了一張的這種情況。這種不被允許出現(xiàn)的情況就要求購(gòu)票和余票減少這兩個(gè)不同的操作必須放在一起,成為一個(gè)完整的邏輯鏈,這樣就構(gòu)成了一個(gè)事務(wù)。

1.2 事務(wù)的ACID特性

  原子性(Atomicity):事務(wù)的原子性是指一個(gè)事務(wù)中包含的一條語句或者多條語句構(gòu)成了一個(gè)完整的邏輯單元,這個(gè)邏輯單元具有不可再分的原子性。這個(gè)邏輯單元要么一起提交執(zhí)行全部成功,要么一起提交執(zhí)行全部失敗。

  一致性(Consistency):可以理解為數(shù)據(jù)的完整性,事務(wù)的提交要確保在數(shù)據(jù)庫上的操作沒有破壞數(shù)據(jù)的完整性,比如說不要違背一些約束的數(shù)據(jù)插入或者修改行為。一旦破壞了數(shù)據(jù)的完整性,SQL Server 會(huì)回滾這個(gè)事務(wù)來確保數(shù)據(jù)庫中的數(shù)據(jù)是一致的。

網(wǎng)友評(píng)論