Блокировка записи

Блокировка записи — это метод предотвращения одновременного доступа к данным в базе данных, чтобы предотвратить противоречивые результаты.

Классический пример демонстрируют два банковских служащих, пытающихся обновить одну и ту же банковскую учетную запись для двух разных транзакций. Служащие 1 и 2 извлекают (то есть копируют) запись учетной записи. Клерк 1 применяет и сохраняет транзакцию. Клерк 2 применяет другую транзакцию к своей сохраненной копии и сохраняет результат на основе исходной записи и его изменений, перезаписывая транзакцию, введенную клерком 1. Запись больше не отражает первую транзакцию, как если бы она никогда не существовала.

Простой способ предотвратить это — заблокировать файл всякий раз, когда запись изменяется любым пользователем, чтобы никакой другой пользователь не мог сохранить данные. Это предотвращает неправильную запись записей, но позволяет обрабатывать только одну запись за один раз, блокируя других пользователей, которым необходимо одновременно редактировать записи.

Чтобы разрешить нескольким пользователям одновременно редактировать таблицу базы данных, а также предотвращать несоответствия, созданные неограниченным доступом, можно восстановить одну запись при её извлечении для редактирования или обновления. Любому, кто пытается получить одну и ту же запись для редактирования, запрещается доступ на запись из-за блокировки (хотя, в зависимости от реализации, они могут просматривать запись, не редактируя её). Когда запись сохранена или изменения отменены, блокировка будет отпущена. Записи могут быть не сохранены, чтобы перезаписывать другие изменения, сохраняя целостность данных.

В теории управления базами данных блокировка используется для реализации изоляции между несколькими пользователями базы данных. Это «I» в сокращенном ACID.

Подробное и авторитетное описание блокировки. было написано Джимом Грей.

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я