Oracle学习之:事务

一、事务的四个特性(ACID)

  • 原子性(Atomicity)

    事务必须是原子工作单元,对其进行的数据修改,要么全都执行,要么全都不执行。以网上银行转账为例,要在A账户上增加1000元,同时要在B账户上减少1000元。要 么同时执行,要么都不执行更改,以确保整个事务是一个原子工作单元。

  • 一致性(Consistency)

    事务在完成时,必须使所有的数据都保持一致状态,即所有的数据都要发生更改,以保证数据的完整性。在银行转账时,A账户和B账户的数据都要发生更改,以保证数据的完整性。

  • 隔离性(Isolation)

    两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时、运行中间某一时刻的数据。比如银行转账操作时,如果有其他的会话也在进行转账,那么当前事务内不能看到其他事务在运行时或运行中间某一时刻的数据。

  • 持久性(Durability)

    一旦事务被提交之后,数据库的变化就会被永远保留下来,即使运行数据库软件的机器后来奔溃也是如此。银行转账一旦操作完成,数据就会被永久地保留下来了,即使数据库系统关闭也不会丢失数据。

二、事务隔离级别

  • 并发带来的问题

    1、 脏读:
    对于两个事物 T1、T2,T1 读取了已经被 T2 更新但还没有被提交的字段。之后若 T2 回滚,T1读取的内容就是临时且无效的。
    2、不可重复读:
    对于两个事物 T1、T2, T1 读取了一个字段, 然后 T2 更新了该字段。 之后T1再次读取同一个字段,值就不同了.。
    3、幻读:
    对于两个事物 T1、 T2, T1 从一个表中读取了一个字段,然后 T2 在该表中插入了一些新的行。之后如果 T1 再次读取同一个表,就会多出几行。

  • 隔离级别
    在这里插入图片描述

oracle数据库支持READ COMMITTED 和 SERIALIZABLE这两种事务隔离级别。

默认系统事务隔离级别是READ COMMITTED,也就是读已提交。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值