【数据库】事务的概念及其四大特性

概念

事务是一个抽象的概念;是一系列指令(操作)的集合;而这些指令可以访问或更新数据库;

四大特性(ACID)

事务有四个特性 :原子性,一致性,隔离性,持久性

  • 原子性 Atomicity
    事务的执行结果,要么全部成功,要么全部失败回滚;不存在中间状态
    注意:

    • 这里中间状态指的是事务执行完成后的结果不可能是中间状态(即部分成功或部分失败)
    • 在事务执行过程中是存在部分成功状态的,只是当在后续的执行过程中,倘若遇到了失败状态,那么之前的部分成功状态将被回滚,导致整个事务被回滚

    栗子:银行转账
    A有500,B有200
    A转账B 300
    最终的结果只有两个
    要么转账成功,A剩200,B变500
    要么转账失败,A,B余额都不变

  • 一致性 Consistency
    事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
    栗子:银行转账
    同样的栗子
    A有500,B有200
    A转账B 300
    最终的结果只有两个
    要么转账成功,A减去300剩200,B加上300变500
    要么转账失败,A,B余额都不变
    不可能存在以下情况

    • 转账成功,A减去300剩200,而B只得到200变400或其他情况,这样在转账(即是一个事务)前后,数据就出现了不一致
    • 转账失败,A,B余额发生变化,数据就出现了不一致

    也就是说,不管转账(事务)成功或失败,A,B的余额加起来一定是700


    原子性与一致性的分析

    • 原子性侧重于事务执行过程的完整性(过程要么全部成功,要么全部失败)
    • 一致性侧重于事务结果的完整性(不论执行过程是否成功,结果(即数据)不会因过程而发生“ 缺失”)
    • 再使用上面的的转账栗子,倘若转账成功,但是A,B余额加起来不是700,那么这符合了事务的原子性,却违背了事务的一致性
    • 原子性与一致性是互补的,不可分离

  • 隔离性 Isolation
    各个事务之间是相互独立,互不影响的
  • 持久性 Durability
    事务提交以后,数据是永久保存在系统(数据库)中的,即使发生断电等故障

参考文章
https://blog.csdn.net/u011389474/article/details/53424476
https://blog.csdn.net/qiuwenjie123/article/details/78931078

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值