数据库实验报告四(共10页).doc
《数据库实验报告四(共10页).doc》由会员分享,可在线阅读,更多相关《数据库实验报告四(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据库原理实验报告实验七: 事务与并发控制学号姓名班级日期杨添文2015.11.14实验七:事务与并发控制 一、 实验内容 假设学校允许学生将银行卡和校园卡进行绑定,在student数据库中有如下的基本表,其中校园卡编号cardid即为学生的学号: icbc_card(studcardid,icbcid,balance) /校园卡ID,工行卡ID,银行卡余额 campus_card(studcardid,balance) /校园卡ID,校园卡余额针对以上数据库按照要求完成下列实验:1. 编写一个事务处理(begin tran)实现如下的操作:某学号为的学生要从银行卡中
2、转账200元到校园卡中,若中间出现故障则进行rollback。(15分)(1) 程序代码如下:declare balance intselect balance=balance-200from icbc_cardwhere studcardid=update icbc_cardset balance=balancewhere studcardid=update campus_cardset balance=balance+200where studcardid=if balance0rollbackcommit;(2)结果如下:(结果很明显,阴影部分即显示操作已成功。)2. 针对本题的数据库和
3、表,分别用具体的例子展现四种数据不一致问题:丢失修改、读脏数据、不可重复读和幻读(删除和插入)。(40分,每种数据不一致10分)(1) 丢失修改:代码如下:set tran isolation level read uncommitteddeclare balance intselect balance=balancefrom icbc_cardwhere studcardid=waitfor delay 00:00:10update icbc_cardset balance=balance-300where studcardid=select balancefrom icbc_cardwhe
4、re studcardid=这段代码执行的时间设置为10秒,在此期间,重复执行这段代码(可以增加一个窗口,在10秒内执行),结果如下截图:很明显,若是成功修改,balance中的数据就会是400,而不是700。(2) 读脏数据:代码如下:(两个事务的执行时间间隔不超过10秒) 1、先编写代码执行事务1(执行一次对balance的操作,回滚)set tran isolation level read uncommittedbegin tranupdate icbc_cardset balance=balance+2000where studcardid=select balancefrom ic
5、bc_cardwhere studcardid=waitfor delay00:00:10rollback;select balancefrom icbc_cardwhere studcardid=这段代码的结果为:(balance的值已经返回正常值,为1000)2、执行事务2:set tran isolation level read uncommittedselect balancefrom icbc_cardwhere studcardid=这段代码结果为:(结果不是1000,却是3000,说明读了脏数据)(3) 不可重复读:代码段为:(两个事务的执行时间间隔不超过10秒)1、 先执行事
6、务1:declare balance int/*第一次读数据*/select balance=balancefrom icbc_cardwhere studcardid=print balancewaitfor delay 00:00:10/*第二次读数据*/select balance=balancefrom icbc_cardwhere studcardid=print balance结果为:(可以很明显的看出来,两次读数据的结果不一致,原因在于事务2的中间加入,而事务1又没有加锁导致)2、 再执行事务2:(在第二次读数据之前更新)update icbc_cardset balance=b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告 10
限制150内