事务:一个操作,一个要执行SQL语句,要么执行,要么不执行,是一个不可分割的工作单位。
有如下特性:
A:原子性(atomicity)
C:一致性(consistency)
I:隔离性(isolation)
D:持久性(durability)

先理解数据库的一致性
参考这篇博客
https://www.cnblogs.com/ivanpan/p/6653990.html
考虑如下场景:
公司给员工发工资
1、财务处确认给你发的工资是多少
2、确认公司账户有多少资金
3、像银行发起转账申请,银行扣除学校财务卡上的指定金额
4、银行向员工工资卡中打入指定金额
5、银行汇报双方交易完成

如果执行第3步的时候,突然大断电,整个电力系统进入瘫痪。待电力系统恢复之后,银行并不会执行4,5,甚至连1,2,3的操作记录都对视。此时出现如下问题
1、学校认为,工资已经发出
2、A老师认为,学校还没有发工资
3、银行认为,从来就没有发生过转账的事情
其实整个过程可以用一个词来描述:数据库中的数据产生了“不一致性”,即在转钱的前后要保证钱的总量要一致。

还有要保证数据库的内部数据结构(如 B 树索引或双向链表)都必须是正确的

原子性:因为要满足要么执行,要么不执行,所以事务要么执行,要么不执行,是不可再分割的工作单元。

隔离性:多个事务并发访问时,事务之间是隔离的。
具体的有几种事务隔离级别,请看数据库复习之事务隔离级别

有的隔离并发事务所做的修改要和其他并发事务隔离。这是最基本的,如果这都不能保证,银行存钱就不准了。
一个事务修改数据,另一个事务查看数据时只能查看到修改前的数据或者修改后的数据,不能看到中间状态的数据。不然就会读到脏数据。
完全的隔离就要求串行化,这样会严重影响性能。

持久性:事务一旦提交,对数据库中数据的改变是永久性的。

数据库事务 ACID相关推荐

  1. 数据库事务ACID原则学习分享

    本人结合自己对技术的理解,努力以通俗易懂的内容帮助大家了解技术的基本原理,内容仅供参考,不对或不完善的地方请大家指教,感谢关注! 一.事务概念的引入 当今,信息化技术非常发达的时代,我们通过手机上的银 ...

  2. [转]数据库事务ACID特性

    ACID特性 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持 ...

  3. 数据库事务ACID详解(转载)

    转载自:http://blog.csdn.net/shuaihj/article/details/14163713 谈谈数据库的ACID 一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行 ...

  4. 数据库事务ACID特性

    ACID特性 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持 ...

  5. 数据库事务ACID特性分析

    在日常生活中,事务是无时无刻不存在的,什么是事务,按我的理解事务便是执行一段连续的不可分离的操作,这段操作是为了实现某一个目的而执行的,它不存在中间状态,要么执行成功,则该操作所带来的影响永久存在,要 ...

  6. 数据库事务ACID原则

    数据库事务正确执行的四个原则:A原子性.C一致性.I独立性.D持久性 (1)原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节.事务在执行过程中发生错误,会被回滚到事 ...

  7. 数据库事务的ACID特性及含义

    数据库事务的ACID特性及含义 1.原子性(Atomic) 一个事务被视为一个不可分割的最小工作单元,这个事务里的所有操作要么全部成功执行,要么全都不执行,不能只执行其中的一部分操作.实现事务的原子性 ...

  8. 数据库 事务的特性ACID

    事务(Transaction)是并发控制的基本单位. 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这 ...

  9. 数据库事务的四大特性ACID

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

最新文章

  1. 【转】Linux awk命令详解
  2. 软路试--就像一棵树活着
  3. 算法分析与设计——分治法最近点对
  4. http://blog.csdn.net/wemedia/details.html?id=40237
  5. oracle 查看日志组切换状态_Oracle 11g ADG 快照备库切换步骤
  6. win怎么打开微软更新服务器,怎样打开win10的更新服务器地址
  7. when is extension component's resource bundle loaded
  8. php如果实现日历的制作,教大家制作简单的php日历
  9. S5PV210裸机之Nandflash
  10. 传统新年元旦海报设计,必备高品质吉祥图案背景
  11. java做flv直播服务器,EasyDSS流媒体服务器软件(支持RTMP/HLS/HTTP-FLV/视频点播/视频直播)-正式环境安装部署攻略...
  12. 程序员被纳入新生代农民工;“腾讯视频崩了”上热搜;英特尔发布全新独立显卡品牌 Arc|极客头条...
  13. jQuery各种选择器总结
  14. Nginx详解(正向代理、反向代理、负载均衡原理)
  15. cloudera安装
  16. 123457123457#0#-----com.yuming.drawGame01--前拼后广--儿童画画游戏
  17. react 控制台 Maximum call stack size exceeded 如何解决
  18. c语言aps审核,APS考官最讨厌的几类人
  19. 前端开发入门教程-CSS(一)
  20. 淘宝品牌产品无授权开直通车怎么实现

热门文章

  1. Python:实现integer partition整数分区算法(附完整源码)
  2. Linux驱动01 - Timer
  3. 量子计算(一):量子计算是什么
  4. python求最小公倍数
  5. 蓬莱小课:零基础应届生如何转行学数据分析师?
  6. 电子邮件协议---SMTP,POP3,IMAP,MIME
  7. 文案撰写技巧,感人文案的4大技巧
  8. 微信小程序——使用npm包、分包
  9. eclipse下连接MYSQL教程
  10. 【camera】【摄像头模组】摄像头模组简单介绍