3

我读过rdbms和nosql数据库之间的区别之一是存储非结构化数据,我知道每个nosql数据库都有自己的架构和算法,但我想知道为什么rdbms不能存储非结构化数据?

以及为什么 nosql 数据库可以做到这一点,如果你给我一个简单的例子,我将非常感激,这样我就可以理解 nosql 数据库是如何做到的,以及是什么让 rdbms 无法存储非结构化数据。

4

3 回答 3

2

关系数据库基于Edgar F. Codd 的关系数据模型,该模型假设严格结构化的数据。整个 SQL 语言都是围绕这个模型构建的,实现它的数据库针对这种方式进行了优化。

但在过去的几年里,有人尝试向 SQL 添加允许处理非结构化数据的特性,例如SQL/XML扩展,它允许将 XML 文档存储在 SQL 表的字段中并透明地查询它们的文档树。

另一方面,像 MongoDB 或 CouchDB 这样的面向文档的数据库从一开始就被设计为处理非结构化数据,并且它们的查询语言是围绕这个概念设计的,因此在处理非结构化数据时,它们通常使用起来更快、更方便.

于 2013-09-10T08:41:54.040 回答
0

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

于 2014-01-14T22:31:09.083 回答
0

我完全错误地阅读了这个问题,并且起初认为这个问题完全错误(“结构化”的多个语言环境定义)所以忽略我的评论,但是,MongoDB 确实存储结构化数据。维基百科的定义(我可以说这似乎在互联网本身上有所不同)是(http://en.wikipedia.org/wiki/Unstructured_data):

非结构化数据(或非结构化信息)是指没有预定义数据模型或未以预定义方式组织的信息。

但这对 MongoDB 来说是不正确的,因为它确实有一个:

{
    _id:{}
}

由于_id总是需要,因此最近 MongoDB 用户更准确地说,MongoDB 具有“灵活”模式,而不是不必要的无模式,这就是为什么大多数人说它存储非结构化数据的原因。

所以是的,它确实存储了非结构化数据,但并不完全......

于 2013-09-10T08:58:08.257 回答