什么是ACID的真实例子?

Fre*_*ley 24 database acid

我正在寻找数据库的各种ACID属性的真实示例.

egg*_*rop 43

  • 原子性 - 将资金从一个账户转移到另一个账户的交易涉及从第一个账户进行提款操作,在第二个账户进行存款操作.如果存款操作失败,您也不希望撤消操作发生.

  • 一致性 - 跟踪支票帐户的数据库可能只允许每个交易存在唯一的支票号码

  • 隔离 - 查找余额的出纳员必须与涉及从同一帐户提款的并发交易隔离.只有当提款交易成功提交并且出纳员再次查看余额时,才会报告新的余额.

  • 持久性 - 不得允许系统崩溃或任何其他故障丢失事务的结果或数据库的内容.持久性通常通过单独的事务日志来实现,这些事务日志可以从某个选定的时间点(如备份)"重新创建"所有事务.

(来自le dorfier 链接的现实世界的例子摘要)


M.N*_*eel 9

*原子性 - 从用户的角度来看,事务要么完整地完成(即,所有相关的数据库表都被更新),要么根本不完成.如果发生错误或中断,则取消对该点所做的所有更改.

•一致性 - 每个事务都维护数据库中的所有完整性条件,将数据库从一个一致状态转换为另一个一致状态.

•隔离 - 每个事务与其他事务隔离,因此,每个事务只访问属于一致数据库状态的数据.

•持久性 -如果已将事务报告给用户完成,则对数据库的更改将在后续硬件或软件故障后生效.