数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。
原子性(Atomicity):一个事务必须将它产生的所有更改作为一个单独的工作单元提交,或者回滚。对于其数据修改,要么全部执行,要么全部不执行。即所有的更改操作被当成一个整体处理。
一致性(Consistency):事务在完成时,必须使所有的数据都保持一致状态。在事务期间,每次对数据库实施的插入、更新或删除操作时,数据库的完整性约束都要得到保证——即使在事务还未提交时也必须如此。
独立性(Isolation):由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。独立性是由一致性和并发性共同决定的。在独立性级别提高时,一致性将会会更好,但并发程度将降低。
持久性(Durability):事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。
Java中的常用的事务模型:
本地事务模型(Local Transaction Model)
编程式事务模型(Programmatic Transaction Model)
声明式事务模型(Declarative Transaction Model)
本地事务模型:事实上不是编程框架本身来管理事务,事务是交给本地资源管理器(local resource manager)来管理。资源管理器是用于通信的、事实上的数据源(dara source)提供者。如,数据库相关,资源管理器是通过数据库驱动和数据库管理系统(DBMS)来实现的。经由本地事务模型,开发人员管理的是“连接(connection)”,而非“事务”。
编程式事务管理:利用了Java事务API及其底层事务服务实现的能量以提供事务支持,突破了“本地事务模型”的种种限制。通过编程式事务模型,开发人员的编码对象是“事务”,而非“连接”。
声明式事务模型:在声明式事务模型的环境下,软件框架或“容器”管理了事务的开始和结束(或者提交,或者回滚)。开发人员仅仅需要告诉软件框架,碰到应用异常时“去回滚事务”即可,对事务的配置都是通过EJB中的XML部署描述文件或Spring中Bean的定义文件来完成。
分享到:
相关推荐
内含mchange-commons-0.2,mysql-connector-java-5.1.13-bin,commons-dbutils-1.4,itcast-tools-1.4,c3p0-0.9.2-pre1这五个jar包,用于简化数据库操作和简化事务相关操作。
GBase 8s事务相关概念
事务相关
本文的目的是要提供一个关于的Java事务处理API(JTA)的高级的概述,以及与分布式事务相关的内容。一个事务处理定义了一个工作逻辑单元,要么彻底成功要么不产生任何结果。 一个分布式事务处理只是一个在两个或更多...
Spring事务相关类Uml图
分布式事务相关资料及软件
行政事务相关管理流程.doc
行政事务相关流程和表格.pdf
行政事务相关管理流程5.doc
行政事务相关管理流程6.doc
Java中包含事务相关的内容面试常用题挺好
行政事务相关管理流程个ppt个.pptx
除此以外还介绍了一些分布式事务相关的技术,如幂等性、全局一致性ID、分布式对象等。... 6-1 分布式事务介绍 6-2 spring分布式事务实现_使用JTA 6-3 spring分布式事务实现_不使用JTA 6-4 实例1-DB-DB 6-5 实例1-DB-...
mysql事件,触发器,事务
MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程...
在移动环境下,为了满足实时事务在移动主机断接后数据的...根据实时事务的相关性,给出了实时事务的相关图。介绍了基于时间阈值、空间阈值、数据的有效期阈值的收集算法,有效保证数据的可用性和实时事务的定时限制。
为"单Activity + 多Fragment","多模块Activity 多Fragment"架构而生,简化开发,轻松解决动画、嵌套、事务相关等问题。为了更好的使用和了解该库,推荐阅读下面的文章:Fragment全解析系列(一):那些年踩过的坑...
一个完整的s2sm整合项目,含jar包。使用注释型事务管理。给大家参考了。
通过登记正在执行的事务性工作类型的资源管理器,.NET Framework 2.0中的事务管理系统能够解决动态事务组合...在下面的内容中将介绍.NET 2.0中与事务有关的轻量级事务管理、显式事务、TransactionScope类和自动化事务。