漫谈NoSQL数据库

简介: NoSQL数据库 NoSQL 即 Not Only SQL是对非关系型数据库的泛称。NoSQL数据库不遵循传统关系型数钢库的ACID原则,并且他弃了磁度存储,转而走向了内存存储。 CAP定理 NoSQL数据库大多应用于分布式应用系统中相对于传统关系型数据库的ACID理论,NoSQL理论基础主要基于CAP原则(也叫CAP定理,见下图)。

NoSQL数据库

NoSQL 即 Not Only SQL是对非关系型数据库的泛称。NoSQL数据库不遵循传统关系型数钢库的ACID原则,并且他弃了磁度存储,转而走向了内存存储。

CAP定理

NoSQL数据库大多应用于分布式应用系统中相对于传统关系型数据库的ACID理论,NoSQL理论基础主要基于CAP原则(也叫CAP定理,见下图)。CAP定理中的C、A、P分别指Consistency(一致性)、Availability(可用性)、Parition iolerance(分区容铺性)。NoSQL理论对分布式系统中的三个特性进行了如下归纳:

1)一致性(C)。一致性被称为原子对象,任何的读/写都应该看起来是“原子”的。写后面的读一定能读到前面写的内容,所有的读/写请求都好像被全局排序。
2)可用性(A)。对任何非失败节点都应该在有限时间内给出请求的回应(请求的可终止性)。
3)分区容错性(P)。允许节点之间丢失任意多的消息,当网络分区发生时,节点之间的消息可能会完全丢失。
_1

CAP定理由Eric Brewer教授提出,并由Lynch等人于2002年证明了Brewer的猜想。

CAP定理告诉我们,一个分布式系统不可能同时满足一致性、可用性和分区容错性这三个需求,最多只能同时满足两个。根据CAP定理,可以根据不同的应用场景选取其中的两个作为设计方向。

目前,NoSQL数据库作为实时应用系统数据库一般遵循AP原则。满足AP原则的NoSQL数据库一般采用Key-Value内存数据库,如Redis。但CAP定理正在面临诸多质疑。CAP的概念定义比较模糊,而且CAP没有考虑不同的基础架构、不同的应用场景、不同的网络基础和用户需求,而C、A、P在这些不同场景中的含义可能完全不同,这种无差异化的定义直接导致了概念的不明确,同时也成为CAP被质疑的源头。

不过,CAP定理仍然有显著的指导意义,它至少告诉我们在设计分布式系统和选择NoSQL数据库产品时需要考虑的基本方向,它还提醒我们分布式系统与传统系统架构存在的差异性,你必须根据实际的应用慎重选择分布式框架。

目录
相关文章
|
20天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL是关系型DB,依赖预定义的表格结构,适合结构化数据和复杂查询,但扩展性有限。NoSQL提供灵活的非结构化数据存储(如JSON),无统一查询语言,但能横向扩展,适用于大规模、高并发场景。选择取决于应用需求和扩展策略。
110 1
|
2月前
|
存储 NoSQL 关系型数据库
面试题18: NOSQL数据库
面试题18: NOSQL数据库
|
3月前
|
存储 NoSQL API
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
135 0
|
1月前
|
存储 NoSQL 关系型数据库
四种类型的nosql数据库
随着互联网的发展,传统关系型数据库已经不能满足大数据时代的需求。NoSQL数据库应运而生,它们具有高可扩展性、高性能和高可用性等优点。本文将介绍四种主要类型的NoSQL数据库,分别是键值存储数据库、文档存储数据库、列存储数据库和图形数据库。这些数据库在不同的场景下有着不同的应用,可以满足不同的需求。
|
1月前
|
存储 缓存 NoSQL
|
3月前
|
多模数据库 Cloud Native NoSQL
Nosql学习之路:云原生多模数据库Lindorm训练营第一弹来啦
Lindorm训练营系列将通过一系列由浅入深的高质量课程和丰富的动手实验,将理论与实践结合,带你从入门到成为高阶开发者。参营学习还有机会获得惊喜彩蛋~
|
3月前
|
缓存 NoSQL MongoDB
在使用NoSQL数据库时,你遇到过哪些挑战?如何解决这些挑战?
在使用NoSQL数据库时,你遇到过哪些挑战?如何解决这些挑战?
27 0
|
3月前
|
存储 JSON NoSQL
请列举一些常见的NoSQL数据库类型和其特点。
请列举一些常见的NoSQL数据库类型和其特点。
44 0
|
3月前
|
存储 SQL NoSQL
NoSQL数据库的优点和缺点是什么?
NoSQL数据库的优点和缺点是什么?
85 0
|
3月前
|
存储 NoSQL 关系型数据库
什么是NoSQL数据库?它与传统关系型数据库有什么区别?
什么是NoSQL数据库?它与传统关系型数据库有什么区别?
51 0