数据库事务与并发处理.ppt_第1页
数据库事务与并发处理.ppt_第2页
数据库事务与并发处理.ppt_第3页
数据库事务与并发处理.ppt_第4页
数据库事务与并发处理.ppt_第5页
已阅读5页,还剩21页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库事务与并发处理,教学内容,数据库事务的概念 声明事务边界 并发问题 设置事务隔离级别 使用悲观锁解决并发问题 使用乐观锁解决并发问题,数据库事务的概念,事务是指一组相互依赖的操作行为,如银行交易,股票交易或网上购物。事务的成功取决于这些相互依赖的操作行为是否都能执行成功,只要有一个操作行为失败,就意味着整个事务的失败,例如:Tony到银行办理转帐事务,把100元钱转到jack的帐号上,这个事务包含以下操作行为: 1.从tom的帐户上减去100元。 2.往jack的帐户上增加100元。 以上两个操作必需作为一个不可分割的工作单元,任何一个行为的失败整个转帐都不会成功。 数据库事务是对现实生

2、活中事务的模拟,它由一组在业务逻辑上相互依赖的SQL语句组成。,数据库事务的生命周期,声明事务的边界,事务的开始边界 事务的正常结束边界(COMMIT):提交事务,永久的保存被事务更新后的数据库状态。 事务的异常结束边界(ROLLBACK):撤销事务,使数据库退回到执行事务前的初始状态。,通过JDBC API来声明事务边界,Connection类提供了用于控制事务的方法: setAutoCommit(boolean autoCommit):设置是否自动提交事务 commit():提交事务 rollback():撤销事务,通过Hibernate API声明事务的边界,声明事务的开始边界 Tran

3、saction tx = session.beginTransaction(); 提交事务 mit(); 撤销事务 tx.roll,多个事务并发运行时的并发问题,单个事务能保证单项业务的数据完整性,但是当多个事务同步运行时可能带来并发问题,具体体现在: 第一类丢失更新:在撤销一个事务时,把其它事务提交的更新数据覆盖。 脏读:一个事务读到另一事务未提交的更新数据。 虚读:一个事务读到另一事务已提交的新插入的数据。 不可重复读:一个事务读到另一事务已提交的更新数据。 第二类丢失更新:这是不可重复读中的特例,一个事务覆盖另一事务已提交的更新数据。,第一类丢失问题,时 间 取款事务转账事务-T1 开始

4、事务T2 开始事务T3 查询账户余额为1000元T4 查询账户余额为1000元T5 汇入100元把余额改为1100元T6 提交事务T7 取出100元把余额改为900元T8 撤销事务余额恢复为1000元-,脏读问题,时 间 取款事务 转账事务-T1 开始事务T2 开始事务T3 查询账户余额为1000元T4T5 取出100元把余额改为900元T6 查询账户余额为900元(脏读)T7 撤销事务余额恢复为1000元 T8 汇入100元把余额改为1000元T9 提交事务-,虚读问题,时 间 注册事务 统计事务- T1 开始事务T2 开始事务 T3 统计注册客户总数为10000人 T4 注册一个新用户 T

5、5 提交事务T6 统计注册客户总数为10001人T7 到底哪一个统计数据有效?-,不可重复读,时 间 取款事务 转账事务-T1 开始事务 T2 开始事务 T3 查询账户余额为1000元 T4 查询账户余额为1000元 T5 取出100元把余额改为900元 T6 提交事务 T7查询账户余额为900元T8余额到底是1000元还是900元?-,第二类丢失更新,时 间 取款事务 转账事务-T1 开始事务 T2开始事务T3 查询账户余额为1000元 T4查询账户余额为1000元T5 取出100元把余额改为900元T6 提交事务T7 T8 汇入100元把余额改为1100元T9 提交事务-,数据库的事务隔离级别,隔离级别与并发性能的关系,设定隔离级别的原则,隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。 对于多数据应用程序,可以优先考虑把数据库系统的隔离级别设为Read Committed,它能够避免脏读,而且具有较好的并发性能。尽管它会导致不可重复读,虚读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序悲观锁和乐观锁来解决。,在hibernate中设置隔离级别,使用悲观锁,利用悲观锁协调并发事务,使用乐观锁,利用元素对Accounts表中的记录进行版本控制,利用元素对Acco

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论