что значит сумма транзакции

Это такие процедуры, как:

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

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

Как осуществляется транзакция

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

Транзакция предполагает 4 действия и осуществляется в следующей последовательности:

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

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

Источник

Транзакция по банковской карте: что это такое, «запрещена» и другое

Наверняка, многие из вас сталкивались со словом «транзакция» применительно к банковской карте. Но многие почему-то не понимают его. Так вот краткое определение транзакции:

Транзакция – это любая операция на банковской карте, связанная с изменением ее счета.

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

Кратко о произношении

С английского перевода «transaction» – операция, сделка, договор. Традиционно в России и странах СНГ транзакция произносится через «З». Но есть и другой общепринятый вариант написания и произношения, который тоже близок к английскому – транСакция. Вариант через «З» все же является более принятым. Оба варианта означают одно и то же.

Виды и типы транзакций

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

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

Участники транзакции

В любой транзакции по банковской карте участвуют 3 основные стороны:

То же самое на картинке:

Порядок транзакции

Теперь немного покажем схему того, как собственно происходит транзакция:

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

Оффлайн транзакции

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

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

Применяется там, где невозможно установить прямую связь.

Номер транзакции

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

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

Нередко номер транзакции указывается и на чеке!

Отмена транзакции или запрет

В некоторых случаях транзакция может быть отменена любой стороной. Причем, это может произойти чуть позже проведения платежа, во время его (например, сообщение «Транзакция запрещена») или даже гораздо позже (ChargeBack). Мы уже писали об этом выше в примерах. Здесь лишь приведем список наиболее частых вариантов. Вдруг платеж у кого-то из читателей не прошел, но требуется узнать причину его отмены. Вот наш список:

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

Видео про отмену транзакции по карте (ChargeBack):

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

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

Источник

Транзакция — что это такое простыми словами

Что такое транзакция на простом языке

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

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

Термины и определения

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

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

Читайте также:  договор по содержанию и ремонту общего имущества мкд

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

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

Прежде всего, стоит понимать, что сделка происходит не между человеком и магазином, а между двумя банками:

Суть операции заключается в следующем:

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

Источник

Что такое банковская транзакция и как узнать её номер?

Большинство платёжных операций на современном рынке проводится в безналичной форме. Например, клиенты расплачиваются банковскими картами в супермаркетах, на АЗС, подключают автоплатежи для погашения налогов, долгов за ЖКУ, переводят деньги родственникам или коллегам по номеру карты. Такие операции обрабатываются внутренними программами банков и называются транзакциями. Каждой транзакции присваивается уникальный номер, с помощью которого клиент может отследить поступление или списание денежных средств, подать претензию в банк или торговую точку.

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

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

Разновидности транзакций в финансовой сфере

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

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

Транзакция в финансовой сфере. В этом случае понятие транзакции включает все операции по переводу наличных и безналичных денежных средств, ценных бумаг, драгоценных металлов, производных финансовых инструментов между счетами частных лиц и организаций. Например, пользователь индивидуального инвестиционного счёта от Альфа-банка купил четыре облигации ОФЗ для получения процентного дохода. Торговая система Альфа-банка внесла сведения о приобретённых ценных бумагах в личный файл клиента, с расчётного счёта были списаны средства для оплаты ОФЗ согласно текущему курсу. Финансовые транзакции включают операции с денежными средствами и документами (договорами, актами), подтверждаются платёжными поручениями или чеками.

Транзакция в банковской сфере. Частный случай финансовых транзакций, предполагающий перевод денежных средств с расчётного, текущего или кредитного счёта клиента на другие платёжные реквизиты. Например, компания рассчитывается с контрагентом за поставку партии товара, оплачивая счёт банковским переводом. Бухгалтер компании вносит в банк-клиент реквизиты платёжного поручения, указывает требуемую сумму, система обрабатывает расходную транзакцию и списывает средства с расчётного счёта юридического лица. Банковские транзакции в безналичной форме применяются государственными органами, компаниями и частными клиентами, платежи принимаются по реквизитам, номерам платёжных карт или чипам NFC (бесконтактные платежи Apple Pay, Google Pay или Samsung Pay).

Как проводится банковская транзакция? Технические особенности операции

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

Владелец банковского счёта или карты указывает реквизиты для отправки средств. Если транзакция проводится в безналичной форме, плательщик вручную заполняет банковские реквизиты получателя. Например, бухгалтер предприятия формирует платёжные поручения для перечисления командировочных выплат всем сотрудникам. Если транзакция проводится в точке продаж, плательщику нужно приложить карту или смартфон к кассовому терминалу. Например, покупатель в продуктовом гипермаркете прикладывает кредитную карту с модулем Pay Pass для оплаты. Если транзакция проводится онлайн, клиенту нужно указать платёжные данные карты (номер, срок действия, ФИО держателя, код безопасности). Например, клиент онлайн магазина Ozon оплачивает заказ, указывая данные дебетовой карты.

Банк-эквайер передаёт входящую операцию в ЦОД (центр обработки данных). Если транзакция проводится в безналичной форме, функцию банка-эквайера выполняет финансовая организация, открывшая расчётный счёт получателю платежа. Например, компания открыла расчётный счёт для платежей в банке Точка, поэтому все транзакции обрабатывает эта финансовая организация. Если транзакция проводится офлайн или через интернет, банком-эквайером является организация, обслуживающая безналичные платежи в данной торговой точке. Например, сеть продуктовых гипермаркетов пользуется услугами эквайринга от Сбербанка, обрабатывающего все платежи покупателей. ЦОД банка-эквайера проверяет срок действия карты, отсутствие блокировки банковского счёта и затем обращается к банку-эмитенту.

Банк-эмитент карты или счёта списывает средства в адрес получателя. На этом этапе банк, обслуживающий счёт или пластиковую карту, проверяет баланс доступных средств с учётом дневных лимитов, корректность ввода ПИН-кода (для платежей по картам), проводит конвертацию средств (при операциях за границей) и передаёт деньги получателю. Отправленные банком-эмитентом средства поступают на сервер платёжной системы (Visa, MasterCard или Мир), затем поступают на банковский счёт либо карту получателя.

Читайте также:  что делать если не перечислили налоговый вычет в установленный срок

Большинство безналичных транзакций обрабатываются за несколько минут, затем средства поступают на счёт получателя. Однако, ЦОД банка-эквайера или сервер платёжной системы могут задержать фактическое списание средств со счёта плательщика (например, из-за технического сбоя, окончания банковского дня). Такие транзакции получают статус Авторизация ожидает подтверждения, означающий предварительную блокировку средств на счёте плательщика. Например, при использовании дебетовой карты банка Тинькофф с функцией кэшбека бонусные рубли начисляются после подтверждения транзакции банком-эквайером.

По каким причинам банковская транзакция может быть отклонена?

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

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

Как найти номер транзакции при обращении в службу технической поддержки?

Банковские организации, точки продаж, кэшбек-сервисы и платёжные системы требуют предоставлять номер транзакции при обработке любых обращений клиента. Например, пользователь кэшбек-сервиса LetyShops не получил бонусные баллы за покупку на сайте iHerb и создал обращение в службу поддержки. Оператор LetyShops запрашивает номер транзакции, чтобы провести проверку. Расположение и формат номера транзакции зависит от способа проведения платежа.

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

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

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

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

Итоги

Банковская транзакция представляет собой операцию по перечислению денежных средств со счёта клиента на указанные им платёжные реквизиты. Например, к банковским транзакциям относятся платежи за ЖКУ, оплата штрафов, налогов, перевод денежных средств по номеру карты. С точки зрения клиента, транзакцией является любое списание или поступление денежных средств на расчётный счёт. С точки зрения банка, номер транзакции клиента используется для начисления бонусных баллов, процентов за использование кредитных средств.

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

Источник

Что такое транзакция

Транзакция — это набор операций по работе с базой данных (БД), объединенных в одну атомарную пачку.

Транзакционные базы данных (базы, работающие через транзакции) выполняют требования ACID, которые обеспечивают безопасность данных. В том числе финансовых данных =) Поэтому разработчики их и выбирают.

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

Содержание

Что такое транзакция

Транзакция — это архив для запросов к базе. Он защищает ваши данные благодаря принципу «всё, или ничего».

Представьте, что вы решили послать другу 10 файликов в мессенджере. Какие есть варианты:

Кинуть каждый файлик отдельно.

Сложить их в архив и отправить архив.

Вроде бы разницы особой нет. Но что, если что-то пойдет не так? Соединение оборвется на середине, сервер уйдет в ребут или просто выдаст ошибку.

В первом случае ваш друг получит 9 файлов, но не получит один.

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

Казалось бы, ну недополучил файлик, что с того? А если это критично? Если это важные файлики? Например, для бухгалтерии. Потерял один файлик? Значит, допустил ошибку в отчете для налоговой. Значит, огребешь штраф и большие проблемы! Нет, спасибо, лучше файлы не терять!

И получается, что тебе надо уточнять у отправителя:

— Ты мне сколько файлов посылал?

— Да? У меня только 9. Давай искать, какой продолбался.

И сидите, сравниваете по названиям. А если файликов 100 и потеряно 2 штуки? А названия у них вовсе не «Отчет 1», «Отчет 2» и так далее, а «hfdslafebx63542437457822nfhgeopjgrev0000444666589.xml» и подобные. Уж лучше использовать архив! Тогда ты или точно всё получил, или не получил ничего и делаешь повторную попытку отправки.

Так вот! Транзакция — это тот же архив для запросов. Принцип «всё, или ничего». Или выполнены все запросы, которые разработчик упаковал в одну транзакцию, или ни один.

Допустим, вы переводите все деньги с одной карточки на другую. Выглядит это «внутри» системы как несколько операций:

delete from счет1 where счет = счет 1

insert into счет2 values (‘сумма’)

Принцип «всё или ничего» тут очень помогает. Было бы обидно, если бы деньги со счета1 списались, но на счет2 не поступили. Потому что соединение оборвалось или вы в номере счета опечатались и система выдала ошибку.

Читайте также:  что делать если проглотила вставной зуб

Но благодаря объединению запросов в транзакцию при возникновении ошибки зачисления мы откатываем и операцию списания. Деньги снова вернулись на счет 1!

Если говорить по-научному, то транзакция — упорядоченное множество операций, переводящих базу данных из одного согласованного состояния в другое. Согласованное состояние — это состояние, которое подходит под бизнес-логику системы. То есть у нас не остается отрицательный баланс после перевода денег, номер счета не «зависает в воздухе», не привязанный к человеку, и тому подобное.

Как отправить транзакцию

Чтобы обратиться к базе данных, сначала надо открыть соединение с ней. Это называется коннект (от англ. connection, соединение). Коннект — это просто труба, по которой мы посылаем запросы.

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

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

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

Можно, конечно, каждый раз закрывать соединение с БД. И на каждое действие открывать новое. Но эффективнее переиспользовать текущие. Потому что создание нового коннекта — тяжелая операция, долгая.

При настройке приложения администратор указывает, сколько максимально открытых соединений с базой может быть в один момент времени. Это называется пул соединений — количество свободных труб.

Разработчик берет соединение из пула и отправляет по нему транзакцию. Как только транзакция закрывается (неважно, успешно она прошла или откатилась), соединение возвращается в пул, и его может использовать следующая бизнес-операция.

Как открыть транзакцию

Зависит от базы данных. В Oracle транзакция открывается сама, по факту первой изменяющей операции. А в MySql надо явно писать «start transaction».

Как закрыть транзакцию

Тут есть 2 варианта:

COMMIT — подтверждаем все внесенные изменения;

ROLLBACK — откатываем их;

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

Например, я пишу запрос:

Запрос выполнен успешно, хорошо! Теперь, если я сделаю select из этой таблицы, прям тут же, под своим запросом — он находит Иванова! Я могу увидеть результат своего запроса.

Но! Если открыть графический интерфейс программы, никакого Иванова мы там не найдем. И даже если мы откроем новую вкладку в sql developer (или в другой программе, через которую вы подключаетесь к базе) и повторим там свой select — Иванова не будет.

А все потому, что я не сделала коммит, не применила изменения:

Я могу добавить кучу данных. Удалить полтаблицы. Изменить миллион строк. Но если я закрою вкладку sql developer, не сделав коммит, все эти изменения потеряются.

Когда я впервые столкнулась с базой на работе, я часто допускала такую ошибку: подправлю данные «на лету» для проведения теста, а в системе ничего не меняется! Почему? Потому что коммит сделать забыла.

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

И фамилия = «Тестовый»

Удалили. Делаем select count — посмотреть количество записей в таблице. А там вместо миллиона строк осталось 100 тысяч! Если база реальная, то это очень подозрительно. Врядли там было СТОЛЬКО тестовых записей.

Проверяем свой запрос, а мы там где-то ошиблись! Вместо «И» написали «ИЛИ», или как-то еще. Упс. Хорошо еще изменения применить не успели. Вместо коммита делаем rollback.

Тут может возникнуть вопрос — а зачем вообще нужен ROLLBACK? Ведь без коммита ничего не сохранится. Можно просто не делать его, и всё. Но тогда транзакция будет висеть в непонятном статусе. Потому что ее просто так никто кроме тебя не откатит.

Или другой вариант. Нафигачили изменений:

Поменять код города с 495 на 499;

Но видим, что операцию надо отменять. Проверочный select заметил, что база стала неконсистентной. А мы решили «Ай, да ладно, коммит то не сделали? Значит, оно и не сохранится». И вернули соединение в пул.

Следующая операция бизнес-логики берет это самое соединение и продолжает в нем работать. А потом делает коммит. Этот коммит относился к тем 3 операциям, что были внутри текущей транзакции. Но мы закоммитили еще и 10 других — тех, что в прошлый раз откатить поленились. Тех, которые делают базу неконсистентной.

Так что лучше сразу сделайте откат. Здоровей система будет!

Итого

Транзакция — набор операций по работе с базой данных, объединенных в одну атомарную пачку.

Одной операции всегда соответствует одна транзакция, но в рамках одной транзакции можно совершить несколько операций (например, несколько разных insert можно сделать, или изменить и удалить данные. ).

Чтобы отправить транзакцию к базе, нам нужно создать соединение с ней. Или переиспользовать уже существующее. Соединение называют также коннект (англ connection) — это просто труба, по которой отправляются запросы. У базы есть пул соединений — место, откуда можно взять любое и использовать, они там все свободные.

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

COMMIT — подтверждаем все внесенные изменения;

ROLLBACK — откатываем их;

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

Не путайте соединение с базой (коннект) и саму транзакцию. Коннект — это просто труба, операции (update, delete…) мы посылаем по трубе, старт транзакции и commit /rollback — это группировка операций в одну атомарную пачку.

См также:

Блокировки транзакций — что может пойти не так при одновременном редактировании

Источник

Строительный портал