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

推荐答案

  • Atomicity-将资金从一个账户转移到另一个账户的交易包括从第一个账户进行取款操作,并在第二个账户上进行存款操作.如果存款操作失败,您也不希望发生取款操作.

  • Consistency-跟踪支票账户的数据库可能只允许每笔交易存在唯一的支票号码

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

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

(勒多菲尔的link本书中的真实例子摘要)

Database相关问答推荐

如何将对象源动态设置为子窗体

如何将使用模块创建的 Redis RDB 文件迁移到没有该模块的部署? (RedisStack 版本 7.2+ 中不再包含 RedisGraph)

如何使用存储在数据库表中的属性配置 Spring bean

有没有办法使用 JPA 注释和 Hibernate 动态 Select @GeneratedValue 策略?

PostgreSQL 嵌套 INSERTs / WITHs 用于外键插入

如何在我的 Rails 应用程序中避免竞争条件?

Symfony ArrayCollection 与 PersistentCollection

关系数据库如何在幕后工作?

如何在 MSSQL 2005 中创建递归查询?

Select 最佳主键 + 编号系统

如何在大型数据库中使用 typeahead.js

哪个更重要?数据库设计或编码?

有没有一种简单的方法来告诉 alembic 迁移到特定版本?

在 postgresql 中将 varchar 列升级为枚举类型

如何使用 localdb 在 Code First 中查看数据库图

数据库与平面文本文件:当性能不是问题时, Select 一个而不是另一个的一些技术原因是什么?

为 django 模型自动创建数据的工具

在 MYSQL 的子查询中使用 LIMIT 关键字的替代方法

使用 oracle sql developer 从一个数据库复制到另一个数据库 - 连接失败

有任何使用协议缓冲区的经验吗?