一、涉及内容

1.理解事务的概念和几个特性。

2.熟练掌握事务管理命令的使用。

3.理解并发操作的概念和数据库锁的类型。

二、具体操作

(12.5 实验)

1. 分析以下代码,说出代码中的哪些部分体现了事务的语句级原子性、过程级原子性和事务级原子性。

create table book

(bid number(4) CONSTRAINT pk_bid PRIMARY KEY DEFERRABLE INITIALLY IMMEDIATE,

bname varchar2(30),

bprice number(4,1));

insert into book values(1001,'Oracle 10g 数据库开发',35.4);

insert into book values(1001,'Java 程序设计',40);

begin

insert into book values(1002,'Java 程序设计',40);

insert into book values(1002,'计算机英语',28);

end;

insert into book values(1003,'计算机英语',28);

commit;

答:

(1)体现语句级原子性:上述代码中的每一条语句均能体现语句级原子性。每条语句本身也是最小级别的事务,该语句要么完全执行成功,要么完全失败,并且它不会影响其他语句的执行。

(2)体现过程级原子性:

以下这个匿名块:

begin

insert into book values(1002,'Java 程序设计',40);

insert into book values(1002,'计算机英语',28);

end;

这里PL/SQL匿名过程块也当作是语句,当作一个整体,过程中的所有代码要么都执行成功,要么都执行失败,并且不影响过程外的其他语句。

(3)体现事务级原子性:

上述代码中的所有语句及匿名块,即整个事务中的所有语句和匿名块都当作一个整体,一个事务。用户在提交或回滚事务时,要么所有语句都执行,要么都失败。

事务级原子性中包含了语句级原子性和过程级原子性,整个事务中的语句或匿名块首先受语句级原子性和过程级原子性的影响。

2. 数据库的DDL命令作为一个独立的事务执行,若以下代码在Sql*Plus的窗口1执行,那么在Sqlplus的窗口2中能够看到哪些新数据?

insert into scott.emp(empno,sal) values(1001,3000);

insert into scott.emp(empno,sal) values(1002,3000);

create table t1(id number);

insert into scott.emp(empno,sal) values(1003,3000);

在Sql*Plus的窗口1执行上述代码:

在Sqlplus的窗口2中查看scott.emp(empno,sal):

如上图所示,在Sqlplus的窗口2只能查看到在Sqlplus的窗口1中执行代码的create 之前的插入的数据。

3. 使用ROLLBACK可以将事务回滚到某个保存点,分析以下代码执行的结果。

insert into scott.emp(empno) values(1011);

SAVEPOINT aa;

insert into scott.emp(empno) values(1012);

ROLLBACK to aa;

insert into scott.emp(empno) values(1013);

commit;

答:执行结果截图如下:

因为使用了ROLLBACK,可将事务回滚到某个保存点。故上述代码执行完后只能看到插入的1011和1013两条记录的数据。

4. 利用第一题中创建的book表,分析以下两段代码的执行结果有何不同?

代码段一:

insert into book values(1011,null,null);

insert into book values(1011,null,null);

commit;

执行结果截图:

代码段二:

set CONSTRAINT pk_bid deferred;

insert into book values(1011,null,null);

insert into book values(1011,null,null);

commit;

执行结果截图:

答:代码段一中插入两条一样的记录,违反主键约束,插入重复的记录失败。代码段二中,设置了约束延迟生效,插入重复的记录暂时成功,但是当提交事务时检查约束,违反了主键约束,整个事务被回滚,两条看似成功的insert命令都失败了。

5.按照以下要求书写代码并执行,根据实验结果说明事务在不同隔离级别下的特点。

打开3个Sqlplus窗口,在窗口1中向scott.emp表中插入一行新数据,在窗口2中设置事务的隔离属性是READ ONLY,在窗口3中设置事务的隔离属性是READ WRITE。在窗口1提交插入命令的前后,观察窗口2和窗口3 中能否看到这条新数据。尝试在窗口2和窗口3中分别向scott.emp表中插入新数据,看看能否成功。

(1)在窗口1中向scott.emp表中插入一行新数据:

(2)在窗口2中设置事务的隔离属性是READ ONLY;

(3)在窗口3中设置事务的隔离属性是READ WRITE;

(4)窗口1提交前,观察窗口2和窗口3 中均不能看到这条新数据;

(5)窗口1提交后,观察窗口2还是不能看到;而窗口3 中可以看到这条新数据;

(6)在窗口2向scott.emp表中插入新数据,不能成功。

(7)在窗口3中向scott.emp表中插入新数据,可以插入成功。

(12.6 习题)

(一)填空题

1.事务的ACID特性包括(原子性)、(一致性)、(隔离性)、(持久性)。

2.在设置事务隔离层时,需要使用关键字(SET TRANSACTION)。

3.在众多的事务控制语句中,用来撤销事务操作的语句是(ROLLBACK),用来持久化事务对数据库操作的语句是(COMMIT)。

4.对表执行INSERT命令时系统自动加(RX)锁,执行CREATE命令时系统自动加(S)锁,执行ALTER命令时系统自动加(X)锁。

(二)简答题

1.哪些情况发生后事务将终止?

答:Oracle中的事务终止会发生在:

(1)用户使用COMMIT命令显示提交事务。

(2)用户使用ROLLBACK命令回滚整个事务。

(3)用户执行了一条DDL语句。(如create\drop\alter)

(4) 用户正常断开了与Oracle的连接,这时用户当前的事务将被自动提交。

(5)用户进程意外被终止,这时用户当前的事务被回滚。

(6)用户关闭SQL*PLUS会话时,默认使用ROLLBACK回滚事务。

2.数据库的并发操作会带来哪些问题?

答:数据库的并发操作会带来以下问题:

(1)丢失更新。

(2)错读(脏读)。

(3)不一致的分析(不可重复读)。

(4)幻读。

3.要建立一个名为savepint1的保存点,应使用哪个语句?

答:应使用语句:SAVEPOINT savepint1;

Oracle数据库11g各版本介绍及功能比较

.标准版和企 业版.所有这些版本都使用相同的通用代码库构建,这意味着企业的数据库管理软件可以轻松地从规模较小的单一处理器服务器扩展到多处理器服务器集 群,而无需更改一行代码.Oracle数据库11g企 ...

电脑上不安装Oracle时,C# 调用oracle数据库,Oracle客户工具

Oracle的安装包通常都比较大,安装又比较费时,而且如果安装过程中不幸出错,各种蛋疼,即便是安装过N遍的老手,有时候安装起来也觉得挺烦.而工作中,通常服务器上面安装oracle就可以了,我们本地电脑 ...

数据导入导出Oracle数据库

临近春节,接到了一个导入数据的任务,在Linux客户端中的数据有50G,大约3亿3千万行: 刚开始很天真,把原始的txt/csv文件用sh脚本转化成了oralce 的insert into 语句,然后 ...

oracle数据库从入门到精通

oracle产品线围绕企业开发平台的企业开发平台四大组件:unix,weblogic中间件,java编程语言,oracle数据库oracle 开发主要分两类数据库管理:dba数据库编程:分两部分   ...

CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表

最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...

十三、EnterpriseFrameWork框架核心类库之数据库操作(多数据库事务处理)

本章介绍框架中封装的数据库操作的一些功能,在实现的过程中费了不少心思,针对不同数据库的操作(SQLServer.Oracle.DB2)这方面还是比较简单的,用工厂模式就能很好解决,反而是在多数据库同时 ...

数据库事务隔离级ORACLE数据库事务隔离级别介绍

oracle数据库的并发控制,Oracle数据库—— 事务处理与并发控制相关推荐

  1. 数据库表设计、 数据库分层、myslq水平拆分、oracle表分区

    数据库表设计 数据库表结构设计方法及原则(li)数据库设计的三大范式:为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的 ...

  2. oracle asm 分布式存储,分布式数据中心数据库和存储部署解决方案

    文/耿加申 建设分布式双活数据中心是需要网络系统.存储系统.计算资源甚至包括应用系统等多个IT系统之间紧密合作才能实现的.用户所有的业务系统同时在两个数据中心运行,包括前端的全局负载均衡.服务器前端的 ...

  3. oracle timestamp计算两分钟前_阿里数据库真的超过Oracle了么?

    数据库从业人士对此表示很冷静. 文 | 张帅 国庆期间,一则"阿里数据库成绩刷新Oracle尘封九年记录"消息蔓延,让不少行外人士为之一振.事情是这样的:蚂蚁金服自主研发的金融级分 ...

  4. 数据库 day60,61 Oracle入门,单行函数,多表查询,子查询,事物处理,约束,rownum分页,视图,序列,索引

    1.    oracle介绍 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的 ...

  5. 行式数据库评测:Oracle 11g R2企业版

    本文我们将评测传统的行存储数据库,评测的重点仍然是tpc-h分析型查询,主要检验各种数据库在数据仓库方面的能力.我们从市场占有率最高的商业数据库Oracle开始. 一.数据库安装 Oracle在其官方 ...

  6. oracle exadata x6 -m,Oracle新推Exadata X6数据库云平台

    4月7日,甲骨文宣布推出Oracle Exadata X6数据库云平台(Oracle Exadata X6 Database Machine). Oracle Exadata X6数据库云平台配置了最 ...

  7. oracle数据库市场占有,Oracle数据库的高市场占有率

    Oracle数据库的高市场占有率 Oracle数据库经过30多年的发展,由于其优越的安全性.完整性.稳定性,以及支持多种操作系统.多种硬件平台等特点,得到了广泛的应用.从工业领域到商业领域,从大型机到 ...

  8. 自带谷歌“血缘”,越超Oracle,“蟑螂”成为分布式数据库新标杆?

    <中智观察>第1581篇推送 作者:赵满满 编辑:小瑞瑞 头图来源:摄图网 Heroic labs是一家为游戏等用户提供分布式服务器架构的企业,满足游戏公司全球上百万用户24小时实时多人对 ...

  9. oracle数据库50题,ORACLE数据库试题

    <ORACLE数据库试题>由会员分享,可在线阅读,更多相关<ORACLE数据库试题(10页珍藏版)>请在人人文库网上搜索. 1.ORACLE数据库试题1. 以下关于数据的逻辑结 ...

最新文章

  1. 【java下午茶系列】java三重奏之封装
  2. Spring Boot 配置文件详解
  3. Lightweight Render Pipeline
  4. Spring Boot之 Configuration Annotation Proessor not found in classpath解决方法
  5. ceph架构/IO原理分析(齐全)
  6. 介绍几个医学图像处理会议
  7. getlong_Java LocalDateTime类| 带示例的getLong()方法
  8. MTK 驱动(69)---MTK平台 电池驱动相关
  9. 在河北大学就读是怎样一种体验?
  10. win10 安装VB6详细安装教程及其中的坑
  11. Linux内核模块编程
  12. matlab求一维热传导方程数值解代码,一维热传导方程数值解法及matlab实现
  13. 【毕业季·进击的技术er】大学生计算机毕业设计应该这样写
  14. boj 1348 网络流,从来没有一个网络流能让我如此泪流满面,这样的建图方式,仰慕dalong
  15. 随笔---Beego中的routers包个人的理解
  16. html设置字体facename,CRichEdit控件操作使用
  17. 算法的特性和设计要求
  18. Android系统Camera图片反转的一个问题
  19. Python 设置numpy不以科学计数法保存和显示的方法
  20. 小说更新太慢怎么办_为什么现在的网络小说更新这么慢

热门文章

  1. 【工业4.0】工业4.0时代的大生产体系架构
  2. 《生成式对抗网络GAN的研究进展与展望》论文笔记
  3. java面试潜规则,你知道几条
  4. Idea 菜单栏 Build 选项
  5. Socket与TCP状态
  6. GitLab CI/CD系列教程(一)
  7. C++俄罗斯方块源代码
  8. 一“站”成名 | 盘点全球域名收购经典案例
  9. 5个月前,如果你没有不屑于刷这份《字节内推+面试宝典》,今天坐到字节Android部门,年薪70w+的人就是你了......
  10. 苹果wifi网速慢怎么办_WiFi用着用着就断了?这样设置WiFi永不断网,大部分人不知道...