转自(http://ayufox.iteye.com/blog/204439)
1. 事务四要素( ACID )
Ø Atomicity (原子性):工作单元不可分;要么执行所有数据修改,要么不执行任何数据修改。
Ø Consistency (一致性):事务完成后,必须使所有数据处于一致的状态。
Ø Isolation (隔离性):无法在事务之外看到中间状态的数据。
Ø Durability (持久性):事务完成之后,其作用将永久保留在系统中。
2. 并发
1) 并发的基本问题
Ø 丢失更新
Ø 不一致读
Ø 死锁
2) 隔离和只读
3) 锁类型
Ø 共享锁( S )
Ø 排它锁( X )
4) 乐观锁和悲观锁
Ø 乐观锁重在冲突检测,悲观锁重在避免冲突
Ø 乐观锁将比悲观锁拥有更好的并发能力
5) 隔离级别与不一致读错误
隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。
隔离级别
读脏数据
不可重复读
幻影读
Read Uncomitted
Yes
Yes
Yes
Read Committed
No
Yes
Yes
Repeatable Read
No
No
Yes
Serializable
No
No
No
3 . Oralce 事务
1)Oracle 常用锁类型
锁
SQL
None
select
SS(Table-S&Row-S) :行级共享锁,其他对象只能查询这些数据行
Select for update 、 Lock for update 、 Lock row share
SX(Table-S&Row-X) :行级排它锁,在提交前不允许做 DML 操作
Insert 、 Update 、 Delete 、 Lock row share
S(Table-Share) :共享锁
Create index
X(Table-Exclusive) :排它锁
Alter table 、 Drop able 、 Drop index 、 Truncate table
2)Oralce 的隔离级别
ORACLE 提供了 SQL92 标准中的 read committed 和 serializable ,同时提供了非 SQL92 标准的 read-only 。
3. 分布式事务
1)JTA : Java Transaction API
2) 跨资源事务
3) 跨进程事务
4. 事务传播
Ø Required
Ø Support
Ø Mandatory
Ø Required new
Ø Not Support
Ø Never
5 . Spring 对事务的支持
Ø TransactionAttribute :定义事务属性,包括传播属性、隔离级别、超时时间、是否只读和异常回滚策略
Ø TransactionAttributeSource :定义了事务属性的获取接口,其实现包括通过 Annotation 获取事务属性 (AnnotationTransactionAttributeSource)
Ø PlatformTransactionManager :事务管理器接口,其实现了具体的事务策略,包括 JTA 、 Hibernate 、 DataSource 、 JDO 等实现
Ø TransactionInterceptor :事务拦截器,基于 AOP 的声明式事务
Ø TransactionTemplate :手工事务模板类
分享到:
相关推荐
### 数据库事务总结 #### 一、事务的基本概念与特性 **事务**是数据库系统中的一个逻辑工作单元,它由一系列的操作组成,这些操作要么都完成,要么都不完成,以此来保证数据的一致性和完整性。 #### 二、事务的...
### Java事务总结 #### 事务的基本概念与属性 在计算机科学中,特别是在数据库管理系统中,**事务**是一种机制,用于确保一系列操作作为一个整体被执行。事务包含三个基本的行为:开始事务、提交事务以及回滚事务...
该文档从sqlserver事务讲起,详述ACID,@@trancount,在嵌套事务中使用保存点,命名事务等
然而,在实际开发过程中,经常会遇到一些关于Spring事务的问题,如事务失效、事务回滚、大事务问题以及编程式事务等。本文将深入探讨这些问题,并给出相应的解决方案。 #### 一、事务不生效的原因及解决办法 1. **...
分布式事务总结,包括了目前所知道的理论,二段三段saga协议。但没有包括一致性算法
事务的基本特征;事务的隔离级别;在数据库操作过程中很可能出现几种不确定的情况;不同的隔离级别对事务的处理;在选取数据库的隔离级别时,应该注意以下几个处理的原则:.锁,锁的特点,多个用户同时对数据库的并发...
编程式事务管理需要在代码中显式地开始、提交或回滚事务,而声明式事务管理则是通过在配置文件中声明事务规则,让Spring自动管理事务的生命周期,更加简洁和易于维护。 在给定的描述中,我们看到项目采用了SSH...
### Java事务处理总结 #### 一、什么是Java事务 事务是指一组操作的集合,这些操作要么全部成功,要么全部失败,以确保数据的一致性和完整性。在Java开发中,事务处理主要关注的是如何管理和控制对数据库的操作,...
总结来说,JDBC事务适用于单数据库、简单事务需求的场景,其API简洁,性能较好,但不具备分布式事务能力。而JTA事务则适用于需要跨数据库、复杂分布式事务的环境,虽然使用起来相对复杂,但能够保证大规模分布式系统...
Java事务处理是编程中确保数据一致性和完整性的关键机制,特别是在涉及数据库操作的场景下。事务处理遵循ACID原则,即原子性、一致性、隔离性和持久性。原子性确保事务作为一个不可分割的操作单元,要么全部执行,...
### 事务总结 - **Snapshot 隔离**:事务内部的查询始终看到事务开始时的数据,不受其他并发事务的影响。 - **MVCC 机制**:通过记录多个版本的文档,确保并发事务间的冲突检测和恢复。 理解这些核心原理和最佳...
### Java事务处理总结 在Java开发中,事务处理是一项非常重要的技术,它能够确保数据的一致性和完整性。本文将从多个角度对Java中的事务处理进行深入解析,帮助开发者更好地理解和运用这一技术。 #### 一、事务的...
本文将对三种不同的事务配置方式进行深入探讨:本地事务、全局事务以及结合动态数据源的事务管理。这些配置方式在处理多数据源和复杂业务场景时具有不同的优势和适用性。 首先,我们来看“本地事务”。本地事务通常...
总结来说,C#中的事务处理涉及到如何在单个数据库和分布式环境中确保数据的一致性。理解事务的基本原则,掌握C#中的事务管理工具和策略,以及熟悉处理分布式事务和异常情况的方法,对于任何从事数据库驱动的C#开发...
#### 五、总结 通过上述分析,我们可以看出Spring中的事务传播行为提供了丰富的选项,可以帮助开发者精确地控制事务的执行逻辑。正确理解和运用这些传播行为对于实现健壮、高效的事务管理至关重要。在实际开发中,...
1、详细介绍了Seata阿里分布式事务中间件; 2、对整个分布式事务解决方案原理进行了详细的分析,包括tcc、xa、saga等解决方案 3、IT老齐老师视频资料配套pdf;
在理解分布式事务专题之前,首先需要明确事务的基本概念。事务是一种机制,它保证了数据库操作的原子性、一致性、隔离性和持久性,也就是我们熟知的ACID属性。原子性(Atomicity)意味着事务中的所有操作要么全部...
会计师事务所项目经理工作总结.pdf
sqlite3事务总结: 在connect()中不传入 isolation_level 事务处理: 使用connection.commit() #!/usr/bin/env python # -*- coding:utf-8 -*- '''sqlite3事务总结: 在connect()中不传入 isolation_level 事务处理: ...