《解读NoSQL》——1.1 什么是NoSQL

简介:

本节书摘来自异步社区出版社《解读NoSQL》一书中的第1章,第1.1节,作者: 【美】Dan McCreary(丹•麦克雷) , Ann Kelly(安•凯利),更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.1 什么是NoSQL

准确定义NoSQL本身就具有挑战性。NoSQL这个术语其实是有待商榷的,因为它并没有真正意义上揭示NoSQL运动的核心主题。这个术语来源于一群定期在湾区开会并讨论一些共同关注的可扩展的开源数据库的人们,它就这样出现了。不管它形不形象,它似乎出现在所有地方:行业期刊、产品说明和各种会议。在本书,我们将用NoSQL区别于传统的关系型数据库管理系统(RDBMS)。

按照我们的目标,我们将从以下几个方面定义NoSQL。

NoSQL是关于快速而高效地处理数据,专注于性能、可靠性和敏捷性的一组概念。

这听起来有些宽泛,是吧?它没有排除SQL或者RDBMS,对吗?这其实并没有错。重要的是,我们需要搞清楚NoSQL背后的核心主题:它是什么,最重要的是,它不是什么。那么NoSQL究竟是什么?

NoSQL 不仅仅是普通意义上的表——NoSQL系统可以从许多格式中存储和检索数据:键值存储、图数据库、列族存储、文档存储甚至是普通的表。
NoSQL避免连接操作——NoSQL系统能够通过简单的接口提取数据从而避免连接操作。
NoSQL 是模式无关的——NoSQL系统允许将数据拖曳到一个文件夹并进行查询,而不需要创建对象-关系模型。
NoSQL 工作在多核处理器之上——NoSQL系统允许将数据库部署在多核处理器之上从而保持良好的性能。
NoSQL 运行在无共享的商用计算机——大多数(并不是所有的)NoSQL系统利用廉价的商用处理器、独立的硬盘和内存进行搭建。
NoSQL 支持线性扩展——当你增加更多的处理器时,你的单位性能增量始终是一致的。
NoSQL 是创新的——NoSQL对于存储、检索、操作数据提供了更多的选择。NoSQL的支持者(也被称为NoSQLers)对于NoSQL和SQL解决方案持一种兼收并蓄的态度。对于NoSQL社区来说,NoSQL的意思是“不只是SQL”。
同样重要的是,NoSQL不是什么。
**
NoSQL 不是一种SQL语言**——NoSQL并不是采用非SQL查询语言的应用。SQL和其他查询语言也可以被用于NoSQL数据库。
NoSQL 不仅是开源的——尽管许多NoSQL系统都有一个开源模式,但是借鉴NoSQL思想的商业产品同样也不排斥开源。你仍然可以通过商业产品创新地解决问题。
NoSQL 不仅仅代表海量数据——大部分但不是所有的NoSQL应用都是来源于为应对海量数据而提升当前应用运行规模的需求。虽然数据的容量和数据处理速度很重要,但NoSQL 也专注于数据的种类和敏捷性。
NoSQL 和云计算没有关系——虽然很多NoSQL系统为了能在负载变化时利用云端动态扩展的优势而部署在云端,但是NoSQL系统也能像在云端运行那样运行在公司的数据中心。
这不是关于如何用好RAM和SSD——NoSQL专注于高效地使用RAM和固态硬盘获得性能的提升,尽管这很重要,但是NoSQL系统可以运行在普通硬件之上。
NoSQL 并不是精英团体的专属产品——NoSQL不是一个排他的、只有少数产品的俱乐部,也并没有为加入设置门槛。想成为一个NoSQLer,你只需说服别人,对于他们的业务难题你有创新的解决思路。
NoSQL应用采用很多数据存储类型(不同的数据库)。有简单的表现键值关系的键值存储、表现关联关系的图存储、用以存储可变数据的文档存储,每一种NoSQL数据存储类型都有其独特的属性和使用场景,如表1-1所示。


14393bb86f2fdf6a4e665129641d3f739e554512


4639386639dd537f4d6263d416ab112ea85eaa1b

NoSQL系统拥有独特的特性能够使其单独使用或者与已有系统配合使用。许多机构认为NoSQL系统这样做的原因是为了克服一些常见的问题,如数据的容量、流动的速度、数据的种类和数据的敏捷性以及NoSQL运动背后的商业驱动所使然。

相关文章
|
28天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL是关系型DB,依赖预定义的表格结构,适合结构化数据和复杂查询,但扩展性有限。NoSQL提供灵活的非结构化数据存储(如JSON),无统一查询语言,但能横向扩展,适用于大规模、高并发场景。选择取决于应用需求和扩展策略。
117 1
|
2月前
|
存储 NoSQL 关系型数据库
面试题18: NOSQL数据库
面试题18: NOSQL数据库
|
3月前
|
存储 NoSQL API
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
140 0
|
6天前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
127 8
Python与NoSQL数据库(MongoDB、Redis等)面试问答
|
1月前
|
存储 NoSQL 关系型数据库
四种类型的nosql数据库
随着互联网的发展,传统关系型数据库已经不能满足大数据时代的需求。NoSQL数据库应运而生,它们具有高可扩展性、高性能和高可用性等优点。本文将介绍四种主要类型的NoSQL数据库,分别是键值存储数据库、文档存储数据库、列存储数据库和图形数据库。这些数据库在不同的场景下有着不同的应用,可以满足不同的需求。
|
1月前
|
存储 缓存 NoSQL
|
3月前
|
多模数据库 Cloud Native NoSQL
Nosql学习之路:云原生多模数据库Lindorm训练营第一弹来啦
Lindorm训练营系列将通过一系列由浅入深的高质量课程和丰富的动手实验,将理论与实践结合,带你从入门到成为高阶开发者。参营学习还有机会获得惊喜彩蛋~
|
3月前
|
缓存 NoSQL MongoDB
在使用NoSQL数据库时,你遇到过哪些挑战?如何解决这些挑战?
在使用NoSQL数据库时,你遇到过哪些挑战?如何解决这些挑战?
29 0
|
3月前
|
存储 JSON NoSQL
请列举一些常见的NoSQL数据库类型和其特点。
请列举一些常见的NoSQL数据库类型和其特点。
47 0
|
3月前
|
存储 SQL NoSQL
NoSQL数据库的优点和缺点是什么?
NoSQL数据库的优点和缺点是什么?
93 0

热门文章

最新文章