我读到rdbms和nosql数据库的一个区别是存储非结构化数据,我知道每个nosql数据库都有自己的架构和算法,但我想知道为什么rdbms不能存储非结构化数据?
为什么nosql数据库可以做到这一点,如果你给我一个简单的例子,让我理解nosql数据库是如何做到这一点的,以及是什么使rdbms无法存储非结构化数据,我将非常感谢。
发布于 2013-09-10 16:41:54
关系数据库基于Edgar F. Codd's relational data model,它假定数据是严格结构化的。整个SQL语言都是围绕这个模型构建的,实现它的数据库也针对这种工作方式进行了优化。
但在过去的几年中,有人尝试在SQL中添加允许处理非结构化数据的功能,如SQL/XML扩展,它允许将XML文档存储在SQL表的字段中,并透明地查询它们的文档树。
另一方面,面向文档的数据库,如MongoDB或CouchDB,从一开始就是为处理非结构化数据而设计的,它们的查询语言也是围绕这一概念设计的,因此在处理非结构化数据时,它们通常更快、更方便。
发布于 2013-09-10 16:58:08
我完全错误地理解了这个问题,一开始我认为这个问题是完全错误的(“结构化”的多语言环境定义),所以忽略我的评论,然而,MongoDB确实存储了结构化数据。维基百科的定义(我可以说,这似乎在互联网上本身是不同的)是( http://en.wikipedia.org/wiki/Unstructured_data ):
非结构化数据(或非结构化信息)指的是没有预定义数据模型或没有以预定义方式组织的信息。
但对于MongoDB来说就不是这样了,因为它确实有一个:
{
_id:{}
}由于_id始终是必需的,因此MongoDB用户最近更准确地说,MongoDB具有“灵活的”模式,而不是不可靠的模式,这就是为什么大多数人说它存储非结构化数据的原因。
所以,是的,它确实存储了一些非结构化数据,但不是完全的……
发布于 2014-01-15 06:31:09
简单地说,NOSQL数据存储是分层的、可变长度的、高度分布式的基于文件的系统,具有最终的一致性。模式嵌入在数据中(或嵌入在代码中,但NOSQL不是无模式的),列可以从一个实例到下一个实例变化,即使是在相同的结构中,列的大小也不是固定的。
https://stackoverflow.com/questions/18713217
复制相似问题