Открыть сервисСервис

Транзактный — термин информатики и баз данных

Транзактный — термин, образованный от англ. transaction («транзакция», «операция») и употребляемый в информатике как прилагательное, характеризующее объекты, свойства и режимы, связанные с выполнением транзакций — логически завершённых единиц работы с данными. В русскоязычной технической литературе и документации чаще встречается в составе устойчивых сочетаний: «транзактный процесс», «транзактный менеджер», «транзактная модель данных», «транзактная база данных», «транзактная нагрузка».

Транзакция как исходное понятие

Транзакция — это последовательность операций над данными, которая воспринимается системой как единое атомарное действие: она либо выполняется полностью, либо не выполняется вовсе, не оставляя частичных изменений. Понятие возникло в конце 1960-х — начале 1970-х годов в работах по проектированию систем управления базами данных (СУБД) и было формализовано в модели транзакций, предложенной Джимом Грей (Jim Gray).

Классические свойства транзакции, известные под аббревиатурой ACID:

  • Атомарность (Atomicity) — все операции транзакции выполняются как одно целое;
  • Согласованность (Consistency) — транзакция переводит базу данных из одного корректного состояния в другое;
  • Изолированность (Isolation) — параллельные транзакции не влияют друг на друга;
  • Долговечность (Durability) — зафиксированные изменения сохраняются при сбоях.

Транзактный процесс

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

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

Транзактная модель данных

Транзактная модель данных описывает, каким образом изменения, вносимые транзакциями, отражаются в структуре базы данных. В реляционных СУБД (PostgreSQL, Oracle, Microsoft SQL Server, MySQL) транзактная модель реализуется через журналы повторного выполнения (write-ahead logging): перед изменением страницы данных её предыдущее состояние записывается в журнал, что позволяет восстановить базу после сбоя.

Ключевые механизмы транзактной модели:

Транзактный менеджер

Транзактный менеджер (transaction manager) — компонент СУБД или промежуточного слоя (middleware), отвечающий за управление жизненным циклом транзакций: их начало, фиксацию (commit), откат (rollback), обработку отказов и восстановление после сбоев. В распределённых системах транзактный менеджер координирует участие нескольких серверов в одной транзакции, применяя протоколы двухфазной фиксации (2PC) и их модификации.

Транзактная нагрузка и транзактные базы данных

Транзактной нагрузкой (OLTP — Online Transaction Processing) называют совокупность коротких операций чтения и записи, выполняемых большим числом пользователей одновременно. Системы, рассчитанные на такую нагрузку, оптимизированы под высокую пропускную способность по числу транзакций в секунду (TPS) и низкую задержку ответа.

Транзактные базы данных противопоставляются аналитическим (OLAP): первые хранят актуальные данные и поддерживают множество мелких изменений, вторые — агрегированные данные для сложных запросов. В России транзактные СУБД широко используются в банковской сфере, розничной торговле, госуслугах и телекоммуникациях; среди отечественных разработок — СУБД «Линтер» (Ред Софт), «Ред База Данных», Postgres Pro, разрабатываемые с учётом требований импортозамещения.

Применение

Транзактный подход применяется не только в классических СУБД, но и в распределённых системах, очередях сообщений, системах бронирования, ERP- и CRM-системах. Понятие «транзактный» также встречается в описании аппаратного обеспечения — например, транзактных процессорах и контроллерах, поддерживающих аппаратную фиксацию транзакций.

Источники:

  • Джим Грей, Андреас Райтер. «Транзакционные концепции: руководство по обработке данных»
  • А. Сильбершмидт, К. Мёснер. «Базы данных. Проектирование и реализация»
  • Документация PostgreSQL: «Транакции и блокировки»
  • К. Дж. Дейт. «Введение в системы баз данных»
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru