数据库事务一
2005-06-09 11:37
288 查看
在单用户模式,事务非常容易理解 — 它们只是和保存或忘记应用程序的状态有关。然而,在多用户模式中,事务变得复杂多了。多用户事务的经典说明是银行帐户,其中一个应用程序试图在借记帐户,同时另一个应用程序试图贷记同一个帐户。如果您熟悉并发编程(也叫作多线程编程),您以前可能见过这种问题。根本的问题是除非两个事务相互隔离,否则一个应用程序就可能影响另一个,从而导致错误的程序状态。在我们简单的说明中,这可能意味着一个帐户中有错误的金额,这将无益于留住客户。
当处理多个访问相同数据的用户时,通常可能出现三种问题:
脏读。当应用程序使用了被另一个应用程序修改过的数据,而这个数据处于未提交状态时,就会发生脏读。第二个应用程序随后会请求回滚被其修改的数据。第一个事务使用的数据就会被损坏,或者“变脏”。
不可重复的读。当一个事务获得了数据,而该数据随后被一个单独的事务所更改时,若第一个事务再次读取更改后的数据,就会发生不可重复的读。这样,第一个事务进行了一个不可重复的读。
虚读。当事务通过某种查询获取了数据,另一个事务修改了部分该数据,原来的事务第二次获取该数据时,就会发生虚读。第一个事务现在会有不同的结果集,它可能包含虚读。
当处理多个访问相同数据的用户时,通常可能出现三种问题:
脏读。当应用程序使用了被另一个应用程序修改过的数据,而这个数据处于未提交状态时,就会发生脏读。第二个应用程序随后会请求回滚被其修改的数据。第一个事务使用的数据就会被损坏,或者“变脏”。
不可重复的读。当一个事务获得了数据,而该数据随后被一个单独的事务所更改时,若第一个事务再次读取更改后的数据,就会发生不可重复的读。这样,第一个事务进行了一个不可重复的读。
虚读。当事务通过某种查询获取了数据,另一个事务修改了部分该数据,原来的事务第二次获取该数据时,就会发生虚读。第一个事务现在会有不同的结果集,它可能包含虚读。
相关文章推荐
- 数据库事务基础知识。
- 从远程服务器数据库中同步数据到本地数据库 sql server 2008 开启分布式事务
- MS SQL Server数据库事务锁机制分析
- 数据库事务的四大特性以及事务的隔离级别
- 关系型数据库工作原理-事务管理(一)(翻译自Coding-Geek文章)
- 数据库主从表的处理 事务VS 数据级联删除
- 数据库事务基础知识
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- ThinkPHP v3.2.3 数据库读写分离,开启事务时报错:There is no active transaction
- 数据库恢复技术之事务
- 数据库事务的四大特性:ACID
- 数据库中的事务
- SQLite学习手册(数据库和事务)
- 92.Oracle数据库SQL开发之 修改表内存——数据库事务的事务锁
- 数据库之事务,存储过程,索引
- 数据库事务
- 数据库性能优化方案---锁和事务
- 数据库事务必须具备的ACID特性
- 什么是数据库事务?
- android sqlite数据库的事务