NoSQL数据库设计与应用全解析
1. ACID与BASE的抉择
在数据库领域,ACID(原子性、一致性、隔离性、持久性)和BASE(基本可用、软状态、最终一致性)是两种不同的一致性模型。许多NoSQL供应商通过宣称不同的独特方法来使自己与竞争对手区分开来。有意思的是,不少NoSQL供应商的路线图中都有实现ACID合规性的计划。
一些NoSQL数据库尽管是BASE的支持者,但仍将ACID合规性列入计划,这表明ACID保证对企业关键任务系统的重要性。很多公司在测试想法时使用具有BASE一致性的免费产品,但当要在关键任务系统上正式运行时,会迁移到符合ACID的付费数据库。
决定是否需要ACID的简单方法是考虑人与其他系统与数据的交互。例如,添加或更新数据后,下一个查询能否立即看到更改很重要吗?重要决策是否依赖于数据库的当前状态?看到稍有过时的数据是否会导致这些决策出现致命缺陷?
在金融服务领域,对一致性的需求显而易见。交易员购买股票时,需要在交易前检查现金余额,以确保有足够资金进行交易。如果查询的数据库只是最终一致的,他们可能看不到资金不足的情况,从而使组织面临财务风险。类似的情况也适用于医疗保健、国防、情报等领域。
2. 可用性方法
一致性并非绝对,而是一个可调节的范围。许多NoSQL数据库允许在一致性和可用性级别之间进行调整,这与CAP定理相关。
CAP定理是计算机科学中的一个已被证明的猜想,它展示了在BASE数据库系统中如何保持一致性、可用性和分区容忍性之间的平衡。CAP分别代表一致性(Consistency)、可用性(Availability)和分区容忍性(Partitioning)。在考虑B
超级会员免费看
订阅专栏 解锁全文
1436

被折叠的 条评论
为什么被折叠?



