Что такое транзакция
Коротко
Транзакция — это операция, которая выполняется целиком или не выполняется вовсе. В банке это перевод: деньги списываются со счёта отправителя и зачисляются получателю, и если зачисление не прошло, списание отменяется. В базе данных транзакция точно так же объединяет несколько изменений в одно неделимое действие.
Транзакция простыми словами
Представьте перевод ста рублей с карты на карту. Внутри это два действия: уменьшить баланс одного счёта и увеличить баланс другого. Если после списания что-то сломается и деньги не дойдут, клиент потеряет свои сто рублей. Чтобы этого не случилось, оба действия объединяют в транзакцию: пока не выполнены оба, система считает, что не выполнено ни одно.
То же слово используют в базах данных. Там транзакция — это набор команд, которые применяются к базе вместе. Например, при удалении поста на форуме нужно удалить и комментарии к нему. Если удалить только пост, комментарии останутся висеть без него. Транзакция гарантирует, что либо исчезнет и то и другое, либо ничего не изменится.
Какие бывают транзакции
- Банковские — переводы, оплата картой, снятие наличных. Проходят через платёжную систему и банк, у каждой есть уникальный номер для поиска.
- В базах данных — группа команд, которая меняет записи согласованно. Используется в учётных системах, интернет-магазинах, банковских программах.
- В блокчейне — запись о переводе криптовалюты. Её подписывают ключом отправителя и рассылают по сети; после подтверждения запись остаётся в цепочке блоков навсегда.
Как проходит перевод денег
Когда вы платите картой в магазине, транзакция проходит несколько шагов. Касса запрашивает у банка-эквайера разрешение на списание, тот связывается с платёжной системой, а она — с банком, выпустившим вашу карту. Если на счёте хватает денег и карта не заблокирована, банк подтверждает операцию, и только тогда касса печатает чек.
В каждом звене есть свои проверки: не истёк ли срок карты, не превышен ли лимит, не похожа ли операция на мошенническую. Если проверка не пройдена, транзакция отклоняется, и деньги остаются на счёте. Поэтому в чеке иногда появляется слово «отказ» — это не списание, а неудачная попытка.
Чем транзакция отличается от простой операции
| Транзакция | Простая операция | |
|---|---|---|
| Что происходит при сбое | Все изменения отменяются, данные остаются прежними | Часть изменений может сохраниться, часть — нет |
| Видимость для других | Промежуточные состояния скрыты, пока транзакция не завершена | Каждое действие видно сразу |
| Пример | Перевод денег между счетами | Запись одного поля в таблице |
Частые вопросы
Что значит «транзакция отклонена»?
Это значит, что операция не была выполнена: банк или платёжная система не дали разрешения. Деньги при этом не списываются, но банк-эмитент может на время заморозить сумму на счёте — обычно она возвращается в течение нескольких дней.
Чем транзакция отличается от перевода?
Перевод — это конкретное действие с деньгами, а транзакция — способ его выполнения, при котором все шаги происходят вместе. Перевод можно сделать и без транзакции, но тогда при сбое деньги могут потеряться.
Что такое ACID?
Это четыре свойства, которым должна соответствовать надёжная транзакция в базе данных: атомарность (всё или ничего), согласованность (данные не нарушают правил), изолированность (параллельные транзакции не мешают друг другу) и долговечность (после подтверждения изменения не пропадут даже при сбое).
Можно ли отменить транзакцию в блокчейне?
После того как транзакция попала в блок и получила подтверждения сети, отменить её обычными средствами нельзя. Вернуть деньги можно только если получатель сам сделает обратный перевод.
Когда транзакции — часть вашего бизнеса
Понять, где в компании теряются деньги и заявки
Если вы принимаете оплату, обрабатываете заявки или ведёте учёт, каждая транзакция оставляет след в рекламных кабинетах, CRM и кассе. Когда эти данные не сходятся, собственник видит выручку, но не видит, какой канал или клиент приносит прибыль.
Я собираю цифры бизнеса на одном экране и настраиваю обновление каждый день, чтобы вы видели, где рвётся цепочка от заявки до оплаты.