我最近使用了MongoDB,了解了它的无模式设计。但是,我对术语NoSQL感到困惑?为什么叫它这个名字?它不使用SQL或类似SQL的查询吗?
我还从article上读到,主要的区别在于数据的存储方式。这是真的吗?对于MongoDB,它像JSON文档一样存储。
此外,我也不明白为什么我总是看到“NoSQL与关系数据库”。NoSQL数据库不是关系数据库吗?我相信MongoDB中的文档仍然通过某些键关联/链接(如果我错了,请纠正我)。那么为什么它被标记为非关系型的呢?
提前感谢!
发布于 2012-10-16 13:04:53
不使用SQL或类似SQL的查询吗?
虽然“非关系数据库”可能是一个更准确的名称,但它们中的大多数实际上并不使用SQL或类似的东西。
NoSQL数据库不是关系数据库吗?我相信MongoDB中的文档仍然通过某些键关联/链接(如果我错了,请纠正我)。那么为什么它被标记为非关系型的呢?
NoSQL数据库是非关系数据库。
它们有多种类型(主要是“文档数据库”、“键值存储”和“图形数据库”),但您通常不会获得以下任何或所有“关系”特性:
(通过放弃这些方便的特性,您可以获得更好的性能、可用性和可伸缩性)。
发布于 2012-10-16 16:05:13
实际上,Carlo Strozzi在1998年首次使用"NoSQL“这个名称作为他正在开发的基于文件的数据库的名称。具有讽刺意味的是,它是关系数据库。Wiki
下面是一些名人对‘nosql’的评价:
Eric Evans (rackspace):
“我在nosql上花了几天时间,这里最热门的话题之一是"nosql”这个名字。可以理解的是,有很多人担心这个名字不好,担心它传递了不恰当或不准确的信息。虽然我没有对这个想法提出任何要求,但我确实不得不为它现在被称为的东西接受一些指责。怎么回事?Johan Oskarsson正在组织第一次会议,他问了一个问题:“什么是好名字?”在IRC上;这是我在45秒内不假思索地说出的3到4个建议之一。
然而,我遗憾的不是名字说了什么,而是它没有说什么。当约翰最初有了第一次meetup的想法时,他似乎在考虑大数据和线性可扩展的分布式系统,但这个名字太模糊了,以至于它打开了讨论任何存储数据的提交的大门,而不是一个RDBMS。
Martin Fowler
事实上,NoSQL的名称本身经常有一个曲折:许多SQL倡导者说,这并不意味着对
说“不”,相反,它不仅仅意味着SQL。在这一点上,我认为将单个数据库与NoSQL所倡导的未来生态系统分开是很有用的。当我们说"x是一个NoSQL数据库“时,我认为将NoSQL解释为”不仅仅是“是愚蠢的,因为这会使这个术语变得毫无意义。(然后您可以合理地争辩说,SQL Server (比方说)是一个NoSQL数据库。)所以我认为最好的说法是"NoSQL数据库“是一个"no-sql”数据库。
发布于 2012-10-16 13:05:50
正如维基百科所说:
NoSQL是一大类数据库管理系统,它不符合广泛使用的关系数据库管理系统模型。
这意味着它是一个不遵循关系模型(由Codd创建的模型)的数据库,因此它不使用SQL。
https://stackoverflow.com/questions/12907794
复制相似问题