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

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

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

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

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

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

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



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

Ключевые слова: базы данных, транзакции, язык 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, база данных, ROLLBACK, SQL, баз данных, транзакция, BEGINTRANSACTION, несогласованное состояние, оператор, ACID.


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

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

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

Роль SQL в среде облачных баз данных

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

Сравнительный анализ методологий проектирования хранилищ данных

Цель данной статьи — сравнительный анализ методологий проектирования хранилищ данных. Формирование критериев сравнения. Описание архитектур, используемых в каждой методологии.

Хранимые процедуры как один из способов повышения производительности информационной системы

В данной статье рассматривается влияние механизма хранимых процедур на производительность информационной системы при работе с базами данных.

Анализ данных на Python

В статье автор подробно исследует аналитические возможности Python, уделяя внимание ключевым библиотекам и методам, которые делают этот язык таким мощным инструментом для работы с данными.

Реляционные и нереляционные базы данных

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

Диагностика утечек памяти в Java-приложениях

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

Технологии и возможности больших данных

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

Классификация сетевого трафика

Приведены классификация сетевого трафика, а также методы на основе порта, полезной нагрузки и статистики трафика.

Анализ производительности и преимуществ разных подходов в управлении данными SQL и NoSQL

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

Современные программные продукты для анализа данных

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

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

Роль SQL в среде облачных баз данных

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

Сравнительный анализ методологий проектирования хранилищ данных

Цель данной статьи — сравнительный анализ методологий проектирования хранилищ данных. Формирование критериев сравнения. Описание архитектур, используемых в каждой методологии.

Хранимые процедуры как один из способов повышения производительности информационной системы

В данной статье рассматривается влияние механизма хранимых процедур на производительность информационной системы при работе с базами данных.

Анализ данных на Python

В статье автор подробно исследует аналитические возможности Python, уделяя внимание ключевым библиотекам и методам, которые делают этот язык таким мощным инструментом для работы с данными.

Реляционные и нереляционные базы данных

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

Диагностика утечек памяти в Java-приложениях

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

Технологии и возможности больших данных

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

Классификация сетевого трафика

Приведены классификация сетевого трафика, а также методы на основе порта, полезной нагрузки и статистики трафика.

Анализ производительности и преимуществ разных подходов в управлении данными SQL и NoSQL

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

Современные программные продукты для анализа данных

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

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