精华内容
下载资源
问答
  • [软考]并发控制数据不一致

    千次阅读 热门讨论 2015-10-04 18:09:39
    数据库是一种共享的资源,我们在计算机中并发运行的时候,会不断的调用数据库中的这些共享资源,于是存在同一时间内多用户同时调用数据库中同一个资源的情况,这样,我们的并发操作应该如何避免这些问题,解决这些...

           数据库是一种共享的资源,我们在计算机中并发运行的时候,会不断的调用数据库中的这些共享资源,于是存在同一时间内多用户同时调用数据库中同一个资源的情况,这样,我们的并发操作应该如何避免这些问题,解决这些问题的时候我们又是如何利用封锁机制的呢?

          在系统运行的时候,一个基本的变量就是事务,事务就是定义一个用户操作的序列,要不全做,要不全不做。假如做到了一半就停止啦,那可就麻烦啦。比如我们去银行取钱,我们取到了一半,不想取钱了,直接退卡,那我们还没有拿到钱,银行卡里面已经扣钱啦,不是很糟糕吗?事务具有四个特性,分别是原子性、隔离性、一致性、持久性。我觉得原子性、一致性、持久性是每一个事务都具有的特点,但是隔离性是随着实际的环境而定的,毕竟不被其它事务干扰是一个大环境。

          数据库的不一致操作会带来数据的不一致,分别是丢失更新、读脏数据、不可重复读。自考的时候对他们理解的不深刻,通过看软考课本,来谈谈我对他们的理解。

    丢失更新

          事务一和事务二从数据库中读入同一个数据,并修改,事务2的提交结果破坏了事务一的提交的结果,导致了事务一的修改丢失。
          我们可以从以下的几个方面来分析这个概念,首先这里涉及到了俩个事务,或者是更多地事务,他们选择的对象是同一个对象,比如同样的一行数据,因为任何一个事务的存在都是不知道其他事务的存在的,所以当最后一个人提交更新的时候,会覆盖之前所有人对该行的操作。

    读脏数据

           脏数据是读出事务1修改一个数据的时候,并将其写回磁盘,事务2读取同一个数据后,事务1由于原因被撤销,这是事务1已经修改过的数据恢复原值,事务2读到的数据就和数据库中的数据不一致,是不正确的数据,所以叫做脏数据。
           首先,事务1的操作还没有将数据写入到数据库中,但是事务2已经开始读事务1啦,并且还依据事务1的数据进行了很多的操作。所以那个数据修改,还是还没有到数据库就是脏数据。

    不可重复读

          事务1读取了操作,而事务2执行了更新操作,而事务1使用的仍然是更新前的值,造成了数据的不一致。

          我们知道,事务1读了俩次数据,或者是多次的,而中间虽然事务2操作了,但是事务1读到的还是一样的数据。
        
          第一次学习的时候,很是不理解,学习软考的时候,忽然觉得自己懂了。软考加油!
        
     

          


          




                
    展开全文
  • 丢失修改,可重复读,读“脏”数据

    事务是并发控制的基本单位,保证事务的ACID特性是事务处理的重要任务,而事务ACID特性可能遭到破坏的原因之一就是多个事务对数据库的并发操作造成的。

    并发操作带来的数据不一致性重要有丢失修改,不可重复读,读“脏”数据。

    1.丢失修改

    两个事务T1和T2读入同一个数据并修改,T2提交的结果破坏了T1提交的结果,导致了T1的修改被丢失。典型例子:买飞机票或者火车票的例子。

    2.不可重复读

    不可重复读指的是事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取的结果。
    分为以下三种情况:
    (1)事务T1读取了某一数据后,事务T2对其做了修改,当事务T1再次读数据时,得到了与前一次不同的值。
    (2)事务T1读取了某一数据后,事务T2删除了其中的记录,当事务T1再次读数据时,发现某些记录神秘消失了。
    (3)事务T1读取了某一数据后,事务T2插入了一些新的记录,当事务T1再次读数据时,发现多了一些记录。
    后两种操作叫做幻影现象。

    3.读“脏”数据

    读“脏”数据只得是事务T1修改了某一数据,并将其写回磁盘,事务T2读取某一数据后,T1由于某种原因撤销了操作,恢复原值,这时T2读到的数据就和数据库中的数据不一致,称为读“脏”数据。


    产生以上三种现象的原因是并发操作破坏了事务的隔离性。为了应对这些数据不一致性,主要技术主要有:封锁,时间戳,乐观控制法。

    展开全文
  • 并发操作带来数据不一致性有:丢失修改,可重复读,脏读。 1. 丢失修改 两个事务T1和T2读入同一个数据并修改,T2提交的结果破坏了T1提交的结果,导致了T1的修改被丢失。典型例子:买飞机票或者火车票的例子。 ...

    事务是并发控制的基本单位,保证事务的ACID特性是事务处理的重要任务,而事务ACID特性可能遭到破坏的原因之一就是多个事务对数据库的并发操作造成的。

    并发操作带来的数据不一致性有:丢失修改,不可重复读,脏读

    1. 丢失修改

    两个事务T1和T2读入同一个数据并修改,T2提交的结果破坏了T1提交的结果,导致了T1的修改被丢失。典型例子:买飞机票或者火车票的例子。


    2. 不可重复读

    不可重复读指的是事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取的结果。
    分为以下三种情况:
    (1)事务T1读取了某一数据后,事务T2对其做了修改,当事务T1再次读数据时,得到了与前一次不同的值。
    (2)事务T1读取了某一数据后,事务T2删除了其中的记录,当事务T1再次读数据时,发现某些记录神秘消失了。
    (3)事务T1读取了某一数据后,事务T2插入了一些新的记录,当事务T1再次读数据时,发现多了一些记录。
    后两种操作叫做幻影现象或幻读。

    注:

    不可重复读的重点是修改 : 
    同样的条件 , 你读取过的数据 , 再次读取出来发现值不一样了 
    幻读的重点在于新增或者删除 
    同样的条件 , 第 1 次和第 2 次读出来的记录数不一样


    3.脏读(读“脏”数据)

    读“脏”数据只得是事务T1修改了某一数据,并将其写回磁盘,事务T2读取某一数据后,T1由于某种原因撤销了操作,恢复原值,这时T2读到的数据就和数据库中的数据不一致,称为读“脏”数据。


    产生以上三种现象的原因是并发操作破坏了事务的隔离性。为了应对这些数据不一致性,主要技术主要有:封锁,时间戳,乐观控制法。

     

    参考:

    https://blog.csdn.net/when_less_is_more/article/details/62440192

    https://www.cnblogs.com/phoebus0501/archive/2011/02/28/1966709.html

     

    展开全文
  • 并发操作会带来数据不一致

    千次阅读 2015-09-26 20:42:44
    可重复读:在一个事务内两次读数据之间,第二个事务访问该数据并进行了修改。 丢失修改:两个事务读入同一数据并修改,T2提交的结果破坏了T1提交的结果。例如T1读A修改为A-1,T2也读A修改为A-1(实际上应该是...
    脏读:就是指当一个事务对数据进行了修改但还没有提交到数据库时,另一个事务访问并使用了这个数据。

    不可重复读:在一个事务内两次读数据之间,第二个事务访问该数据并进行了修改。

    丢失修改:两个事务读入同一数据并修改,T2提交的结果破坏了T1提交的结果。例如T1读A修改为A-1,T2也读A修改为A-1(实际上应该是读A-1,修改 为A-2)

    幻影读:同一事务在两个不同的时间段执行相同的查询条件得到的结果不一致。

    注意:

    不可重复读的重点是修改  : 

    同样的条件 ,   你读取过的数据 ,   再次读取出来发现值不一样了 

    幻读的重点在于新增或者删除 

    同样的条件 ,   第 1 次和第 2 次读出来的记录数不一样。
    展开全文
  • 并发操作会带来哪些数据不一致性(D )。 A 丢失修改、可重复读、脏读、死锁 B 可重复读、脏读、死锁 C 丢失修改、脏读、死锁 D 丢失修改、可重复读、脏读 并发操作带来数据不一致性包括三类:丢失修改、...
  • 并发操作与数据不一致

    万次阅读 多人点赞 2014-03-21 19:50:55
    最近做的《选修课系统》需要考虑这样一个问题:数据库的并发操作带来的数据库数据不一致问题——因为是全校性选修课,同一时间点大批学生选课,那么必然存在多名学生同时对同一数据进行操作 是的问题,如果这种并发...
  • 数据库并发操作与数据不一致

    千次阅读 2016-09-13 11:23:01
    如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题,导致数据库中的数据不一致性。   一个最常见的并发操作的例子是火车/飞机订票系统中的订票操作。例如,在该...
  • 并发控制

    千次阅读 2018-08-02 18:17:07
    所谓事务,是指用户定义的一个数据库操作序列,这些操作要么全做,要么全做,是一个可分割的工作单位。 事务具有四个特性: ...并发操作带来数据不一致性问题: 1.丢失修改 两个事务T1...
  • 数据库并发控制

    千次阅读 2012-12-28 19:51:42
    1. 在数据库中为什么要并发控制?  答:数据库是共享资源,通常有许多个事务同时在运行。  当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。... 答:并发操作带来数据不一致
  • 并发操作带来数据不一致性包块丢失修改、可重复读和读‘脏’数据 3.并发控制的技术 并发控制的主要技术有封锁、时间戳、乐观控制法和多版本并发控制。 4.封锁 排它锁(X锁)写锁:保证其他事务在T释放A上的...
  • 并发操作带来数据不一致性: 丢失修改:两个事务同时读入同一个数据并修改,结果T2的提交破坏了T1提交的结果 可重复读:事务T1读取数据后,事务T2执行更新操作,导致T1无法再现前一次读取结果 读脏数据:事务T1...
  • mysql5.7的并行复制就可以解决数据延迟的问题。 MySQL 5.7并行复制时代 众所周知,MySQL的复制延迟是一直被诟病的问题之一,然而在Inside君之前的两篇博客中(1,2)中都已经提到了MySQL 5.7版本已经...
  • 数据库 - 并发控制

    千次阅读 2015-05-12 17:30:51
    并发控制机制的任务对并发操作进行正确调度 保证事务的隔离性 保证数据库的一致性多用户数据库系统的存在 允许多个用户同时使用的数据库系统 飞机定票数据库系统 银行数据库系统 特点:在同一时刻并发运行的...
  • oracle控制插入数据并发问题

    千次阅读 2019-03-21 10:31:29
    insert when (not exists (select 1 from users where id = '123')) then into users(id) select '123' from ...多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据...
  • Mysql并发控制

    万次阅读 2012-04-30 12:43:31
    并发控制目的是当多个连接对数据库进行修改时保证数据一致性。现在mysql的InnoDB在update,delete时使用行级锁,对于select会结合MVCC保证一致性。 1、 并发控制 MySQL提供两个级别的并发控制:服务器级(the ...
  • 数据库题目之并发控制

    千次阅读 2019-01-11 09:45:17
    设有两个事务T1、T2,其并发操作如下所示,下面评价正确的是 。 A.该操作存在问题 B.该操作丢失修改 C.该操作能重复读 D.该操作读“脏”数据 【答案:】B T1 T2 ①读A=10 ...
  • 程序并发数据一致性关系

    千次阅读 2014-09-12 13:17:20
    情景1:我们在页面上面有一个按钮,后台的功能是在A表插入一条数据,然后再B
  • 数据库并发控制技术

    千次阅读 2018-08-25 14:27:19
    事务是一系列的数据库操作,是数据库应用程序的基本逻辑单元,也是恢复和并发控制的基本单位。 事务处理技术主要包括数据库恢复技术和并发控制技术。本篇博文主要总结下并发控制技术。 事务:是用户定义的一个...
  • Oracle的并发控制

    千次阅读 2017-05-17 14:12:14
    并发访问带来的问题 丢失更新:一个事务修改某行数据时,另一个事务同时修改了该行数据,使第一个事务对数据的修改丢失。 脏读:一个事务读取了另一个事务未提交的数据可重复读:一个事务再次读取之前...
  • 【数据库】并发控制

    千次阅读 2018-06-01 10:56:59
    数据并发性意味着多个用户可以同时访问数据并发访问存在冲突吗?如何控制? 事务:用户定义的一个数据库操作序列.这些操作要么全做要么全做,是一个可分割的工作单元. 事务具有ACID 原子性(atomicity):...
  • 前言 随着数据库应用的不断...我们先来讨论用封锁的方式来保证事务并发控制中的一致性问题。封锁方式是基于各种锁来进行并发控制。在封锁机制中,当多个事务同时访问同一数据时,应对其进行封锁请求的授予或等待。而加
  • 关系数据库——并发控制

    千次阅读 多人点赞 2019-12-02 14:04:03
    并发控制 多用户数据库:允许多个用户同时使用的数据库(订票系统) 不同的多事务执行方式: 1.串行执行:每个时刻只有一个事务运行,其他事务必须等到这个事务结束后方能运行。 2.交叉并发方式: 单处理机...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,919
精华内容 33,967
关键字:

并发控制带来的数据不一致