精华内容
下载资源
问答
  • 数据库事务性

    千次阅读 2018-08-16 21:31:37
    ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子(Atomicity)、一致(Consistency)、隔离(Isolation)、持久(Durability)。一个支持事务(Transaction)的数据库,必须要具有这四种特性,...

    ACID
    ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。
    原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
    一致性:一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。
    隔离性:如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。
    持久性:在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

    展开全文
  • 数据库事务性操作

    千次阅读 2007-12-19 08:44:00
    SQL Server 2000 事务操作1.事务操作实例一--事务开始begin transaction insert student(sno,sname,ssex,sage,sdept) values(200200005,王五,男,20,IS)if @@error begin print 添加学生记录时出错! return 

    SQL Server 2000 事务操作

    1.事务操作实例一

    --事务开始
    begin transaction
        insert student(sno,sname,ssex,sage,sdept)
           values('200200005','王五','男',20,'IS')
    if @@error<>0
       begin
          print '添加学生记录时出错!'
          return
       end
    --存储记录点
    save transaction befor_insert_score
    insert sc
       values('200200003','8',90)
    if @@error<>0
       begin
          --回滚操作
          rollback transaction befor_insert_score
          print '添加成绩记录出错!'
          return
       end
    commit transaction 

    2.事务操作实例二(与上例有什么区别?)

    --事务开始
    begin transaction
    --存储记录点
    save transaction befor_insert_student
        insert student(sno,sname,ssex,sage,sdept)
           values('200200005','王五','男',20,'IS')
    if @@error<>0
       begin
          print '添加学生纪录时出错!'
          return
       end
    save transaction befor_insert_score
    insert sc
       values('200200005','8',90)
    if @@error<>0
       begin
          --回滚操作
          rollback transaction befor_insert_student
          print '登记记录出错!'
          return
       end
    commit transaction

    思考题
    1.存在帐户表(帐户编号,帐户名,金额)
    进行如下操作: 将帐户A的金额3000转入帐户B。
    为了保证安全,要求使用事务操作。

    2.学生表、课程表和选课表
    进行如下操作:取消一门课程。
    提示:先删除对应该门课程的选课记录,然后再删除该门课程。(要求使用事务性操作方法)

    展开全文
  • 数据库事务

    万次阅读 2018-08-18 07:51:35
    数据库事务是数据库运行中的逻辑工作单位,单个逻辑工作单元所执行的一系列操作,要么都执行,要么都不执行。例如银行取款事务分为2个步骤(1)存折减款(2)提取现金,2个步骤必须同时完成或者都不完成。 数据库事务的...

    数据库事务是数据库运行中的逻辑工作单位,单个逻辑工作单元所执行的一系列操作,要么都执行,要么都不执行。例如银行取款事务分为2个步骤(1)存折减款(2)提取现金,2个步骤必须同时完成或者都不完成。

    数据库事务的四大特性(ACID):

    (1) 原子性(Atomicity):
         事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。


    (2)一致性(Consistency) :
        事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。


    (3)分离性(Isolation):
       分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。


    (4)持久性(Durability):
       持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,即对已提交事务的更新能恢复。持久性通过数据库备份和恢复来保证。

     

    • READ UNCOMMITTED:未提交读
      • 事务中的修改,即使没有提交,对其他事务也是可见的
      • 产生的问题:脏读。这里假设两个事务并行:
        • A事务对某个数值a进行修改
        • B事务执行读取该数值a并进行其他修改,依赖于a
        • A事务回滚,发生脏读

     

    • READ COMMITTED:提交读
      • 一个事务中的修改在其提交之前,对于其他事务都是不可见的
      • 产生的问题:不可重复读。这里假设两个事务并行:
        • A事务对某个数值a进行读取,进行计算
        • B事务对数值a进行修改并提交,该修改对于A变为可见
        • A事务再次进行数值a的读取,发生不可重复读

     

    • REPEATABLE READ:可重复读
      • 在一个事务的执行过程中,读到的数据一直是事务开始时的数据
      • 产生的问题:幻读。这里假设两个事务并行:
        • A事务读取某个值a大于1的数据并计算行数
        • B事务插入了一行a为1的数据,并提交
        • A事务再次读取,发现行数不一致,发生幻读

     

    • SERIALIZABLE:可重复读
      • 强制所有事务都并行执行,对于读取的每一行数据都加上锁

     

     

    引入知乎的一篇好文章:

    MySQL的四种事务隔离级别

    展开全文
  • 数据库事务隔离实战

    万次阅读 2018-09-04 22:21:26
    俗话说书上得来终觉浅,在回忆数据库事务相关知识时,在事务隔离这块总是感觉没吃透,于是决定在mysql进行实战演练以加强知识的印象。 首先,介绍下数据库事务特性,简称ACID: Atomic 原子,事务中所有操作是...

    俗话说书上得来终觉浅,在回忆数据库事务相关知识时,在事务隔离性这块总是感觉没吃透,于是决定在mysql进行实战演练以加强知识的印象。

    首先,介绍下数据库事务特性,简称ACID:

    Atomic 原子性,事务中所有操作是一个整体要么全部完成,要么不做操作,不会有做到一半的情况。

    Consistency 一致性,事务执行成功后,操作肯定是正确执行的,例如给你账户加100块,不可能结果给你加了50块。

    Isolation 隔离性,各个事务之间是独立的。

    Duration 持久性,事务完成后的操作做的修改是永久

    我们这里重点讨论Isolation 隔离性,理解隔离性请以数据库单个事务为单位,一个事务中可以包含查询、修改等多个操作,以下为在mysql数据库进行的操作,先来了解几个操作时使用的命令:

    #获取当前数据库事务隔离级别
    SELECT @@tx_isolation;
    #修改当前数据库事务隔离级别
    #read-uncommitted 读未提交
    #read-committed 读已提交
    #REPEATABLE-READ 可重复读
    #SERIALIZABLE
    set tx_isolation = 'read-uncommitted';
    
    
    #手动开启一个mysql事务,并在之后执行相关sql语句
    START TRANSACTION #手动开启事务
    
    ROLLBACK #回滚
    
    COMMIT #事务提交

    mysql下开两个窗口,将隔离级别设置为read-uncommitted 读未提交 ,试下事务A和事务B同时更新一条记录,到最后提交时,事务A执行成功COMMIT,但事务B执行失败进行ROLLBACK,观察回滚后记录信息。

    以下为执行步骤,大家可以随便找个表试下,事务A和事务B分别在两个窗口中,并且设置了set tx_isolation = 'read_uncommitted'; 

    #1.开启事务A
    START TRANSACTION
    #3.事务A更新用户年龄
    UPDATE girl SET age = 44 WHERE id = 13;
    #5.执行成功,提交
    COMMIT
    #2.开启事务B
    START TRANSACTION
    #4.事务B更新用户年龄
    UPDATE girl SET age = 66 WHERE id = 13;
    #6.执行失败,回滚
    ROLLBACK

    大家可以尝试的修改不同的隔离级别看看执行效果,便于大家对各个隔离级别的深入理解。

    展开全文
  • 一次搞定数据库事务

    千人学习 2019-12-13 21:56:38
    实战讲解数据库事务的5种并发异常:回滚丢失、覆盖丢失、脏读、幻读、不可重复读 彻底搞清楚4种事务隔离级别:READ_UNCOMMITTED 读未提交隔离级别、READ_COMMITTED 读已提交隔离级别、REPEATABLE_READ 可重复度隔离...
  • 数据库事务隔离实战例子

    千次阅读 2018-09-05 14:31:40
    接着上回数据库事务隔离实战的章节继续操作,主要针对几个只要问题进行操作和复现: 脏读:一个事务中,一开始读取的数据就为脏数据 不可重复读:一个事务中,一开始读取的数据,再次读取时数据发生了改变 幻读...
  • 数据库事务隔离以及隔离级别

    千次阅读 2018-09-05 15:56:39
    一致(consistency):隔离执行事务时(换言之,在没有其他事务并发执行的情况下)保持数据库的一致。 隔离(isolation):尽管多个事务可能并发执行,但系统保证,对于任何一对事务Ti和Tj...
  • 1.事务(Transaction)是并发控制的基本单位。 所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。...事务数据库维护数据一致的单位,在每个事务结束时,...
  • 数据库事务原子、一致是怎样实现的? atomicity/consistency 数据库的一致依赖于其他三种特性:原子,隔离,持久 原子用于保证事务中的语句要么全部执行要么全部不执行 隔离用于保证多事务并发处理...
  • 数据库事务隔离问题

    千次阅读 2015-11-09 18:28:13
    脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。 不可重复读 :是指在一个事务内,多次读同一数据。在...
  • Mysql数据库事务

    2019-03-25 10:32:08
    数据库事务 事务特性 SQL92标准定义了数据库事务的四个特点: 原子(Atomicity):一个事务里面所有包含的SQL语句是一个执行整体,不可分割,要么都做,要么都不做。 一致(Consistency):事务开始时,数据库中的...
  • 数据库事务详解

    千次阅读 2017-03-09 16:13:55
    一、什么是数据库事务 所谓数据库事务是指针对数据库的某一组操作要么全部成功,要么全部失败。 二、数据库事务的四个特性 事务的四个特性就是常说的ACID,对应的英文及汉语意思分别是: 原子( Atomicity )、...
  • 数据库事务处理

    千次阅读 2016-10-03 10:22:54
    数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,952
精华内容 12,780
关键字:

数据库事务性