Нет. Это не правильный алгоритм грубой силы для решения проблемы LCS. Смотрите этот случай -
AKBLC
AMBNCK
Ответ LCS этих двух строк должен быть 3. Но в вашем алгоритме он будет вычислять 2 (AK).
Я настоятельно рекомендую использовать режим транзакции для безопасной целостности данных, потому что режим автоматической фиксации может вызвать частичное сохранение данных.
Я только использовал бы явные транзакции, когда Вы делаете вещи, которые являются на самом деле транзакционными, например, давая несколько команд SQL, которые высоко взаимосвязаны. Я предполагаю, что классическим примером этого является банковское приложение - уходящие деньги из одной учетной записи и внесения его в другой учетной записи должны всегда успешно выполняться или перестать работать как пакет, иначе кто-то сорван!
Мы используем транзакции на Так, но только экономно. Большинство наших обновлений базы данных является автономным и атомарным. У очень немногих есть свойства банковского примера выше.
Это обычно обрабатывается для меня на слое интерфейса БД - веб-приложение редко называет несколько хранимых процедур в рамках транзакции. Это обычно называет единственную хранимую процедуру, которая справляется со всей транзакцией, таким образом, веб-приложение только должно волноваться о том, перестало ли это работать.
Обычно веб-приложению не предоставляют доступ к другим вещам (таблицы, представления, внутренние хранимые процедуры), который мог позволить базе данных быть в недопустимом состоянии, если бы они были предприняты, не будучи перенесенным в транзакцию, инициируемую на уровне соединения клиентом до их вызовов.
Существуют исключения к этому, где транзакция инициируется веб-приложением, но они обычно немногочисленны.
Это зависит от того, как CRUD обрабатывает сделанный, если и только если все создания и модификации образцовых экземпляров сделаны в единственном запросе на обновление или запросе на вставку, можно ли использовать автоматическую фиксацию.
Если Вы имеете дело с CRUD в нескольких режиме запросов (плохая идея, IMO) затем, конечно, необходимо определить транзакции явно, поскольку эти запросы были бы, конечно, 'транзакционно связаны', Вы не захотите заканчиваться половиной модели в своей базе данных. Это релевантно, потому что некоторые веб-платформы имеют тенденцию делать вещи, 'несколько запрашивают' путь по различным причинам.
Что касается которого режим транзакции использовать его зависит от того, что можно поддерживать с точки зрения представлений данных (т.е., насколько текущий данные должны быть при наблюдении клиентами) и что необходимо будет поддерживать с точки зрения производительности.
Необходимо использовать транзакции, учитывая, что различные пользователи будут поражать базу данных одновременно. Я рекомендовал бы не использовать автоматическую фиксацию. Используйте скобки явной транзакции. Относительно разрешения каждой транзакции, необходимо заключить в скобки конкретную единицу работы (независимо от того, что это означает в контексте).
Вы могли бы также хотеть изучить различные уровни изоляции транзакции, которые поддерживает Ваша база данных SQL. Они предложат диапазон поведений с точки зрения того, что читающие пользователи видят частично обновленных записей.