ACID
ACID (англ. Atomicity, Consistency, Isolation, Durability) - це набір властивостей, що гарантують надійну роботу транзакцій бази даних: атомарність, узгодженість, ізольованість, довговічність. Ці вимоги були сформульовані у 1970-х роках науковцем Джимом Греєм.
Зміст |
Вимоги [ред.]
Атомарність (Atomicity) [ред.]
Атомарність гарантує, що жодна транзакція не буде виконана частково. Будуть або виконані всі операції, що беруть участь у транзакції або не виконано жодної. Якщо у процесі роботи однієї з операцій виникне помилка і операція буде відхилена, будуть відхилені також всі інші зміни, здійснені в межах транзакції.
Узгодженість (Consistency) [ред.]
Відповідно до цієї вимоги, система повинна знаходитись в узгодженому, несуперечливому стані до початку дії транзакції і по її завершенню. При цьому вона може знаходитись у неузгодженому стані у процесі виконання транзакції, проте ця неузгодженість завдяки іншим властивостям - атомарності та ізольованості - не буде видимою за межами транзакції.
Наприклад, при переведенні коштів з рахунка на рахунок, кошти можуть спочатку зніматись з першого рахунку, після чого нараховуватись на другий. Відповідно, після зняття коштів, але до їх нарахування система знаходиться в неузгодженому стані - коштів немає на жодному з рахунків. Але після завершення транзакції повна сума буде знаходитись на другому (або першому у випадку відміни транзакції) рахунку.
Ізольованість (Isolation) [ред.]
Ізольованість означає що ніякі проміжні зміни не будуть видимі за межами транзакції аж до її завершення. Питання ізоляції стає актуальним при одночасній роботі багатьох транзакцій з одними й тими ж даними. Згідно з цією вимогою, якщо у двох транзакціях буде спроба змінити одні й ті ж самі дані, одна із них буде відхилена, або ж призупинена до завершення другої.
Довговічність (Durability) [ред.]
Довговічність гарантує, що незалежно від інших проблем після відновлення роботоздатності системи результати завершених транзакцій будуть збережені. Іншими словами, якщо користувач отримав повідомлення про успішне завершення транзакції, то він може бути впевнений, що дані будуть збережені і відновлені у випадку збоїв.
Джерела [ред.]
- Gray, Jim(Вересень 1981). "The Transaction Concept: Virtues and Limitations"(PDF). Proceedings of the 7th International Conference on Very Large Databases, 144–154, 19333 Vallco Parkway, Cupertino CA 95014:Tandem Computers. Retrieved on 2006-11-09.(англ.)
- Gray, Jim, and Reuter, Andreas, Distributed Transaction Processing: Concepts and Techniques. Morgan Kaufmann, 1993. ISBN 1-55860-190-2.(англ.)
|
|||||||||||||||||
