Транзакции в базах данных | Статья в журнале «Молодой ученый»

Автор:

Рубрика: Информатика

Опубликовано в Молодой учёный №12 (146) март 2017 г.

Дата публикации: 24.03.2017

Статья просмотрена: 17 раз

Библиографическое описание:

Папинашвили В. Г. Транзакции в базах данных // Молодой ученый. — 2017. — №12. — С. 29-30. — URL https://moluch.ru/archive/146/40903/ (дата обращения: 19.09.2018).



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

Ключевые слова: базы данных, транзакции, язык SQL

При работе с базой данных существует вероятность испортить или потерять данные.

Приведем пример перевода денег с одного счета на другой. Для этого нужно выполнить несколько операторов SQL. Если в процессе их выполнения произойдет какой-нибудь аппаратный или программный сбой, из-за которого не выполнится один или несколько операторов, то может произойти так, что деньги будут сняты с одного счета, но не поступят на другой. Чтобы этого не произошло, предпринимаются специальные меры, суть которых состоит в том, что несколько SQL-запросов определяются как единый блок, называемый транзакцией. В транзакции либо все операторы выполняются успешно, либо не один из них не выполняется, и база данных возвращается в начальное состояние, в котором она находилась до начала выполнения операторов транзакции.

Из этого следует, что в данном примере необходимо избегать такой ситуации, когда одно из обновлений будет завершено, а другое — нет, поскольку в этом случае база данных находится в несогласованном состоянии.

Синтаксис транзакции предельно прост и понятен. Она начинается с выполнения операции BEGINTRANSACTION и завершается операцией COMMIT или ROLLBACK:

− Оператор COMMIT (завершить выполнение) сигнализирует об удачном окончании транзакции. Он сообщает диспетчеру транзакций, что логическая единица работы удачно завершена, база данных вновь находится (или будет находиться после выполнения этого оператора) в согласованном состоянии, а все запросы и обновления, выполненные данной транзакцией, теперь могут быть зафиксированы, т. е. внесены в базу данных.

− Оператор ROLLBACK (откат) применяется тогда, когда необходимо отменить изменения, внесенные транзакцией, и восстановить базу данных в прежнем состоянии. Оператор сообщает диспетчеру транзакций, что произошел какой-то сбой в системе, база данных находится в несогласованном состоянии и следует осуществить откат всех проведенных при выполнении этой транзакции запросов и обновлений, т. е. они должны быть отменены, а база данных возвращена в исходное состояние.

Характеризуется транзакция четырьмя основными свойствами, обычно называемыми свойствами АСИД — Атомарность, Согласованность. Изолированность, Долговечность. На английском языке эта аббревиатура также обозначается ACID — Atomicity, Consistency, Isolation, Durability.

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

Согласованность (целостность). Транзакция переносит базу данных из одного согласованного (целостного) состояния в другое, также целостное. В процессе выполнения транзакции база данных может временно пребывать в несогласованном состоянии.

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

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

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

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

Долговременность. После того как транзакция завершила выполнение и зафиксирована оператором COMMIT, результат ее выполнения гарантированно сохраняется в базе данных. При любых системных сбоях, используя ресурсы сервера, можно восстановить все зафиксированные транзакции. Восстановление незафиксированных транзакций сервер, разумеется, не гарантирует.

Таким образом, в данной статье были рассмотрены транзакции, их синтаксис, а именно операторы BEGINTRANSACTION, COMMIT, ROLLBACK, а также 4 основных свойства транзакций (атомарность, согласованность, изоляция и долговременность).

Литература:

  1. Дейт К. Дж. Введение в системы баз данных, 8-е издание: Пер. с англ. / К. Дж. Дейт. — М: Издательский дом «Вильяме». 2005. — 1328 с.
  2. Ржеуцкая С. Ю. База данных. Язык SQL: учеб. пособие / С. Ю. Ржеуцкая. — Вологда: ВоГТУ, 2010. — 159 с.
  3. Дунаев В. В. Базы данных. Язык SQL для студента / В. В. Дунаев. — СПб.: БХВ-Петербург, 2007. — 320 с.
Основные термины (генерируются автоматически): база данных, COMMIT, транзакция, баз данных, SQL, ROLLBACK, BEGINTRANSACTION, несогласованное состояние, оператор, ACID.


Ключевые слова

базы данных, транзакции, язык SQL

Похожие статьи

Восстановление и параллельность как аспекты управления...

Под восстановлением [1] понимается возвращение базы данных в то самое «правильное» состояние, в котором она находилась до сбоя системы. Например, в рассмотренном варианте с банковской транзакцией база данных и система будут восстановлены таким образом...

Решение проблем параллельной обработки транзакций и выход...

Подход свойственен для Oracle, DB2, MS SQL Server и т. п.

Транзакции в базах данных.

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

Экспорт данных о ролевой политике безопасности из Системы...

«On commit refresh» — 7. «Query rewrite» — 8.

Использование апостериорного анализа данных для обнаружения аномалий в SQL-запросах к базам данных.

СУБД Oracle: DDL триггер, как средство контроля изменения...

Контроль изменений в структуре базы данных (БД), с

Начав с вопроса, как отследить изменение структуры таблиц в определенной схеме данных

Отметим, что начиная с версии 9i в СУБД Oracle появилась функция ora_sql_text, выдающая текст оператора, вызвавшего...

Компьютерная технология автоматизирования информационной...

SQL, баз данных, необходимая информация, автоматизированная система, DOLJNOST, информационная система, база данных, возможность, данные, пользователь.

Организация доступа к реляционной базе данных на основе...

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

Некоторые особенности использования технологии noSQL

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

Попробуем рассмотреть разницу SQL — NoSQL БД. Для данных SQL характерно требование ACID (Atomicity, Consistency, Isolation, Durability...

Выбор SQL Server для медицинского учреждения

безопасность хранения информации. На сегодня известно большое число различных серверов баз данных SQL.

Транзакционная целостность (позволяет выполнять сразу несколько транзакций над одной таблицей).

Обсуждение

Социальные комментарии Cackle

Похожие статьи

Восстановление и параллельность как аспекты управления...

Под восстановлением [1] понимается возвращение базы данных в то самое «правильное» состояние, в котором она находилась до сбоя системы. Например, в рассмотренном варианте с банковской транзакцией база данных и система будут восстановлены таким образом...

Решение проблем параллельной обработки транзакций и выход...

Подход свойственен для Oracle, DB2, MS SQL Server и т. п.

Транзакции в базах данных.

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

Экспорт данных о ролевой политике безопасности из Системы...

«On commit refresh» — 7. «Query rewrite» — 8.

Использование апостериорного анализа данных для обнаружения аномалий в SQL-запросах к базам данных.

СУБД Oracle: DDL триггер, как средство контроля изменения...

Контроль изменений в структуре базы данных (БД), с

Начав с вопроса, как отследить изменение структуры таблиц в определенной схеме данных

Отметим, что начиная с версии 9i в СУБД Oracle появилась функция ora_sql_text, выдающая текст оператора, вызвавшего...

Компьютерная технология автоматизирования информационной...

SQL, баз данных, необходимая информация, автоматизированная система, DOLJNOST, информационная система, база данных, возможность, данные, пользователь.

Организация доступа к реляционной базе данных на основе...

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

Некоторые особенности использования технологии noSQL

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

Попробуем рассмотреть разницу SQL — NoSQL БД. Для данных SQL характерно требование ACID (Atomicity, Consistency, Isolation, Durability...

Выбор SQL Server для медицинского учреждения

безопасность хранения информации. На сегодня известно большое число различных серверов баз данных SQL.

Транзакционная целостность (позволяет выполнять сразу несколько транзакций над одной таблицей).

Задать вопрос