使用数据库时,使用事务通常是非常重要的。举例说,我想将一定数量的钱从account A
转移到account B
。这涉及两个查询:数据库供应商如何实现交易?
- 减少货币在账户A
- 增加它在账户B.
理论上我可以单独进行查询,但错误发生。所以,可以肯定的是,我可以将这两个查询包含在一个事务中,并确保两个操作都能定期结束或根本没有任何变化。没有钱消失或被创造。
问题是,在我看来,这只会将责任从我转移到数据库供应商。现在由数据库来做这两个操作,并确保两者都做或没有改变。数据库开发人员面临着错误发生的相同问题。
数据库供应商使用什么技术来确保交易安全?