为什么叫NoSQL?

时间:2012-10-16 04:59:17

标签: mongodb relational-database schemaless nosql

我最近与MongoDB合作并了解了它的无模式设计。但是,我对NoSQL一词感到困惑?为什么叫这个?它不使用SQL或类似SQL的查询吗?

我还从article读到,主要区别在于数据的存储方式。这是真的?在MongoDB的情况下,它像JSON文档一样存储。

另外,我很困惑为什么我总是看到'NoSQL vs关系数据库'。 NoSQL数据库不是关系型的吗?我相信MongoDB中的文档仍然通过某些键相关/链接(如果我错了,请纠正我)。那为什么它被标记为非关系型?

提前致谢!

3 个答案:

答案 0 :(得分:5)

事实上,Carlo Strozzi在1998年首次使用“NoSQL”这个名称作为他正在开发的基于文件的数据库的名称。具有讽刺意味的是它是关系数据库Wiki

以下是着名人士对'nosql'的评价:

Eric Evans(rackspace):

  

“我在nosqleast度过了最后几天,其中一个很热   这里的主题是名称“nosql”。可以理解的是,有很多   担心名称不好的人,发送不合适的人   或不准确的消息。虽然我没有声称这个想法,但我确实有   接受一些责任,因为它现在被称为。怎么样?   约翰奥斯卡森组织了第一次聚会,并提出了问题   “什么是好名字?”在IRC;这是我提出的3个或4个建议之一   在没有考虑的情况下,在45秒的时间内喷出。

     

但遗憾的是,这不是关于这个名字的含义,而是关于它的含义   没有。当约翰最初有第一次聚会的想法时,他   似乎在考虑大数据和线性可扩展的分布式   系统,但名称是如此模糊,它打开了谈话的大门   几乎所有存储数据的提交,并不是一个   RDBMS“。

Martin Fowler

  

“事实上,这个名字本身经常出现扭曲:许多人提倡   NoSQL说它并不意味着对SQL“不”,而是意味着不是   只有SQL。在这一点上,我认为将个人分开是有用的   数据库来自NoSQL所倡导的那种生态系统   未来。当我们说“x是NoSQL数据库”时,我觉得这很愚蠢   将NoSQL解释为“Not Only”,因为这将呈现该术语   无意义的。 (然后你可以合理地争辩说SQL Server(比如说)是   一个NoSQL数据库。)所以我认为最好说“NoSQL数据库”是一个   “no-sql”数据库。“

答案 1 :(得分:4)

  

它不使用SQL或类似SQL的查询吗?

虽然“非关系型数据库”可能是一个更准确的名称,但实际上大多数都不使用SQL或类似的东西。

  

NoSQL数据库不是关系型的吗?我相信MongoDB中的文档仍然通过某些键相关/链接(如果我错了,请纠正我)。那为什么它被标记为非关系型?

NoSQL数据库是非关系型数据库。

它们有各种各样的风格(主要是“文档数据库”,“键值存储”和“图形数据库”),但您通常不会获得以下任何或所有“关系”功能:< / p>

  • 使用架构(命名且通常为类型列)定义表

  • 能够在单个查询中加入多个表

  • 任意范围的长期,孤立的交易

  • 可能需要很长时间的特殊查询,以及许多方法来索引数据以加快速度(而不是必须更改整个数据库布局)

(通过放弃这些便利功能获得的是提高性能,可用性和可扩展性)。

答案 2 :(得分:1)

正如维基百科所说:

  

[NoSQL]是一种广泛的数据库管理系统   不遵守广泛使用的关系数据库管理系统   模型。

这意味着它是一个不遵守关系模型的数据库(Codd的模型),因此它不使用SQL。