很多人同時改資料怎麼確保不出錯?ACID 四大保證:原子性、一致性、隔離性、持久性。
用銀行轉帳體會:扣款與入帳必須一起成功或一起失敗。
當很多人同時改同一份資料(如轉帳),怎麼確保不出錯?資料庫用 ACID 四大保證。用「銀行轉帳」最好懂:A 帳戶扣 1000、B 帳戶加 1000,這兩步必須一起成功或一起失敗,不能只做一半。
| A 原子性 | Atomicity:一組操作「全做或全不做」,不會只扣款不入帳。 |
| C 一致性 | Consistency:交易前後資料都符合規則(總額守恆)。 |
| I 隔離性 | Isolation:多筆交易同時跑,互不干擾,像各自排隊。 |
| D 持久性 | Durability:一旦完成就永久保存,斷電也不丟。 |
另外 Schema(綱要)對齊也很重要:不同來源的「日期格式、單位、欄位名」要統一,否則合併資料就會錯亂。
模擬 A 轉帳 1000 給 B。中途按「模擬當機」,看有沒有 ACID 保護的差別:沒保護時錢會「人間蒸發」;有 ACID 時整筆交易回滾,錢不會憑空消失。
原子性的精髓:要嘛兩個帳戶都更新(轉帳成功),要嘛都不動(回滾)。絕不允許「A 扣了、B 沒加」這種破壞總額的中間狀態。
| 性質 | 意思 | 白話 |
|---|---|---|
| Atomicity 原子性 | 交易全成或全不成 | 轉帳兩步要嘛都做要嘛都不做 |
| Consistency 一致性 | 交易前後符合規則約束 | 不會出現負餘額等違規狀態 |
| Isolation 隔離性 | 併發交易互不干擾 | 同時操作像排隊逐一完成 |
| Durability 持久性 | 提交後永久保存 | 當機也不遺失已提交資料 |
ACID 與 Schema 是資料庫可靠性的基礎,iPAS 中級科目二考點。重點:ACID(原子性、一致性、隔離性、持久性)確保交易可靠;Schema 規範資料的結構與型別。易混點:關聯式資料庫重 ACID 與固定 schema(schema-on-write)、適合交易;NoSQL 常為效能與擴展放寬一致性(BASE)、用彈性 schema。情境:選資料庫時權衡一致性與擴展性。
想練情境題與詳解 → AI 學習與考證地圖
資料庫交易的四大保證:Atomicity 原子性、Consistency 一致性、Isolation 隔離性、Durability 持久性,確保交易可靠、資料正確。
原子性=交易全成或全敗;一致性=交易前後都符合規則;隔離性=並行交易互不干擾;持久性=提交後即使當機也不丟。
ACID 強一致(傳統關聯式 DB);BASE(基本可用、軟狀態、最終一致)犧牲即時一致換高可用與擴展,常見於 NoSQL 與分散式。
CAP 定理下,網路分區時無法同時兼顧一致性與可用性;大規模系統常選可用加最終一致,容忍短暫不一致。
影響資料來源的可信與即時性;了解來源是強一致還是最終一致,才知道資料是否可能短暫不同步、影響分析正確性。