Что значит слово транзакция
Транзакция: что это такое простыми словами
Обычному человеку не всегда понятны специальные банковские термины. И один из них – «транзакция». В этой статье мы подробно разберем вопросы: транзакция, что это такое простыми словами, рассмотрим ее процедуру и виды, а также пути решения возникших сложностей для рядового владельца счета.
Что такое транзакция по банковской карте
Транзакция – это любая операция со счетом в банке, которая приводит как к увеличению, так и к уменьшению баланса.
Оплата покупки при помощи карты – транзакция, что сопровождается уменьшением счета. Получение пенсии на карту – тоже транзакция, которая увеличила баланс. А вот проверка баланса – таковой не является, однако, если банк берет за эту услугу даже незначительную сумму, то оплата проверки является транзакцией.
Понятие произошло от английского transaction обозначающего «сделку». В деловой сфере правильным считается написание и «транзакция» и «трансакция». Слово «транзакция» вне профессиональной банковской сферы обозначает сделку, платеж, соглашение, договор. Также оно используется в программировании.
По банковскому счету выполняются два типа финансовых транзакций:
Приходные, увеличивающие сумму на счету:
Расходные банковские транзакции подразумевают уменьшение финансов на счету:
Участники транзакции
Какой бы ни был тип транзакции, в каждом из финансовых переводов участвуют несколько сторон:
Роль каждого из них важна, и без участия хотя бы одного транзакция по карте будет невозможной.
Транзакция в магазине: что происходит на самом деле?
Прикладывая банковскую карту к платежному терминалу, каждый покупатель запускает сложнейшую цепочку банковских операций, запросов и подтверждений. Все они выполняются в считанные секунды и существенно облегчают жизнь кассиру и покупателю.
Банковская транзакция выполняется в несколько этапов:
Свидетельством удачного списания средств с карты и оплаты покупки становится чек, на котором содержится вся важная информация: сумма покупки, дата и время, номер транзакции.
Онлайн и оффлайн: в чем разница?
С зависимости от оперативности выполнения, транзакции объединяются в две группы:
Онлайн-транзакция проводится мгновенно. Ею мы чаще всего пользуемся, оплачивая товары и снимая зарплату в банкомате. В течение пары секунд банки-участники сделки обмениваются запросами и кодами, и осуществляют перевод средств. От покупателя требуется только подтверждение согласия перевода в виде предоставления карты в магазине, ПИН-кода для терминала или смс-кода при заказе товаров в сети.
Оффлайн-транзакция – означает отложенный платеж. Этим способом чаще всего пользуются компании и фонды для перевода финансов в определенные дни (зарплаты, пенсии). Для проведения сделки не требуется личное участие плательщика. Все необходимые условия задаются заранее, а переводы могут выполняться регулярно.
Защита транзакции
Зачем нужны номера транзакций
Ежедневно крупный банк проводит миллионы операций. И чтоб сотрудники смогли найти необходимую сделку и отличить ее от множества подобных, каждая из них нумеруется.
Собственный номер присваивается транзакции на стадии первичного запроса. Если сумма не поступила адресату, транзакция отклонена или произошел сбой, сотрудники банка по номеру за несколько секунд смогут найти транзакцию в базе, проанализировать ситуацию и принять решение по устранению проблем.
Транзакционный номер доступен владельцу счета. Он указывается на мониторе банкомата, в выписках и на чеках. Чек с номером – гарантия удачной транзакции и страховка на случай, если перевод не дойдет адресату или возникнут другие внештатные ситуации.
Статусы транзакций
Каждой транзакции присущи два статуса:
Главное определение транзакции – ее неразрывность. Она может быть выполнена или нет. Никаких промежуточных статусов и значений быть не может.
Если транзакция отклонена одним из участников, то в зависимости от причин, владелец счета может получить сообщение о приостановке или отклонении.
Что значит «транзакции по вашей карте приостановлены»?
Такое сообщение получает владелец карты, которая временно заблокирована. Причины блокировки могут быть разнообразны:
Также могут блокироваться и отдельные транзакции. Например, для реализации крупного транзакционного перевода банку потребуется дополнительное согласие плательщика на проведение. Или же получатель подозревается в мошенничестве либо незаконной деятельности.
«Транзакция отклонена» – что это означает?
Нередко при попытке оплатить транзакцией платежная система выдает одну из следующих форм отказа: платеж не совершен, транзакция отклонена, запрещена.
Причинами такого отказа могут быть следующие ситуации:
Если на счету точно есть средства, карта не просрочена и проблем с вводом ПИН-кода не было, то за разъяснением причин приостановки транзакций следует позвонить в банк на горячую линию. Также можно лично обратиться в отделение банка.
При сложностях оплаты в интернет-магазинах, причины могут скрываться в работе самого ресурса. Это могут быть технические работы на сайте или сбои в работе платежного сервиса. Попробуйте оплатить заказ через пару часов или обратиться по этому вопросу к консультантам магазина.
В любом случае, если оплатить покупку или перевести деньги не удается, не стоит паниковать. Приостановка и отклонение транзакции – это действенный инструмент для защиты средств клиентов банка, и применяется он для обеспечения финансовой безопасности владельца счета.
Отмена транзакции
Отменить транзакцию можно несколькими способами, в зависимости от вида и цели платежа.
1. Аннулирование операции
Если Вы ошиблись при введении номера карты получателя и отправили деньги неизвестному человеку, отмена займет много времени и сил. Первым делом обратитесь в ваш банк и получите дальнейшие инструкции. Скорее всего придется лично посетить отделение и составить заявление. После сбора информации и подтверждения транзакции к процедуре будет привлечен получатель. Если он согласиться сотрудничать и добровольно вернет средства, вопрос разрешится быстро. В противном случае ситуация будет рассматриваться в суде.
Согласно закону о защите прав потребителей, Вы можете вернуть некоторые товары в магазин в течение 14 дней после оплаты. Сделка может быть отменена или же будет оформлен возврат.
Процедура транзакции при оплате покупки подразумевает временное резервирование средств на карте получателя, а для перевода необходимо подтверждение продавца. Если после оплаты прошло немного времени, то получив заявление на возврат товара, продавец формирует отмену, блокировка с суммы снимается и средства становятся доступны владельцу карты.
Если финансовая транзакция была реализована полностью, и средства поступили на счет продавца, будет задействована процедура возврата. Продавец выполнит транзакцию и средства поступят на ваш счет. Возможно Вам придется подождать до двух недель.
Как работает система транзакций
Оплата пластиковой картой
Что такое транзакция по банковской карте Сбербанка? Это оплата любых счетов без использования наличных. Пластиковая карта уже давно обогнала наличные деньги по частоте и объемам оплаты. И это закономерно, ведь при оплате карточкой никогда не возникнут проблемы отсутствия сдачи и обсчета недобросовестными продавцами. А риск потери и кражи денег стремится к нулю, ведь карта защищена ПИН-кодом, а при потере один звонок в банк блокирует счет.
Пластиковой картой удобно:
Оффлайн-транзакция вне реального времени
Этот способ оплаты удобен для отложенных платежей или в условиях отсутствия соединения с процессинговым центром. Однако на сегодняшний день он все чаще уступает место платежам онлайн и остался востребованным только в корпоративной среде для своевременной выплаты зарплат.
Для отложенного перевода денег с карты выполняется ее электронный оттиск и оформляется специальная заявка. Эти данные пересылаются банку-эмитенту для оформления платежа.
Перевод средств между счетами
Денежный перевод – самый простой способ пополнить свой счет, или перевести любую сумму родным и близким. В рамках одного банка комиссия насчитывается от 0 до 3 %. При переводе между различными банками оплата услуг может быть и выше.
Переводом с одного счета на другой легко:
Удобной услугой является «Регулярный платеж», который позволяет вовремя оплачивать некоторые счета и не заботиться о соблюдении сроков, например, пополнение баланса мобильного.
Системы денежных переводов и электронные платежи
Главными преимуществами этих способов являются широкое распространение и высокая скорость. К недостаткам можно отнести высокую комиссию, по сравнению с внутренними банковскими переводами.
Надеемся, наша статья оказалась полезной и помогла Вам разобраться, что такое транзакция.
Транзакция — что это такое простыми словами
Что такое транзакция на простом языке
Термин «транзакция» имеет латинское происхождение и, при прямом переводе, означает «обмен» или «совершение». В широком общеупотребительном смысле термин используется для обозначения любой операции по обмену данными, в следствие которого в систему были внесены изменения. Сегодня это слово чаще всего употребляется в финансовой сфере и обозначает операцию, по итогу которой изменились банковские счета участников.
До сих про не существует точного произношения, и в официальных документах, сопровождающих финансовые операции Вы можете встретить два варианта:
Разницы между ними нет, оба варианта используются равноправно. Наиболее употребительным этот термин является при обозначении операций, связанных с банками или биржами ценных бумаг. К транзакциям принято относить следующие операции:
Термины и определения
В связи с этим принято делить транзакции на два вида, в зависимости от условий проведения сделки и личного участия сторон:
1. Онлайн-транзакции . Операции, которые проводятся через посредника или напрямую, но обязательно в реальном времени, при этом участники сделки могут находиться на разных концах земного шара. К таким операциям относятся:
2. Оффлайн-транзакции. Операции, которые предполагают задержку по времени и необязательное участие сторон в одновременном совершении сделки. Таким образом происходит зачисление зарплаты работникам или списание суммы по безналичному расчету, производимому предприятиям, например, в рамках, централизованных гос.закупок.
С развитием современных технологий использование онлайн-транзакций с каждым днем становится безопаснее. Для проведения банковских операций онлайн уже существует много проверенных и защищенных методов, в результате чего обе стороны гарантированно совершают безопасную сделку.
Чтобы иметь представление о транзакции, стоит подробнее рассмотреть на одном типичном примере механизм, по которому происходит финансовые операции подобного рода. Для этого подойдет механизм оплаты покупки в магазине при помощи пластиковой карты. Операция происходит в четыре обязательных этапа.
Прежде всего, стоит понимать, что сделка происходит не между человеком и магазином, а между двумя банками:
Суть операции заключается в следующем:
Представленная типичная ситуация — это яркий пример сложной работы банковских систем. Стоит учесть, что в минуту времени на всей планете происходит около миллиона подобных операций, чтобы понять масштаб невидимого обмена данными. Благодаря современным технологиям, такие сложные сделки для конечных пользователей занимают всего несколько секунд и при этом являются совершенно безопасными, гарантируя обеим сторонам конфиденциальность и полную сохранность личных данных.
Это такие процедуры, как:
Банковская транзакция бывает двух видов, которые определяются по условиям ведения операций, степени участия сторон:
Существует определённый алгоритм действий, заранее установленный для каждого вида транзакции. Его условия одинаковы применительно к любым участникам, ситуациям. Отменить сделку можно только по её завершению, изменения в процессе операции невозможны.
Как осуществляется транзакция
Механизм проведения данной операции типичен для всех случаев. Чтобы точнее понять, что это такое – транзакция по банковской карте, можно рассмотреть пример с оплатой товара банковской картой в супермаркете. В операции участвуют не физическое лицо (покупатель) и супермаркет (продавец), а 2 финансовые организации. Одна из них называется банком-эмитентом, другая – банком-эквайром. Первая выпускает и обслуживает карту, вторая занята обслуживанием терминала в магазине, где проходит сделка.
Транзакция предполагает 4 действия и осуществляется в следующей последовательности:
Функционирование банковской системы – работа достаточно сложная. Но, рассматривая показанный выше пример, человеку становится понятно, как с банковской карты списываются его денежные средства. Каждую секунду в мире проводится масса подобных операций.
Сегодня внедрение современных технологий позволяет владельцам банковских карточек совершать технически сложные сделки буквально за несколько секунд. При этом им гарантированы безопасность, конфиденциальность, полная сохранность его персональных данных. Поэтому всем держателям карт важно понимать суть транзакции, с которой он постоянно сталкивается в современном мире!
Что такое транзакция. Объясняем простыми словами
Транзакция — это логически завершённая банковская операция, в процессе осуществления которой происходит перевод определённой суммы денег с одного счёта на другой.
Проще говоря, оплата покупки при помощи карты — это транзакция. Зачисление заработной платы на банковскую карту — тоже. Как и перевод денег с одного банковского счёта на другой и получение наличных через банкомат.
Пример употребления на «Секрете»
«По объёму безналичных расчётов Россия обгоняет крупнейшие экономики мира — США, Великобританию и Германию. По словам главы экспертной практики BCG по цифровым технологиям в России и СНГ Макса Хаузера, в 2010 году РФ была одной из стран с самыми низкими показателями карточных транзакций на душу населения. От мирового лидера Норвегии она отставала в 40 раз, сообщил РБК. Но за последние 10 лет Россия сократила отставание в полтора раза и теперь уступает лишь странам Северной Европы».
(Из новости о том, что европейский центр торговли криптовалютами решил навести порядок на рынке.)
Нюансы
Транзакции проводят не только с обычными деньгами, но и с криптовалютами. Такие транзакции стали проводить даже классические платёжные системы — например, Visa.
Учёные подсчитали, что в 2020 году сеть биткоинов обработала около 112,5 млн транзакций. На основе этих данных оказалось, что каждая транзакция создаёт 272 грамма отходов — это вес двух iPhone 12 mini.
Термин «транзакция» происходит от латинского transactio, что в переводе означает «соглашение» или «обмен».
Что такое транзакция
Транзакция — это набор операций по работе с базой данных (БД), объединенных в одну атомарную пачку.
Транзакционные базы данных (базы, работающие через транзакции) выполняют требования 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 — это группировка операций в одну атомарную пачку.
См также:
Блокировки транзакций — что может пойти не так при одновременном редактировании