|
Транзакции
SQL-базы данных
используют транзакции. Это
означает, что изменения данных не
выполняется напрямую в таблицах,
как в локальных базах данных.
Вместо этого клиентное приложение
обращается к серверу с запросом на
выполнение изменений, а сервер
реализует этот пакет операций в
одиночной транзакции.
Для любых
законченных изменений данных
транзакция должна быть завершена
целиком. Если любая из операций
внутри транзакции не выполнилась,
происходит откат(roll back) или, другими словами,
транзакция прерывается и
восстанавливает состояние, имевшее
место до ее начала.
Транзакции
сохраняют постоянство данных на
сервере. Вернемся к нашему примеру
учета. Когда заказ сделан, в таблице
ORDER должны отразиться
изменения, внесенные этим заказом.
Кроме того, в таблице PARTS должно уменьшиться
количество запасных частей на
число, отраженное в заказе. Если по
некоторым причинам произошел сбой
системы между модификациями таблиц
ORDER и PARTS, данные будут
неправильно отражать фактическое
число имеющихся запасных частей.
При инкапсуляции этой операции
внутри транзакции ни одна из таблиц
не будет изменена, пока вся
транзакция не будет выполнена.
Управлять
транзакциями в приложении можно на
уровне сервера или клиента, что
иллюстрируется далее в этой главе.
На
заметку |
Некоторые
локальные базы данных, такие
как Paradox 7, могут поддерживать
транзакции. |
|
|