实验13 事务与并发控制

实验13 事务与并发控制

ID:11551694

大小:272.50 KB

页数:11页

时间:2018-07-12

实验13 事务与并发控制_第1页
实验13 事务与并发控制_第2页
实验13 事务与并发控制_第3页
实验13 事务与并发控制_第4页
实验13 事务与并发控制_第5页
资源描述:

《实验13 事务与并发控制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验13 事务与并发控制姓名:学号:专业:班级:同组人:实验日期:【实验目的与要求】n提交事务、回滚事务n发出保存点n事务锁机制的理解【实验内容与步骤】13.1.事务处理初步无论何时发出命令,都不会对数据库作直接更改。对于DML语句来讲必须明确地发出提交语句来保存更改;对于DDL,系统会自动提交。实验13-1:事务提交的实现。请按照下列给出的步骤完成实验,理解事务处理过程。(1)打开一个以上的SQLplus的实例,即启动SQLplus多个会话,并连接到上次使用的相同用户模式(即以相同用户名和口令登录)。如:开启两个同时处于活动状态的SQLplus会话,如图13-1所示。会话1会话2图13-1 

2、开启多个会话(2)如图13-1中所示,在“dept”表中插入一条新记录。图13-2 插入与查询数据(2)在第一个会话窗口中发出一个选择语句,检验记录的插入。第11页共11页请给出查询结果:(4)另一个会话窗口对同一dept表发出同一查询语句。请给出查询结果:co思考:比较两个查询语句运行结果,思考为什么会有这样的结果。(5)在第一个会话窗口提交修改。(6)完成提交后再在两个窗口各自对dept执行查询操作,比较查询结果,看是否相同?相同。实验13-2:执行下面的步骤理解提交的概念。(1)单击第一个SQL实例,如图所示,插入一项新记录。第11页共11页(2)单击第二个会话,在此插入同一项记录。观察

3、并比较运行结果,特别关注第二个会话的运行结果。不能运行(3)在第一个会话中提交数据(Commit),观察第二个会话中的反应状态。请给出运行结果:结论:由于记录是插入到第一个会话中的,又试图把相同的记录插入第二个会话中,并且由于deptno是主键,因此第二个会话不允许用户插入记录;而且在第一个会话发出提交语句或回滚语句(以后讨论)之前,挂起第二个会话。实验13-3:遵循下面给出的步骤,我们将理解如何保存记录整个过程背后的逻辑。(1)单击任务栏上SQL的第一个会话。将雇员的薪水更新为Rs.4000。请给出运行结果:(2)单击任务栏上的第二个SQL会话,试着更新相同记录的值。请给出运行结果:不能运行

4、,没有响应。结论:第二个会话处于挂起状态,因为无论何时更新一个记录,在用户提交或回滚它之前,该记录是锁定的。因此,如果不发出提交或回滚语句,第二个会话一直是锁定的,直到解锁。第11页共11页注意:DDL语句是自动提交的,所以没有必要使用任何提交语句来保存DDL语句所作的更改。13.1.撤消更改我们已用提交语句保存更改,下面看看如何使用回滚语句来达到我们的目的。回滚语句用于撤消未提交的更改。实验13-4:执行下面给出的步骤,用回滚语句进行操作。(1)如图中所示,在“dept”表中插入一条新记录。(2)发出一个选择语句查看如图4中所示的新记录,可以看到新记录。第11页共11页(3)发出一个如图4中

5、所示的回滚语句。(4)给出一个选择语句查看记录。请给出运行结果:第11页共11页思考:比较两次查询语句执行的结果,理解回滚操作。注意:提交更改之后,就不能执行回滚语句。13.1.插入保存点保存点只是在事务中插入的书签。这些书签用于标注事务,并配合回滚语句工作。由于回滚撤消整个任务,与保存点一起使用的回滚可用来撤消事务的某个部分。实验13-5:通过下面的操作步骤了解如何使用保存点:(1)删除deptno=70和80的记录,发出一个如图5中所示的保存点。(2)把deptno为40的位置(Loc)更新为“SANDIEGO”。(3)给出一个如下所示的命令来只撤消更新的记录。第11页共11页(4)查询d

6、ept表中数据,给出查询结果,注意观查表中是否还有deptno=70和80的记得和deptno=40的记录是否被更新。请给出运行结果:13.1.事务处理综合练习(1)实验准备:根据现有表emp生成测试用表(2)按下表所示步骤完成实验,根据运行结果完成表格最后一栏,理解事务处理。打开三个SQLPlus窗口完成实验要点:在第一个SQLPlus窗口中设置SETTRANSACTIONREADONLY 时间会话1会话2会话3给出各会话结果T1settransactionreadonly;T2selectcount(*)fromemp_t;selectcount(*)fromemp_t;会话1:14会话2

7、:14T3deletefromemp_twhererownum<=5;会话3:删除5行T4selectcount(*)fromemp_t;selectcount(*)fromemp_t;会话1:14会话2:14T5commit;T6selectcount(*)fromemp_t;selectcount(*)fromemp_t;会话1:14会话2:14T7insertintoemp_tselect*

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

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

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