漫谈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数据库产品时需要考虑的基本方向,它还提醒我们分布式系统与传统系统架构存在的差异性,你必须根据实际的应用慎重选择分布式框架。

目录
相关文章
|
1月前
|
存储 监控 NoSQL
九大核心NoSQL数据库及使用场景详解
【10月更文挑战第6天】在当今大数据与云计算飞速发展的时代,NoSQL数据库以其灵活的数据模型、可扩展性和高性能,成为了众多应用场景下的首选。本文将为您详细介绍九大核心NoSQL数据库及其典型使用场景,帮助您在工作和学习中更好地选择和应用。
60 3
|
8天前
|
存储 缓存 NoSQL
常见的 NoSQL 数据库有哪些?
常见的 NoSQL 数据库有哪些?
11 2
|
25天前
|
存储 SQL JSON
介绍一下RDBMS和NoSQL数据库之间的区别
【10月更文挑战第21天】介绍一下RDBMS和NoSQL数据库之间的区别
53 2
|
25天前
|
存储 SQL NoSQL
数据库技术深度探索:从关系型到NoSQL的演变
【10月更文挑战第21天】数据库技术深度探索:从关系型到NoSQL的演变
32 1
|
1月前
|
存储 NoSQL 搜索推荐
nosql
【10月更文挑战第14天】nosql
19 2
|
26天前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
|
1月前
|
存储 SQL 分布式计算
NoSQL 简介
10月更文挑战第10天
31 0
|
1月前
|
存储 NoSQL API
.NET NoSQL 嵌入式数据库 LiteDB 使用教程
.NET NoSQL 嵌入式数据库 LiteDB 使用教程~
|
1月前
|
存储 NoSQL Java
Java中NoSql 数据库的使用
Java中NoSql 数据库的使用
23 0
|
1月前
|
SQL 存储 NoSQL
SQL和NoSQL数据库的全面比较
不可否认,已有越来越多开发人员愿意使用NoSQL数据库,并且在不断地壮大着其相应的社区。但是,相对于成熟的SQL社区,该领域的专家和顾问可能需要更多的时间,去解决那些未曾被记录的NoSQL问题。
51 0