我最近与MongoDB合作并了解了它的无模式设计。但是,我对NoSQL一词感到困惑?为什么叫这个?它不使用SQL或类似SQL的查询吗?
我还从article读到,主要区别在于数据的存储方式。这是真的?在MongoDB的情况下,它像JSON文档一样存储。
另外,我很困惑为什么我总是看到'NoSQL vs关系数据库'。 NoSQL数据库不是关系型的吗?我相信MongoDB中的文档仍然通过某些键相关/链接(如果我错了,请纠正我)。那为什么它被标记为非关系型?
提前致谢!
答案 0 :(得分:5)
事实上,Carlo Strozzi在1998年首次使用“NoSQL”这个名称作为他正在开发的基于文件的数据库的名称。具有讽刺意味的是它是关系数据库Wiki
以下是着名人士对'nosql'的评价:
Eric Evans(rackspace):“我在nosqleast度过了最后几天,其中一个很热 这里的主题是名称“nosql”。可以理解的是,有很多 担心名称不好的人,发送不合适的人 或不准确的消息。虽然我没有声称这个想法,但我确实有 接受一些责任,因为它现在被称为。怎么样? 约翰奥斯卡森组织了第一次聚会,并提出了问题 “什么是好名字?”在IRC;这是我提出的3个或4个建议之一 在没有考虑的情况下,在45秒的时间内喷出。
但遗憾的是,这不是关于这个名字的含义,而是关于它的含义 没有。当约翰最初有第一次聚会的想法时,他 似乎在考虑大数据和线性可扩展的分布式 系统,但名称是如此模糊,它打开了谈话的大门 几乎所有存储数据的提交,并不是一个 RDBMS“。
“事实上,这个名字本身经常出现扭曲:许多人提倡 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。