Я не хочу углубляться в теоретические материалы, которые можно прочитать во множестве очень хороших книг о дизайне систем управления базами данных.
В базах данных, следующих за пессимистическим подходом к приобретению и освобождению замков, все четыре уровня изоляции реализованы с использованием замков. Существует множество оптимистичных подходов (например, FOCC - оптимизация прямого контроля вперед, а также BOCC - назад ...), которые отслеживают данные, которые оператор чтения DML читал или писал, и если транзакция должна быть совершена он проверяет эти наборы для чтения и записи против всех других транзакций. Если эти множества не пересекаются, транзакция может быть записана и совершена. Если прочитанный набор транзакций сталкивается с набором записей другой (совершенной) транзакции, системе базы данных приходится откатывать транзакцию. Это можно сделать без использования блокировок. Эти оптимистичные подходы хорошо изучены и могут применяться без большого штрафного штрафа , если столкновений более или менее исключительны и линяют их число.
@duffymo Я не думаю, что это вопрос. – Matten