关闭

数据库事务

206人阅读 评论(1) 收藏 举报
分类:
1 数据库事务的ACID属性
原子性(atomic)
  对于中包含的操作,要么全部执行,要么全部不执行。
一致性(consistent)
  事务在完成时,必须使所有的数据都保持一致状态。
隔离性(insulation)
    当多个事务并发执行的时候,不同事务之间数据的可见程度。
持久性(durability)
  事务完成之后,更改的数据是永久的。

2 事务的隔离性的级别包括:
Read_Uncommited
Read_Commited
Repeatable_Read
Serializeble

这四种不同的隔离级别可能导致的并发问题:


图片引用自博客:http://blog.csdn.net/bluishglc/article/details/5626009





脏读:一个事务读取了另一个事务改写但尚未提交的数据。


不可重复读:同一次事务中执行了相同的查询两次以上,但每次查询的结果不同。通常由于另一个事务在两次查询更新了数据。


幻影读:一个事务读取了几行数据,接着另一个并发事务插入了几行数据。随后的查询中,第一个事务会发现多了一些原本不存在的数据行。

幻读与不可重复读类似:前者是指两次读取中,另一个事务进行了插入操作,导致读取到原来不存在的值。后者是指两次读取中,另一个事务进行了更新,导致两次的数据信息不一致。

3 事务的传播特性
事务的传播属性是在Spring框架中配置事务的时候需要理解的。Spring支持的事务传播属性有7种:包括:
Required:表示当前方法需要在事务环境中运行。如果当前已经有事务环境,就在当前事务环境中运行,如果当前没有事务环境,就新建一个事务环境并在其中运行。
Required_New:表示当前方法需要在新的事务环境中运行。如果当前已经有事务环境,则挂起。然后新建一个事务环境并在其中运行。
Mandatory:表示当前方法需要在事务环境中运行。如果当前不在事务环境中,就会抛出异常。
Supports:表示当前方法可以在事务环境中运行。如果当前在事务环境中,就以事务的方式运行。如果不在事务环境中,就以非事务方式运行。
Not_Supported:表示当前方法不可以在事务环境中运行。如果当前在事务环境中,则挂起。然后以非事务方式运行。
Never:表示当前方法不能以事务方式运行。如果当前在事务环境中,就会抛出异常。
Nested:表示当前方法以嵌套事务的方式运行。如果当前在事务环境中,即在父事务环境中创建一个子事务环境。如果当前不在事务环境中,就以Required方式运行。



  • 大小: 88.8 KB
  • 大小: 67.2 KB
  • 大小: 75.1 KB
  • 大小: 83.3 KB
  • 大小: 21 KB
0
0
查看评论

数据库事务特性学习笔记

数据库事务 事务: 实现特定业务功能处理的一组数据库操作语句序列,事务具有原子性和一致性。(出现错误则撤销或者回滚操作来保证一致性) 事务管理:数据库与数据文件最大的区别是它实现数据共享访问,并保证数据一致性。           采用事务管...
  • dadaxiongdebaobao
  • dadaxiongdebaobao
  • 2016-08-20 00:09
  • 839

数据库事务与使用

事务的概念与特性:       事务(Transaction)是并发控制的基本单位。指作为单个逻辑工作单元执行的一系列操作,而这些逻辑工作单元需要具有原子性,一致性,隔离性和持久性四个属性,统称为ACID特性。最经典的银行转账问题:从一个账号扣款并...
  • wang379275614
  • wang379275614
  • 2013-03-30 20:43
  • 5069

数据库事务的原理

数据库事务的原理:         事务开始之后,事务所有的操作都陆续写到事务日志中。写到日志中的操作,一般有两种:一种是针对数据的操作,一种是针对任务的操作。针对数据的操作,例如插入、删除和修改,这是典型的事务操作,这些操作的对象是大量的数据。有些操作是...
  • veeasy
  • veeasy
  • 2012-07-24 08:36
  • 2364

Spring的事务管理和数据库事务相关知识

1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱。  比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱;然后ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1...
  • zbw18297786698
  • zbw18297786698
  • 2016-11-20 14:46
  • 3111

关于数据库事务隔离级别的介绍

事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护
  • xiasihua88
  • xiasihua88
  • 2011-02-16 09:06
  • 1327

数据库事务应用编程规范

一、            编写有效事务的指导原则 不要在事务处理期间要求用户输入或消息响应。 在事务启动之前,获得所有需要的用户输入。如果在事务处理期间还需要其它的用户...
  • kyleing
  • kyleing
  • 2014-09-18 13:58
  • 505

关系型数据库工作原理-事务管理(一)(翻译自Coding-Geek文章)

原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 紧接上一篇文章,本文翻译了如下章节: Transaction manager(事务管理器) 一、关于ACID 一个满足ACID...
  • ylforever
  • ylforever
  • 2016-04-03 16:33
  • 5711

9.Benchmark SQL 数据库测试工具代码——事务New-Order

9.Benchmark SQL 数据库测试工具代码——事务New-Order 欢迎转载,转载请标明出处: New-Order事务是一个中等的量级的读写事务。 是整个负载的主心骨。 1.  输入input data 仓库ID,区域ID,用户ID,物品数量,是否本地供货,物品ID,...
  • notbaron
  • notbaron
  • 2015-12-19 11:22
  • 30356

数据库事务和存储过程已经函数的概念以及使用方法

1:基本概念 事务: 2:使用方法
  • xiaotaode2012
  • xiaotaode2012
  • 2014-09-08 19:40
  • 389

spring事务和数据库数据库事务的区别

spring事务和数据库数据库事务的区别 不使用事务时,每次调用hibernateTemplate的方法会立刻进行事务提交. 而使用事务后,会在你配置的类的方法执行完成后再进行事务提交,如果一个方法中同时进行了多次的插入、修改或删除操\ 作,会统一的进行提交或回滚,这样可以保证数据操作会...
  • rainyear
  • rainyear
  • 2013-12-09 11:55
  • 1895
    个人资料
    • 访问:150845次
    • 积分:1773
    • 等级:
    • 排名:千里之外
    • 原创:138篇
    • 转载:11篇
    • 译文:0篇
    • 评论:39条
    最新评论