數據庫的ACID特性詳解


ACID是指在 數據庫管理系統(DBMS)中事物所具有的四個特性:原子性、一致性、隔離性、持久性

事物:在數據庫系統中,一個事務是指由一系列連續的數據庫操作組成的一個完整的邏輯過程。這組操作執行前后,系統需要處於一個可預知的、一致的狀態。

1、原子性:在一個事物中所有的操作要么都成功,要么多失敗。如銀行轉賬,A向B賬戶轉賬1000元,這里可分為三個操作,1.A向B轉賬、2.銀行處理、3.B賬戶收到轉賬。原子性就是保證這三個操作要么都成功,要么多失敗,如果1、2操作成功,3失敗了,那么1、2操作要進行回滾

2、一致性:在事務執行前后,數據庫的一致性約束沒有被破壞。ACID中的一致性包含實體完整性約束不被破壞,完整性包含實體完整性(主屬性不為空)、參照完整性(外鍵必須存在原表中)、用戶自定義的完整性。比如列值非空(not null)、列值唯一(unique)、列值是否滿足一個bool表達式(check語句,如性別只能有兩個值、歲數是一定范圍內的整數等),例如age smallint CHECK (age >=0 AND age <= 120).數據庫保證age的值在[0, 120]的范圍,如果不在這個范文,那么更新操作失敗,事務也會失敗。

3、隔離性:隔離性是指兩個事物之間互不干擾。實現事物隔離性主要有兩種方式。1.枷鎖、2.多版本控制。

  sql定義了4個隔離的級別:

  READ_UNCOMMITTED
  READ_COMMITTED
  REPEATABLE_READ
  SERIALIZABLE

4、持久性:事物對數據庫所做的更改會持久的保存在數據庫中,不會被回滾。持久性需要考慮到事物在執行過程中可能出現的各種異常,並對異常做出相應的處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM