数据库原理:事务的隔离等级 (ANSI标准)

并发与数据读取

当多个会话同时访问(操作)相同的数据时,将会出现一些意想不到的结果 ,这包括:

– 脏读 -- Dirty reads

– 不可重复度-- Non-repeatable reads

– 幻读 -- Phantom reads

1、脏读

脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这 种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个 数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据。看下面这个图示可能更好理解 :

2、不可重复读

不 可重复读,是指在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据,这是由于查询时 系统中其它事务修改了该数据且已提交而引起的。比如事务T1读取某一数据,事务T2读取并修改了该数 据,T1再次读取该数据时,发现和第一次读取时不一样了。

图示如下:

时间: 2024-11-08 19:16:20

数据库原理:事务的隔离等级 (ANSI标准)的相关文章

数据库中事务的隔离性

在标准SQL规范中,定义了四个事务隔离级别. 1.读未提交 read uncommitted. 可以读到数据在别的事务处理期间的所有可能值. 2.读已提交 read committed. 别的事务已提交的值都可以被读到. 3.可重复读 repeatable read. 只能读到该事务开始前的值.忽略其他事务的修改. 4.串行化 serializable. 是最严格的事务隔离级别,它要求所有的事务都被串行执行. 5.例子 为了方便说明问题,定义事务A:不断的读小明的语文成绩.事务B:将小明的语文成

数据库事务以及事务的隔离级别

事务:一个逻辑工作单元要成为事务 事务的四个属性:原子性(atomicity).一致性(consistency).隔离性(isolation)和持久性(durability). 1.原子性(Atomic)     最重要的原则,也是最容易理解的原则.被事务管理的所有方法,要么一起被提交,要么一起回滚. 2.一致性(Consistency)     事务在系统完整性中实施一致性,如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于新有效状态.如果在事务中出现错误,那么系统中的所有变化将自动

深入分析MSSQL数据库中事务隔离级别和锁机制_MsSql

锁机制 NOLOCK和READPAST的区别. 1.       开启一个事务执行插入数据的操作. BEGIN TRAN t INSERT INTO Customer SELECT 'a','a' 2.       执行一条查询语句. SELECT * FROM Customer WITH (NOLOCK) 结果中显示"a"和"a".当1中事务回滚后,那么a将成为脏数据.(注:1中的事务未提交) .NOLOCK表明没有对数据表添加共享锁以阻止其它事务对数据表数据的修

数据库原理:关系型数据库的事务ACID特性

事务是关系型数据库的核心,关系型数据库之所以在过去这几十年里蓬勃发展,和它对事务的支持密 不可分.但所谓成也萧何,败也萧何,随着数据量的爆炸式增长,特别是近几年的大数据的蓬勃发展, 关系型数据库的事务成为了互联网应用的性能瓶颈,NoSQL正是摒弃了关系型数据库事务的某些属性,使 得对于某类特殊应用,其性能是关系型数据库的好多倍. 下面先说说什么是事务吧,事务在英文 中是transaction,和现实世界中的交易很类似,它有如下四个特性: 1.A (Atomicity) 原子性 原子性很容易理解,

SQL Server的事务操作隔离模式介绍_MsSql

一般而言,最好让SQL Server以默认形式在隔离事务操作;毕竟,隔离是ACID模型的基本原则之一.但是,有时候因为业务需求的原因,数据库管理员不得不违背默认行为,而 是采取更灵活一点的方法来进行事务操作隔离.针对数据库管理员遇到的这类情况,SQL Serve提供了五种不同的事务操作隔离模式.在详细介绍这些事务操作隔离模式之前,必需先了管理员会遇到的数据库问题: 1.脏数据读写,这种情况发生在当一个事务读写由另一个事务修改而未提交的数据的时候.如果另一个事物永远都不提交其修改数据,那么第一个事

spring事务中隔离级别和spring的事务传播机制

Transaction 也就是所谓的事务了,通俗理解就是一件事情.从小,父母就教育我们,做事情要有始有终,不能半途而废. 事务也是这样,不能做一般就不做了,要么做完,要 么就不做.也就是说,事务必须是一个不可分割的整体,就像我们在化学课里学到的原子,原子是构成物质的最小单位.于是,人们就归纳出事务的第一个特性:原子性(Atomicity).我靠,一点都不神秘嘛. 特别是在数据库领域,事务是一个非常重要的概念,除了原子性以外,它还有一个极其重要的特性,那就是:一致性(Consistency).也就

SQL Server-聚焦事务、隔离级别详解(二十九)

前言 事务一直以来是我最薄弱的环节,也是我打算重新学习SQL Server的出发点,关于SQL Server中事务将分为几节来进行阐述,Always to review the basics.  事务简介 事务是一个工作单元,可能包含查询和修改数据以及修改数据定义等多个活动.我们可以显式或隐式的定义事务边界.可以使用BEGIN TRAN或者BEGIN TRANSACTION语句显式的定义事务的开始.如果希望提交事务,可以使用COMMIT TRAN语句显式的定义事务结束.如果不希望提交事务(即要撤

SQL Server的事务操作隔离模式介绍

一般而言,最好让SQL Server以默认形式在隔离事务操作;毕竟,隔离是ACID模型的基本原则之一.但是,有时候因为业务需求的原因,数据库管理员不得不违背默认行为,而 是采取更灵活一点的方法来进行事务操作隔离.针对数据库管理员遇到的这类情况,SQL Serve提供了五种不同的事务操作隔离模式.在详细介绍这些事务操作隔离模式之前,必需先了管理员会遇到的数据库问题: 1.脏数据读写,这种情况发生在当一个事务读写由另一个事务修改而未提交的数据的时候.如果另一个事物永远都不提交其修改数据,那么第一个事

如何防止SQL Server数据库的事务日志异常增长

server|数据|数据库 当事务日志扩展到无法接受的限度时您必须执行的步骤.事务日志的扩展会导致 Microsoft SQL Server 数据库无法使用. 在 SQL Server 2000 中,每个数据库都至少包含一个数据文件和一个事务日志文件.SQL Server 2000 在该数据文件中以物理方式存储数据.事务日志文件存储您对 SQL Server 数据库执行的所有修改的详细信息,以及执行每个修改的事务的详细信息.由于事务完整性被视为 SQL Server 的一个基本而固有的特点,因此