帶您深入了解SQL Server事務
SQL Server事務是SQL數據庫中非常重要的概念,但是究竟什么是SQL Server事務呢?下文對SQL Server事務作了詳細的介紹,供您參考。
SQL Server事務可以看作是由對數據庫的若干操作組成的一個單元,這些操作要么都完成,要么都取消,從而保證數據滿足一致性的要求。事務的一個典型例子是銀行中的轉帳操作,帳戶A把一定數量的款項 轉到帳戶B上,這個操作包括兩個步驟,一個是從帳戶A上把存款減去一定數量,二是在帳戶B上把存款加上相同的數量。這兩個步驟顯然要么都完成,要么都取 消,否則銀行就會受損失。顯然,這 個轉帳操作中的兩個步驟就構成一個事務。
SQL Server事務還有如下ACID特征。
ACID分別是四個英文單詞的首寫字母,這四個英文單詞是Atomicity、Consistency、Isolation、Durability,分別翻譯為原子性、一致性、隔離性、持久性。
原子性:指事務中的操作,或者都完成,或者都取消。
一致性:指事務中的操作保證數據庫中的數據不會出現邏輯上不一致的情況,一致性一般會隱含的包括在其他屬性之中。
隔離性:指當前的事務與其他未完成的事務是隔離的。在不同的隔離級別下,事務的讀取操作,可以得到的結果是不同的。
持久性:指對事務發出COMMIT命令后,即使這時發生系統故障,事務的效果也被持久化了。與此相反的是,當在事務執行過程中,系統發生故障,則事務的操作都被回滾,即數據庫回到事務開始 之前的狀態。
對 數據庫中的數據修改都是在內存中完成的,這些修改的結果可能已經寫到硬盤也可能沒有寫到硬盤,如果在操作過程中,發生斷電,強制關閉SQL*Plus窗口 或系統錯誤等故障,數據庫可以保證未結束的事務對數據庫的 數據修改結果即使已經寫入磁盤,在下次數據庫啟動后也會被全部撤銷;而對于結束的事務,即使其修改的結果還未寫入磁盤,在數據庫下次啟動后會通過事務日志 中的記錄進行“重做”,即把 丟失的數據修改結果重新生成,并寫入磁盤,從而保證結束事務對數據修改的永久化。這樣也保證了事務中的操作要么全部完成,要么全部撤銷。
【編輯推薦】