美文网首页
数据库事务

数据库事务

作者: 咸鱼有梦想呀 | 来源:发表于2017-12-03 20:51 被阅读0次

1.事务
事务:是指一组相互依赖的操作行为,如银行交易,股票交易,网上购物。

2.数据库事务
一个或多个sql语句组成的工作单元,工作单元中的sql语句相互依赖。

数据库事务图解

3.事务的特性(ACID)

  • 原子性(Atomicity)
    一个事务里面所有包含的SQL语句是一个执行整体,不可分割,要么都做,要么都不做。

  • 一致性(Consistency)
    事务开始时,数据库中的数据是一致的,事务结束时,数据库的数据也应该是一致的。

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

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

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

  • 脏读
    当一个事务读取另一个事务尚未提交的修改时,产生脏读。

  • 不能重复读
    在同一个事务中相同的查询多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。

  • 幻读
    在同一事务中,相同的查询多次进行,由于其它事务提交的插入操作,每次返回的结果集都不同,此时发生幻像读。

  • 更新丢失
    当系统允许两个事务同时更新同一数据是,发生更新丢失。

5.事务的隔离级别
隔离级别定义了事务与事务之间的隔离程度。

4个事务的隔离级别:

隔离级别 脏读 不可重复读 幻读
Read uncommitted(读未提交)
Read committed(读已提交)
Repeatable read(可重复读)
Serializable(串行读)

默认的隔离级别是read committed

6.控制事务语句

  • set transaction
    开始事务并设置关键特性
    启动SQL*Plus、提交上一事务或撤销上一事务时,自动启动一个事务。

    • 设置事务特性
      设置事务为只读事务
      set transaction read only
      设置事务为只写事务
      set transaction read write
      设置事务的隔离级别
      set transaction isolation level read committed
  • commit
    提交事务;结束当前事务保存数据库改变并启动新事务

  • rollback
    撤销事务;结束当前事务,撤销数据库改变并启动新事务。

  • savepoint
    定义事务断点以实现部分撤销。

7.隐式事务处理

  • 正常情况下
    • 自动提交
      DDL(数据查询语言)语句被发送
      DCL(数据控制语言)语句被发送
    • 自动回滚
      系统发生异常
      或者非正常退出

相关文章

  • Django之数据库事务编程

    在了解 Django 数据库事务编程前有必要先了解下数据库事务。 数据库事务(transaction) 数据库事务...

  • 数据库笔记

    数据库 数据库⭐MySQL 默认存储引擎InnoDB(事务性存储引擎)一、事务 数据库事务? 数据库事务有什么作用...

  • 数据库事务简介(一)--- 所谓事务

    事务的概念 数据库事务简介(一)--- 所谓事务数据库事务简介(二)--- 故障恢复(未完成)数据库事务简介(三)...

  • Spring学习之事务管理基础

    Spring学习之事务管理基础 数据库事务相关概念 事务的定义 事务,一般指的是数据库事务,是指数据库操作的时候,...

  • 事务及事务隔离级别

    事务及事务隔离级别 什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务...

  • 搞懂Redis(四)-Redis事务

    事务本质:一组命令的集合 数据库事务与Redis事务 数据库事务数据库事务通过ACID(原子性.一致性.隔离性.持...

  • SpringBoot 数据库事务

    SpringBoot 数据库事务 事务: 数据库事务是 访问并可能更新 数据库中各种数据项的一个程序执行单元 事务...

  • SPRING的事务详解

    一、什么是事务 事务的概念 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正...

  • 4.MySQL的事务与锁(1)

    本章要点 1.数据库事务2.MVCC 1 数据库事务 1.1 事务特性 事务具有的特性:ACID(Atomicit...

  • spring事务

    1、什么是事务事务和数据库操作有关,commit事务提交,rollback事务回滚事务作用:保证一组和数据库有关的...

网友评论

      本文标题:数据库事务

      本文链接:https://www.haomeiwen.com/subject/ewwnbxtx.html