Skip to main content

数据库开发的基础模型

182nd Knowledge Seekers Workshop, Thursday, July 27, 2017 (六月 2025)

182nd Knowledge Seekers Workshop, Thursday, July 27, 2017 (六月 2025)
Anonim

关系数据库的核心是可靠性和一致性。开发它们的工程师专注于事务模型,确保始终保留ACID模型的四个原则。然而,新的非结构化数据库模型的出现正在使ACID成为现实。 NoSQL数据库模型避开了高度结构化的关系模型,转而采用灵活的键/值存储方法。这种非结构化的数据方法需要替代ACID模型:BASE模型。

ACID模型的基本原则

ACID模型有四个基本原则:

  • 原子 事务确保每个数据库事务都是采用“全有或全无”执行方法的单个单元。如果事务中的任何语句失败,则回滚整个事务。
  • 关系数据库也确保了 一致性 每个事务的数据库的业务规则。如果原子事务的任何元素会破坏数据库的一致性,则整个事务将失败。
  • 数据库引擎强制执行 隔离 多次交易发生在同一时间或接近同一时间。每个事务在每个其他事务之前或之后发生,并且事务在其开始处看到的数据库视图仅在事务结束之前由事务本身改变。任何交易都不应该看到另一个交易的中间产品。
  • 最终的ACID原则, 耐久力,确保一旦事务提交到数据库,就会通过使用备份和事务日志永久保留它。如果发生故障,可以使用这些机制来恢复已提交的事务。

    BASE的核心原则

    另一方面,NoSQL数据库包含ACID模型过度或者实际上会阻碍数据库操作的情况。相反,NoSQL依赖于一个适当的软模型作为BASE模型。该模型适应NoSQL提供的灵活性以及类似的非结构化数据管理和管理方法。 BASE包含三个原则:

    • 基本可用性。即使在存在多个故障的情况下,NoSQL数据库方法也关注数据的可用性。它通过使用高度分布式的数据库管理方法实现了这一点。 NoSQL数据库不是维护单个大型数据存储,而是专注于该存储的容错性,而是通过高度复制的方式在多个存储系统中传播数据。万一发生故障会中断对数据段的访问,这不一定会导致完整的数据库中断。
    • 软州。 BASE数据库几乎完全放弃了ACID模型的一致性要求。 BASE背后的基本概念之一是数据一致性是开发人员的问题,不应由数据库处理。
    • 最终的一致性。 NoSQL数据库对一致性的唯一要求是要求在将来的某个时刻,数据将收敛到一致状态。但是,不保证何时会发生这种情况。这完全背离了ACID的直接一致性要求,该要求禁止事务执行直到先前事务完成并且数据库已收敛到一致状态。

    BASE模型并不适用于所有情况,但对于不需要严格遵守关系模型的数据库,它肯定是ACID模型的灵活替代方案。