为什么rdbms不能存储非结构化数据?为什么nosql数据库可以?

mfuanj7w  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(435)

我读到rdbms和nosql数据库的区别之一是存储非结构化数据,我知道每个nosql数据库都有自己的体系结构和算法,但我想知道为什么rdbms不能存储非结构化数据?
为什么nosql数据库可以做到这一点,如果你给我一个简单的例子,让我能够理解nosql数据库是如何做到的,以及是什么使得rdbms无法存储非结构化数据,我将非常感激。

wydwbb8l

wydwbb8l1#

简单地说,nosql数据存储是具有最终一致性的分层、可变长度、高度分布式的基于文件的系统。模式嵌入到数据中(或者代码中,但nosqls不是无模式的),即使在相同的结构中,各个示例的列也可能不同,并且列的大小不是固定的。

g52tjvyc

g52tjvyc2#

我对这个问题的理解是完全错误的,一开始认为这个问题是完全错误的(“结构化”的多个区域设置定义),所以忽略我的评论,但是mongodb确实存储结构化数据。维基百科(wikipedia)的定义(我可以说,互联网上的定义似乎有所不同)是(http://en.wikipedia.org/wiki/unstructured_data ):
非结构化数据(或非结构化信息)是指没有预定义的数据模型或没有以预定义的方式组织的信息。
但这对于mongodb来说是不真实的,因为它确实有一个:

{
    _id:{}
}

自从 _id 总是需要的,因此mongodb用户最近更准确地说mongodb有一个“灵活的”模式,而不是无模式的,这就是为什么大多数人说它存储非结构化数据的原因。
所以是的,它确实存储了一些非结构化数据,但不是完全。。。

wz8daaqr

wz8daaqr3#

关系数据库基于edgarf。codd的关系数据模型,该模型假定了严格的结构化数据。整个sql语言都是围绕这个模型构建的,实现它的数据库也为此进行了优化。
但是在过去的几年中,有人尝试向sql添加允许处理非结构化数据的特性,比如sql/xml扩展,它允许将xml文档存储在sql表的字段中,并透明地查询它们的文档树。
另一方面,面向文档的数据库(如mongodb或couchdb)从一开始就设计用于非结构化数据,它们的查询语言就是围绕这个概念设计的,因此在处理非结构化数据时,它们通常会更快、更方便地使用。

相关问题