第二个原因是我们所描述的事务数据库始终处于正确且一致的状态,而不管所涉及的所有技术可能发生何种故障。没有人愿意将信息存储在一个系统中,该系统的数据可能会因为允许无效操作而变得不连贯,或者在服务器宕机时可能会丢失信息。当然,并非每个用例都是关键任务,但很多都是,在这些情况下,事务数据库可以提供巨大的业务价值。
当然,并不是每个数据库系统本质上都是事务性的。一些系统只专注于记录丢失的信息或不需要支持事务功能的信息。在考虑您的用例时,重要的是密切关注您需要这些功能的程度,并将您的期望与潜在数据库系统遵守事务数据库原则的程度相匹配。
ACID 合规性的重要性
ACID 是“Atomicity、Consistency、Isolation 和 Durability”的首字母缩写,它是一组确保数据库事务可靠、正确处理的原则。下表解释了这四个不同元素所涉及的内容。
| 元素 | 意义 |
| — | — |
| 原子性 | 事务中的所有数据操作以全有或全无的方式完成或回滚。 |
| 一致性 | 数据库中的信息在所有情况下都必须在语义上有意义(例如,在没有有效父级的情况下不插入子数据,必填字段没有空值等) |
| 隔离 | 每个事务必须独立于同时进行的任何其他事务运行;即,不能允许信息从一项交易“泄漏”到另一项交易。 |
| 耐用性 | 任何成功完成的交易都会以不可磨灭的方式记录下来,这意味着它的数据不会在软件甚至硬件故障的情况下丢失。 |
让我们考虑一个更复杂的例子来说明为什么 ACID 保证很重要。想象另一种常见的情况,其中两个人 A 和 B 正在为电影院的同一场演出预订同一排的座位。A 只预订了一个座位,而 B 则试图为家庭出游预订整排。
如果A先预订了座位,那么B的交易就会失败,