25吴海华实验报告4.docx
《25吴海华实验报告4.docx》由会员分享,可在线阅读,更多相关《25吴海华实验报告4.docx(10页珍藏版)》请在冰豆网上搜索。
25吴海华实验报告4
实验报告
课程名称:
大型数据库管理系统
实验项目:
SQLServer事务和并发控制
实验类型:
综合性□设计性□验证性□
专业班别:
11本计科2班
姓名:
吴海华
学号:
411240225
实验课室:
厚德楼A203
指导教师:
陈刚
实验日期:
2014/11/6
广东财经大学华商学院教务处制
一、实验项目训练方案
小组合作:
是□否√
小组成员:
实验目的:
1)理解事务的概念和事务的结构
2)掌握事务的使用方法
3)了解并发控制中锁的作用
4)了解锁的类型
实验场地及仪器、设备和材料
实验场地:
厚德楼A203设备win7
实验训练内容(包括实验原理和操作步骤)
实验内容
1)比较自动事务模式和显式事务模式执行SQL的不同。
①以自动事务模式执行下面SQL语句
insertinto员工表values('2011','杨阳','男','1990-07-20','销售员',3800,'1004')
--注意部门号'1004'必须是部门表里有的部门号,即要满足外键约束。
selecttimes=1,*from员工表
update员工表set工资=4000where员工号='2011'
selecttimes=2,*from员工表
deletefrom员工表where员工号='2011'
selecttimes=3,*from员工表
②以显式事务模式执行SQL语句
--进入显式事务模式
begintransaction
--插入数据
insertinto员工表values('2011','杨阳','男','1990-07-20','销售员',3800,'1004')
selecttimes=4,*from员工表
--执行提交操作
committransaction
go
selecttimes=5,*from员工表
begintransaction
--修改数据
update员工表set工资=4000where员工号='2012'
selecttimes=6,*from员工表
--执行回退操作
rollbacktransaction
go
selecttimes=7,*from员工表
begintransaction
--删除数据
deletefrom员工表where员工号='2012'
selecttimes=8,*from员工表
--执行回退操作
rollbacktransaction
go
selecttimes=9,*from员工表
2)对员工表结构进行修改,增加最高学历和毕业院校字段,如果成果提交,否则取消。
(用显式事务,如果语句执行成功,则系统变量@@ERROR是0。
可以在sysmessages系统表中查看与@@ERROR错误代码相关的文本信息)。
3)仿照【例7-8】执行系统存储过程sp_lock,观察程序执行过程中锁的使用状况。
问题思考
1)SQLServer的事务模式分为哪几类?
各有什么特点?
2)定义事务,向表中插入一行数据,然后删除改行。
要求在删除命令前定义保存点MY,并使用ROLLBACK语句将操作回滚到保存点,该数据是否被删除?
(请验证)
二、实验总结与评价
实验总结(包括实验数据分析、实验结果、实验过程中出现的问题及解决方法等):
1)比较自动事务模式和显式事务模式执行SQL的不同。
selecttimes=0,*from员工表
①以自动事务模式执行下面SQL语句
insertinto员工表
values('2011','杨阳','男','1990-07-20','1004','销售员',3800)
selecttimes=1,*from员工表
update员工表
set工资=4000
where员工号='2011'
selecttimes=2,*from员工表
deletefrom员工表where员工号='2011'
selecttimes=3,*from员工表
②以显式事务模式执行SQL语句
--进入显式事务模式
begintransaction
insertinto员工表
values('2011','杨阳','男','1990-07-20','1004','销售员',3800)
selecttimes=4,*from员工表
--执行提交操作
committransaction
go
selecttimes=5,*from员工表
begintransaction
begintransaction
--修改数据
update员工表set工资=4000where员工号='2011'
selecttimes=6,*from员工表
--执行回退操作
rollbacktransaction
go
selecttimes=7,*from员工表
begintransaction
--删除数据
deletefrom员工表where员工号='2011'
selecttimes=8,*from员工表
--执行回退操作
rollbacktransaction
go
selecttimes=9,*from员工表
2)对员工表结构进行修改,增加最高学历和毕业院校字段,如果成功提交,否则取消。
(用显式事务,如果语句执行成功,则系统变量@@ERROR是0。
可以在sysmessages系统表中查看与@@ERROR错误代码相关的文本信息)。
altertable员工表
add最高学历char,
毕业学校char
3)仿照【例7-8】执行系统存储过程sp_lock,观察程序执行过程中锁的使用状况。
对实验的自我评价:
实验良好。
本次实验理解事务的概念和事务的结构,掌握事务的使用方法,了解并发控制中锁的作用,了解锁的类型,还有待加强学习。
指导教师评语:
学生实验成绩评定:
指导教师签名:
日期:
年月日