Как поставщики баз данных реализуют транзакции ?

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

  • уменьшить количество денег на счете A
  • увеличить их на счете B.

Теоретически я могу делать запросы отдельно, но ошибки случаются. Итак, чтобы быть уверенным, я могу упаковать два запроса в транзакцию и быть уверенным, что либо обе операции завершаются регулярно, либо ничего не изменилось вообще. Деньги не исчезают и не создаются.

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

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

14
задан Mark Amery 19 January 2019 в 19:03
поделиться