【问题标题】:How do database vendors implement transactions?数据库供应商如何实现事务?
【发布时间】:2011-07-18 22:25:53
【问题描述】:

使用数据库时,通常必须使用事务。比如说我想从账户 A 向账户 B 转账一定数量的钱。这涉及到两个查询:

  • 减少账户A的钱
  • 在帐户 B 中增加它。

理论上我可以单独进行查询,但会发生错误。所以,可以肯定的是,我可以将这两个查询打包到一个事务中,并确保两个操作都定期结束,或者根本没有任何变化。没有钱会消失或被创造出来。

问题在于,在我看来,这只会将责任从我转移到数据库供应商身上。现在由数据库来进行这两项操作,并确保两者都进行或没有任何改变。并且数据库开发人员面临着发生错误的同样问题。

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

【问题讨论】:

    标签: database database-design transactions


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      • 2010-10-22
      • 2011-04-19
      相关资源
      最近更新 更多