第四章 數據更新 4-3 事務
阿新 • • 發佈:2018-10-23
能夠 .com 約束 cit info data 設置 完整性 此外 一、什麽是事務
在RDBMS中,事務是對表中數據進行更新的單位。簡單來說,事務就是需要在同一個處理單元中執行的一系列更新處理的集合。
二、創建事務
事務的開始語言:
例子:
事務結束的命令:
(1)COMMIT 提交處理
COMMIT是提交事務包含的全部更新處理的結束指令。相當於文件處理中的覆蓋保存。
一旦提交,就無法恢復到事務開始前的狀態了。
註:雖然我們不知道事務開始的時間點,但是事務結束時一定要仔細進行確認。
(2)ROLLBACK 取消處理
ROLLBACK是取消事務包含的全部更新處理的結束指令,相當於文件處理中的放棄保存。
一旦回滾,數據庫就會恢復到事務開始之前的狀態。
例子:
三、事務處理何時開始
在不使用指令而悄悄開始事務的情況下,應該如何區分各個事務呢?
分兩種情況:
(1)自動提交模式:每一條SQL語句就是一個事務。
(2)直到用戶執行COMMIT或者ROLLBACK為止算一個事物。
使用(1)規則的數據庫有SQL Server、PostgreSQL、MySQL
使用(2)規則的數據庫有Oracle
三、ACID特性
DBMS的事務都遵循四種特性,ACID特性,所有DBMS都必須遵守的規則。
(1)原子性Atomicity
原子性是指事務結束時,其中所包含的更新處理要麽全部執行,要麽完全不執行,也就是說要麽占有一切,要麽一無所有。
(2)一致性 Consistency
一致性是指事務中包含的處理要滿足數據庫提前設置的約束,如主鍵約束,NOT NULL約束等。對於SQL來說,不合法的SQL會被回滾。一致性也稱為完整性。
(3)隔離性 Isolation
隔離性指的是在保證不同事務之間互不幹擾的特性。該特性保證了事務之間不會互相嵌套。
此外,在某個事務中進行的更改,在該事務結束之前,對其他事務而言是不可見的。
(4)持久性 Durability
持久性稱為耐久性,指的是在事務(不論是提交還是回滾)結束後,DBMS能夠保證該時間點的數據狀態會被保存的特性。
即使由於系統故障導致數據丟失,數據庫也一定能夠通過某種手段進行恢復。
第四章 數據更新 4-3 事務