📜  NoSQL 简介(1)

📅  最后修改于: 2023-12-03 14:44:45.330000             🧑  作者: Mango

NoSQL 简介

什么是 NoSQL

NoSQL,全称 Not Only SQL,意为不仅仅是 SQL,是对于传统关系型数据库管理系统(RDBMS)的一种新型非关系型数据库管理系统(Non-Relational Database Management System)。相对于传统的关系型数据库,NoSQL 具有高可伸缩性、高可用性、高性能、灵活的数据模型等优点,可以处理海量数据。NoSQL 适合于互联网应用场景,如数据分析、用户行为分析、智能推荐等。

NoSQL 数据库分类

根据数据模型的不同,NoSQL 数据库可以分为以下几类:

键值数据库(Key-Value Database)

键值数据库是一种简单的数据结构存储数据库,键值对通常会使用哈希表或 B 树等数据结构来实现。 Redis 就是一种非常流行的基于键值数据模型的 NoSQL 数据库,它支持多种数据类型,如字符串、哈希、列表、集合和有序集合等。

文档数据库(Document Database)

文档数据库是一种存储 JSON 或 XML 等半结构化数据的数据库,它把数据存储为文档。文档数据库通常使用类似于 BSON 的二进制 JSON 格式存储数据。

MongoDB 就是一种基于文档数据模型的 NoSQL 数据库。

列族数据库(Column Family Database)

列族数据库是一种面向列存储的数据库,其中每个列由列族、列标识符和值组成。列族数据库通常用于在大规模存储中读取单独的列数据。列族数据库通常使用 Hadoop 和 HBase 等技术栈实现。

图形数据库(Graph Database)

图形数据库是一种用于存储和查询图形和网络数据的数据库,它建模关系和交互模式的数据模型。图形数据库通常使用类似于 Cypher 的自然语言查询语言操作。

Neo4j 就是一种基于图形数据模型的 NoSQL 数据库。

NoSQL 的优点和缺点
优点:
  • 高可伸缩性:NoSQL 数据库可以轻松地进行水平扩展,可以存储海量的数据。
  • 高可用性:NoSQL 数据库通常使用分布式系统架构,可以提供高可用性。
  • 高性能:NoSQL 数据库通常可以使用内存作为缓存,提高读写性能。
  • 灵活的数据模型:NoSQL 数据库可以存储半结构化数据,适合于数据模型不确定的场景。
缺点:
  • 不支持 SQL:NoSQL 数据库通常不支持 SQL,需要学习新的查询语言。
  • 数据一致性:NoSQL 数据库通常不具有强一致性(Strong Consistency)或完全一致性(Absolute Consistency)。
  • 原生不支持事务:NoSQL 数据库通常不支持原生事务,需要通过应用程序实现。
  • 不适合存储关系型数据:如果数据模型关系比较复杂,如需要进行多表连接查询等,则 NoSQL 数据库不是最佳选择。
总结

NoSQL 数据库是一种非关系型数据库,适用于存储半结构化数据和需要进行大规模水平扩展的场景。不同的 NoSQL 数据库,使用不同的数据模型,有各自的优缺点,需要根据具体的应用场景进行选择。