資料庫事務正確執行的四個基本要素
ACID是資料庫事務正確執行的四個基本要素的縮寫,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability)。一個支援事務(Transaction)的資料庫系統,必需要具有ACID特性,否則在事務過程(Transaction processing)當中無法保證資料的正確性,交易過程極可能達不到交易方的要求。
原子性(Atomicity)
– 事務的所有操作,要麼全部完成,要麼全部不完成,不會結束在某個中間環節。
一致性(Consistency)
– 事務開始之前和事務結束之後,資料庫的完整性限制未被破壞。
隔離性(Isolation)
– 當多個事務併發訪問資料庫中的同一資料時,所表現出來的相互關係。
永續性(Durability)
– 事務完成之後,事務所做的修改持久化儲存,不會丟失。
1.原子性
整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
2. 一致性
在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。
3. 隔離性
隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,執行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。
這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有一個請求用於同一資料。
4. 永續性
在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。
由於一項操作通常會包含許多子操作,而這些子操作可能會因為硬體的損壞或其他因素產生問題,要正確實現ACID並不容易。ACID建議資料庫將所有需要更新以及修改的資料一次操作完畢,但實際上並不可行。
目前主要有兩種方式實現ACID:第一種是Write ahead logging,也就是日誌式的方式。第二種是Shadow paging。
原子性(Atomicity)
– 事務的所有操作,要麼全部完成,要麼全部不完成,不會結束在某個中間環節。
一致性(Consistency)
– 事務開始之前和事務結束之後,資料庫的完整性限制未被破壞。
隔離性(Isolation)
– 當多個事務併發訪問資料庫中的同一資料時,所表現出來的相互關係。
永續性(Durability)
– 事務完成之後,事務所做的修改持久化儲存,不會丟失。
1.原子性
整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
2. 一致性
在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。
3. 隔離性
隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,執行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。
這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有一個請求用於同一資料。
4. 永續性
在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。
由於一項操作通常會包含許多子操作,而這些子操作可能會因為硬體的損壞或其他因素產生問題,要正確實現ACID並不容易。ACID建議資料庫將所有需要更新以及修改的資料一次操作完畢,但實際上並不可行。
目前主要有兩種方式實現ACID:第一種是Write ahead logging,也就是日誌式的方式。第二種是Shadow paging。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2125599/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫事務以及事務的四個特性資料庫
- 資料庫事務的四大特性資料庫
- 資料庫事務的四種隔離級別資料庫
- 資料庫事務的四大特性以及事務的隔離級別資料庫
- 我們該如何正確的中斷一個執行緒的執行??執行緒
- 資料庫事務的特徵資料庫特徵
- 資料庫事務四大特性是什麼?資料庫
- MongoDB資料庫的兩種正確停庫方法MongoDB資料庫
- 資料庫中事務、會話、執行緒這幾個概念是什麼關係資料庫會話執行緒
- 資料庫正規化那些事資料庫
- 資料庫事務整理資料庫
- 如何正確終止正在執行的子執行緒執行緒
- 資料庫事務的隔離級別及四大特性資料庫
- 資料庫事務的四大特性和隔離級別資料庫
- 關係型資料庫的四種事務隔離級別資料庫
- 資料庫事務與事務的隔離級別資料庫
- 這才是分散式事務的正確開啟方式!分散式
- 資料庫事務與 MySQL 事務總結資料庫MySql
- 資料庫映象和跨資料庫事務資料庫
- 解讀mysql的索引和事務的正確姿勢MySql索引
- 如何正確執行 DORA 指標指標
- 看執行計劃是否正確
- 資料庫正規化那些事[轉]資料庫
- python資料庫連線池的正確用法Python資料庫
- 如何正確的關閉 MFC 執行緒執行緒
- 淺談資料庫事務資料庫
- 說說資料庫事務資料庫
- 資料庫事務概論資料庫
- 資料庫事務 ACID資料庫
- 資料庫事務隔離資料庫
- 資料庫的效能調優:如何正確的使用索引?資料庫索引
- 評價分散式事務資料庫的5個標準分散式資料庫
- 查詢某個會話正在執行的事務會話
- 正確理解SQL Server四類資料倉儲建模方法SQLServer
- Hive SQL語句的正確執行順序HiveSQL
- Android 執行緒的正確使用姿勢Android執行緒
- 分散式事務之資料庫事務與JDBC事務實現(一)分散式資料庫JDBC
- Laravel 開啟資料庫事務Laravel資料庫