ACID 資料庫事務正確執行的四個基本要素

2021-12-29 21:49:13 字數 1218 閱讀 7631

acid——資料庫事務正確執行的四個基本要素

acid,指資料庫事務正確執行的四個基本要素的縮寫。包含:原子性(atomicity)、一致性(consistency)、隔離性(isolation)、永續性(durability)。乙個支援事務(transaction)的資料庫系統,必需要具有這四種特性,否則在事務過程(transaction processing)當中無法保證資料的正確性,交易過程極可能達不到交易

原子性:乙個事務(transaction)中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。事務在執行過程中發生錯誤,會被回滾(rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

一致性:在事務開始之前和事務結束以後,資料庫的完整性沒有被破壞。這表示寫入的資料必須完全符合所有的預設規則,這包含資料的精確度、串聯性以及後續資料庫可以自發性地完成預定的工作。

隔離性:當兩個或者多個事務併發訪問(此處訪問指查詢和修改的操作)資料庫的同一資料時所表現出的相互關係。事務隔離分為不同級別,包括讀未提交(read uncommitted)、讀提交(read committed)、可重複讀(repeatable read)和序列化(serializable)。

永續性:在事務完成以後,該事務對資料庫所作的更改便持久地儲存在資料庫之中,並且是完全的。

由於一項操作通常會包含許多子操作,而這些子操作可能會因為硬體的損壞或其他因素產生問題,要正確實現acid並不容易。acid建議資料庫將所有需要更新以及修改的資料一次操作完畢,但實際上並不可行。

目前主要有兩種方式實現acid:第一種是write ahead logging,也就是日誌式的方式。第二種是shadow paging。

write ahead logging(預寫日誌):

1、事務所引起的所有改動都要記錄在日誌中,在事務提交完成之前,所有的這些記錄必須被寫入硬碟;

2、乙個資料庫的緩衝頁直到被記入日誌後才能發生修改。直到緩衝頁對應的日誌被寫入磁碟之後,該緩衝頁才會存入磁碟;

3、當緩衝頁被修改和日誌被更新的時候,在也上必須加上互斥鎖,以保證改動被記錄到日誌中的順序與它發生的順序是一致的。

以上規則的結果:

1、如果一條日誌記錄未被存入硬碟,則它可以被忽略,因為該日誌中包含的改動一定屬於未提交的事務。此外,這樣的日誌不能反映已持久化在資料庫中的改動;

2、日誌記錄按順序記錄系統的改動。加鎖協議(latch protocol)保證如果有對於同一頁改動的兩條日誌記錄,則兩條記錄的順序反映對頁發生改變的順序。

資料庫事務正確執行的四個基本要素 ACID

acid,指資料庫事務正確執行的四個基本要素的縮寫。包含 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 乙個支援事務 transaction 的資料庫,必須要具有這四種特性,否則在事務過程 transaction process...

ACID資料庫事務正確執行的四個基本要素的縮寫

acid,指資料庫事務正確執行的四個基本要素的縮寫。包含 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 乙個支援事務 transaction 的資料庫,必須要具有這四種特性,否則在事務過程 transaction process...

資料庫事務ACID

1.原子性 atomicity 原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。2.一致性 consistency 事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態。3.隔離性 isolation 事務的隔離性是指乙個事務的執行不能被其他事務干擾,即乙個事務內部...