数据库实验报告:事务与并发控制(共8页).docx
《数据库实验报告:事务与并发控制(共8页).docx》由会员分享,可在线阅读,更多相关《数据库实验报告:事务与并发控制(共8页).docx(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据库原理实验报告题目:实验七事务与并发控制学号姓名班级日期纪昌宇2015.11.141. 实验七:事务与并发控制1.1. 实验目的1. 掌握事务机制,学会创建事务。2. 理解事务并发操作所可能导致的数据不一致性问题,用实验展现四种数据不一致性问题:丢失修改、读脏数据、不可重复读以及幻读现象。3. 理解锁机制,学会采用锁与事务隔离级别解决数据不一致的问题。4. 了解数据库的事务日志。1.2. 实验内容 假设学校允许学生将银行卡和校园卡进行绑定,在student数据库中有如下的基本表,其中校园卡编号cardid即为学生的学号: icbc_card(studcardid,
2、icbcid,balance) /校园卡ID,工行卡ID,银行卡余额 campus_card(studcardid,balance) /校园卡ID,校园卡余额数据创建的代码: use studentcreate table campus_card( studcardid Char(8) , balance Decimal(10,2)create table icbc_card( studcardid Char(8), icbcid Char(10), balance Decimal(10,2) ) insert into campus_card values(, 30)insert into
3、campus_card values(, 50)insert into campus_card values(, 70)insert into icbc_card values(, , 1000)insert into icbc_card values(, , 1000)insert into icbc_card values(, , 1000) 针对以上数据库按照要求完成下列实验:1. 编写一个事务处理(begin tran)实现如下的操作:某学号为的学生要从银行卡中转账200元到校园卡中,若中间出现故障则进行rollback。(15分)set transaction isolation l
4、evelrepeatable readbegin transactionuse studentgodeclare x decimal(10, 2)select x=balance from icbc_cardwhere studcardid=set x=x-200 if(x=0) begin update icbc_card set balance=x where studcardid= update campus_card set balance=balance+200 where studcardid= commit tran end else begin print 余额不足,不能转账
5、rollback tran end2. 针对本题的数据库和表,分别用具体的例子展现四种数据不一致问题:丢失修改、读脏数据、不可重复读和幻读(删除和插入)。(40分,每种数据不一致10分)(1).丢失修改-事务1begin trandeclare balance decimal(10,2)select balance=balance from campus_card where studcardid=waitfor delay 00:00:05set balance=balance-10update campus_card set balance=balance where studcardid
6、=commit trangoselect balance from campus_card where studcardid=-事务2begin trandeclare balance1 decimal(10,2)select balance1=balance from campus_card where studcardid=waitfor delay 00:00:05set balance1=balance1-20update campus_card set balance=balance1 where studcardid=commit trangoselect balance from
7、 campus_card where studca 【事务1】更改了数据,结果为60,但是没有被读到。最终【事务2】的结果50覆盖了【事务1】的更改值,结果不是期望值40(2).读脏数据-事务1 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED -READ UNCOMMITTED 执行脏读,不发出共享锁,也不接受排他锁begin tran declare balance decimal(10,2) select balance=balance from campus_card where studcardid= update campus_car
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告 事务 并发 控制
限制150内