数据库供应商如何实现交易?

时间:2011-03-19 22:37:29

标签: database database-design transactions

使用数据库时,通常必须使用事务。比方说,我想将一定数量的资金从账户A转移到账户B.这涉及两个问题:

  • 减少帐户A中的资金
  • 在帐户B中增加它。

理论上我可以单独进行查询,但会发生错误。因此,可以肯定的是,我可以在事务中打包两个查询,并确保两个操作都定期结束或根本没有任何更改。没有钱消失或被创造。

问题是,在我看来,这只会将责任从我转移到数据库供应商。现在由数据库来完成两个操作,并确保两者都已完成或没有任何更改。数据库开发人员面临着错误发生的相同问题。

  

数据库供应商使用哪些技术来确保交易的安全性?

2 个答案:

答案 0 :(得分:9)

维基百科上的ACID - Implementations页面将帮助您开始预写日志记录,影子分页和多版本并发控制。点击链接查找更多信息。

每个DBMS供应商都实现自己的算法,通常是几个不同的算法,具体取决于上下文,完整的ACID或宽松的要求,分布式事务一致性要求等......

答案 1 :(得分:2)