Вопрос проверяет понимание механизмов конкурентного доступа и согласованности данных.
Блокировки в БД ограничивают одновременный доступ к данным. Они нужны, чтобы несколько транзакций не повредили одни и те же записи. Без блокировок данные могли бы постоянно оказываться в некорректном состоянии. Это базовый механизм обеспечения целостности.
Блокировка — это механизм, который временно ограничивает доступ других транзакций к данным.
В многопользовательской системе несколько операций могут выполняться параллельно.
Предотвращение конфликтов
два UPDATE одной строки
чтение «грязных» данных
Гарантия согласованности
данные не меняются неожиданно
транзакции изолированы друг от друга
Поддержка ACID
изоляция
атомарность
блокировки строк
блокировки таблиц
разделяемые и эксклюзивные
SELECT * FROM users WHERE id = 1 FOR UPDATE;
Такая строка будет заблокирована до конца транзакции.
Блокировки — фундамент конкурентной работы с БД и обязательный инструмент для корректных транзакций.