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

Транзакция

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

История понятия

Термин «транзакция» (от лат. transactio — сделка, соглашение) изначально использовался в юриспруденции и экономике для обозначения деловых операций. С развитием компьютерных технологий в 1960-х годах это понятие было заимствовано для описания операций с данными. Первые системы управления базами данных (СУБД), такие как IMS (IBM), внедрили механизмы транзакций для обеспечения целостности данных при одновременном доступе множества пользователей. В 1983 году Андреас Ройтер и Тео Хердер сформулировали свойства ACID, ставшие стандартом для транзакционных систем.

В финансовом секторе термин получил распространение с внедрением электронных платежей. Первые банковские транзакции через банкоматы появились в конце 1960-х годов. С развитием интернета и появлением криптовалют (биткоин, 2009 год) понятие транзакции стало ключевым для блокчейн-сетей, где каждая операция записывается в распределённый реестр.

Классификация транзакций

По типу обработки

По сфере применения

По способу инициирования

Свойства транзакций (ACID)

Для обеспечения надёжности транзакции должны удовлетворять четырём свойствам, известным как ACID (Atomicity, Consistency, Isolation, Durability):

Устройство и механизмы

Журнал транзакций

Большинство СУБД и финансовых систем ведут журнал транзакций (лог) — последовательную запись всех изменений данных. Журнал позволяет:

Блокировки

Для обеспечения изолированности используются механизмы блокировок:

В распределённых системах применяются протоколы консенсуса (Paxos, Raft) для согласования изменений между узлами.

Двухфазная фиксация (2PC)

Для распределённых транзакций используется протокол двухфазной фиксации:

  1. Фаза подготовки — координатор запрашивает у всех участников готовность выполнить транзакцию.
  2. Фаза фиксации — если все участники подтвердили готовность, координатор даёт команду на фиксацию; при отказе хотя бы одного участника транзакция отменяется.

Применение

В банковском деле и финансах

Транзакции составляют основу всех платёжных систем. В России обработка финансовых транзакций регулируется Федеральным законом № 161-ФЗ «О национальной платёжной системе» (2011 год). Ключевые элементы:

В базах данных

Транзакции используются в реляционных СУБД (PostgreSQL, MySQL, Oracle Database) для обеспечения целостности данных при конкурентном доступе. Пример: при переводе денег между счетами транзакция гарантирует, что сумма спишется с одного счёта и зачислится на другой, без потери данных.

В блокчейне

В блокчейн-сетях (биткоин, Ethereum) транзакция — это подписанное цифровой подписью сообщение, которое передаётся в сеть для включения в блок. Особенности:

В электронной коммерции

Интернет-магазины и платёжные системы (Яндекс.Касса, Сбербанк Эквайринг) обрабатывают миллионы транзакций в день. Для защиты используются:

Безопасность транзакций

Обеспечение безопасности транзакций включает:

В России действует ГОСТ 28147-89 для шифрования финансовых транзакций, а также требования Центрального банка РФ по защите информации при осуществлении переводов денежных средств.

Критика и ограничения

Проблемы производительности

Транзакции с высоким уровнем изоляции (Serializable) могут существенно снижать производительность системы из-за большого числа блокировок. Для высоконагруженных систем (биржи, платёжные шлюзы) часто используются компромиссные решения — снижение уровня изоляции до Read Committed или применение NoSQL-баз данных, отказывающихся от полной поддержки ACID в пользу скорости (BASE-подход).

Проблемы в распределённых системах

Распределённые транзакции сложны в реализации: протокол двухфазной фиксации может приводить к блокировкам при отказе координатора. В блокчейн-сетях существуют ограничения по пропускной способности (биткоин — около 7 транзакций в секунду, Ethereum — 15-30, Solana — до 4000).

Мошенничество

Финансовые транзакции являются целью мошенников. Распространённые схемы:

Интересные факты

Источники

  1. Федеральный закон от 27.06.2011 № 161-ФЗ «О национальной платёжной системе».
  2. ГОСТ Р ИСО/МЭК 20000-1-2013 «Информационные технологии. Управление услугами».
  3. Gray, J., Reuter, A. «Transaction Processing: Concepts and Techniques» (1993).
  4. Nakamoto, S. «Bitcoin: A Peer-to-Peer Electronic Cash System» (2008).
  5. Материалы Центрального банка Российской Федерации по платёжным системам.
  6. Документация PostgreSQL по транзакциям и уровням изоляции.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →