При работе с базой данных часто важно использовать транзакции. Скажем, например, что я хочу перевести определенную сумму денег со счета А на счет Б. Это включает два запроса:
- уменьшить деньги на счете А
- увеличить его на счет Б.
Теоретически я могу делать запросы отдельно, но ошибки случаются. Итак, чтобы быть уверенным, я могу упаковать два запроса в транзакцию и быть уверенным, что либо обе операции завершаются регулярно, либо ничего не изменилось вообще. Деньги не исчезают и не создаются.
Проблема в том, что мне кажется, что это только перекладывает ответственность с меня на поставщика базы данных. Теперь дело за базой данных, чтобы выполнить обе операции и быть уверенным, что либо выполнены оба, либо ничего не изменилось. И разработчики баз данных сталкиваются с теми же проблемами, что и ошибки.
Какие методы используют поставщики баз данных для обеспечения безопасности транзакций?