- Транзакция: что это такое простыми словами
- Что такое транзакция по банковской карте
- Приходные, увеличивающие сумму на счету:
- Расходные банковские транзакции подразумевают уменьшение финансов на счету:
- Участники транзакции
- Транзакция в магазине: что происходит на самом деле?
- Онлайн и оффлайн: в чем разница?
- Защита транзакции
- Зачем нужны номера транзакций
- Статусы транзакций
- Что значит «транзакции по вашей карте приостановлены»?
- «Транзакция отклонена» – что это означает?
- Отмена транзакции
- Как работает система транзакций
- Оплата пластиковой картой
- Оффлайн-транзакция вне реального времени
- Перевод средств между счетами
- Системы денежных переводов и электронные платежи
- Транзакции и механизмы их контроля
- Транзакции
- Транзакцией называется последовательность операций над данными имеющая начало и конец
- Транзакции должны удовлетворять свойствам ACID
- Журнал транзакций
- Журнал хранит изменения выполненные транзакциями, обеспечивает атомарность и устойчивость данных в случае сбоя системы
- Уровни изоляции
- Чтение фиксированных данных (Read Committed)
- Повторяемое чтение (Repeatable Read)
- Упорядоченное чтение (Serializable)
- Планировщик (Scheduler)
- Устанавливает очередность в которой должны выполняться операции при параллельно протекающих транзакциях
- Механизмы контроля параллельных заданий (Concurrency Control)
- Оптимистический основан на обнаружении и разрешении конфликтов, пессимистический на предотвращении возникновения конфликтов
- Блокировка (Locking)
- Если одна транзакция заблокировала данные, то остальные транзакции при обращении к данным обязаны ждать разблокировки
- Взаимоблокировкой считается ситуация когда транзакции оказываются в режиме ожидания, длящемся бесконечно долго
- Оптимистическое решение проблемы взаимоблокировок позволяет взаимоблокировке произойти, но затем восстанавливает систему откатывая одну из транзакций, участвующих во взаимоблокировке
Транзакция: что это такое простыми словами
Обычному человеку не всегда понятны специальные банковские термины. И один из них – «транзакция». В этой статье мы подробно разберем вопросы: транзакция, что это такое простыми словами, рассмотрим ее процедуру и виды, а также пути решения возникших сложностей для рядового владельца счета.
Что такое транзакция по банковской карте
Транзакция – это любая операция со счетом в банке, которая приводит как к увеличению, так и к уменьшению баланса.
Оплата покупки при помощи карты – транзакция, что сопровождается уменьшением счета. Получение пенсии на карту – тоже транзакция, которая увеличила баланс. А вот проверка баланса – таковой не является, однако, если банк берет за эту услугу даже незначительную сумму, то оплата проверки является транзакцией.
Понятие произошло от английского transaction обозначающего «сделку». В деловой сфере правильным считается написание и «транзакция» и «трансакция». Слово «транзакция» вне профессиональной банковской сферы обозначает сделку, платеж, соглашение, договор. Также оно используется в программировании.
По банковскому счету выполняются два типа финансовых транзакций:
Приходные, увеличивающие сумму на счету:
- Пополнение счета наличными.
- Перевод с другого личного счета.
- Онлайн-займ на карту.
- Перечисление зарплаты и пенсии.
Расходные банковские транзакции подразумевают уменьшение финансов на счету:
- Обналичивание.
- Перевод денег на другие счета и пополнение электронных кошельков.
- Оплата покупок и услуг.
- Автоматические платежи.
- Оплата взносов по кредитам и займам.
- Оплата штрафов.
Участники транзакции
Какой бы ни был тип транзакции, в каждом из финансовых переводов участвуют несколько сторон:
- Банк, обслуживающий терминал и принимающий платеж транзакцией – эквайр.
- Банк, выдавший карту и совершающий платеж – эмитент.
- Платежная система, выступающая в роли посредника и обеспечивающая финансовый канал транзакции.
- Владелец счета – инициатор процедуры, дающий соглашение на транзакцию.
Роль каждого из них важна, и без участия хотя бы одного транзакция по карте будет невозможной.
Транзакция в магазине: что происходит на самом деле?
Прикладывая банковскую карту к платежному терминалу, каждый покупатель запускает сложнейшую цепочку банковских операций, запросов и подтверждений. Все они выполняются в считанные секунды и существенно облегчают жизнь кассиру и покупателю.
Банковская транзакция выполняется в несколько этапов:
- На основе данных, считанных с микрочипа карточки, и ПИН-кода формируется запрос, а будущей транзакции присваивается номер.
- Запрос поступает в процессинговый центр, который принадлежит банку-эмитенту или посреднику. Заявка обрабатывается и поступает непосредственно эмитенту.
- Следующим этапом происходит сверка полученных данных с базой, подтверждается транзакционность, и доступ к счету разрешается или запрещается.
- Банк-эквайр получает подтверждение на сделку, и при помощи платежной системы налаживает канал для перевода средств. Средства переводятся в виде сигналов, содержащих сложные электронные коды, каждый из которых уникален.
Свидетельством удачного списания средств с карты и оплаты покупки становится чек, на котором содержится вся важная информация: сумма покупки, дата и время, номер транзакции.
Онлайн и оффлайн: в чем разница?
С зависимости от оперативности выполнения, транзакции объединяются в две группы:
Онлайн-транзакция проводится мгновенно. Ею мы чаще всего пользуемся, оплачивая товары и снимая зарплату в банкомате. В течение пары секунд банки-участники сделки обмениваются запросами и кодами, и осуществляют перевод средств. От покупателя требуется только подтверждение согласия перевода в виде предоставления карты в магазине, ПИН-кода для терминала или смс-кода при заказе товаров в сети.
Оффлайн-транзакция – означает отложенный платеж. Этим способом чаще всего пользуются компании и фонды для перевода финансов в определенные дни (зарплаты, пенсии). Для проведения сделки не требуется личное участие плательщика. Все необходимые условия задаются заранее, а переводы могут выполняться регулярно.
Защита транзакции
Защита финансов клиента – приоритетное направление работы каждого банка. Поэтому безопасность транзакций обеспечивает электронный протокол Secure Electronic Transaction . Он был разработан в 1996 году группой американских ученых и вместил в себя набор алгоритмов, сертификатов безопасности и криптографических функций. Его предназначение – защита транзакций, проводимых в незащищенной сети Интернет.
Альтернативой SET является протокол 3-D Secure, разработанный и внедренный платежной системой VISA . Безопасность переводов осуществляется при помощи одноразовых смс-паролей.
Зачем нужны номера транзакций
Ежедневно крупный банк проводит миллионы операций. И чтоб сотрудники смогли найти необходимую сделку и отличить ее от множества подобных, каждая из них нумеруется.
Собственный номер присваивается транзакции на стадии первичного запроса. Если сумма не поступила адресату, транзакция отклонена или произошел сбой, сотрудники банка по номеру за несколько секунд смогут найти транзакцию в базе, проанализировать ситуацию и принять решение по устранению проблем.
Транзакционный номер доступен владельцу счета. Он указывается на мониторе банкомата, в выписках и на чеках. Чек с номером – гарантия удачной транзакции и страховка на случай, если перевод не дойдет адресату или возникнут другие внештатные ситуации.
Статусы транзакций
Каждой транзакции присущи два статуса:
- Транзакция завершена – оба банка одобрили транзакцию и оплата успешно совершена.
- Транзакция отклонена – возникли какие-либо проблемы с переводом средств, из-за которых операция не может быть выполнена.
Главное определение транзакции – ее неразрывность. Она может быть выполнена или нет. Никаких промежуточных статусов и значений быть не может.
Если транзакция отклонена одним из участников, то в зависимости от причин, владелец счета может получить сообщение о приостановке или отклонении.
Что значит «транзакции по вашей карте приостановлены»?
Такое сообщение получает владелец карты, которая временно заблокирована. Причины блокировки могут быть разнообразны:
- Срок действия карты истек.
- Счет временно заблокирован из-за многократного неправильного ввода ПИН-кода.
- Карта заблокирована банком из-за угрозы мошенничества.
- Карта заблокирована по заявке налоговой инспекции.
- Счет заблокирован по решению суда.
Также могут блокироваться и отдельные транзакции. Например, для реализации крупного транзакционного перевода банку потребуется дополнительное согласие плательщика на проведение. Или же получатель подозревается в мошенничестве либо незаконной деятельности.
«Транзакция отклонена» – что это означает?
Нередко при попытке оплатить транзакцией платежная система выдает одну из следующих форм отказа: платеж не совершен, транзакция отклонена, запрещена.
Причинами такого отказа могут быть следующие ситуации:
- Нахватает денег на балансе для денежного перевода в указанном объеме. Это самая распространенная причина, которая устраняется пополнением баланса любым доступным способом: перевод с другого счета, внесение наличных через терминал, кредит.
- Карта новая и еще не активированная. Для активации ее необходимо вставить в банкомат и ввести ПИН-код.
- Владельцы некоторых карт, например, «Мир» не могут осуществлять транзакции заграницу и оплачивать товары на зарубежных торговых онлайн-площадках.
- Ошибка при заполнении реквизитов отправителя (неверный номер счета, С V С, срок действия) или получателя (ошибка при вводе номера карты).
- Технические причины: неисправность терминала, потеря соединения с сервером, проблемы с банковским программным обеспечением.
Если на счету точно есть средства, карта не просрочена и проблем с вводом ПИН-кода не было, то за разъяснением причин приостановки транзакций следует позвонить в банк на горячую линию. Также можно лично обратиться в отделение банка.
При сложностях оплаты в интернет-магазинах, причины могут скрываться в работе самого ресурса. Это могут быть технические работы на сайте или сбои в работе платежного сервиса. Попробуйте оплатить заказ через пару часов или обратиться по этому вопросу к консультантам магазина.
В любом случае, если оплатить покупку или перевести деньги не удается, не стоит паниковать. Приостановка и отклонение транзакции – это действенный инструмент для защиты средств клиентов банка, и применяется он для обеспечения финансовой безопасности владельца счета.
Отмена транзакции
Отменить транзакцию можно несколькими способами, в зависимости от вида и цели платежа.
1. Аннулирование операции
Если Вы ошиблись при введении номера карты получателя и отправили деньги неизвестному человеку, отмена займет много времени и сил. Первым делом обратитесь в ваш банк и получите дальнейшие инструкции. Скорее всего придется лично посетить отделение и составить заявление. После сбора информации и подтверждения транзакции к процедуре будет привлечен получатель. Если он согласиться сотрудничать и добровольно вернет средства, вопрос разрешится быстро. В противном случае ситуация будет рассматриваться в суде.
2. Возврат средств
Согласно закону о защите прав потребителей, Вы можете вернуть некоторые товары в магазин в течение 14 дней после оплаты. Сделка может быть отменена или же будет оформлен возврат.
Процедура транзакции при оплате покупки подразумевает временное резервирование средств на карте получателя, а для перевода необходимо подтверждение продавца. Если после оплаты прошло немного времени, то получив заявление на возврат товара, продавец формирует отмену, блокировка с суммы снимается и средства становятся доступны владельцу карты.
Если финансовая транзакция была реализована полностью, и средства поступили на счет продавца, будет задействована процедура возврата. Продавец выполнит транзакцию и средства поступят на ваш счет. Возможно Вам придется подождать до двух недель.
Как работает система транзакций
Оплата пластиковой картой
Что такое транзакция по банковской карте Сбербанка? Это оплата любых счетов без использования наличных. Пластиковая карта уже давно обогнала наличные деньги по частоте и объемам оплаты. И это закономерно, ведь при оплате карточкой никогда не возникнут проблемы отсутствия сдачи и обсчета недобросовестными продавцами. А риск потери и кражи денег стремится к нулю, ведь карта защищена ПИН-кодом, а при потере один звонок в банк блокирует счет.
Пластиковой картой удобно:
- Оплатить покупки и услуги.
- Оплатить коммунальные счета, налоги и даже штрафы с банкоматов и терминалов.
Оффлайн-транзакция вне реального времени
Этот способ оплаты удобен для отложенных платежей или в условиях отсутствия соединения с процессинговым центром. Однако на сегодняшний день он все чаще уступает место платежам онлайн и остался востребованным только в корпоративной среде для своевременной выплаты зарплат.
Для отложенного перевода денег с карты выполняется ее электронный оттиск и оформляется специальная заявка. Эти данные пересылаются банку-эмитенту для оформления платежа.
Перевод средств между счетами
Денежный перевод – самый простой способ пополнить свой счет, или перевести любую сумму родным и близким. В рамках одного банка комиссия насчитывается от 0 до 3 %. При переводе между различными банками оплата услуг может быть и выше.
Переводом с одного счета на другой легко:
- оплачивать товары в интернет-магазине;
- перевести денежные средства любому получателю;
- оплатить услуги, например, косметолога, репетитора или врача.
Удобной услугой является «Регулярный платеж», который позволяет вовремя оплачивать некоторые счета и не заботиться о соблюдении сроков, например, пополнение баланса мобильного.
Системы денежных переводов и электронные платежи
Денежные переводы Western Union и MoneyGram , а также электронные кошельки PayPal, QIWI и подобные – это возможность дистанционно переводить средства тем людям, у которых нет банковского счета.
Главными преимуществами этих способов являются широкое распространение и высокая скорость. К недостаткам можно отнести высокую комиссию, по сравнению с внутренними банковскими переводами.
Надеемся, наша статья оказалась полезной и помогла Вам разобраться, что такое транзакция.
Источник
Транзакции и механизмы их контроля
Транзакции
Транзакцией называется последовательность операций над данными имеющая начало и конец
Транзакция это последовательное выполнение операций чтения и записи. Окончанием транзакции может быть либо сохранение изменений (фиксация, commit) либо отмена изменений (откат, rollback). Применительно к БД транзакция это нескольких запросов, которые трактуются как единый запрос.
Транзакции должны удовлетворять свойствам ACID
Атомарность. Транзакция либо выполняется полностью либо не выполняется вовсе.
Согласованность. При завершении транзакции не должны быть нарушены ограничения накладываемые на данные (например constraints в БД). Согласованность подразумевает, что система будет переведена из одного корректного состояния в другое корректное.
Изолированность. Параллельно выполняемые транзакции не должны влиять друг на друга, например менять данные которые использует другая транзакция. Результат выполнения параллельных транзакций должен быть таким, как если бы транзакции выполнялись последовательно.
Устойчивость. После фиксации изменения не должны быть утеряны.
Журнал транзакций
Журнал хранит изменения выполненные транзакциями, обеспечивает атомарность и устойчивость данных в случае сбоя системы
Журнал содержит значения, которые данные имели до и после их изменения транзакцией. Write-ahead log strategy обязывает добавлять в журнал запись о предыдущих значениях до начала, а о конечных после завершения транзакции. В случае внезапной остановки системы БД читает лог в обратном порядке и отменяет изменения сделанные транзакциями. Встретив прерванную транзакцию БД выполняет ее и вносит изменения о ней в журнал. Находясь в состоянии на момент сбоя, БД читает лог в прямом порядке и возвращает изменения сделанные транзакциями. Таким образом сохраняется устойчивость транзакций которые уже были зафиксированы и атомарность прерванной транзакции.
Простое повторное выполнение ошибочных транзакций недостаточно для восстановления.
Пример. На счету у пользователя 500$ и пользователь решает снять их через банкомат. Выполняются две транзакции. Первая читает значение баланса и если на балансе достаточно средств выдает деньги пользователю. Вторая вычитает из баланса нужную сумму. Допустим, произошел сбой системы и первая операция не выполнилась, а вторая выполнилась. В этом случае мы не можем повторно выдать деньги пользователю без возврата системы в изначальное состояние с положительным балансом.
Уровни изоляции
Чтение фиксированных данных (Read Committed)
Проблема грязного чтения (Dirty Read) заключается в том, что транзакция может прочесть промежуточный результат работы другой транзакции.
Пример. Начальное значение баланса 0$. Т1 добавляет к балансу 50$. Т2 считывает значение баланса (50$). Т1 отменяет изменения и завершается. T2 продолжает выполнение располагая неверными данными о балансе.
Решением является чтение фиксированных данных (Read Committed) запрещающее читать данные, измененные транзакцией. Если транзакция A изменила некоторый набор данных, то транзакция B при обращении за этими данными вынуждена ожидать завершения транзакции A.
Повторяемое чтение (Repeatable Read)
Проблема потерянных изменений (Lost Updates). Т1 сохраняет изменения поверх изменений Т2.
Пример. Начальное значение баланса 0$ и две транзакции одновременно пополняют баланс. T1 и T2 читают баланс равный 0$. Затем T2 прибавляет 200$ к 0$ и сохраняет результат. T1 прибавляет 100$ к 0$ и сохраняет результат. Итоговый результат 100$ вместо 300$.
Проблема неповторяемого чтения (Unrepeatable read). Повторное чтение одних и тех же данных возвращает разные значения.
Пример. Т1 читает значение баланса равное 0$. Затем Т2 добавляет к балансу 50$ и завершается. Т1 повторно читает данные и обнаруживает несоответствие с предыдущим результатом.
Повторяемое чтение (Repeatable Read) гарантирует что повторное чтение вернет тот же результат. Данные прочитанные одной транзакцией запрещено менять в других до завершения транзакции. Если транзакция A прочла некоторый набор данных, то транзакция B при обращении за этими данными вынуждена ожидать завершения транзакции A.
Упорядоченное чтение (Serializable)
Проблема фантомного чтения (Phantom Reads). Два запроса выбирающие данные по некоему условию возвращают разные значения.
Пример. T1 запрашивает количество всех пользователей баланс которых больше 0$ но меньше 100$. T2 вычитает 1$ у пользователя с балансом 101$. T1 повторно выполняет запрос.
Упорядоченное чтение (Serializable). Транзакции выполняются как полностью последовательные. Запрещается обновлять и добавлять записи, подпадающие под условия запроса. Если транзакция A запросила данные всей таблицы, то таблица целиком замораживается для остальных транзакций до завершения транзакции A.
Планировщик (Scheduler)
Устанавливает очередность в которой должны выполняться операции при параллельно протекающих транзакциях
Обеспечивает заданный уровень изолированности. Если результат выполнения операций не зависит от их очередности, то такие операции коммутативны (Permutable). Коммутативны операции чтения и операции над разными данными. Операции чтения-записи и записи-записи не коммутативны. Задача планировщика чередовать операции выполняемые параллельными транзакциями так, чтобы результат выполнения был эквивалентен последовательному выполнению транзакций.
Механизмы контроля параллельных заданий (Concurrency Control)
Оптимистический основан на обнаружении и разрешении конфликтов, пессимистический на предотвращении возникновения конфликтов
При оптимистическом подходе несколько пользователей получают в свое распоряжение копии данных. Первый завершивший редактирование сохраняет изменения, остальные же должны осуществить слияние изменений. Оптимистический алгоритм позволяет конфликту произойти, но система должна восстановиться после конфликта.
При пессимистическом подходе первый пользователь захвативший данные препятствует получению данных остальным. Если конфликты редки разумно выбрать оптимистическую стратегию, так как она обеспечивает более высокий уровень параллелизма.
Блокировка (Locking)
Если одна транзакция заблокировала данные, то остальные транзакции при обращении к данным обязаны ждать разблокировки
Блок может накладываться на базу данных, таблицу, ряд или аттрибут. Совместный захват (Shared Lock) может быть наложен на одни данные несколькими транзакциями, разрешает всем транзакциям (включая наложившую) чтение, запрещает изменение и монопольный захват. Монопольный захват (Exclusive Lock) может быть наложен только одной транзакцией, разрешает любые действия наложившей транзакции, запрещает любые действия остальным.
Взаимоблокировкой считается ситуация когда транзакции оказываются в режиме ожидания, длящемся бесконечно долго
Пример. Первая транзакция ждет освобождения данных захваченных второй, в то время как вторая ждет освобождения данных, захваченных первой.
Оптимистическое решение проблемы взаимоблокировок позволяет взаимоблокировке произойти, но затем восстанавливает систему откатывая одну из транзакций, участвующих во взаимоблокировке
С определенной периодичностью производится поиск взаимоблокировок. Один из способов обнаружения — по времени, то есть считать что взаимоблокировка произошла если транзакция выполняется слишком долго. Когда взаимоблокировка найдена, то одна из транзакций откатывается, что дает возможность другим транзакциям участвующим во взаимоблокировке завершиться. Выбор жертвы может быть основан на стоимости транзакций или их старшинстве (Wait-Die и Wound-wait схемы).
Каждой транзакции T присваивается временная метка TS содержащая время начала выполнения транзакции.
Если TS(Ti) = W-TS(Q), то чтение выполняется и R-TS(Q) становится MAX(R-TS(Q), TS(T)).
Когда транзакция T запрашивает изменение данных Q возможны два варианта.
Источник