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

[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м отмена правки участника 5.183.29.86 к версии НСНУ: порча викиразметки статьи
→‎Уровни изоляции транзакций: единообразие терминологии
Строка 27:
 
Уровни описаны в порядке увеличения изолированности транзакций и, соответственно, надёжности работы с данными.
* '''0 — Чтение неподтверждённыхнезафиксированных данных''' (Read Uncommitted) — чтение незафиксированных изменений как своей транзакции, так и параллельных транзакций. Нет гарантии, что данные, изменённые другими транзакциями, не будут в любой момент изменены в результате их отката, поэтому такое чтение является потенциальным источником ошибок. Невозможны потерянные изменения (lost changes), возможны грязное чтение (dirty read), неповторяемое чтение и фантомы.
* '''1 — Чтение подтверждённыхзафиксированных данных''' (Read Committed) — чтение всех изменений своей транзакции и зафиксированных изменений параллельных транзакций. Потерянные изменения и грязное чтение не допускается, возможны неповторяемое чтение и фантомы.
* '''2 — Повторяемое чтение''' (Repeatable Read, Snapshot) — чтение всех изменений своей транзакции, любые изменения, внесённые параллельными транзакциями после начала своей, недоступны. Потерянные изменения, грязное и неповторяемое чтение невозможны, возможны фантомы.
* '''3 — Сериализуемый''' (Serializable) — [[Сериализуемость|сериализуемые]] транзакции. Результат параллельного выполнения сериализуемой транзакции с другими транзакциями должен быть логически эквивалентен результату их какого-либо последовательного выполнения. Проблемы синхронизации не возникают.