事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。

例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。

事务是恢复和并发控制的基本单位。

事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性。

原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。

隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

举个例子更能容易理解:

加入有多个sql语句(insert,update,del等等)
要一块执行,

比如说,创建一个用户,需要操作三个表,三个sql.

sql1:='insert.....';
sql2:='insert table2...';
sql3:='insert table3...';
假如不加事务, 到sql1,sql2都执行通过,但是sql3 执行错误了..
就有可能造成数据库的相关数据不同步.

这时候就需要加个事务

事务开始
sql1:='insert.....';
sql2:='insert table2...';
sql3:='insert table3...';
事务提交

如果中间发生意外,就事务回滚...

除非三个sql都执行通过,事务提交后,所有的数据才最终写入数据库,
如果任何一条sql执行错误, 事务回滚,, 前面操作成功的sql也将无效.
所有数据都不会写入库. 保证数据库各个表数据一致。

什么是事务(对事物的简单介绍)相关推荐

  1. 数据库事务的简单介绍

    事务和锁 一.什么是事务 事务是逻辑上的一组数据库操作,要么都执行,要么都不执行. 例子:假如张三要给李四转账200元,这个转账会涉及到两个关键操作就是:将张三的余额减少200元,将李四的余额增加20 ...

  2. 高性能分布式事物中间件Sharding-Sphere介绍

    原作者:Sharding-Sphere 转载来源:http://shardingsphere.io/index.html  , https://github.com/sharding-sphere/s ...

  3. 第一次有人把“分布式事务”讲的这么简单明了

    https://mp.weixin.qq.com/s/T-Q9eouj4unrWh8Q9bJoOA 又或者在网上购物明明已经扣款,但是却告诉我没有发生交易.这一系列情况都是因为没有事务导致的.这说明了 ...

  4. WCF中绑定的简单介绍

    绑定基本概念 绑定就是一个从通用基础类型派生出来的运行时类型.绑定中描述了传输协议,消息编码格式和其他的一些用于通信的通信协议. 绑定的种类介绍 类型名 配置文件使用名 描述 BasicHttpBin ...

  5. 第三十九期:收藏 | 第一次有人把“分布式事务”讲的这么简单明了

    不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付. 作者:咖啡拿铁来源 又或者在网上购物明明已经扣款,但是却告诉我没有发生交易.这一系 ...

  6. mysql binlog update_mysql binlog 简单介绍与基于binlog数据恢复

    mysql binlog 简单介绍与基于binlog数据恢复 通过备份文件恢复 binlog(本节重点) binlog 二进制日志文件 show variables like 'log_bin'; 二 ...

  7. mysql5.7参数简单介绍

    以下my.cnf简单介绍了各个参数的作用,除了buffer_pool_size,server id等参数需要按照服务器配置修改,其余大部分参数不用修改,可以直接用于生产环境. [client] por ...

  8. ShardingSphere(一)ShardingSphere简单介绍及相关概念

    一.ShardingSphere简单介绍 出现背景:当数据库数据巨大时,数据库读写性能将变得很低,为了解决此问题,设计时,可以将数据进行分别存储于不同数据库.不同表中,以降低单表量数量大问题:Shar ...

  9. ActiveMQ简单介绍以及安装

    ActiveMQ简单介绍以及安装   现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS ...

最新文章

  1. 谷歌Jeff Dean团队发文,探讨「学习模型」如何替代传统索引结构
  2. 推荐一篇文章,感觉学完Iterator模式后应当读一读
  3. 山东省中职计算机应用专业人才培养方案,计算机应用与维修专业人才培养方案(中职)...
  4. 服务器如何向c winform推送信息,C局域网聊天工具消息推送实现思路与源码.doc
  5. Ubuntu 安装redis desktop manager
  6. Caffe学习系列(9):运行caffe自带的两个简单例子
  7. jsf 开发_JSF开发人员应该知道的5种有用方法
  8. 08、单链表编程考点
  9. fpt指的是什么_ftp是指的什么?
  10. ModelSim 2019安装教程
  11. 万兴科技开启公司史上最大规模秋招,拟在长沙组建千人团队
  12. javascriptji c z s
  13. 桥梁工程智慧工地管理系统,实现工程项目的精细化管理
  14. 镜播无人直播带货教程,手把手教你如何搭建直播间
  15. 在腾讯实习一年,我学到了什么
  16. 498 对角线遍历(找规律)
  17. ACP敏捷8.人的因素.敏捷领导力和敏捷教练
  18. Python list列表方法使用总结及拓展延伸
  19. 一个项目经理能同时管几个项目?
  20. 11.11即将到来,华为云学院精品课程免费推荐奉上

热门文章

  1. XP系统硬盘安装Ubuntu14.04-超详细
  2. 敏感词过滤程序编写敏感词过滤程序
  3. Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗、Chrome、vlc、网易云音乐安装方法(转载)...
  4. 3种侧链压缩方法让音乐鼓点更有力—FL Studio教程
  5. HihoCoder - 1847
  6. Azure 媒体服务可将优质内容传输至 Apple TV
  7. 励销云全流程智能销售解决方案,助力B2B企业高效增长
  8. SpringCloud - LCN分布式事务框架
  9. 2019年编程语言排行榜,你还在犹豫吗?
  10. Flink实操 : DataSource操作