跟小博老師一起學習資料庫 ——ACID規則
現代的資料庫基本都支援多使用者的併發操作,為保證操作過程中資料的正確性,一定要包含原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability),簡稱為ACID原則。
l原子性
事務由若干SQL語句構成,執行過程極有部分SQL發生錯誤。原子性指當發生錯誤時,把以執行成功SQL操作撤銷,就當什麼事情也沒有發生過。
比如我們在儲存一張出存單時,一般分成三步。先向出庫表插入訂單摘要資料,再儲存商品明細到訂單專案表,接著減少商品表的對應商品庫存資料量,這三個操作都成功才能視為操作成功。
如第一、二步操作成功,但減少庫存時發生了錯誤而沒有減少庫存數量,必須自動把第一、二步操作取消,否則就產生了無效資料,原子效能做到。
l一致性
當同時時刻併發了多個事務,必須保證系統的一致性。
比如系統中A商品現有庫存為100,三個帳戶同時對A進行操作,張三對A商品出庫50,李四對A入庫20,趙六對A商品出庫10,系統A庫存的最終資料應是60。
l隔離性
所謂的隔離性是指一個事務正在操作某些資料時,另一個事務也要操作此資料,必須等第一個事務完成後第二個事務能繼續執行。
例如你從A帳戶在轉帳1000元到B帳戶,在這個交易還沒完成的情況下,查詢B帳戶是看不到新加的1000元的。
l永續性
事務一旦操作成功,資料以儲存到了儲存介質,就算系統重啟、掉電也不會丟失,除非儲存介質發生了物理損壞。
ACID是資料庫事務正確執行的4個基本要素,現代資料庫都遵循這些規則,否則極有可能產生無效資料。
相關文章
- 資料庫事務 ACID資料庫
- 「AI+教育」新進階,你想跟 AI 智慧老師學習嗎?AI
- 資料分享:跟著ttlsa一起學zabbix監控TLS
- 博主的學習小Tips
- 【MySQL】資料庫字元校對規則MySql資料庫字元
- 資料庫學習(一)三正規化資料庫
- 資料庫的正規化學習筆記資料庫筆記
- 跟underscore一起學如何寫函式庫函式
- 一個小時內學習SQLite資料庫SQLite資料庫
- 使用DBV的命令規則和規則集強化資料庫安全資料庫
- 正則學習小記
- Apache Kafka不是資料庫:資料庫+Kafka=完整ACID - fivetranApacheKafka資料庫
- 資料庫SQL開發命名規則 (轉)資料庫SQL
- 更改系統資料庫的排序規則資料庫排序
- 規劃關聯式資料庫學習筆記資料庫筆記
- 資料庫學習資料庫
- SQLite資料庫學習小結——Frameworks層實現SQLite資料庫Framework
- SSIS 資料庫排序規則衝突問題資料庫排序
- 資料庫設計和基本備份規則資料庫
- 11 個重要的資料庫設計規則資料庫
- 大資料學習之路(跟著大神學習一波)大資料
- 侯捷老師C++學習路線C++
- 張傳波老師Scrum學習心得Scrum
- 資料庫ACID、隔離級別與MVCC資料庫MVC
- SQLite資料庫學習小結——native層實現SQLite資料庫
- 學習MongoDB資料庫MongoDB資料庫
- 資料庫期末複習小結資料庫
- MySQL資料庫基礎學習筆記(整理自蘇勇老師的MySQL基礎課程視訊)MySql資料庫筆記
- Java學習筆記:資料庫中的正規化和反正規化Java筆記資料庫
- 大資料分析學習規劃大資料
- 趙強老師:初級學習大資料:Java基礎(1)Java入門-趙強老師-專題視訊課程大資料Java
- 戴老師的學習驗收(一,二)
- 【資料庫理論】 ACID和BASE的比較資料庫
- 深度學習常用的資料集,包括各種資料跟影象資料深度學習
- 資料庫基礎學習-計劃內容 For 小樣兒資料庫
- 資料庫資料跟蹤記錄資料庫
- 跟小師父學習QTP後的總結QT
- Sql Server 資料庫學習-常用資料庫 物件SQLServer資料庫物件