谈事务的理解

事务和锁是两个联系非常紧密的概念,它们保证了数据库的一致性。由于数据库是一个可以由多个用户共享的资源,因此当多个用户并发地存取数据时,就要保证数据的准确性,事务和锁就完成了这项功能。

概念

事务就是一组包含一条或多条语句的逻辑单元,每个事务都是一个原子单位,在事务中的语句被作为一个整体,要么一起被提交,作用在数据库上,使数据库数据永久的修改,要么一起被撤销,对数据库不做任何的修改

对于这个问题比较经典的例子就是银行帐户之间的汇款转账操作.该操作在数据库中由以下3步完成:

1:源帐户减少存储金额,例如 减少1000

2:目标帐户增加存储金额,增加1000

3:在事务日志中记录该事务.

整个交易过程,我们看做一个事务,如果操作失败,那么该事务就会回滚,所有该事务中的操作将撤销,目标帐户和源帐户上的资金都不会出现变化;如果操作成功,那么将是对数据库永久的修改,即使以后服务器断电,也不会对该修改结果有影响.

事务在没有提交之前可以回滚,而且在提交前当前用户可以查看已经修改的数据,但其他用户查看不到该数据,一旦事务提交就不能再撤销修改了,oracle的事务基本控制语句有如下几个:

set transaction  :设置事务的属性。

commit:提交事务。

事务的四个特性:

1原子性 事务的原子性是指,事务中程序是数据库的逻辑工作单位,它对数据的修改要么全部执行,要么完全 不执行。原子也意味着不可侵害,不管有多少程序,只要在同一个事务中,那么它们就是一个整体,如果都执行成功才意味着该事务成功,而有一个操作失败,那么同一个事务中的其他操作即使执行成功也没有用,事务会使其全部撤销。

2一致性:

事务的一致性指事务执行的前后数据库都必须处于一致性状态,它是相对脏读而言的。只有在事务完成后才能被所有使用者看见,保证了数据的完整性。例如在银行转账时,从A帐户取款但没有放到B帐户中时数据是不一致的,同时也是不完整的,其他使用者此时不能看到A中修改后的数据,只有存到B帐户中,交易完成并提交事务,这时才算数据一致,所有用户也会看到修改后的数据。

3 分离性:分离性是指并发事务之间不能相互的干扰。也就是说,一个事务操作的数据不会被其他事务看到和操作。

4 持久性:持久性是指一旦事务提交完成,那么这将是对数据永久的修改,即使被修改后的数据遭到破坏,也不会出现回到修改之前的情况。

时间: 2024-10-13 12:42:23

谈事务的理解的相关文章

.NET简谈事务、分布式事务处理

在本人的 " .NET简谈事务本质论"一文中我们从整体上了解了事务模型,在我们脑子里能有一个全局的事务处理结构,消除对数据库事务的依赖理解,重新认识事务编程模型. 今天这篇文章我们将使用.NET C#来进行事务性编程,从浅显.简单的本地事务开始,也就是我们用的最多的ADO.NET事务处理,然后我们逐渐扩大事务处理范围,包括对分布式事务处理的使用,多线程事务处理的使用. 数据库事务处理 数据库事务处理我们基本都很熟悉了,begin Transaction --end Transactio

事务的理解

数据库事务包含4个特性:原子性,一致性,隔离性,永久性. 原子性和一致性是紧密相关的. 隔离性是两个事务互不干扰,如果修改同一条记录,结果是什么样的?怎么控制结果的准确性. 事务的理解,布布扣,bubuko.com

谈Spring的理解

技术旨在理解. 最近风靡的SpringMVC,其实只是Spring的一个组件,充分说明Spring的强大.Spring到底是个什么鬼?用SSH的人很多,但是还真不是谁都能说清Spring的原理. 在SSH框架中Srping充当了管理容器的角色: Spring容器集中管理Bean的实例化: 关于Spring除了SpringMVC,我们听的最多的是“控制反转IOC”,“依赖注入DI”,“面向切面AOP” 依赖注入(Dependecy Injection,DI)和控制反转(Inversion of C

事务的理解及应用

1.事物的理解: 事务(Transaction)是并发控制的基本单位.指作为单个逻辑工作单元执行的一系列操作,而这些逻辑工作单元需要具有原子性,一致性,隔离性和持久性四个属性,统称为ACID特性. Atomic(原子性):事务中的所有元素作为一个整体提交或回滚,事务的个元素是不可分的,事务是一个完整操作. Consistency(一致性):只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初状态.事物完成时和事物开始之前,数据存储中的数据处于一致状态.保证数据的无损. Isolation(

再谈事务

上一篇咱们简单了解了事务,这一篇我们再深入一下吧 Ⅰ.事务隔离级别 事务一共有四种隔离级别 简称 全称 - ru read-uncommited 未提交读 rc read-commited 提交读 rr repeatable-read 可重复读 srz serializable 可串行 从真正意义上来看只有srz达到真正隔离性的要求 oracel.sqlserver默认rc,mysql默认rr(99.99%达到隔离性要求) 事务隔离级别越低,事务请求的锁越少或者保持锁的时间就越短 1.1 四种隔

浅谈事务

事务: 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. ACID: 定义:是指在可靠数据库管理系统(DBMS)中,事务(transaction)所应该具有的四个特性:原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持久性(Durability) 一.原子性: 原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都发生,要么都不发生. 二.一致性: 一致性是指在事务开始之前和事务结束以后,数据库的

数据库事务的理解

1.什么事务? 是指作为单个逻辑工作单元执行的一系列操纵,要么完全地执行,要么完全地不执行.通俗来讲,比如完成一件事分为4个步骤 A,B,C,D;  每个步骤都是一个逻辑单元,完成一件事就是一个事务,这件事要么按顺序一起完成,要么完全的不执行.因此保持操纵的完整性.  2. 事务的四个特性: (1)原子性Atomic)(Atomicity) 事务必须是原子工作单元:对于其数据修改,要么全都执行,要么全都不执行.通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的.如果系统只执行这些操作的一

java中事务的理解

转载:http://www.cnblogs.com/kristain/articles/2038397.html 一.什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取.事务的正确执行使得数据库从一种状态转换成另一种状态. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性(isolation)和持久性(durability)的缩写事务必须服从ISO/IEC所制定的ACID原则.A

MySQL数据库事务的理解与操作

事务是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行.要么都不执行.事务是一个不可分割的工作逻辑单元. 事务具备四个属性,简称ACID属性: 原子性(Atomicity):事务是一个完整的操作.事务的各步操作是不可分的(原子的):要么都执行.要么都不执行. 一致性(Consistency):当事务完成时,数据必须处于一致状态. 隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务