5.1. Транзакции
Транзакцией называется последовательность элементарных операций, выполняемых над базой данных и переводящих базу данных из одного непротиворечивого состояния в другое. Транзакция – это логическая единица работы с базой данных [ 2 ].
Рассмотрим пример транзакции. Предположим, в базе данных хранятся сведения о наличии товаров на складах и в магазинах торговой фирмы. При перемещении некоторого товара со склада в магазин в базе данных необходимо выполнить несколько изменений: а) уменьшить количество единиц товара, хранящегося на складе, на заданную величину; б) соответственно увеличить количество единиц данного товара в магазине. Следовательно, рассматриваемая транзакция представляет собой не отдельную операцию, реализуемую СУБД, а скорее, согласование нескольких таких операций.
При успешном завершении транзакции полученные результаты сохраняются во внешней памяти (фиксация транзакций).
Если во время выполнения транзакции (до ее завершения) произойдет сбой, база данных останется в несогласованном состоянии. Это является следствием того, что в промежуточных точках выполнения транзакции целостность базы данных нарушается (товар со склада уже отправлен, а в магазин он еще не поступил). Для восстановления базы данных (ее возвращения в исходное состояние), действия, уже выполненные такими транзакциями, отменяются (откат транзакций).
Транзакции должны обладать следующими свойствами:
атомарности (Atomicity) – транзакция должна выполняться полностью или не выполняться совсем;
согласованности (Consistency) – транзакция переводит базу данных из одного согласованного состояния в другое с возможным нарушением согласованности в промежуточных точках транзакции;
изолированности (Isolation) – транзакции должны выполняться автономно друг от друга, при этом изменения, вносимые в базу данных некоторой транзакцией, до ее фиксации должны быть скрыты от других транзакций;
долговечности (Durability) – после завершения и фиксации транзакции, все изменения, вызванные этой транзакцией в базе данных, сохраняются даже при возникновении сбоев в системе.
Транзакции, удовлетворяющие перечисленным требованиям, называют ACID-транзакциями.
- Содержание
- Предисловие
- Введение
- 1. Основные понятия баз данных
- 1.1. Банк данных и его компоненты
- Пользователи
- Прикладные
- 1.2. Модели данных
- 2. Целостность баз данных
- Условие на значение “Парус” or “Волна” or “Лотос”
- 3. Внутренняя организация субд
- 3.1. Общие положения
- 3.2. Линейный список
- 3.3. Инвертированный список
- 3.4. Индексы
- 3.5. Хеширование
- Область переполнения
- 3.6. Кластеризация
- 4. Распределенная обработка данных
- 4.1. Режимы работы с базой данных
- Параллельный
- 4.2. Архитектура «клиент-сервер»
- Приложения
- 4.3. Модели «клиент-сервер»
- 4.4. Управление распределенными данными
- 5. Восстановление баз данных
- 5.1. Транзакции
- 5.2. Журнал транзакций
- 5.3. Выполнение транзакций в многопользовательских системах
- 6. Защита баз данных
- 7. Основы проектирования реляционных баз данных
- 7.1. Этапы проектирования
- 7.2. Построение концептуальной модели предметной области
- 7.3. Логическое проектирование базы данных
- 7.4. Нормализация отношений
- 7.5. Автоматизированные технологии проектирования баз данных
- Заключение
- Библиографический список