何为“ 事务管理 ”?
“事务”是一个逻辑单元,其中包含一系列的操作,事务遵循4个基本特性(ACID):
Atomic(原子性,此处指的是事务中的各个操作不可分割) 事务中包含的操作被看作是一个逻辑单元,这个单元中的操作要么全部成功,要么就全部失败;
Consistency(一致性)
意味着:只有合法的数据可以被写入数据库,如果数据有任何不符合要求的,则事务应该将其会滚到最初状态;
Isolation(隔离性) 允许多个用户对同一数据的并发访问,而不破坏数据的正确性和完整性,同时,并行事务的修改必须与其他并行事务的修改相互独立;可以这样理解,一个事务的数据要么是另外一个事务修改这些事务之前的状态,要么是第二个事务已经修改完成的数据,但是这个事务不能够看到其他事务正在修改的数据;
Durability(持久性)
事务结束后,事务必须要得到固化(将其存储到数据库里,或保存到某硬件设备里);
何为“ 数据库事务管理隔离等级 ”?
事务隔离指的是:数据库(或其他事务系统)通过某种机制,在并行的多个事务之间进行分隔,使每个事务在其执行过程中保持独立;
Hibernate中的事务隔离依赖于底层数据库提供的事务隔离机制,因此对数据库事务隔离机制的理解在基于Hibernate实现的持久层中同样适用;
数据操作过程中可能出现的3种不确定情况:
脏读取(Dirty Reads) :一个事务读取了另一个事务为提交的数据;
不可重复读取(Non-repeatable Reads) :一个事务再次读取之前曾读取过的数据时,发现该数据已经被另一个已提交的事务修改;
虚读(Phantom Reads) :一个事务重新执行一个查询,返回一套符合查询条件的记录,但这些记录中包含了因为其他最近提交的事务而产生的新记录;
为了避免上面3中情况发生,标准的SQL规范中,定义了4个事务隔离等级;
Read Uncommitted:
最低等级的事务隔离,仅仅保证了读取数据中不会读到非法数据,这种等级下,上述的不确定情况均可能发生;(很容易出现脏读取);
Read Commited:
此级别的事务隔离保证一个事务不会读到另一个并行事务已修改但未提交的数据,此等级已经避免了脏读取的情况;(当一个事务处于在此隔离等级中,一个Select查询只能看到查询开始之前提交的数据,永远看不到为提交的数据,或者运行时提交的数据);
Repeatable Read:
此级别的事务隔离避免了“脏读取”和“不可重复读取”现象的出现,意味着:一个事务不可能更新已经由另一个事务读取但未提交的(回滚)的数据;[一般情况下,此级事务应用并不广泛,不能保证数据的合法性(可能会出现虚读),但是性能代价较大,如果当前数据库由应用所独享,可以考虑用“乐观锁”达到同样的目的];
Serializable:
最高登记的事务隔离级别,提供了最严格的隔离机制,上面的3种情况都将会避免掉,这个级别模拟事务的串行执行,逻辑上如同所有事务都处于一个执行队列,依次串行执行,而非并行执行;[此事务隔离级别提供了最严密的隔离机制,但是同时也带来了高昂的性能开销,需谨慎使用,如果需要,可以通过“悲观锁”来解决];
隔离等级 脏读取 不可重复读取 虚读
Read Uncommitted 可能 可能 可能
Read Commited 不可能 可能 可能
Repeatable Read 不可能 不可能 可能
Serializable 不可能 不可能 不可能
分享到:
相关推荐
1. **事务概念** 事务是一个不可分割的操作序列,具有原子性,即事务中的所有操作要么全部执行,要么全部不执行。事务保证了数据库的一致性,确保在事务开始和结束之间,数据库始终处于合法状态。事务通常以`COMMIT...
本书主要阐述事务概念是如何用于解决分布式系统问题的,以及这些概念如何使我们能够在有限的资金和风险范围内建立高性能、高可用性的应用系统。本书内容广泛,从系统的角度全面阐述事务处理的概念和技术,涉及终端上...
GBase 8s 是一款高性能、高可用性的分布式数据库系统,尤其在大数据处理领域有着广泛的应用。在数据库管理中,事务是确保数据一致性、完整...理解并掌握这些事务概念对于有效管理和优化GBase 8s数据库的性能至关重要。
在本教程中,我们将深入探讨SQLite中的一个重要概念——事务(Transaction),以及如何在Android中进行事务操作和测试。 首先,我们需要理解什么是数据库事务。在关系型数据库中,事务是一组数据库操作,这些操作被...
如果你正在学hibernate框架,我认为这份文档对你会有很大的关系。 如果你真的需要可以下载啊,积分又不是很多是吧,关键能学到知识就行了
事务处理 概念与技术
数据库事务:对数据库事务的讲解,事务的概念 理解事务的特性、分类
1. Early Beginnings:事务概念的提出可以追溯到20世纪60年代,数据库管理系统的出现。事务的ACID特性是指原子性、 一致性、隔离性和持久性。 2. 2PC(Two-Phase Commit):是分布式事务中最常用的实现技术之一。它...
本教程将深入探讨Spring中的事务管理,包括编程式事务管理和声明式事务管理,以及基础的事务概念。 首先,我们来理解事务的基本概念。事务是数据库操作的逻辑单位,它包含了多个数据库操作,并且这些操作要么全部...
- **XA 事务概念**:包括准备阶段(Prepare Phase)、提交阶段(Commit Phase)和回滚阶段(Rollback Phase)等核心概念。 #### 四、XA 和 Oracle 控制的分布式事务的使用 - **XA 和 Oracle 控制的分布式事务的...
##### 2.1 事务概念 在数据库操作中,事务是指一系列操作作为一个完整的单元来执行。这些操作要么全部成功,要么全部失败。事务具备ACID特性: - **原子性**(Atomicity):整个事务被视为一个不可分割的最小工作...
#### 一、分布式事务概念及重要性 在现代软件架构中,随着业务复杂度的提升以及系统规模的扩大,单一应用已经很难满足实际需求,分布式系统应运而生。分布式系统由多个独立运行的服务组成,这些服务之间通过网络...
1. **事务概念**:在数据库中,事务是一系列操作的集合,这些操作要么全部成功,要么全部回滚,以保持数据的一致性。事务是确保数据库在多用户环境下正确运行的关键机制。 2. **ACID属性**:事务必须遵循ACID(原子...
#### 一、事务概念及重要性 在数据库管理系统(DBMS)中,事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作。如果这些操作中的一个失败,则整个事务将被回滚以确保数据一致性。事务处理是确保数据完整...
事务的基本概念和在不同环境下如何使用事务。
) .findAndModify node.js 中 mongodb 事务概念的证明。用法 $ git clone git@github.com:rusintez/mongodb-transactions.git mt$ cd mt$ npm install$ node index.js应用程序接口 var transaction = require ( './...
在理解Ofbiz中的事务处理之前,我们先要回顾一下Java中的事务概念。 Java的事务分为本地事务和全局事务。本地事务是通过设置JDBC连接的`setAutoCommit(false)`来手动开启的,所有在这个连接上的操作都将被包含在一...
根据提供的文件信息,我们可以深入探讨事务处理的概念和技术,特别是这些技术在实时数据库系统中的应用。 ### 事务处理概念 #### 定义 事务是数据库管理中的一个基本操作单元,它包含一系列的操作,这些操作要么...
### 事务概念 在Oracle中,事务是确保数据库数据一致性的机制。事务由一系列相关的DML(数据操纵语言)语句组成,这些语句必须要么全部成功,要么全部撤销,以保证数据的一致性。例如,当执行一个转账操作时,通常...
#### 事务概念 事务在数据库管理中扮演着极其重要的角色,它是应用程序中的一个逻辑工作单元,通常包含一系列操作。这些操作作为一个整体被执行:要么全部完成,要么全部都不执行。事务的核心目标是保持数据库的...