各NoSQL数据库管理系统与模型比较

SwiftUI 对比之 ZStack 和 Overlay的区别 zstack 和 overlay都是可以放飞自我,进行自定义布局容器。overlay的好处是可以将组件限定在父视图的范围内. 基础知识 overlay(_:alignment:) 在该视图前面分层放置一个辅助视图。 func overlay<Overlay>(_ overlay: Overlay, alignment: Alignment = .center) -> some View where Overlay : View 返回值 图层叠加在视图前面的视图。 参量 overl. 阅读详情

提供:ZStack云计算

内容简介

NoSQL数据库的存在意义在于提供传统关系数据库管理系统所不具备的特定功能。无论是负责承载简单的键-值对存储以实现短期缓存,抑或是处理传统数据库及结构化查询语言(简称SQL)所难以消化的非结构化集合,NoSQL都能为我们提供巨大的帮助。

在今天的文章中,我们将共同了解各类高人气NoSQL数据库管理系统及其定位与作用,从而帮助我们根据实际应用需求做出明智选择。

词汇表

1. 数据库管理系统
2. NoSQL数据库管理系统
  1. 基于键/值
  2. 基于列
  3. 基于文档
  4. 基于图形
3. 基于键/值的NoSQL数据库管理系统
  1. 主流键/值数据库
  2. 适合用途
4. 基于列的NoSQL数据库管理系统
  1. 主流列式数据库
  2. 适合用途
5. 基于文档的NoSQL数据库管理系统
  1. 主流文档数据库
  2. 适合用途
6. 基于图形的NoSQL数据库管理系统
  1. 主流图形数据库
  2. 适合用途
7. NoSQL数据库管理系统与关系数据库管理系统之对比
  1. NoSQL数据库适合用途

数据库管理系统

数据库属于逻辑性建模存储空间,负责承载各类不同信息(即数据)。每套数据库(除了无模式数据库以外)皆拥有一套模型,负责提供处理数据所必需的结构。数据库管理系统属于应用程序(或者库),旨在管理不同类型、规模以及形式的数据库方案。

备注:要了解更多与数据库管理系统相关的内容,请参阅了解数据库一文。

NoSQL数据库管理系统

过去十年来,关系数据库管理系统一直成为开发者与系统管理员们的最佳选项,而其理由也相当充分。尽管灵活性并不理想,但RDBMS的强大特性使其能够创建、查询并使用复杂的数据库方案。其能力已经可以满足绝大部分需求,因为长久以来市场上并未出现差异性极大的需求转变。

而“NoSQL”这一名号早在十几年前就已经出现,其强调的含义是“并非”另一种关系数据库。而在其背后则隐藏着完全不同的解决思路:消除对标准SQL的使用。接下来几年中,不过有厂商接过这面大旗并加以推动,隶属于该阵营的多种非关系数据库也开始不断涌现。

从设计角度看,NoSQL数据库与管理系统为非关系型(或者说无模式)设计。它们并非基于单一模式(例如RDBMS的关系模型),而且每款数据库根据自身功能定位都会采用不同的模式。

:NoSQL数据库包含以下几种不同的可选模式及功能系统:

  • 键/值:

例如Redis、MemcacheDB等。

  • 列式:

例如Cassandra、HBase等。

  • 文档:

例如MongoDB、Couchbase等。

  • 图形:

例如OrientDB、Neo4J等。

为了更好地理解每种数据库管理系统的角色定位与底层技术,下面对这四种可选模式进行逐一剖析。

键/值数据库

我们首先来讲键/值类数据库管理系统,因为它们较为简单且属于NoSQL实现方案的基础与主干。

这类数据库的工作原理是将键与值进行匹配,具体方式与字典相近。其中不存在结构或者关系。在接入数据库服务器(例如Redis)后,应用能够声明一个键(例如the_answer_to_life)并提供一个与之匹配的值(例如42)。在此之后,当我们提供该键,就能够检索到对应的值。

键/值DBMS通常被用于存储基础性信息,有时候也会存储某些并不基础的执行结果——例如CPU与内存密集型计算结果。其性能极高,效率可观且通常易于扩展。

备注:在计算机当中,字典指的通常是一种特殊的数据对象。其由大量集合数组构成,各数组中包含独立的键与值。

列式数据库

列式NoSQL数据库管理系统在键/值数据库的基础上更进了一步。

尽管互联网上查到的图片看似难以理解,不过此类数据库的工作原理其实非常简单——创建一个或者多个键/值对集合,并共同匹配一条记录。

与传统关系数据库的定义模式不同,列式NoSQL解决方案不需要利用预结构化表实现数据处理。每条记录都附带一个或者多个包含有信息的列,而每条记录中的每个列都可彼此不同。

基本上,列式NoSQL数据库就是大量二维数组,其中每个键(即行/记录)都附加一个或者多个键/值对。此类管理系统能够承载规模庞大的非结构化数据(例如可在单一记录中添加大量信息)。

这些数据库常被用于处理简单键/值对无法完成的任务,并存储总量极大、且承载信息量极多的记录。列式无模式DBMS能够实现极佳的扩展能力。

文档数据库

文档NoSQL数据库管理系统近来可谓人气爆棚。此类DBMS的工作原理与列式数据库基本一致;不过,它们能够实现更为深入的嵌套与更复杂的结构(例如某文档内包含一个文档,后者中又包含另一文档)。

文档数据库克服了列式数据库中键/值嵌套只能分为一到两个层级的限制。基本上,任何复杂结构都可以文档形式体现,并使用此类管理系统加以存储。

尽管自身非常强大,且能够通过个别键进行记录查询,但文档数据库管理系统也有着自己的问题与短板。例如,检索一条记录的值意味着需要对记录的全部内容进行搜索,更新亦是如此——这将极大影响执行性能。

图形数据库

最后来介绍最为有趣的NoSQL数据库管理系统类型——图形数据库。

图形DBMS模式会以完全不同的方式进行数据表示。其采用树状结构(即图形),其中包含大量节点与边界,且彼此间通过关系实现对接。

与数学计算类似,特定操作能够在此类模式中得以轻松实现,而这主要归功于相关信息片段的分组与连接方式(例如相关联系人)。

这类数据库常用于需要具备明确边界并实现必要连接的应用场景。例如当我们注册任何形式的社交网站时,其中都会提供“与朋友的朋友结识”之类的功能,这正是图形数据库管理系统的最佳施展平台。

键/值NoSQL数据库管理系统

键/值数据存储拥有出色的性能表现、易用性及可扩展能力。

主流键/值NoSQL数据库管理系统

部分主流键/值数据存储方案包括:

  • Redis:

内存内键/值存储且提供持久性选项。

  • Riak:

高分布式副本型键/值存储方案。

  • Memcached / MemcacheDB:

基于键/值存储机制的分布式内存方案。

合适用途

合适的用途包括:

  • 缓存:

快速存储数据以备未来使用。

  • 队列:

部分键/值存储机制(例如Redis)支持列表、集合以及队列等功能。

  • 分发信息/任务:

可用于实现Pub/Sub。

  • 保存实时信息。

需要保持状态的应用可以利用键/值存储轻松实现。

列式NoSQL数据库管理系统

列式数据存储方案非常强大且能够用于保存规模庞大的重要数据。尽管在“灵活性”方面有所欠缺,但其主要卖点在于高功能性与高性能水平。

主流列式数据库

主流列式数据库包括:

  • Cassandra:

基于BigTable与DynamoDB的列式数据存储方案。

  • HBase:

源自BigTable设计灵感且面向Apache Hadoop的数据存储方案。

合适用途

合适用途包括:

  • 保存非结构化非易失性信息:

如果需要对大量任意集合及值进行长期保存,那么列式数据存储方案将是最好的选择。

  • 扩展能力:

列式数据存储方案天然拥有出色的可扩展能力,且能够处理总量极为庞大的信息。

文档NoSQL数据库管理系统

文档数据存储方案非常适用承载大量不相关且结构差别很大的复杂信息。

主流文档数据库

主流文档数据库包括:

  • Couchbase:

基于JSON且与Memcached相兼容的文档数据存储方案。

  • CouchDB:

一款突破性的文档数据存储方案。

  • MongoDB:

一款极具人气且功能丰富的数据库选项。

合适用途

合适用途包括:

  • 嵌套信息:

文档数据存储方案允许大家处理深层嵌套的复杂数据结构。

  • JavaScript友好性:

文档数据存储方案的最大特色在于其与应用程序的对接方式:采用具备JavaScript友好性的JSON。

图形NoSQL数据库管理系统

图形数据存储方案能够提供与前几种DBMS完全不同的功能。

主流图形数据库

主流图形数据库包括:

  • OrientDB:

一款速度很快的图形与文档混合NoSQL数据存储方案,由Java编写而成且拥有多种操作模式。

  • Neo4J:

一款无模式高人气Java图形数据存储方案。

合适用途

合适用途包括:

  • 处理复杂的关系型信息:

正如之前提到,图形数据库能够极为高效地轻松地处理复杂的关系型信息,例如两个条目间的对接以及与其相关联的其它更多条目。

  • 分类的建模与处理:

图形数据库擅长处理任何涉及关系的状况。数据建模以及立足于关系实现信息分类都属于此类情况。

NoSQL DMBS与关系DBMS之比较

为了更加明确地了解NoSQL解决方案与关系数据库管理系统的不同,让我们对二者进行比较:

NoSQL数据库合适用途
  • 规模是关键:

如果需要处理大量数据集,那么可扩展能力更强的NoSQL家族将更胜一筹。

  • 速度:

NoSQL数据库通常速度更快,特别是在写入层面。其选取速度通常也非常出色,且具体取决于NoSQL数据库本身以及所查询数据的类型。

  • 无模式设计:

关系DBMS从设计之初就需要结构与之配合。而NoSQL解决方案则拥有更可观的灵活空间。

  • 自动(或者轻松)实现复制/规模伸缩:

NoSQL数据库发展迅猛且立足于当下——各厂商都在努力解决各类常见问题,特别是复制与规模伸缩需求。与RDBMS不同,NoSQL解决方案能够轻松实现集群内规模调整。

  • 多种选项:

在选择NoSQL数据存储方案时,可供挑选的模式多种多样。大家可以根据之前提到的特性,立足于实际数据类型做出决策。

本文来源自DigitalOcean Community。英文原文:A Comparison Of NoSQL Database Management Systems And Models By O.S. Tezer

翻译:diradw

59、NoSQL、NewSQL与多数据存储系统解析 本文深入解析了NoSQL、NewSQL以及多数据存储系统的架构与特点。重点介绍了多模型NoSQL存储(如OrientDB)、NewSQL数据库(如Google F1和LeanXcale)以及松散耦合、紧密耦合和混合耦合的多数据存储系统的工作原理与应用场景。文章还比较了不同系统的优缺点,并展望了未来数据存储系统的发展趋势,包括智能化、融合性增强、云化和安全性提升。通过本文,读者可以全面了解现代数据存储技术并为实际应用提供选型参考。 阅读详情

相关推荐

基于文档模型的Nosql数据库逻辑建模

基于文档模型的Nosql数据库逻辑建模,转载

proxmox在线半年总结及和zstack对比

这半年中,proxmox除了上次ceph故障自动恢复外,总体感觉系统还很稳定,使用的过程中,proxmox和zstack的比较,感觉还是zstack更好用以及更稳定,zstack是2020年上半年才知道,转眼使用快3年了,这几年一直使用的单机版,装过的所有服务器都一直正常,并且有一台服务器在搬运过程中,raid盘出现故障,即使这样的带病上岗,系统也一直稳定工作。

卡西莫多的博客 2511

ZStack深度试用:部署、架构与网络及其与OpenStack的对比

ZStack深度试用:部署、架构与网络及其与OpenStack的对比

深入理解NoSQL数据库的数据模型设计

1.背景介绍 在本文中,我们将深入探讨NoSQL数据库的数据模型设计。NoSQL数据库是一种非关系型数据库,它们通常用于处理大量数据和高并发访问。NoSQL数据库的数据模型设计是一项复杂的任务,需要考虑多种因素,包括数据的结构、存储、查询和更新。 1. 背景介绍 NoSQL数据库的出现是为了解决传统关系型数据库(RDBMS)在大规模数据处理和高并发访问方面的不足。NoSQL数据库可以处理大量...

AI天才研究院 1397

Dify安装使用说明

dify可以说是一个功能不错的LLMOps,可以通过dify集中管理模型,可以通过界面创建AI应用,可以上传文档形成知识库,可以创建自定义工具(API),并可以对外提供API。相关功能类似Openai的GPTs或智谱的智能体,其他大厂的大模型也有类似功能,不过貌似只有dify是开源的。这就为个人本地部署AI应用提供了便利。

龙井茶的Sky 1万+

家庭宽带IPv6避坑指南:如何通过DHCPv6-PD获取公网地址(附OpenWRT配置)

本文详细解析了家庭宽带IPv6的地址分配机制,重点介绍了通过DHCPv6-PD获取公网地址的方法,并提供了OpenWRT路由器的具体配置步骤。从路由器通告(RA)标记位到前缀委派(PD)流程,帮助用户解决IPv6部署中的常见问题,实现稳定高效的IPv6网络连接。

backprop5master的博客 1230

供应商的特性

可进化架构:以微服务架构为核心,使得数字原生基础设施底座在部署形态、规模与能力方面平滑持续演进。通过解耦软件平台与硬件设备,可进化架构具备无生命周期且未来就绪能力,使得传统基础设施从断代式构建走向渐进式进化的数字原生基础设施。

明确的爱,真诚的喜欢,直接的厌恶,站在太阳底下的坦荡,被坚定的选择。 733

DVWA靶场实战:从搭建到渗透测试的完整指南

本文详细介绍了DVWA靶场的搭建与渗透测试全流程,涵盖LAMP环境搭建、Docker部署及集成环境安装三种方式。通过SQL注入、文件上传漏洞等实战案例,帮助读者掌握Web安全测试技巧,并提供防御方案与进阶调优建议,是网络安全学习的实用指南。

weixin_28312391的博客 490

数据库管理系统——NoSQL之文档数据库(MongoDB)

摘要:本文讲解了NoSQL非关系数据库中MongDB的相关内容

n04j04h06的博客 1210

AI开发提效10倍:从需求到部署的全流程实战指南(附Prompt模板)

用AI开发不是“偷懒”,而是把时间花在更有价值的地方——原来花80%时间写重复代码,现在用AI搞定后,能把精力放在“优化用户体验”“提升系统性能”这些核心工作上,这才是AI给开发者的真正红利。如果你还没开始用AI做开发,建议从“写一个简单接口”“补一段注释”开始尝试,先用起来再优化方法。记住:AI是工具,不是对手,学会驾驭它,你会发现开发效率提升的同时,还能告别无效加班。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1533

2024年五大革新图像分割模型解析:架构创新与实战应用指南

本文深入解析2024年五大革新图像分割模型,包括SAM2、Mask2Former、DINOv2和Swin Transformer等,探讨其架构创新与实战应用。从多尺度处理、提示交互到自监督学习,这些模型在精度提升、效率优化和交互增强方面取得突破,广泛应用于医疗影像、工业质检和智慧城市等领域。

hadoop5ranger的博客 895

NoSQL 数据库管理系统和模型的比较

当大多数人想到数据库时,他们通常会想到传统的关系数据库模型,其中涉及由行和列组成的表。虽然关系数据库管理系统仍然处理互联网上的大部分数据,但近年来,随着开发人员寻求解决关系模型局限性的方法,替代数据模型变得更加普遍。这些非关系数据库模型各有其独特的优点、缺点和用例,已被归类为*NoSQL 数据库*。 本文将介绍一些比较常用的NoSQL数据库模型。并将权衡它们的一些优点和缺点,并提供一些数据库管理系统的示例以及每个系统的潜在用例。

一起学习一起进步~ 958

WinCC实现定时存储数据至SQLServer

环境 Win10 WinCC V7.5 SQL Server 2016 运行结果 流程 WinCC变量 全局VB脚本 (我设置的是每2秒存一次,因此周期性触发器设置1秒)

skr? 3990

NoSQL数据库管理系统和模型的比较

当大多数人想到数据库时,他们通常会想到传统的关系数据库模型,其中包括由行和列组成的表。虽然关系数据库管理系统仍然处理着互联网上的大部分数据,但近年来,随着开发人员寻求绕过关系模型的限制,替代数据模型变得更加普遍。这些非关系数据库模型,各自具有独特的优势、劣势和用例,已被归类为NoSQL数据库。本文将介绍一些常用的NoSQL数据库模型。它将权衡它们的优势和劣势,并提供一些数据库管理系统的示例以及每种数据库的潜在用例。

rubys_的专栏 1344

异构图中的注意力机制网络:节点级别和语义级别的注意力(Python实现)

在本文中,我们介绍了如何使用Python实现异构图中的节点级别注意力和语义级别注意力。通过语义级别注意力,我们可以根据节点的语义信息对节点进行加权聚合。在本文中,我们将介绍如何使用Python实现异构图中的注意力机制网络,包括节点级别的注意力和语义级别的注意力。最后,我们使用注意力权重对节点特征进行加权聚合,得到聚合后的节点表示。然后,将聚合后的节点表示传递给语义级别注意力模型,根据节点的语义信息进行加权聚合,得到最终的表示。函数中,首先使用节点级别注意力模型对节点特征进行聚合,得到聚合后的节点表示。

HackNebulaZ的博客 486

CTK Plugin Framework插件框架学习1--Qt编译CTK

【代码】Qt编译CTK。

贝勒里恩的博客 7435

Nosql 数据管理系统与模型的比较

英文原文:A Comparison Of NoSQL Database Management Systems And Models

hua840812的专栏 734

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Oracle数据库是一个**高效、可靠的关系型数据库管理系统(RDBMS),它采用SQL作为主要语言来管理和操作数据**

相比之下,NoSQL数据库支持灵活的数据结构,如键-值对、文档、宽列存储等,数据模型可以根据应用需求进行优化,以支持特定类型的查询和分析。关系型数据库管理系统(RDBMS)是一种基于关系模型的数据库系统,它使用二维表格来存储数据,并利用SQL(结构化查询语言)进行数据的增删改查操作。:RDBMS使用结构化查询语言(SQL)进行数据查询,这是一种声明性的查询语言,而NoSQL数据库没有统一的查询语言,查询方式依赖于具体的数据模型和存储方式。:由于RDBMS的结构化特性,使得数据库的维护和管理相对简单。

[Blog][Domain] programb.blog.youkuaiyun.com 1404

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

数据库——理论基础

数据:描述事物的符号记录数据库:存储数据的仓库, 是长期存放在计算机内,有组织,可共享的大量数据的集合特点1.数据的结构化2.数据的共享性高,冗余度低,易扩充3.数据的独立性高4.数据有DBMS统一管理和控制。

m0_72210904的博客 235

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数据库的基本概念及常见数据库的对比

数据库概论 数据库是指长期存储在计算机内有组织可共享的数据集合。数据库中的数据以及数据之间的关系按照一 定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围 内可以被多个用户共享。 数据模型:层次模型、网状模型、关系模型,据说下一代是对象模型 关系型数据库是建立在关系数据模型基础上的数据库,借助集合代数的概念和方法处理数据库中的数据,同时也是一个被组织成具有描述的二维表格,表格的实质就是装载数据项的收集器,这些表格中的数据能以不同的方式被存取或者重新召集,而不

weixin_46075237的博客 1057

数据库概论

数据库概论 数据库是指长期存储在计算机内有组织可共享的数据集合。数据库中的数据以及数据之间的关系按照一 定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围 内可以被多个用户共享 数据模型:层次模型、网状模型、关系模型,据说下一代是对象模型 关系型数据库是建立在关系数据模型基础上的数据库,借助集合代数的概念和方法处理数据库中的数 据,同时也是一个被组织成具有描述的二维表格,表格的实质就是装载数据项的收集器,这些表格中的 数据能以不同的方式被存取或者重新召集,而不需要

weixin_48079053的博客 184

NoSQL 数据库比较

本文翻译自:A Comparison of NoSQL Database Management Systems and Models

weixin_44080131的博客 5450

非关系型数据库NOSQL

介绍不同于传统关系型数据的非关系型数据库相关知识。

小发菜 1705

NoSql非关系型数据库

Nosql = not only sql,意即“不仅仅是sql”,泛指非关系型数据库。这些类型的数据存储不需要固定的模式(当然也有固定的模式),无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处理的,聚合模型主要分为:KV键值对,BSON,列族,图形,时序,向量等几种数据库结构。

何哥的博客 1237

NoSQL数据库(非关系型数据库)与NewSQL

文章目录数据库是什么?数据库数据库管理系统关系型数据库是什么?结构化查询语言关系型数据库的优缺点NoSQL数据库的优势有哪些?分布式数据库有哪些特点?CAP理论是什么?相互关系ACID原则是什么?BASE原理与最终一致性NoSQL数据库有哪些?内存数据库是什么?Memcached入门教程Redis入门图形数据库是什么?Neo4j数据库入门教程Java操作Neo4j数据库(附带源码)NewSQL数据库是什么?TiDB数据库入门TiDB数据库的存储原理(非常详细)TiDB数据库的管理机制TiDB数据库的应用场景

惊鸿的技术博客 4884
上一篇: SQLite对MySQL对PostgreSQL:关系数据库管理系统比拼
下一篇: 如何设置Mod_Rewrite
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值