`
daniel_tu
  • 浏览: 184226 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

数据库理论之ACID和BASE的比较

 
阅读更多

本文作者: Sigma
本文链接: http://www.sigma.me/2011/06/13/NoSQL-CAP-Theorem.html

 

传统关系型数据库系统的事务都有ACID的属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。英文为:

  • A tomic: Everything in a transaction succeeds or the entire transaction is rolled back.
  • C onsistent: A transaction cannot leave the database in an inconsistent state.
  • I solated: Transactions cannot interfere with each other.
  • D urable: Completed transactions persist, even when servers restart etc.
  • 中译为:
  • 原子性 : 整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
  • 一致性 : 在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
  • 隔离性 : 两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。 两个事务不会发生交互。
  • 持久性 : 在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。
  • 在数据库系统中,事务的ACID属性保证了数据库的一致性,比如银行系统中,转账就是一个事务,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和构成一个完整的逻辑过程,不可拆分,为原子,从而保证了整个系统中的总金额没有变化。

然而,这些ACID特性对于大型的分布式系统来说,适合高性能不兼容的。比如,你在网上书店买书,任何一个人买书这个过程都会锁住数据库直到买书行 为彻底完成(否则书本库存数可能不一致),买书完成的那一瞬间,世界上所有的人都可以看到熟的库存减少了一本(这也意味着两个人不能同时买书)。这在小的 网上书城也许可以运行的很好,可是对Amazon这种网上书城却并不是很好。

而对于Amazon这种系统,他也许会用cache系统,剩余的库存数也许是之前几秒甚至几个小时前的快照,而不是实时的库存数,这就舍弃了一致 性。并且,Amazon可能也舍弃了独立性,当只剩下最后一本书时,也许它会允许两个人同时下单,宁愿最后给那个下单成功却没货的人道歉,而不是整个系统 性能的下降。

其实,上面的思想是从Eric Brewer’s CAP 理论 (详见我这篇文章)得到的启发,在CAP理论中:

在设计分布式Web服务中,通常需要考虑三个应用的属性:一致性、可用性以及分区宽容性。但是在实际的设计中,不可能这三方面同时做的很好。

由于CAP理论的存在,为了提高性能,出现了ACID的一种变种BASE:

  • B asic A vailability:基本可用
  • S oft-state :软状态/柔性事务,可以理解为"无连接"的, 而 "Hard state" 是"面向连接"的
  • E ventual consistency:最终一致性,最终整个系统(时间和系统的要求有关)看到的数据是一致的。
  • 在BASE中,强调可用性的同时,引入了最终一致性这个概念,不像ACID,并不需要每个事务都是一致的,只需要整个系统经过一定时间后最终达到是一致 的。比如Amazon的卖书系统,也许在卖的过程中,每个用户看到的库存数是不一样的,但最终买完后,库存数都为0。再比如SNS网络中,C更新状态,A 也许可以1分钟才看到,而B甚至5分钟后才看到,但最终大家都可以看到这个更新。

有趣的是,ACID的意思是酸,而BASE却是碱的意思,因此这是一个对立的东西。其实,从本质上来讲,酸(ACID)强调的一致性(CAP中的C),而碱(BASE)强调是可用性(CAP中的A)。

 

database-acid-vs-base

分享到:
评论

相关推荐

    OceanBase企业级分布式数据库介绍.pdf

    OceanBase是一种透明可扩展的企业级数据库,具有高性能、可扩展性和高可用性的特点。它可以满足企业级数据库的需求,解决传统数据库的单机不可扩展和成本高的问题。 透明可扩展的理论基础 OceanBase的透明可扩展...

    OceanBase企业级数据库介绍.pptx

    OceanBase 遵循 ACID 理论,即原子性、一致性、隔离性和持久性。这些理论是数据库系统的基础,确保了数据库的正确性和可靠性。 分布式事务: OceanBase 支持分布式事务,使用 Paxos + 2PC 协议来确保事务的一致性...

    东北大学分布式数据库课件和真题

    试卷可以帮助学生了解课程重点,测试对分布式数据库理论和实践的理解。可能包含以下题目类型: - 理论问答:解释分布式数据库的基本概念、原理和模型。 - 分析题:分析特定场景下如何设计和优化分布式数据库。 -...

    数据库习题集(整理包括了数据库考试所有方面)

    数据库是信息技术领域中的核心部分,它负责存储、管理和检索数据,是各类信息系统的基础。...通过解答这些习题,你将全面掌握数据库理论和实践,无论是在学术考试还是实际工作中,都能更好地理解和运用数据库系统。

    数据库系统设计,实现和管理

    最后,**数据库理论**,如ACID(原子性、一致性、隔离性、持久性)事务属性、CAP定理和BASE原则,对于理解数据库系统的行为至关重要。 综上所述,数据库系统设计、实现和管理涵盖了广泛的理论和实践知识,从需求...

    企业级分布式数据库实践专场__深入OceanBase企业级数据库的分布式事务引擎.zip

    分布式事务是分布式数据库系统中的核心功能之一,它允许多个操作在一个事务中执行,确保事务的原子性、一致性、隔离性和持久性(ACID特性)。OceanBase的分布式事务引擎通过两阶段提交(2PC)和多阶段提交(MPC)等...

    全国计算机四级数据库的资料

    全国计算机四级数据库考试资料是一个全面涵盖数据库理论与实践的资源集合,对于准备参加该级别考试的学生来说至关重要。四级数据库考试通常会涉及高级数据库系统、数据库设计、管理、优化以及相关技术,如SQL语言、...

    华工2016年数据库备考

    1. **关系数据库理论**:首先,你需要理解关系模型的基本概念,如实体、属性、键和关系。学习ER(实体-关系)模型,用于设计数据库的结构,以及如何通过ER图转化为关系模式。同时,了解第一范式(1NF)、第二范式(2...

    三级数据库等级考试

    9. **分布式数据库**:对分布式数据库系统有基本认识,理解分布式事务处理的CAP定理(一致性、可用性、分区容错性)和BASE理论(基本可用、软状态、最终一致)。 10. **NoSQL数据库**:了解非关系型数据库如键值...

    数据库三级考试数据库资料.zip

    8. **分布式数据库**:理解分布式数据库的概念,包括复制、分区、分片等策略,以及CAP原理和BASE理论。 9. **大数据与云数据库**:了解Hadoop、Spark等大数据处理框架,以及Amazon RDS、Google Cloud SQL等云数据库...

    CAP理论与分布式数据库[归纳].pdf

    分布式数据库的挑战来自于 CAP 理论的限制,但通过采用 BASE 模型和 NoSQL 数据库,可以实现高可用性和扩展性。VoltDB 和 MySQL Cluster 是分布式数据库的代表,NoSQL 数据库也提供了多种选择。

    2004-2012软考之数据库系统工程师真题及答案

    8. **数据库理论**:如ACID属性(原子性、一致性、隔离性和持久性),CAP原理,以及BASE原则。 9. **软考相关知识**:可能包含一些关于软考的政策、流程、报名条件等信息,帮助考生了解考试流程。 通过研究这些...

    历年数据库系统工程师试题

    一、数据库理论基础 1. 数据模型:包括关系模型、网络模型、层次模型等,重点是关系模型,如ER模型、关系代数和元组关系演算。 2. 数据库设计:需求分析、概念设计(用E-R图表示)、逻辑设计(转换为关系模式)、...

    数据库系统概论试卷--张秀洲整理

    11. **NoSQL数据库**:非关系型数据库如MongoDB、Cassandra和Redis的特点、适用场景及其与关系型数据库的比较。 12. **大数据与数据仓库**:Hadoop、Spark等大数据处理框架,以及数据仓库的构建和OLAP(在线分析...

    山东大学数据库祖传资料.zip

    《山东大学数据库祖传资料》是一份集合了山东大学在数据库领域的教学与研究精华的压缩文件,其中包含的资源丰富多样,旨在为学习者提供全面的数据库理论与实践指导。数据库是信息技术中的核心部分,它负责高效、安全...

    很全的数据库试题 分开的选择题、填空题、简答题,以及整套的复试数据库试题

    这份资料不仅包含了基本的理论知识,还可能涉及实际应用案例,对于提升数据库理论素养和解决实际问题能力都有很大帮助。通过解答这些题目,学习者可以系统地回顾和巩固数据库领域的各种概念、原理和实践技巧,为应对...

    仲恺农业工程学院数据库ppt

    PPT可能会讲解分布式数据库的原理,如CAP理论和BASE原则。 9. **NoSQL数据库**:对比传统的关系型数据库,介绍非关系型数据库(NoSQL)的特点,如键值对、文档型、列族和图形数据库等类型。 10. **案例研究**:...

    华中科大数据库系统原理课件

    1. 数据库系统基础:首先,课件会介绍数据库系统的基本概念,包括什么是数据库、数据库管理系统(DBMS)的作用、数据模型(如关系模型、网络模型、层次模型)的比较和选择,以及实体-关系(E-R)模型的设计。...

    高级数据库开发技术课件

    分布式数据库是现代应用的常见选择,因此理解分布式数据库的概念,如分片、复制、路由和一致性模型(例如ACID与BASE),对于构建可扩展的系统至关重要。NoSQL数据库,如MongoDB、Cassandra和HBase,提供了不同的数据...

Global site tag (gtag.js) - Google Analytics