< 返回技术文档列表

解读NoSQL文档数据库:工作原理、优缺点

发布时间:2021-03-20 21:41:33⊙投诉举报

文档存储数据库被认为是所有NoSQL数据库类型中最复杂的。它们采用JSON格式来存储数据,而不是采用典型的行和列结构。

NoSQL数据库是大多数日常互联网使用的基础。从Twiiter使用FlockDB到亚马逊的DynamoDB,我们每天都会遇到NoSQL。

作为市面上流行的数据库模型之一,文档存储的工作方式与键值(key-value)非常类似,由于文档是以信息的特定键来存储的。有意思的是,Windows注册表就是文档存储数据库,因而它是很强大的数据模型。

文档数据库的工作原理

表面上,文档数据库背后的想法是,您可以在文档中存储任何类型的信息。这意味着您可以混合搭配所需的任何类型的数据,不必担心数据库无法解析它。实际上,大多数文档数据库仍往往使用某种形式的模式、文件格式和某种预约义结构。

相比关系型SQL数据库,文档存储没有与SQL同样的缺点和限制。这意味着解决手头的信息要容易得多,查询执行也要容易得多。出人预料的是,您在SQL数据库中可以执行的同一种操作也可以在文档存储数据库中执行,比方删除、增加和查询。

如前所述,每个文档都需要某种类型的键,这是通过唯一ID提供给它的。在任何过程中提供唯一ID时,直接读取和解决文档本身中的信息,而不是逐列取出信息。

说到文档数据库(以及所有NoSQL数据库),要注意的一点是,它们的安全性往往比SQL数据库差一点。因而,您需要考虑数据库安全,而增强安全的一种方法是使用SAST。 SAST即静态应用程序安全测试,直接查看源代码以查找漏洞。您还可以运行DAST(动态版本),同样有助于避免NoSQL注入攻击。

文档数据库的优点

文档存储的最大优点可能是,所有内容都在一个数据库当中,而不是信息分散在多个链接数据库中。因而,与SQL数据库相比,您可以取得更好的性能,只需不使用关系型流程。链接文档会大大增添复杂性,使用起来令人沮丧,引用在文档存储数据库中其实效果不好。

不像每个信息都有一个字段的传统数据库,即便没有任何内容,文档存储数据库也更加灵活。实际上,不需要文档有一致性,您即可以存储大量数据,基本上没有问题。

同样,因为文档存储更灵活,因而集成新数据根本不是问题。与必需将任何新类型的信息增加到所有数据集的关系数据库相比,文档存储数据库只要要增加到几个数据集就可。

更具体地说,因为可以在不造成任何停机的情况下修改模式,或者者因为您将来可能不知道客户需求,因而文档存储数据库非常适合这些应用:

大型电子商务平台(比方亚马逊)

博客网站(比方Twitter)

内容管理系统(WordPress和Windows注册表)

分析平台

文件数据库的缺点

尽管大多数文档存储数据库已存在了一段时间,但除了小圈子和数据库自己的维基或者论坛外,仍没有太多的说明文档。加上有太多的文档存储数据库可供选择,有时不深入研究,很难找到特定的信息。

此外,因为缺乏熟习性而导致配置错误,或者因为使用单个节点,数据有可能丢失。另一个问题是,文档存储数据库其实不适合运行多个复杂的操作或者复杂的查询。

最后,文档数据库(和所有NoSQL数据库)快速发展,这个事实多少成了一把双刃剑。与SQL相对完善、不会有太大变化相比,假如您没有热情或者兴趣,NoSQL可能很难跟上步伐。

流行文档数据库的例子

MongoDB:作为主要的NoSQL数据库引擎之一,它不仅应用广泛,还使用相似JSON的机制,有自己的查询语言。这篇指南全面详情了MongoDB的基础知识。

Elasticsearch:基于文档存储数据模型的搜索引擎。它用于搜索数据库并建立索引,学习起来也非常简单。

CouchDB:与Ubuntu和Facebook一起使用,它使用Javascript,用Erlang编写。

BaseX:一种基于XML的轻量级DBM,开源,使用Java。

结论

文档存储数据模型大受欢迎、广泛使用有充分理由,这归因其灵活性。随着数据库应用变得越来越复杂,能够轻松增加数据集或者扩大规模意味着整体麻烦更少、项目更易于解决。

文档存储还有助于数据分析,由于公司可以轻松存储众多信息供日后使用。因为几个文档存储数据库在增加图形接口(比方MongoDB),因而可以更轻松地查找本来可能不显著的信息和模式。


/template/Home/Zkeys/PC/Static