文档章节

数据库 事务(Transaction)的学习笔记

s
 stupid_wolf
发布于 2015/12/22 14:09
字数 499
阅读 29
收藏 0

数据库 事务(Transaction)的学习笔记


概念:事务是访问并可能更新各种数据项的一个程序执行单元。
English difined: A transaction is a collections of operations that form a single unit of work.

特点:(ACID)
原子性(atomicity)
一致性(consistency)
隔离性(isolation)
持久性(durability)
补充:隔离性的理解
事务的隔离性确保事务并发执行后的系统状态与这些事务以某种次序一个接着一个执行后的状态是等价的。

实际例子的解决:
1.可见的外部写(observable external write)
定义:写的结果在数据库系统的外部之外看到,但实际上数据可能暂未写到数据库中大多数系统只允许该操
作在事务进入提交状态后发生。
解决:先在非易失行存储设备中临时写下与外部相关的所有数据,然后在事务进入提交状态后再执行真正的写操作。

2.用户在自动取款机上提款,但在即将取款成功时,系统出错。
解决:复杂一些,相对于上面的。重新启动后执行一个补偿事务,比如将现金存回用户的账户,而非重启后再次执行
该事务,把现金提取出来(因为用户可能不在了哇!)

3.用户在Web上进行预定。可能在预定事务刚刚提交后数据库系统或服务器发生崩溃。即事务已经提交,
但外部的写操作未发生(用户由于某些原因未能得到预定结果的反馈)
解决:应用程序必须设计成当用户再次连接到web应用程序时,她能够看到她的事务是否成功。

参考资料:《数据库系统概念 (原书第6版)》 第14章节


© 著作权归作者所有

s
粉丝 1
博文 24
码字总数 4084
作品 0
程序员
私信 提问
【笔记】事务

一、概念: 1、事务(Transaction)指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。 2、事务通常由高级数据库操作语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,...

Aeggainety
2017/12/22
0
0
Java for Web学习笔记(一零一):Spring框架中使用JPA(1)Transaction(上)

在spring中使用事务涉及的Bean 本学习将介绍一些在Spring中使用事务设计的Bean,有一个大致的概念认识,以便了解后面的代码。如果觉得枯燥,也可以在后面的学习中回过头来看。   在之前的学...

flowingflying
2017/12/30
0
0
数据库事务的学习笔记

对事务本身的理解 1.事务是一组原子性的SQL查询,对于事务内的查询要么完全成功,要么完全失败。 2.mysql默认的事务是自动提交的,即autocommit=true,也就是说一个SQL查询即是一个事务。 3....

天天顺利
2015/09/18
44
0
Spring Transaction + MyBatis SqlSession事务管理机制研究学习

原文地址:Spring Transaction + MyBatis SqlSession事务管理机制研究学习 线上的系统中,使用的是Spring+Mybatis+Mysql搭建的框架,由于客户需要,最近一直在对性能提升部分进行考虑,主要是...

Realfighter
2015/01/10
0
1
HTML5存储学习笔记(二)

Web SQL和IndexedDB 1. 综述 由于网络数据库可以允许你可以在用户的浏览器上存储数据和附件并提供丰富的查询能力,网络数据库让你有能力创造一种新的web应用,它们既可以工作在线上,也可以工...

球球
2016/11/15
57
0

没有更多内容

加载失败,请刷新页面

加载更多

Guava RateLimiter + AOP注解实现单机限流、统计QPS

1、基于springboot项目pom.xml添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency><d......

铁骨铮铮
28分钟前
3
0
龙芯版办公软件下载

金山wps office   rpm包:http://ftp.loongnix.org/os/loongnix/1.0/os/Packages/w/wps-office-10.8.0.6472-1.a20p1.mips64el.rpm   deb包:http://packages.deepin.com/loongson/pool/......

gugudu
33分钟前
2
0
BI报表分析和数据可视化,推荐这三个开源工具!

开源篇 一、Superset 1、技术架构:Python + Flask + React + Redux + SQLAlchemy 2、使用人群: (1)开发/分析人员做好看板,业务人员浏览看板数据 (2)业务人员可自行编辑图表,查看满足...

飓风2000
40分钟前
3
0
CountDownLatch

CountDownLatch的概念 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够使一个线程在等待另外一些线程...

少年已不再年少
48分钟前
2
0
centos7 新手阿里云服务器安装mongodb

简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库 由C++语言编写,运行稳定,性能高 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案 MongoDB特点 模式自由 :可以把不同结构的文档存...

醉雨
59分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部