如果一個資料庫是ACID相容的，它意味著什麼？
在電腦科學中，ACID（原子性、一致性、隔離性、永續性）是資料庫事務的一組屬性，旨在保證資料的有效性，即使出現錯誤、電源故障和其他意外情況。在資料庫的上下文中，滿足ACID屬性的資料庫操作序列（可以被視為對資料的單個邏輯操作）被稱為事務。例如，從一個銀行賬戶向另一個賬戶轉移資金，即使涉及多個更改（如從一個賬戶借記和向另一個賬戶貸記），也是一個單一的事務。

1983年，Andreas Reuter和Theo Härder創造了ACID這個縮寫，基於Jim Gray的早期工作，Jim Gray在描述事務概念時命名了原子性、一致性和永續性，但沒有隔離性。這四個屬性是事務正規化的主要保證，它影響了資料庫系統開發的許多方面。

根據Gray和Reuter的說法，IBM資訊管理系統早在1973年就支援了ACID事務（儘管縮寫是後來建立的）。

原子性
主要文章：原子性（資料庫系統）
事務通常由多個語句組成。原子性保證每個事務被視為一個單獨的「單元」，它要麼完全成功，要麼完全失敗：如果組成事務的任何語句未能完成，則整個事務失敗，資料庫保持不變。原子系統必須在每種情況下都保證原子性，包括電源故障、錯誤和崩潰。原子性的保證防止了對資料庫的更新僅部分發生，這可能比直接拒絕整個系列造成更大的問題。因此，另一個資料庫客戶端無法觀察到事務正在進行中。在某一時刻，它尚未發生，而在下一時刻，它已經完全發生（或者如果事務在進行中被取消，則什麼也沒有發生）。

一致性
主要文章：一致性（資料庫系統）
一致性確保事務只能將資料庫從一個一致狀態帶到另一個一致狀態，保留資料庫不變數：寫入資料庫的任何資料必須根據所有定義的規則（包括約束、級聯、觸發器和任何組合）有效。這透過非法事務防止資料庫損壞。引用完整性保證主鍵-外來鍵關係。

隔離性
主要文章：隔離性（資料庫系統）
事務通常是併發執行的（例如，多個事務同時讀寫表）。隔離性確保事務的併發執行使資料庫處於與按順序執行事務時相同的狀態。隔離是併發控制的主要目標；根據使用的隔離級別，不完整事務的影響可能對其他事務不可見。

永續性
主要文章：永續性（資料庫系統）
永續性保證一旦事務提交，即使系統故障（例如電源故障或崩潰），它也將保持提交狀態。這通常意味著已完成的事務（或其效果）記錄在非易失性儲存器中。
ACID 是首字母縮寫詞，代表原子性、一致性、隔離性和永續性。
原子性意味著動作要麼完全發生，要麼根本不發生；不存在部分寫入或僅完成部分操作的情況。對於資料庫來說，這意味著如果資料是在單個事務中寫入的，則該事務要麼完全完成，要麼完全失敗，並且不會留下部分或損壞狀態的資料。
一致性意味著事務將狀態從一種有效狀態轉移到另一種有效狀態，而無法進入無效狀態。
隔離意味著同一資料庫的多個讀取器/寫入器不會互相干擾，並且可以繼續進行，而不必擔心發生另一個操作的影響。
永續性意味著狀態在故障和關閉時得以保留，例如該狀態被持久儲存到永久儲存中。