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

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