Механизм блокировок обеспечивает синхронизацию доступа к ресурсам (объектам базы данных, таким как записи, страницы данных или таблицы) при одновременной работе нескольких транзакций. 2
Каждая транзакция запрашивает блокировку ресурсов, от которых она зависит. 4 Это не даёт другим транзакциям изменять ресурсы, чтобы избежать ошибок в той, которая запросила блокировку. 4
В момент начала работы с любым объектом этот объект блокируется транзакцией, которая с ним начала работу. 1 Он становится недоступным всем другим транзакциям до окончания той, которая заблокировала объект. 1
После окончания транзакции все заблокированные ею объекты разблокируются и становятся доступными другим транзакциям. 1
Если транзакция обращается к заблокированному объекту, то она остаётся в состоянии ожидания до момента разблокировки этого объекта, после чего она может продолжать обработку данного объекта. 1
Такой механизм помогает избежать проблем, связанных с одновременным выполнением транзакций, таких как пропавшие изменения, неподтверждённые данные, несогласованные данные. 1 Однако он создаёт новые проблемы — задержку выполнения транзакций из-за блокировок. 1