1 / 26
文档名称:

数据库事务与并发处理.ppt

格式:ppt   页数:26
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库事务与并发处理.ppt

上传人:燕赵才子 2011/11/8 文件大小:0 KB

下载得到文件列表

数据库事务与并发处理.ppt

文档介绍

文档介绍:数据库事务与并发处理
@
教学内容
数据库事务的概念
声明事务边界
并发问题
设置事务隔离级别
使用悲观锁解决并发问题
使用乐观锁解决并发问题
数据库事务的概念
事务是指一组相互依赖的操作行为,如银行交易,股票交易或网上购物。事务的成功取决于这些相互依赖的操作行为是否都能执行成功,只要有一个操作行为失败,就意味着整个事务的失败,例如:Tony到银行办理转帐事务,把100元钱转到jack的帐号上,这个事务包含以下操作行为:


以上两个操作必需作为一个不可分割的工作单元,任何一个行为的失败整个转帐都不会成功。
数据库事务是对现实生活中事务的模拟,它由一组在业务逻辑上相互依赖的SQL语句组成。
数据库事务的生命周期
声明事务的边界
事务的开始边界
MIT):提交事务,永久的保存被事务更新后的数据库状态。
事务的异常结束边界(ROLLBACK):撤销事务,使数据库退回到执行事务前的初始状态。
通过JDBC API来声明事务边界
Connection类提供了用于控制事务的方法:
mit(boolean mit):mit():提交事务
rollback():撤销事务
通过Hibernate API声明事务的边界
声明事务的开始边界
Transaction tx = ();
提交事务
mit();
撤销事务

多个事务并发运行时的并发问题
单个事务能保证单项业务的数据完整性,但是当多个事务同步运行时可能带来并发问题,具体体现在:
第一类丢失更新:在撤销一个事务时,把其它事务提交的更新数据覆盖。
脏读:一个事务读到另一事务未提交的更新数据。
虚读:一个事务读到另一事务已提交的新插入的数据。
不可重复读:一个事务读到另一事务已提交的更新数据。
第二类丢失更新:这是不可重复读中的特例,一个事务覆盖另一事务已提交的更新数据。
第一类丢失问题
时间   取款事务                                  转账事务  ----------------------------------------------------------------------------------------      T1     开始事务      T2                                                      开始事务      T3     查询账户余额为1000元                                     T4                                                      查询账户余额为1000元      T5                                                      汇入100元把余额改为1100元      T6                                          &#1