数据库中一致性与原子性的区别

本文详细解析了数据库事务的两个关键属性——原子性和一致性。原子性确保事务的执行要么全部成功,要么全部回滚,例如转账操作中,如果记录流水失败则整个事务回滚。而一致性则关注事务执行后的状态是否符合预期,如张三转账100元给李四,两者账户余额变化必须正确。原子性保证操作不部分完成,一致性则确保业务逻辑的正确性。通过实例深入探讨了这两个概念的区别和联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

数据库中一致性与原子性的区别

原子性: 这个侧重点是事务执行的完整,一套事务下来,如果有一个失败,那整体失败。也就是要么大家一起成功,要么全都回滚
一致性:这个讲的是事务是按照预期生效的,也就是你举例的那个转账的,一致性的核心一部分是靠原子性实现的,而另一部分是逻辑实现。
例证:转账:张三给李四转账100元。那数据库假设需要 张三扣100,李四加100,记录一条流水。
如果流水没记录成功,那整体回滚,张三也没转账成功,李四也没多钱。这就是原子性的体现。
而张三必须扣100,李四必须加100,这个就是一致性了,如果因为某些逻辑原因,导致张三扣了100,流水记录100转账,而李四只加了60。然后这3条操作都成功了,那原子性就符合了,但是一致性就不符合了


送努力的你一杯茶🍵

文章转自[这儿],侵权立删(https://blog.youkuaiyun.com/kk121150/article/details/84934487)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值