什么是事务?事务的生命周期,四大属性(ACID重要)

张开发
2026/4/6 18:07:45 15 分钟阅读

分享文章

什么是事务?事务的生命周期,四大属性(ACID重要)
事务是数据库管理系统中的一个核心概念。简单来说事务可以被看作一系列数据库操作的集合这些操作被逻辑地组合成一个不可分割的工作单元。为了让这个概念更具体我们可以从几个角度来理解1. 一个经典的比喻银行转账假设你要从账户A向账户B转账100元。这个看似简单的动作在数据库里至少需要两步操作操作1 从账户A的余额中减去100元。操作2 在账户B的余额中增加100元。如果没有“事务”可能会发生以下问题系统在执行完操作1后突然崩溃操作2没有完成。结果A的钱没了B的钱也没收到数据就出错了。在转账过程中另一个人正在查询A和B的总余额他可能会看到A的钱已经扣了但B的钱还没加上得到一个错误的总数。有了“事务”这两步操作就被打包成了一个整体。事务会确保要么全部成功 两步操作都顺利完成然后提交修改永久生效。要么全部失败 如果任何一步出错比如系统崩溃、余额不足整个事务会回滚。数据库会撤销已经执行的操作让A和B的余额恢复到转账前的状态。所以事务是一个最小的工作单元不允许有“部分成功”的状态。2. 事务的生命周期一个典型的事务通常遵循以下流程开始事务标记一个工作单元的开始。执行操作执行一系列的增、删、改、查操作。这些操作在事务内部是暂时性的对其他事务可能不可见取决于隔离级别。提交事务如果所有操作都成功则提交事务。此时所有更改会被永久地、安全地保存到数据库中。回滚事务如果在执行过程中遇到任何错误或者在业务逻辑上需要取消则回滚事务。数据库会将所有已执行的操作撤销恢复到事务开始前的状态。3. 为什么需要事务—— 解决两大核心问题保证数据的完整性防止因系统故障、并发操作等导致的数据不一致问题如转账中A扣款B未加钱的情况。简化复杂业务逻辑开发人员可以将一组复杂的操作当作一个原子单元来处理只需关心“是否成功”而不必为每一步操作都编写复杂的错误处理和恢复代码。事务的四大属性通常被称为 ACID是数据库管理系统中确保数据可靠性的核心原则。具体包括1. 原子性含义事务中的所有操作要么全部成功执行要么全部不执行。不存在“执行了一部分”的情况。例子银行转账A转给B 100元。原子性保证“A账户扣款100元”和“B账户到账100元”要么都发生要么都不发生。如果扣款后系统崩溃事务会回滚A的余额保持不变。2. 一致性含义事务必须使数据库从一个“正确的状态”转变到另一个“正确的状态”。它确保事务不破坏数据的完整性约束如外键、唯一索引、触发器规则等。例子转账前后两个账户的总金额应保持不变。如果A扣了100B只加了90一致性就被破坏了。3. 隔离性含义多个事务并发执行时一个事务的执行不应被其他事务干扰。每个事务感觉就像在独立运行一样。通常通过锁或多版本并发控制实现。例子A和B同时操作同一个账户。隔离性能防止A读取到B未提交的中间数据脏读或避免因并发导致计算错误。4. 持久性含义一旦事务被提交它对数据库的修改就是永久性的。即使随后发生系统崩溃、断电或重启修改的数据也不会丢失。例子你转账成功并看到“交易完成”后即使数据库立刻断电重启后这笔转账记录和余额变动仍然存在。简单记忆ACIDA tomicity原子性C onsistency一致性I solation隔离性D urability持久性这四个属性共同保证了数据库在正常操作和系统故障下都能处理可靠、正确的数据。

更多文章