Транзакция SQL
Вступление
Транзакция - это последовательность операций, выполняемых (с использованием одного или нескольких операторов SQL) над базой данных как единая логическая единица работы. Эффекты всех операторов SQL в транзакции могут быть либо зафиксированы (применены к базе данных), либо полностью отменены (отменены из базы данных). Транзакция базы данных должна быть атомарной, последовательной, изолированной и долговечной. Позже мы обсудили эти четыре момента.
Чтобы понять концепцию транзакции, рассмотрим банковскую базу данных. Предположим, что клиент банка переводит деньги со своего сберегательного счета (SB a / c) на свой счет овердрафта (OD a / c), выписка будет разделена на четыре блока:
- Дебет СБ а / с.
- Кредит ОД а / к.
- Запись в журнале транзакций
- Завершение транзакции
Оператор SQL для дебетования SB a / c выглядит следующим образом:
SET баланс = баланс - 1000
ГДЕ account_no = 932656;
Оператор SQL для кредитования OD A / C выглядит следующим образом:
SET баланс = баланс + 1000
ГДЕ account_no = 933456;
Оператор SQL для записи в журнале транзакций выглядит следующим образом:
(100896, «Tansaction on Benjamin Hampshair a / c», «26-август-08» 932656, 933456, 1000);
Оператор SQL для завершения транзакции выглядит следующим образом:
Транзакция базы данных должна быть атомарной, последовательной, изолированной и долговечной. Ниже мы обсудили эти четыре пункта.
Атомная: транзакция - это логическая единица работы, которая должна быть либо завершена со всеми изменениями данных, либо ни одна из них не выполнена.
Согласованно: в конце транзакции все данные должны оставаться в согласованном состоянии.
Изолированный: модификации данных, выполняемые транзакцией, должны быть независимыми от другой транзакции. Если это не произойдет, результат транзакции может быть ошибочным.
Долговечный: по завершении транзакции эффекты изменений, выполненных транзакцией, должны быть постоянными в системе.
Часто эти четыре свойства транзакции обозначаются как ACID .
Мы объяснили вышеупомянутые четыре свойства перевода на следующем примере:
Пример перевода средств
- Транзакция для перевода 1000 долларов со счета X на счет Y:
- чтения (X)
- X = X –1000
- записи (Х)
- готовы)
- Y = Y + 1000
- написать (Y)
- Требование атомарности - если транзакция завершится неудачей после шага 3 и до шага 6, система должна убедиться, что ее обновления не отражены в базе данных, иначе возникнет несогласованность.
- Требование согласованности - сумма X и Y не изменяется при выполнении транзакции.
- если между шагами 3 и 6 другой транзакции будет разрешен доступ к частично обновленной базе данных, он увидит несогласованную базу данных (сумма X + Y будет меньше, чем должна быть).
- Изоляция может быть обеспечена тривиально, последовательно выполняя транзакции, то есть одну за другой.
- Однако одновременное выполнение нескольких транзакций имеет значительные преимущества, как мы увидим позже.
- Требование долговечности - после того, как пользователь будет уведомлен о завершении транзакции (т. Е. Произошла передача 1000 долларов США), обновления базы данных транзакцией должны сохраняться, несмотря на сбои.
Начало транзакции
Транзакция начинает инициировать выполнение нескольких операторов SQL. Начало транзакции гарантирует атомарность транзакции. После начала он может либо сделать изменения постоянными, либо откатиться, чтобы отменить изменения, чтобы оставить базу данных без изменений.
Передача транзакции
При фиксации транзакции она закрывается явным образом, и изменения, выполняемые транзакцией, становятся постоянными.
Откат транзакции
При откате транзакции транзакция явно закрывается, и любые изменения, сделанные транзакцией, отбрасываются.
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущая: Процедура SQL - создание, изменение, удаление
Далее: Безопасность базы данных SQL Создание пользователей
Новый контент: Composer: менеджер зависимостей для PHP , R программирования