Databases Basics - Transactions - общ въпрос
Колеги,
Бихте ли коментирали защо в базите данни е необходимо да има Rollback и Commit? Не е ли по-лесно да се направи проверката преди да се изпълни съответната DML команда?
Пример от упражненията - теглене на пари от банковата сметка. Стартираме транзакция, която ъпдейтва баланса в сметката. Проверяваме дали има наличност. Ако няма, правим rollback, ако има, commit. Не е ли по-логично да е обратния процес - първо проверяваме дали има наличност и чак тогава изпълняваме ъпдейта.
Или пък примера в презентацията - инсърт-ваме проект на служителя и чак тогава гледаме, дали не са станали 3 проектите. Ако да, rollback, else commit. Вместо например ПЪРВО да проверим служителя колко проекта има и ако не са му много, чак тогава да му инсеърт-нем нов.
Не е ли по-лесно проверката да се прави преди манипулацията на данните? Или може би обяснението е в това, че операциите се записват в системни таблици като например deleted & inserted?
Ще съм благодарен за малко повече обяснение по темата.