数据库-事务

事务

事务 是指作为单个逻辑工作单元执行的 一组相关操作 。这些操作 要求全部完成
或者全部不完成 使用事务是为了保证数据的安全有效
 
事务有一下四个特点:(ACID
        1、 原子性 Atomic ):事务中所有数据的修改, 要么全部执行,要么全部不执行
        2、 一致性 Consistence ):事务完成时,要使所有 所有的数据都保持一致 的状态,
        换言之:通过事务进行的所有数据修改,必须在所有相关的表中得到反映。
        3、 隔离性 Isolation ):事务应该在另一个事务对数据的修改前或者修改后进行访问。 对于一个东西必须一个事务一个事                 务进行
        4、 持久性 Durability ):保证事务对数据库的修改是持久有效的,即使发生系统故障,
             也不应该丢失。
 
 
当事务之间发生并发时有几个隔离级别
        Oracle 默认的隔离级别是 read committed
        Oracle 支持上述四种隔离级别中的两种 :read committed serializable 。除此之外,
        Oralce 中还定义 Read only 和 Read write 隔离级别。
        Read only :事务中不能有任何修改数据库中数据的操作语句,是 Serializable 的一个子集。
        Read write :它是默认设置,该选项表示在事务中可以有访问语句、修改语句,但不经常使用。
 
        丢失更新 :两个事务同时存储, 一个存储 100 , 一个存储 200 ,最终可能至存储了
200 或者 100 ,那另一个的更新就没成功,即结果不为预想的 300
        脏读 :事务 T1 更新了一行数据,还没有提交所做的修改, T2 读取更新后的数据, T1
回滚, T2 读取的数据无效,这种数据称为脏读数据。
        不可重复读 :事务 T1 读取一行数据, T2 修改了 T1 刚刚读取的记录, T1 再次查询,
发现与第一次读取的记录不相同,称为不可重复读。
        幻读 :事务 T1 读取一条带 WHERE 条件的语句,返回结果集, T2 插入一条新纪录,
恰好也是 T1 WHERE 条件, T1 再次查询,结果集中又看到 T2 的记录,新纪录就叫
做幻读。
 
 
1 、事务的开启
        自动开启于 DML insert delete update
2 、事务的结束
        1) 成功
                 正常执行完成的 DDL 语句: create alter drop
                 正常执行完 DCL 语句 GRANT REVOKE
                 正常退出的 SQLPlus 或者 SQL Developer 等客户端
                 如果人工要使用隐式事务,SET AUTOCOMMIT ON ( 只针对一个连接 )
                 手动提交 :使用 commit
        2) 失败
         rollback ,手动回滚
         非法退出 意外的断电
        rollback 只能对未提交的数据撤销,已经 Commit 的数据是无法撤销的,因为 commit
之后已经持久化到数据库中。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值