事务四大特性

事务四大特性

  • 说一下事务和事务的特性:*
  1. 把需要保证原子性一致性隔离性持久性的一个或多个数据库操作称为一个事务(transaction)
  2. 原子性是指一个事务是一个不可分割的工作单位,所有操作要么全部完成、要么全部不完成,不会结束于某个中间环节
  3. 一致性是指事务执行前后,数据处于一种语义上的合法状态
    (1)数据库只是现实世界的一个映射,现实世界存在的约束需要在数据库中有所体现
    (2)如果数据库中的数据全部符合现实世界中的约束,那么数据就是一致的
  4. 隔离性是指多个事务并发执行的时候各个事务之间不能相互干扰
  5. 持久性是指事务一旦提交,它对数据库的改变就是永久的(被刷新到磁盘上),接下来的其他操作或故障不应该对其有任何影响
  6. 在四大特性中原子性隔离性持久性是手段,一致性是目的,只有实现了AID三大特性,才有可能实现一致性
  7. MySQL中并不是所有存储引擎都支持事务功能,其中InnoDB支持事务功能,而MyISAM不支持事务功能
  • 数据库如何保持一致性:
  1. 数据库层面:
    (1)数据库通过原子性隔离性持久性来保证一致性,即在ACID四大特性中原子性隔离性持久性是手段,一致性是目的,数据库只有实现了AID三大特性,才有可能实现一致性
  2. 应用层:通过代码判断数据库数据是否有效,然后决定回滚还是提交数据
  • 无法保证原子性/隔离性/持久性,会有什么后果:
  • 无法保证原子性/隔离性/持久性,会出现数据不一致的情况
  • 举例说明:
  1. 原子性:
    (1)假设从账户A中转100元到账户B中,这个过程包含两个数据库操作,首先将账户A的余额减掉100,然后将账户B的余额加上100
    (2)若无法满足原子性,在完成账户A减掉100后,将账户B的余额加上100的操作失败了,此时就会导致只减不加的数据不一致的问题
  2. 一致性:
    (1)假设A的账户里只有200元,转出300元出去后,A的账户中只有-100元,此时数据就是不一致,即不满足现实世界中对余额必须大于等于0的约束
  3. 隔离性:
    在这里插入图片描述
  4. 持久性:
    (1)MySQL中为了解决内存和磁盘读写速度不一致的问题,MySQL是将磁盘中的数据加载到内存,对内存进行操作,然后再写回磁盘。
    (2)当尚未将修改的数据从内存写到磁盘中,就发生了宕机,此时内存中的数据就发生了丢失,此时持久性就无法保持,数据同样处于不合法的状态,这种状态认为是数据不一致
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_46427273

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值