`
huangcangbai
  • 浏览: 3260 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

事务ACID区别【转】

 
阅读更多

转自:http://blog.sina.com.cn/s/blog_44c594a70101rsgj.html

1,最容易困惑的是原子性和一致性,先谈这俩:
原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。
一致性: 事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
 

    有朋友会问,那我保证了原子性,不就可以保证一致了么?这里的关键区别在于,事务的操作边界定义。对于一直事务里有哪些操作,这个是自定义的,而一致性是 针对业务逻辑本身而言的。比如你定义一个事务,里面的操作是A,B,C三步,系统原子性能保证的是这三步要么都执行,要么都不执行,不可拆分。但是有可能 你这三部破坏了数据的一致性,比如你定义了从A账户划拨200块给B账户。如果你的事务里只包含从A账户扣款,而不包含B账户加钱。那么系统保证原子性 后,能保证要么从A账户都扣款成功,要么都不成功,不会出现扣了一半款之类的异常情况。但是没办法保证B账户加钱了。所以A账户扣款,B账号加钱,这是一 个连续的动作,业务逻辑上要保证一致性,所以必须把两个步骤放在一个事务里,这样才能保证一致性。
    换而言之,原子性是系统能够提供的功能,而一致性是根据业务逻辑,有用户自定义事务的边界来保证的。两者缺一不可。

2,隔离性
    其实这里还有一个隐含的点,就是可见性。注意区分两者的关系及隔离和可见的等级,这个是很好理解的。
3,持久性
    持久性也是有级别的,不是说所有数据库都能保证100%当事务提交后,就一定不会丢了。也是比较好理解,各个数据库实现不同,持久性的保证程度也不同。
分享到:
评论

相关推荐

    数据库事务ACID属性:确保数据一致性的关键

    数据库事务是数据库管理...本文通过深入分析ACID属性,并结合实际的SQL代码示例,为读者提供了一个全面的数据库事务ACID属性指南。希望本文能够帮助读者在实际工作中更好地利用事务来保证数据操作的安全性和一致性。

    事务ACID1

    事务是数据库操作的核心概念,尤其在Java这样的编程语言中,理解和掌握事务的ACID特性对于开发高可用、数据一致性的应用程序至关重要。ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和...

    Mysql事务的基本使用-基本原理及特点ACID

    ### MySQL 事务的基本使用——基本原理及特点 ACID #### 一、事务的概念与作用 在数据库管理系统中,事务(Transaction)是指作为一个工作单元的一系列操作。这些操作要么全部完成,要么全部都不进行,以此来确保...

    HBase_SI_--_实现HBase_ACID的理论

    根据给定文件的信息,本文将深入探讨"HBase_SI"这一理论框架,该理论旨在实现HBase中的ACID特性。文章将从多个角度分析HBase_SI的设计理念、技术细节及其应用场景。 ### HBase_SI:实现HBase_ACID特性的理论 #### ...

    数据库系统中事务的ACID原则.pdf

    ACID原则是事务处理的核心特性,它由四个关键属性组成:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这四个原则共同保证了数据库在多用户环境下能够正确、可靠地处理...

    请简述 MySQL 中的事务,以及事务的 ACID 特性

    MySQL 中的事务是指一组数据库操作,这些操作要么全部执行成功,要么全部失败回滚。MySQL 中的事务通过 ACID 特性来保证数据的一致性和可靠性,ACID 特性包括哪些?

    分布式-CAP与ACID原则

    例如,强一致性的CAP属性与ACID原则中的“一致性”和“原子性”有着相似的目标,即保证数据的一致性和事务的完整性。然而,当系统需要扩展到分布式架构时,就需要在ACID和CAP原则之间做出权衡。通常情况下,为了提高...

    ACID 概念

    ACID是事务处理中四个关键属性的缩写,分别代表原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这四个属性确保了在数据库系统中进行的数据操作能够正确执行,即使在出现...

    Acid

    Acid测试,全称为“Atomicity、Consistency、Isolation、Durability”,是一组确保数据库事务处理正确性的准则。这些原则是数据库管理系统(DBMS)的核心组成部分,以确保数据的一致性和完整性。 1. 原子性...

    MySQL数据库:事务的概述、ACID.pptx

    ACID是事务处理的四个核心属性,代表了原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。 1. **原子性**:原子性确保事务中的每个操作都是不可分割的,要么全部完成,要么...

    数据库ACID属性:确保事务处理的基石

    ACID属性是数据库事务处理的基石,确保了数据的完整性和一致性。通过理解和应用ACID属性,开发者可以设计出高效、可靠的数据库事务处理流程。随着技术的发展,对ACID属性的深入理解和应用将变得更加重要。

    MySQL事务表和非事务表的区别1

    首先,事务表,如InnoDB存储引擎提供的表,支持ACID(原子性、一致性、隔离性和持久性)特性。这意味着它能够确保一组操作作为一个事务执行,即使在执行过程中出现错误,也能保持数据的一致性。在事务中,一系列SQL...

    深入学习MySQL事务:ACID特性的实现原理

    本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理。MySQL博大精深,文章疏漏之处在所难免,欢迎批评指正。 事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含...

    SpringBoot事务和Spring事务详讲

    #### 三、事务的四大特性 (ACID) 事务具有四个核心特性,简称 ACID: 1. **原子性 (Atomicity)**:事务中的所有操作要么全部成功,要么全部失败。这意味着事务中的各个操作被视为一个不可分割的整体。 2. **一致性 ...

    java分布式事务demo

    分布式事务处理通常涉及ACID(原子性、一致性、隔离性和持久性)原则,这些原则是传统数据库事务管理的基础。在Java中,实现分布式事务的方法有很多,例如使用JTA(Java Transaction API)或者Spring框架的声明式...

Global site tag (gtag.js) - Google Analytics