在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

怎么理解oracle中的事务

99次阅读
没有评论

共计 2084 个字符,预计需要花费 6 分钟才能阅读完成。

本篇内容主要讲解“怎么理解 oracle 中的事务”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“怎么理解 oracle 中的事务”吧!

一组 SQL 语句操作要成为事务,数据库管理系统必须保证这组操作的原子性(Atomicity)、一致性(consistency)、隔离性(Isolation)和持久性(Durability),这就是 ACDI 特性。

原子性:是指事物中包含的所有操作要么全做,要么全不做,也就是说事物的所有活动在数据库中要么全部反映,要么全部不反映,一保证数据时一致的。

一致性:是指数据库在事务操作前和操作处理,其中的数据必须都满足业务规定的约束。

隔离性:是指数据库允许多个并发事务同时对其中的数据进行读写好修改的能力,隔离性可以防止事务的并发执行时,由于他们的操作命令交叉执行而导致的数据不一致状态。

持久性:是指当事务结束后,它对数据库中的影响是永久的,即便系统遇到故障的情况下,数据也不会丢失。

数据库事务由以下的部分组成:

一个或多个 DML  语句

一个  DDL(Data Definition Language –  数据定义语言)  语句

一个  DCL(Data Control Language –  数据控制语言)  语句

事务的执行过程:

以第一个  DML  语句的执行作为开始

以下面的其中之一作为结束:

COMMIT  或  ROLLBACK  语句

DDL  或  DCL  语句(自动提交)

用户会话正常结束

系统异常终了

备注:使用 COMMIT  和  ROLLBACK 语句, 我们可以:  确保数据完整性;数据改变被提交之前预览;将逻辑上相关的操作分组。

事务控制语句

Set transaction:设置事务的属性

Set constrains:设置当前事务的约束模式,设置约束是修改数据的时候,立即起作用,还是当前事务结束后应用。

Savepoint :在事务中建立一个存储点,回滚时,可以指定回滚到什么地方,然后重新执行

Release savepoint:删除一个存储点

Rollback:回滚事务。级取消对数据库所做的任何修改

Commit:提交事务,把事务中对数据库的修改进行永久保存

数据异常

因为 Oracle 中支持多个事务并发执行,所以会出现下面的数据异常。

错读 | 脏读:当 user1 正在读数据库中的表 A 时,user2 正在修改表 A,user2 修改完了,user1 又读一遍表 A,user1 读出的是修改过的数据,而 user2 又撤消修改了,user1 的读取表 A,称为“错读”或者“脏读”

非重复读 | 不重复读:是指一个事务读取数据库中的数据后, 另一个事务则更新了数据, 当第一个事务再次读取其中的数据时, 就会发现数据已经发生了改变, 这就是非重复读取。非重复读取所导致的结果就是一个事务前后两次读取的数据不相同。

假读 | 幻读:如果一个事务基于某个条件读取数据后, 另一个事务则更新了同一个表中的数据, 这时第一个事务再次读取数据时, 根据搜索的条件返回了不同的行, 这就是假读。

事务中遇到的这些异常与事务的隔离性设置有关, 事务的隔离性设置越多, 异常就出现的越少, 但并发效果就越低, 事务的隔离性设置越少, 异常出现的越多, 并发效果越高。

选择隔离层

  针对 3 中读取的数据时产生的不一致现象, 在 ANSI SQL 标准 92 中定义了 4 个事务的隔离级别. 如下图所示:

隔离级别

错读 | 脏读

非重复读 | 不重复读

假读 | 幻读

Read uncommitted(非提交读)

Read committed(提交读)

Repeatable read(可重复读)

Serializable(串行读)

Oracle 默认的隔离级别是 read committed

Oracle 支持上述地址隔离层中的两种 read committed 和 Serializable 除此之外 oracle 中还设置了 read only 和 read write 隔离层

Serializable:设置事务的隔离层为它时,

Read only : 事务中不能有任何修改数据库中的数据的操作语句,如 insert、update、delete、create 语句,read only  是 Serializable 的子集,区别是 read only 只读,Serializable 和执行 DML 语句。

Read write:是默认设置,改选项表示在事务中可以有访问语句。修改语句。但不经常使用

设置事务的属性

建立  set transaction 的语句

如:

Set transaction read noly

或:

Set transaction read write

或:

Set transaction isolation level read commnitted

或:

Set transaction isolation level serializable

注意:这些语句是互斥的。不能同时设置两个或两个以上的选项

到此,相信大家对“怎么理解 oracle 中的事务”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计2084字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 一级特黄aaa大片免费看 | 亚洲天堂免费 | 国产精品视频福利视频网 | 国产精品无码成人午夜电影 | 色视频在线观看免费视频 | 国产精品爽爽久久久久久蜜臀 | 中文版在线乱码在线看 | 久久福利片 | 久久久久免费精品国产小说 | 99在线热视频只有精品免费 | 毛片网站在线观看 | 一级毛片免费不卡直观看 | 一级毛片不卡 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片美女 | 97在线观看成人免费视频 | 99精品久久99久久久久 | 亚洲免费视频播放 | 国产裸体舞一区二区三区 | 宝贝腿开大点我添添公视频免费 | 插插无码视频大全不卡网站 | 一级毛片在线免费观看 | 天堂资源中文网 | 福利一区二区三区视频在线观看 | 婷婷五月综合激情 | 91在线播放免费不卡无毒 | 国产精品yjizz视频网一二区 | 欧美丰满大乳高跟鞋 | 伊人久久中文大香线蕉综合 | 黄色软件在线观看 | 精品久久九九 | 久久精品色 | 无码中文字幕色专区 | 99视频九九精品视频在线观看 | 午夜秋霞成人理论 | 在线欧美精品一区二区三区 | 欧美色图亚洲综合 | a级片免费播放 | 免费一级欧美片在线观看 | 一区在线视频 | 国产美女在线观看 | 免费a片看黄网站www下载 |