数据库实验报告7

数据库实验报告7

ID:26315218

大小:482.69 KB

页数:7页

时间:2018-11-26

数据库实验报告7_第1页
数据库实验报告7_第2页
数据库实验报告7_第3页
数据库实验报告7_第4页
数据库实验报告7_第5页
资源描述:

《数据库实验报告7》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《数据库原理》实验报告题目:实验七事务与并发控制学号姓名班级日期XxxxXxXxx2016.11.10一.实验内容、步骤以及结果假设学校允许学生将银行卡和校园卡进行绑定,在student数据库中有如下的基本表,其中校园卡编号cardid即为学生的学号:icbc_card(studcardid,icbcid,balance)//校园卡ID,工行卡ID,银行卡余额campus_card(studcardid,balance)//校园卡ID,校园卡余额数据创建的代码:1.编写一个事务处理(begintran)实现如下的操作:某学号为201500

2、32的学生要从银行卡中转账200元到校园卡中,若中间出现故障则进行rollback。(15分)修改后的结果:2.针对本题的数据库和表,分别用具体的例子展现四种数据不一致问题:丢失修改、读脏数据、不可重复读和幻读(删除和插入)。(40分,每种数据不一致10分)l丢失修改:--事务一:begintrandeclare@balancedecimal(10,2)select@balance=balancefromcampus_cardwherestudcardid='20150033'waitfordelay'00:00:05'set@balan

3、ce=@balance-10updatecampus_cardsetbalance=@balancewherestudcardid='20150033'committrangoselectbalancefromcampus_cardwherestudcardid='20150033'--事务二:begintrandeclare@balance1decimal(10,2)select@balance1=balancefromcampus_cardwherestudcardid='20150033'set@balance1=@balance1

4、-20updatecampus_cardsetbalance=@balance1wherestudcardid='20150033'committrangoselectbalancefromcampus_cardwherestudcardid='20150033'【事务1】更改了数据,结果为60,但是没有被读到。最终【事务2】的结果50覆盖了【事务1】的更改值,结果不是期望值40l读脏数据--事务一:begintrandeclare@balancedecimal(10,2)select@balance=balancefromcampus_

5、cardwherestudcardid='20150032'updatecampus_cardsetbalance=@balance+100wherestudcardid='20150032'waitfordelay'00:00:05'rollbacktran--回滚goselectbalancefromcampus_cardwherestudcardid='20150032'--事务二:begintrandeclare@balancedecimal(10,2)select@balance=balancefromcampus_cardwh

6、erestudcardid='20150032'updatecampus_cardsetbalance=@balance+50wherestudcardid='20150032'committrangoselectbalancefromcampus_cardwherestudcardid='20150032'【事务1】原数据为50,更改了数据+100,【事务2】读取了表中更改后的值再进行操作,【事务1】回滚。最终的表存储了错误结果。l不可重复读--事务一:begintranselectbalancefromcampus_cardwhere

7、studcardid='20150031'waitfordelay'00:00:05'selectbalancefromcampus_cardwherestudcardid='20150031'committran--事务二:begintranupdatecampus_cardsetbalance=balance+200wherestudcardid='20150031'committranselectbalancefromcampus_cardwherestudcardid='20150031'事务二对数据的改变影响了事物一两次读取数据

8、的值,使读取数据产生错误l幻读Ø插入--事务一:begintranselectbalancefromcampus_cardwherestudcardid='20150031'waitforde

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。