- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验4事务处理与并发控制_解析.doc
实验4 事务处理与并发控制
【实验目的与要求】
提交事务、回滚事务
发出保存点
事务锁机制的理解
【实验内容与步骤】
事务处理初步
无论何时发出命令,都不会对数据库作直接更改。对于DML语句来讲必须明确地发出提交语句来保存更改;对于DDL,系统会自动提交。
实验4-1:事务提交的实现。请按照下列给出的步骤完成实验,理解事务处理过程。
(1) 打开一个以上的 SQL plus 的实例,即启动 SQL plus 多个会话,并连接到上次使用的相同用户模式(即以相同用户名和口令登录)。如:开启两个同时处于活动状态的 SQL plus 会话,如图 4-1 所示。
图 4-1 开启多个会话
(2) 如图 4-1 中所示,在“dept”表中插入一条新记录。
图 4-2 插入与查询数据
(2) 在第一个会话窗口中发出一个选择语句,检验记录的插入。
请给出查询结果:
(4)另一个会话窗口对同一 dept 表发出同一查询语句。
请给出查询结果:
思考:比较两个查询语句运行结果,思考为什么会有这样的结果。
(5)在第一个会话窗口提交修改。
(6)完成提交后再在两个窗口各自对dept执行查询操作,比较查询结果,看是否相同?
实验4-2:执行下面的步骤理解提交的概念。
(1)单击第一个 SQL 实例,如图 所示,插入一项新记录。
(2)单击第二个会话,在此插入同一项记录。
观察并比较运行结果,特别关注第二个会话的运行结果。
(3)在第一个会话中提交数据(Commit),观察第二个会话中的反应状态。
请给出运行结果:
结论:由于记录是插入到第一个会话中的,又试图把相同的记录插入第二个会话中,并且由于 deptno 是主键,因此第二个会话不允许用户插入记录;而且在第一个会话发出提交语句或回滚语句(以后讨论)之前,挂起第二个会话。
实验4-3:遵循下面给出的步骤,我们将理解如何保存记录整个过程背后的逻辑。
(1)单击任务栏上 SQL 的第一个会话。将某雇员的薪水更新为4000。
请给出运行结果:
(2)单击任务栏上的第二个 SQL 会话,试着更新相同记录的值。
请给出运行结果:
结论:第二个会话处于挂起状态,因为无论何时更新一个记录,在用户提交或回滚它之前,该记录是锁定的。因此,如果不发出提交或回滚语句,第二个会话一直是锁定的,直到解锁。
注意:DDL 语句是自动提交的,所以没有必要使用任何提交语句来保存 DDL 语句所作的更改。
撤消更改
我们已用提交语句保存更改,下面看看如何使用回滚语句来达到我们的目的。回滚语句用于撤消未提交的更改。
实验4-4:执行下面给出的步骤,用回滚语句进行操作。
(1)如图中所示,在“dept”表中插入一条新记录。
(2)发出一个选择语句查看如图 4 中所示的新记录,可以看到新记录。
请给出查询结果:
(3)发出一个如下图所示的回滚语句。
(4)给出一个选择语句查看记录。
请给出运行结果:
思考:比较两次查询语句执行的结果,理解回滚操作。
注意:提交更改之后,就不能执行回滚语句。
插入保存点
保存点只是在事务中插入的书签。这些书签用于标注事务,并配合回滚语句工作。由于回滚撤消整个任务,与保存点一起使用的回滚可用来撤消事务的某个部分。
实验4-5:通过下面的操作步骤了解如何使用保存点:
(1)删除 deptno= 70 和 80 的记录,发出一个如下图所示的保存点。
(2)把 deptno为 40 的位置(Loc)更新为“SAN DIEGO”。
(3)给出一个如下所示的命令来只撤消更新的记录。
(4)查询dept表中数据,给出查询结果,注意观查表中是否还有deptno=70 和 80的记得和deptno=40的记录是否被更新。
请给出运行结果:
事务处理的ACID属性
4.4.1事务原子性
实验4-6:语句级原子性
(1)完成以下语句的执行
(2)依次执行以下语句:
set serveroutput on;
insert into tp values(1);
insert into tp values(-1);
观查运行结果:
(3)查询t2表中cnt字段的值
请给出执行结果:
思考:为什么会有这样的结果?
4.4.2事务一致性
实验4-7:按以过程完成程序,理解事务的一致性。
(1)完成以下语句的执行
(2)依次执行以下语句:
请给出执行结果:
事务的并发控制
实验4-8:引发死锁
锁定是用来控制共享资源并发访问的机制死锁就是两个会话都进入了彼此等待对方的状态。请按下列步聚完成实验操作,理解Oracel锁机制。
(1)在会话1中,执行如下的操作:
SQL create table a
2 as
3 select 1 x from dual;
表已创建。
SQL create table b
2 as
3
您可能关注的文档
最近下载
- 卫健系统党课讲稿:掌握科学方法提升党风廉政建设质效.docx VIP
- 酒业公司业务员培训方案.ppt
- 第四章python基础教学设计-高中信息技术必修1数据与计算课件教学设计.pdf VIP
- 《人类面临的主要环境问题》精品课件.ppt VIP
- GB_T8110-2020熔化极气体保护电弧焊用非合金钢及细晶粒钢实心焊丝.pdf
- 怎样培养一年级学生的数学审题能力PPT22页.ppt
- 党课讲稿:夯实基础 把握重点 切实提升基层党组织建设质效.docx VIP
- 2025中国海洋石油集团有限公司校园招聘笔试参考题库附带答案详解.doc
- 《非煤岩岩爆倾向性评价规范-第2部分:数值模拟方法与材料模型参数标定》.pdf VIP
- 100以内连加连减打印版-100题.doc
文档评论(0)