精华内容
下载资源
问答
  • RDBMS(关系型数据库管理系统的英文缩写)所具有的4个重要特性:原子性、一致性、隔离性、持久性,用英文头字母表示为ACID。 原子性:要么完全做,要么完全不做。例如:一个事务执行删除1000个记...

    RDBMS(关系型数据库管理系统的英文缩写)所具有的4个重要特性:原子性、一致性、隔离性、持久性,用英文头字母表示为ACID。

    原子性:要么完全做,要么完全不做。例如:一个事务执行删除1000个记录的SQL,执行到999后错误,那么事务终止(回滚)。简单点就是王八考试成绩为59.5分,最终的结果就是不及格。只是数据库把不及格和及格的操作分为0分(rollback)和100分(commit)两种。

    持久性:王八往银行存入1块钱,20年后王八希望查询这1块钱是什么时候存的,银行工作人员不能把这1块的记录删掉或忽略掉。那么oracle可以检索到所有已提交的事务,通过数据库恢复机制实施,采用先行写的方式,在数据写入磁盘的数据文件前,先把事务写入到磁盘的重做日志。

    隔离性:关系型数据库的特点是并发性,实际中,会有很多不同的用户对表进行插入、删除、修改操作,因此在一个事务提交前不能看到其它相关事务所更改的内容,所以每个事务都是隔离的,oracle通过并发性控制来支持。

    一致性:举个例子,王八又去银行办理手续,他希望把储蓄账户里面的1块钱取出,然后存入支票账户,那么银行工作人员不能够直接把1块钱存入支票账户,王八不可能变成2块钱,银行不允许这样的操作,oracle也不例外。再举个oracle的例子:用户希望删除部门ID A,但雇员表中有一个雇员属于部门A,那么oracle不允许删除部门A。

     

    事务并发性控制:所有用户所看到的数据必须是一致的,维护一个单用户的数据库一致性非常的简单,但是实际中会有许多不同的用户会修改、删除、插入数据到一张表中,那么并发性就会带来数据不一致的问题,所以oracle采用一种锁定的机制来保持数据的一致性。一个事务修改一张表时,oracle将锁定整张表,这样一个事务的操作不会影响到其他事务。在并发性控制下,就像用户一个接一个的处理事务,oracle牺牲了并发性,为了最大的提高并发性oracle使用的锁定是最小限制方式。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31444259/viewspace-2138184/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/31444259/viewspace-2138184/

    展开全文
  • 数据库事物四大特性

    2017-12-07 15:58:00
    四大特性:隔离性,原子性,一致性,持久性 转载于:https://www.cnblogs.com/lauhp/p/7999477.html

    四大特性:隔离性,原子性,一致性,持久性

    转载于:https://www.cnblogs.com/lauhp/p/7999477.html

    展开全文
  • 数据库事务四大特性

    千次阅读 2018-09-16 21:30:12
    数据库事务的四大特性(简称ACID)是:  (1) 原子性(Atomicity) 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。 ...

    数据库事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做要么全不做,是一个不可分割的工作单位。

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

    (1) 原子性(Atomicity)

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

    例如银行取款事务分为2个步骤(1)存折减款(2)提取现金。不可能存折减款,却没有提取现金。2个步骤必须同时完成或者都不完成。

    (2)一致性(Consistency)    

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

    例如完整性约束a+b=10,一个事务改变了a,那么b也应随之改变。

    (3)分离性(亦称独立性Isolation)

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

    (4)持久性(Durability)

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

    1,脏读

      脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。

      当一个事务正在多次修改某个数据,而在这个事务中这多次的修改都还未提交,这时一个并发的事务来访问该数据,就会造成两个事务得到的数据不一致。例如:用户A向用户B转账100元,对应SQL命令如下

        update account set money=money+100 where name=’B’;  (此时A通知B)
    
        update account set money=money - 100 where name=’A’;

      当只执行第一条SQL时,A通知B查看账户,B发现确实钱已到账(此时即发生了脏读),而之后无论第二条SQL是否执行,只要该事务不提交,则所有操作都将回滚,那么当B以后再次查看账户时就会发现钱其实并没有转。

    2,不可重复读

      不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。

      例如事务T1在读取某一数据,而事务T2立马修改了这个数据并且提交事务给数据库,事务T1再次读取该数据就得到了不同的结果,发送了不可重复读。

      不可重复读和脏读的区别是,脏读是某一事务读取了另一个事务未提交的脏数据,而不可重复读则是读取了前一事务提交的数据。

      在某些情况下,不可重复读并不是问题,比如我们多次查询某个数据当然以最后查询得到的结果为主。但在另一些情况下就有可能发生问题,例如对于同一个数据A和B依次查询就可能不同,A和B就可能打起来了……

    3,虚读(幻读)

      幻读是事务非独立执行时发生的一种现象。例如事务T1对一个表中所有的行的某个数据项做了从“1”修改为“2”的操作,这时事务T2又对这个表中插入了一行数据项,而这个数据项的数值还是为“1”并且提交给数据库。而操作事务T1的用户如果再查看刚刚修改的数据,会发现还有一行没有修改,其实这行是从事务T2中添加的,就好像产生幻觉一样,这就是发生了幻读。

      幻读和不可重复读都是读取了另一条已经提交的事务(这点就脏读不同),所不同的是不可重复读查询的都是同一个数据项,而幻读针对的是一批数据整体(比如数据的个数)。

     

      现在来看看MySQL数据库为我们提供的四种隔离级别:

      ① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。

      ② Repeatable read (可重复读):可避免脏读、不可重复读的发生。

      ③ Read committed (读已提交):可避免脏读的发生。

      ④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。

     

      以上四种隔离级别最高的是Serializable级别,最低的是Read uncommitted级别,当然级别越高,执行效率就越低。像Serializable这样的级别,就是以锁表的方式(类似于Java多线程中的锁)使得其他的线程只能在锁外等待,所以平时选用何种隔离级别应该根据实际情况。在MySQL数据库中默认的隔离级别为Repeatable read (可重复读)。

      在MySQL数据库中,支持上面四种隔离级别,默认的为Repeatable read (可重复读);而在Oracle数据库中,只支持Serializable (串行化)级别和Read committed (读已提交)这两种级别,其中默认的为Read committed级别。

      在MySQL数据库中查看当前事务的隔离级别:

        select @@tx_isolation;

      在MySQL数据库中设置事务的隔离 级别:

        set  [glogal | session]  transaction isolation level 隔离级别名称;
    
        set tx_isolation=’隔离级别名称;’

    例1:查看当前事务的隔离级别:

      

    例2:将事务的隔离级别设置为Read uncommitted级别:

      

    或:

      

    记住:设置数据库的隔离级别一定要是在开启事务之前!

      如果是使用JDBC对数据库的事务设置隔离级别的话,也应该是在调用Connection对象的setAutoCommit(false)方法之前。调用Connection对象的setTransactionIsolation(level)即可设置当前链接的隔离级别,至于参数level,可以使用Connection对象的字段:

      

    在JDBC中设置隔离级别的部分代码:

      

      后记:隔离级别的设置只对当前链接有效。对于使用MySQL命令窗口而言,一个窗口就相当于一个链接,当前窗口设置的隔离级别只对当前窗口中的事务有效;对于JDBC操作数据库来说,一个Connection对象相当于一个链接,而对于Connection对象设置的隔离级别只对该Connection对象有效,与其他链接Connection对象无关。

    展开全文
  • 数据库事物的四个基本性质(ACID)1.原子性(Atomicity)指的是事物中包含的所有操作要么全做,要么全不做(all or none)。2.一致性(consistency)在事物开始以前,数据库处于一致性的状态,事物结束后,...

    事务的:原子性、一致性、分离性、持久性

    事物(transaction)是由一些列操作序列构成的执行单元,这些单元要么都做,要么不做,是一个不可分割的工作单元。

    数据库事物的四个基本性质(ACID)

    1.原子性(Atomicity)

    指的是事物中包含的所有操作要么全做,要么全不做(all or none)。

    2.一致性(consistency)

    在事物开始以前,数据库处于一致性的状态,事物结束后,数据库也必须处于一致性的状态。

    拿银行转账来说,一致性要求事务的执行不应改变A、B 两个账户的金额总和。如果没有这种一致性要求,转账过程中就会发生钱无中生有,或者不翼而飞的现象。事务应该把数据库从一个一致性状态转换到另外一个一致性状态

    3.隔离性(Isolation)

    事务的隔离性要求系统必须保证事务不受其他并发执行的事务的影响,也既要达到这样一种效果:对于任何一对事务T1和T2,在事务T1看来,T2要么在T1开始之前执行,要么在T1完成之后才开始执行,这样,每个事务都感觉不到系统中有并发事务执行。

    4.持久性(Durability)

    一个事务一旦成功完成,它对数据库的改变必须是永久的,即使是在系统遇到故障的情况下也不会丢失,数据的重要性决定了事物的持久性的重要。

     

    转自:http://blog.csdn.net/logogcn/article/details/6828531

    转载于:https://www.cnblogs.com/hsqdboke/p/5039586.html

    展开全文
  • 1.事物的ACID特性 原子性 事物的原子性是指事物必须是一个原子的操作序列单元。事物中包含的各项操作在一次执行过程中,只允许出现两种状态之一。 全部执行成功 全部执行失败 任何一个异常的操作,都会使目前...
  • 数据库事物四大特性转自:http://www.cnblogs.com/fjdingsd/p/5273008.html目录用 [TOC]来生成目录:数据库事物四大特性 目录 1脏读 2不可重复读 3虚读幻读 四种隔离级别本篇讲诉数据库中事务的四大特性(ACID)...
  • 数据库四大特性

    万次阅读 2019-01-30 18:17:06
    1、数据库四大特性 原子性:事务内包含的所有操作要么全部成功,要么全部失败回滚;实现:日志,将所有的更新操作全部写入日志当中,若因为一些系统奔溃/断电等原因导致事务中的部分更新操作已经执行,部分操作...
  • 数据库事务四大特性: 1、原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 2、 一致性...
  • 数据库事物四大特性 1.原子性 2.持续性 3.隔离性 4.持久性
  • 在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中,事务通常就是指数据库事务。 事务是将一组读写操作组合在一起形成一个逻辑单元。这些操作要么全部执行成功提交...
  • 数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。  如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么...
  • 本文主要介绍一下数据库事务的四大特性及事务的隔离级别 一 、事务的四大特性 二 、事务的隔离级别 一 、事务的四大特性 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性(ACID): ...
  • 数据库事务及其四大特性

    千次阅读 多人点赞 2017-04-12 18:36:56
    数据库事务是数据库运行中的逻辑...数据库事务的四大特性(ACID): (1) 原子性(Atomicity):  事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行
  • 关系型数据库的事务之四大特性

    千次阅读 2020-03-11 12:51:53
    数据库系统必须维护事务的以下特性(简称ACID):   原子性(Atomicity)   一致性(Consistency)   隔离性(Isolation)   持久性(Durability) ⑴ 原子性(Atomicity)  原子性...
  • 说到数据库事务,很多人就会想事务的ACID即原子性,一致性,隔离性,持久性,以及事物的四个隔离级别,但是并不是很明白为什么要用这四个特性来保证事务,以及事务的隔离级别是怎么产生的?包括LZ之前看《高性能...
  • 数据库事务的四大特性(ACID)

    千次阅读 2019-06-18 17:10:04
    数据库事务的四大特性 1, 什么是数据库事务? 数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 意思就是一连串的数据库操作,即一串增删查改的集合。 2, 数据库事务做了什么? ...
  • 事物的性质 事务的特性通常被概括为“ACID”原则即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。 原子性(Atomicity): 事务是最小的执行单位,不允许分割。事务...
  • 数据库四大特性数据库隔离级别

    万次阅读 多人点赞 2018-07-14 09:15:58
    MySql本篇文章主要介绍数据库四大特性ACID,以及说明一下数据库的隔离级别。如果想要说明一个数据库或者一个框架支持事务性操作,则必须要满足下面的四大特性1. 原子性(Atomicity)原子性是指事务包含的所有操作...
  • 我们都知道数据事务有四大特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的...
  • MySQL数据库事务的四大特性以及事务的隔离级别

    万次阅读 多人点赞 2018-08-18 23:16:11
    一、事务的四大特性(ACID) 1、原子性(Atomicity) 2、一致性(Consistency) 3、隔离性(Isolation) 4、持久性(Durability) 二、事务的隔离级别(默认事务级别为可重复读) MySQL数据库的四种事务隔离...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,981
精华内容 2,392
关键字:

数据库事物的四大特性