Ch12_ 实验指导手册.pdfVIP

  • 1
  • 0
  • 约8.8千字
  • 约 13页
  • 2020-12-29 发布于广东
  • 举报
第十二章Transaction Management 实验指导手册 (内部资料 请勿外传) 郝 鹃 2015 / 2 / 20 实验内容 实验一 事务的显示定义 实验二 并发控制不当产生的数据不一致问题 实验三 事务的隔离级别 实验四 事务的恢复 实验一 Transaction 的显示定义 【实验目的】 1.加深对事务概念的理解 【实验准备】 1.启动SQL SERVER 2012; 2.安装University 数据库,并插入各表记录 【实验指导】 1. 事务的隐式定义 Select * from student; 2. 事务的显示定义 begin transaction T1 select * from student; commit transaction 3. 模拟两个并发事务, 一个事务中,用户使用事务语句可以封锁住另一个用 户对同一个数据库对象的操作。 (1)以sa 的帐号连接服务器,并执行以下命令: begin transaction update_T1 update student set name=’lily’ where id=’00128’; --该事务未结束 (2)创建用户st,身份验证方式为SQL server 验证,并对st 进行授权,使得st 能够对student 表进行查询,用st 登录数据库,并发出以下命令: select * from student; 注意: 该查询一直没有结果,因为事务update_T1 没有执行完,对student 表加了排它锁. (3)返回sa 查询窗口,执行以下命令: Commit; --成功提交事务; //或 Rollback transaction update_T1 ; --撤销事务 (4)执行步骤(3)的任意一条命令后,返回st 查询窗口后,可以看到有了查 询结果,因为updat_T1 执行完后,释放了student 表上的排它锁. 实验二 并发调度不当产生的数据不一致问题 【实验目的】 1. 理解并发控制不当带来的数据不一致问题 2. 体会并发控制的主要方法封锁机制,死锁及锁的粒度 【实验准备】 1.启动SQL SERVER 2012; 2.安装university 数据库,并插入各表记录; 3.创建用户st,身份验证方式为SQL server 验证,并对st 进行授权,使得st 能够对student 表进行查询,用st 登录数据库 【实验指导】 实验1:模拟如果并发控制不当,可导致“读脏数据”. 步骤:在sa 查询窗口执行 begin transaction insert_a insert into student values(98999,kk,NULL,NULL) 在st 查询窗口执行 select * from studnt with (nolock) 解释:虽然sa 的事务没有提交,但是由于st 中的 with (nolock)命令表示 不进行封锁,所以 st 可以读出数据,但是,当sa 的事务执行ROLLBACK,则导 致st “读脏数据”. 实验2:模拟不可重复读。 步骤: 在st 查询窗口执行 begin transaction inser_a select * fro

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档