NoSQL 简介

NoSQL (NoSQL = Not Only SQL),意即 “不仅仅是SQL”。

在现代的计算系统上每天网络上都会产生庞大的数据量。

这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd's 提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。

通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和商务应用的主导技术。

NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

什么是NoSQL?

NoSQL 指的是非关系型的数据库。NoSQL 有时也称作 Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL 用于超大规模数据的存储,例如谷歌或 Facebook 每天为他们的用户收集万亿比特的数据。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

为什么使用 NoSQL ?

今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那 SQL 数据库已经不适合这些应用了, NoSQL 数据库的发展却能很好的处理这些大的数据。

NoSQL数据库特点

SQL数据库的特点和优势主要包括:

  • 高度可扩展:NoSQL 数据库可以轻松地实现水平扩展,通过添加更多的服务器来处理更大规模的数据和负载。这使得NoSQL数据库适用于大数据和高并发的应用场景。

  • 灵活的数据模型:NoSQL 数据库不需要预定义固定的表结构,可以存储各种类型的数据,如文档、键值对、列族和图等。这种灵活性使得NoSQL数据库适用于不同类型和结构的数据存储需求。

  • 高性能:NoSQL 数据库通常采用了一些优化技术,如内存存储、并发控制和索引等,以提供快速的读写操作。它们还常常支持分布式计算和缓存等功能,以进一步提高性能。

  • 强大的横向扩展能力:NoSQL 数据库通常支持分布式架构,可以将数据分散存储在多个服务器上,提高可用性和容错性。这种横向扩展能力使得NoSQL数据库能够应对大规模数据和高并发访问的需求。

  • 适用于大数据和实时数据处理:NoSQL 数据库在大数据和实时数据处理方面具有优势。它们能够快速处理大量的数据,并支持复杂的查询和分析操作。

NoSQL的优点/缺点

NoSQL 的优点

  • 高可扩展性

  • 分布式计算

  • 低成本

  • 架构的灵活性,半结构化数据

  • 没有复杂的关系

NoSQL 的缺点

  • 没有标准化

  • 有限的查询功能(到目前为止)

  • 最终一致是不直观的程序

NoSQL数据库分类

市面上 NoSQL 数据库的种类繁多,每一种 NoSQL 数据库主要用来解决某一特定领域问题,而非万金油。主要的 NoSQL 数据库包括:

  • 文档型数据库,如 MongoDB

  • 键值对数据库,如 Redis

  • 列族数据库,如 HBase

  • 图数据库,如 Neo4j

每种类型的 NoSQL 数据库都有其特定的用途和适用场景,开发者可以根据实际需求选择合适的数据库解决方案。

关系型数据库与NoSQL数据库

关系型数据库

  • 高度组织化结构化数据

  • 结构化查询语言(SQL) (SQL)

  • 数据和关系都存储在单独的表中。

  • 数据操纵语言,数据定义语言

  • 严格的一致性

  • 基础事务

NoSQL数据库

  • 代表着不仅仅是SQL

  • 没有声明性查询语言

  • 没有预定义的模式

  • 键 - 值对存储,列存储,文档存储,图形数据库

  • 最终一致性,而非ACID属性

  • 非结构化和不可预知的数据

  • CAP定理

  • 高性能,高可用性和可伸缩性

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号