什么是事务数据库?

| 原子性 | 事务中的所有数据操作以全有或全无的方式完成或回滚。 |

| 一致性 | 数据库中的信息在所有情况下都必须在语义上有意义(例如,在没有有效父级的情况下不插入子数据,必填字段没有空值等) |

| 隔离 | 每个事务必须独立于同时进行的任何其他事务运行;即,不能允许信息从一项交易“泄漏”到另一项交易。 |

| 耐用性 | 任何成功完成的交易都会以不可磨灭的方式记录下来,这意味着它的数据不会在软件甚至硬件故障的情况下丢失。 |

让我们考虑一个更复杂的例子来说明为什么 ACID 保证很重要。想象另一种常见的情况,其中两个人 A 和 B 正在为电影院的同一场演出预订同一排的座位。A 只预订了一个座位,而 B 则试图为家庭出游预订整排。

如果A先预订了座位,那么B的交易就会失败,因为网上购物车中的一个座位已经被预订了,不能重复预订。这说明了原子性,因为 B 人的数据操作之一失败了,他们都做了,以及一致性,因为系统不会允许无意义的数据,例如两个人保留相同的座位。

只有当 A 的预订成功完成并写入数据库时​​,B 的交易才会被取消。然而,在这种情况发生之前,隔离的特性是允许两个人同时尝试对同一个席位进行交易,确保双方都将有争议的席位视为可用,直到它被实际保留。

最后,即使在 A 成功预订座位后整个预订系统崩溃,持久性确保在重新启动时正确的数据仍然存在。这使得 A 可以根据需要打印票并享受演出,无论在交易正确完成后发生什么系统故障。

分布式事务如何工作?


现代应用程序在本质上越来越分散,通常在全球范围内可用,这使得事务数据库的问题变得更加困难。原因是 ACID 保证对于分布式系统与在单个服务器上运行的单个数据库软件一样重要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值