什么是事务(对事物的简单介绍)
事务(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也将无效.
所有数据都不会写入库. 保证数据库各个表数据一致。
什么是事务(对事物的简单介绍)相关推荐
- 数据库事务的简单介绍
事务和锁 一.什么是事务 事务是逻辑上的一组数据库操作,要么都执行,要么都不执行. 例子:假如张三要给李四转账200元,这个转账会涉及到两个关键操作就是:将张三的余额减少200元,将李四的余额增加20 ...
- 高性能分布式事物中间件Sharding-Sphere介绍
原作者:Sharding-Sphere 转载来源:http://shardingsphere.io/index.html , https://github.com/sharding-sphere/s ...
- 第一次有人把“分布式事务”讲的这么简单明了
https://mp.weixin.qq.com/s/T-Q9eouj4unrWh8Q9bJoOA 又或者在网上购物明明已经扣款,但是却告诉我没有发生交易.这一系列情况都是因为没有事务导致的.这说明了 ...
- WCF中绑定的简单介绍
绑定基本概念 绑定就是一个从通用基础类型派生出来的运行时类型.绑定中描述了传输协议,消息编码格式和其他的一些用于通信的通信协议. 绑定的种类介绍 类型名 配置文件使用名 描述 BasicHttpBin ...
- 第三十九期:收藏 | 第一次有人把“分布式事务”讲的这么简单明了
不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付. 作者:咖啡拿铁来源 又或者在网上购物明明已经扣款,但是却告诉我没有发生交易.这一系 ...
- mysql binlog update_mysql binlog 简单介绍与基于binlog数据恢复
mysql binlog 简单介绍与基于binlog数据恢复 通过备份文件恢复 binlog(本节重点) binlog 二进制日志文件 show variables like 'log_bin'; 二 ...
- mysql5.7参数简单介绍
以下my.cnf简单介绍了各个参数的作用,除了buffer_pool_size,server id等参数需要按照服务器配置修改,其余大部分参数不用修改,可以直接用于生产环境. [client] por ...
- ShardingSphere(一)ShardingSphere简单介绍及相关概念
一.ShardingSphere简单介绍 出现背景:当数据库数据巨大时,数据库读写性能将变得很低,为了解决此问题,设计时,可以将数据进行分别存储于不同数据库.不同表中,以降低单表量数量大问题:Shar ...
- ActiveMQ简单介绍以及安装
ActiveMQ简单介绍以及安装 现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文深入浅出JMS(一)–JMS ...
最新文章
- 谷歌Jeff Dean团队发文,探讨「学习模型」如何替代传统索引结构
- 推荐一篇文章,感觉学完Iterator模式后应当读一读
- 山东省中职计算机应用专业人才培养方案,计算机应用与维修专业人才培养方案(中职)...
- 服务器如何向c winform推送信息,C局域网聊天工具消息推送实现思路与源码.doc
- Ubuntu 安装redis desktop manager
- Caffe学习系列(9):运行caffe自带的两个简单例子
- jsf 开发_JSF开发人员应该知道的5种有用方法
- 08、单链表编程考点
- fpt指的是什么_ftp是指的什么?
- ModelSim 2019安装教程
- 万兴科技开启公司史上最大规模秋招,拟在长沙组建千人团队
- javascriptji c z s
- 桥梁工程智慧工地管理系统,实现工程项目的精细化管理
- 镜播无人直播带货教程,手把手教你如何搭建直播间
- 在腾讯实习一年,我学到了什么
- 498 对角线遍历(找规律)
- ACP敏捷8.人的因素.敏捷领导力和敏捷教练
- Python list列表方法使用总结及拓展延伸
- 一个项目经理能同时管几个项目?
- 11.11即将到来,华为云学院精品课程免费推荐奉上
热门文章
- XP系统硬盘安装Ubuntu14.04-超详细
- 敏感词过滤程序编写敏感词过滤程序
- Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗、Chrome、vlc、网易云音乐安装方法(转载)...
- 3种侧链压缩方法让音乐鼓点更有力—FL Studio教程
- HihoCoder - 1847
- Azure 媒体服务可将优质内容传输至 Apple TV
- 励销云全流程智能销售解决方案,助力B2B企业高效增长
- SpringCloud - LCN分布式事务框架
- 2019年编程语言排行榜,你还在犹豫吗?
- Flink实操 : DataSource操作