Возможно, вы захотите просмотреть концептуальное руководство , в частности главу о транзакциях :
Транзакция - это логическая единица работы, которая включаетодин или несколько операторов SQL, выполняемых одним пользователем.[...] Транзакция начинается с первого исполняемого пользователем оператора SQL.Транзакция заканчивается, когда она явно подтверждена или отменена этим пользователем.
Вам не нужно явно начинать транзакцию, это делается автоматически.Вам нужно будет указать окончание транзакции с помощью фиксации (или отката).
Механизм блокировки является основной частью БД, об этом читайте в главе Параллельность и согласованность данных .
Относительно хранимых процедур
Хранимая процедура - это набор операторов, они выполняются в той же транзакции, что и вызывающий сеанс (*).Обычно управление транзакциями (фиксация и откат) принадлежит вызывающему приложению.Вызывающее приложение имеет более широкое представление о процессе (которое может включать несколько хранимых процедур) и поэтому находится в лучшем положении, чтобы определить, находятся ли данные в согласованном состоянии.Хотя вы можете зафиксировать хранимую процедуру, это не является нормой.
(*), за исключением случаев, когда процедура объявлена как автономная транзакция, и в этом случае процедура выполняется как независимый сеанс (спасибо будь здесь сейчас , теперь я вижу твою точку зрения ).