logo
Шпора ПРИС для Тани

Транзакция, ее свойства. Модель транзакции в стандарте sql. Журнализация транзакций.

Транзакция – это неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации).

Например, если вы продаете товар клиенту, то ваша транзакция будет состоять, по крайней мере, из двух частей (операторов): вам необходимо обновить склад, уменьшив количество проданных единиц товара в некоторой таблице, а также обновить таблицу счетов для того, чтобы затем выставить счет клиенту.

Если эта последовательность работ будет прервана, то БД не будет соответствовать реальному объекту.

Результаты действия всех операторов, входящих в транзакцию, либо полностью принимаются, либо полностью отвергаются.

Транзакция переводит БД из одного устойчивого состояния в другое.

Транзакция может быть представлена отдельной программой некоторого приложения или ее частью.

Для транзакции возможны два варианта завершения:

Свойства транзакции:

В стандарте ANSI/ISO SQL определена модель транзакции.

Стандарт SQL определяет, что:

Таким образом, SQL обеспечивает поддержку транзакций с помощью двух операторов:

  1. COMMIT – сохраняет данные на физическом носителе.

  2. ROLLBACK – восстанавливает предыдущее состояние базы данных.

Возможность реализации транзакций предполагает способность системы сохранять промежуточные состояния базы данных, необходимые для отката транзакций.

Сохранение требуемых состояний осуществляется посредством специального механизма, который называется журналом транзакций. Журнал транзакций – это ведение изменений БД.

Целью журнализации изменений БД является обеспечение возможности восстановления согласованного состояния БД после любого сбоя.

Общими принципами восстановления являются:

С помощью журнала транзакций отслеживаются все транзакции, вносящие изменения в базу данных. Информация, хранящаяся в журнале транзакций, используется для восстановления базы данных в операциях ROLLBACK.