当前位置: 首页 > news >正文

事务的四大特性(ACID) - Higurashi

ACID 是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。

原子性 (Atomicity)

一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即,事务不可分割、不可约简。

一致性 (Consistency)

  • 一种说法

    ACID 里的 AID 都是数据库的特征,也就是依赖数据库的具体实现。而唯独这个 C,实际上它依赖于应用层,也就是依赖于开发者。这里的一致性是指系统从一个正确的状态,迁移到另一个正确的状态。什么叫正确的状态呢?就是当前的状态满足预定的约束就叫做正确的状态。而事务具备 ACID 里 C 的特性是说通过事务的 AID 来保证我们的一致性。

    举个例子:

    A 要向 B 支付 100 元,而 A 的账户中只有 90 元,并且我们给定账户余额这一列的约束是,不能小于 0。那么很明显这条事务执行会失败,因为 90-100=-10,小于我们给定的约束了。

    这个例子里,支付之前我们数据库里的数据都是符合约束的,但是如果事务执行成功了,我们的数据库数据就破坏约束了,因此事务不能成功,这里我们说事务提供了一致性的保证。然后我们再看个例子:

    A 要向 B 支付 100 元,而 A 的账户中只有 90 元,我们的账户余额列没有任何约束。但是我们业务上不允许账户余额小于 0。因此支付完成后我们会检查 A 的账户余额,发现余额小于 0 了,于是我们进行了事务的回滚。

    这个例子里,如果事务执行成功,虽然没有破坏数据库的约束,但是破坏了我们应用层的约束。而事务的回滚保证了我们的约束,因此也可以说事务提供了一致性保证(事实上,是我们应用层利用事务回滚保证了我们的约束不被破坏)。最后我们再看个例子:

    A 要向 B 支付 100 元,而 A 的账户中只有 90 元,我们的账户余额列没有任何约束。然后支付成功了。

    这里,如果按照很多人的理解,事务不是保证一致性么?直观上账户余额为什么能为负呢。但这里事务执行前和执行后,我们的系统没有任何的约束被破坏。一直都是保持正确的状态。

    所以,综上。你可以理解一致性就是:应用系统从一个正确的状态到另一个正确的状态。而 ACID 就是说事务能够通过 AID 来保证这个 C 的过程。C 是目的,AID 都是手段。

  • 另一种说法

    在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设约束、触发器、级联回滚等。比如如果一个字段添加了非空约束,那么在尝试给该字段设置空数据时,会导致数据库的不一致状态,此时整个事务就应该回滚,以保证数据库的一致性。

隔离性 (Isolation)

数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括未提交读(Read uncommitted)、提交读(read committed)、可重复读(repeatable read)和串行化(Serializable)。

持久性 (Durability)

事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

参考:

ACID - 维基百科,自由的百科全书
如何理解数据库事务中的一致性的概念?
acid - database atomicity consistency

http://www.jsqmd.com/news/21734/

相关文章:

  • 2025.10.24
  • 以 “教练” 之姿引航,以 “实践” 之径求知
  • java:logform
  • DeepSeek-OCR 本地部署实践(适合新手、windows环境)
  • 10月24日日记
  • 2025.10.24总结 - A
  • 2025年AI优化:AI优化公司技术实力哪家好
  • 总账系统核心设计 - 智慧园区
  • 02 MULTI IDE软件安装及新建工程
  • 每日反思(2025_10_24)
  • 10月24号
  • 10月阅读笔记(3)
  • 使用Python将iOS快照从KTX格式转换为PNG
  • 我有一个好主意,既然我之前写了一个AI Vtuber
  • python操作pdf的库
  • 第二十天
  • AI优化服务商:AI优化公司技术实力榜单
  • 关于cos(x + y)和sin(x + y)的公式的几何证明
  • Sentence Transformers
  • 2025最新平台,快手刷站自助下单_新站如何用快手刷站服务?
  • 免费刷快手粉双击网站,刷粉真的安全吗
  • 免费24小时业务下单平台哪家靠谱,真的免费吗,如何安全使用
  • 北京AI优化:AI优化企业排行榜与深度解析
  • 素数有无穷个的拓扑证明
  • AI优化服务商:推荐AI优化排名TOP头部公司
  • 2025年度揭秘:微信公众号编辑器排版Top 8权威榜单(含有一云AI编辑器亲测推荐)
  • 10.24作业
  • 2025年承压水箱厂家权威推荐榜:专业制造工艺与耐用性能深度解析,工业级承压水箱/定制承压水箱/高效承压水箱优质供应商精选
  • isaacsim 5.0 开启需要什么样的显卡?
  • 上海市计算机学会2025.10月赛丙组T5