Транзакция (информатика): различия между версиями

[отпатрулированная версия][непроверенная версия]
 
== Свойства транзакций ==
{{main|ACID}}
Одним из наиболее распространённых наборов требований к транзакциям и транзакционным системам является набор [[ACID]] (Atomicity, Consistency, Isolation, Durability). Требования ACID были в основном сформулированы в конце 70-х годов [[Джим Грей|Джимом Греем]]<ref>[http://research.microsoft.com/~gray/papers/theTransactionConcept.pdf Gray, Jim. The Transaction Concept: Virtues and Limitations. Proceedings of the 7th International Conference on Very Large Databases: pages 144—154, 1981]{{ref-en}}</ref>. Вместе с тем существуют специализированные системы с ослабленными транзакционными свойствами<ref>[http://www.informatik.uni-trier.de/~ley/db/books/collections/JajodiaK97.html Advanced Transaction Models and Architectures]{{ref-en}}</ref>.
 
=== Atomicity (атомарность) ===
=== Consistency (согласованность) ===
В соответствии с этим требованием, система находится в согласованном состоянии до начала транзакции и должна остаться в согласованном состоянии после завершения транзакции.
 
Не нужно путать требование согласованности с требованиями целостности (integrity). Последние правила являются более узкими и, во многом, специфичны для [[Реляционная СУБД|реляционных СУБД]]: есть требования целостности типов (domain integrity), целостности ссылок (referential integrity), целостности сущностей (entity integrity), которые не могут быть нарушены физически в силу особенностей реализации системы.
 
 
=== Durability (долговременность, устойчивость) ===
 
Независимо от проблем на нижних уровнях (к примеру, обесточивание системы или сбои в оборудовании), изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу. Другими словами, если пользователь получил подтверждение от системы, что транзакция выполнена, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя.
 
Анонимный участник