我最近在MongoDB工作,了解了它的无模式设计。但是,我对NoSQL这个术语感到困惑?为什么叫它?它不使用SQL或类似SQL的查询吗?我还从article中读到,主要的区别在于数据是如何存储的。这是真的吗?在MongoDB的例子中,它像JSON文档一样存储。还有,我很困惑为什么我总是看到“NoSQL vs关系数据库”。NoSQL数据库不是关系数据库吗?我相信MongoDB中的文档仍然是通过一些键相关/链接的(如果我错了,请纠正我)。那么为什么它被标记为非关系数据库呢?提前感谢!
eqqqjvef1#
事实上,“NoSQL”这个名字是Carlo Strozzi在1998年首次使用的,当时他正在开发基于文件的数据库,讽刺的是,它是关系数据库。Wiki下面是一些名人对“nosql”的评价:Eric Evans(机架空间):“我在nosqleast呆了几天,这里的一个热门主题是“nosql”这个名字。可以理解,有很多人担心这个名字不好,它会传递一个不恰当或不准确的信息。虽然我没有声明这个想法,我不得不为它现在的名字接受一些指责。怎么样?约翰·奥斯卡森组织了第一次聚会,问了一个问题:“什么是一个好名字?”“在IRC上,这是我在45秒内不假思索地说出的3或4个建议之一。然而,我的遗憾并不在于这个名字,而是它没有表达什么。当Johan最初提出第一次会面的想法时,他似乎想到了大数据和线性可扩展的分布式系统,但这个名字太模糊了,以至于它打开了谈论任何存储数据的东西的大门,而不是RDBMS。”Martin Fowler:“确实,这个名字本身经常有一个转折:许多NoSQL的拥护者说这并不意味着对SQL的“不,”在这一点上,我认为将单个数据库与NoSQL倡导者认为是未来的生态系统区分开来是有用的。当我们说“x是一个NoSQL数据库”时,我认为将NoSQL解释为“不仅”是愚蠢的,因为这将使这个术语变得毫无意义。(您可以合理地认为SQL Server(比如)是一个NoSQL数据库。)因此,我认为最好说“NoSQL数据库”是一个“no-sql”数据库。”
2ul0zpep2#
它不使用SQL或类似SQL的查询吗?虽然“非关系数据库”可能是一个更准确的名称,但它们中的大多数实际上并不使用SQL或类似的东西。NoSQL数据库不是关系型的吗?我相信MongoDB中的文档仍然是通过一些键相关/链接的(如果我错了,请纠正我)。那么为什么它被标记为非关系型的呢?NoSQL数据库是非关系数据库。它们有各种各样的风格(主要是“文档数据库”、“键值存储”和“图形数据库”),但通常不会获得以下任何或所有“关系”特性:
(What通过放弃其中一些便利的功能,您可以获得更好的性能、可用性和可伸缩性)。
3xiyfsfu3#
正如维基所说:[NoSQL]是一个广泛的数据库管理系统类别,它不遵守广泛使用的关系数据库管理系统模型。这意味着它是一个不遵守关系模型(Codd的模型)的数据库,因此它不使用SQL。
smdnsysy4#
我经历了这个流行词的演变,我看到了:
注意:SQL是一个涉及语言语法的术语,而不是数据模型。它并不特别绑定到关系表数据(例如,Hadoop Pig与Hadoop Impala)我所记得的:当NoSQL作为一个时髦词首次亮相时,它真正的意思是“没有结构化查询语言”。我相信:在某种程度上,像Oracle和Microsoft这样的大公司感受到了与这些解决方案竞争的压力,他们通过扩展其整体解决方案来支持“除SQL之外”的数据模型和查询语言。因此,他们的营销团队转而使用/混淆术语来表示“不仅仅是SQL”,试图保持相关性。但是“不仅仅是结构化查询语言”没有意义,因为它的含义与其原始含义完全相反。如果我们指的是数据存储解决方案家族,包括那些使用SQL的解决方案,那么我们没有做出任何有意义的区分--该类别将包括所有数据库,甚至是1990年以前的数据库,但不包括最初在2000年普及该术语使用的现代创新数据库。
4条答案
按热度按时间eqqqjvef1#
事实上,“NoSQL”这个名字是Carlo Strozzi在1998年首次使用的,当时他正在开发基于文件的数据库,讽刺的是,它是关系数据库。Wiki
下面是一些名人对“nosql”的评价:
Eric Evans(机架空间):
“我在nosqleast呆了几天,这里的一个热门主题是“nosql”这个名字。可以理解,有很多人担心这个名字不好,它会传递一个不恰当或不准确的信息。虽然我没有声明这个想法,我不得不为它现在的名字接受一些指责。怎么样?约翰·奥斯卡森组织了第一次聚会,问了一个问题:“什么是一个好名字?”“在IRC上,这是我在45秒内不假思索地说出的3或4个建议之一。
然而,我的遗憾并不在于这个名字,而是它没有表达什么。当Johan最初提出第一次会面的想法时,他似乎想到了大数据和线性可扩展的分布式系统,但这个名字太模糊了,以至于它打开了谈论任何存储数据的东西的大门,而不是RDBMS。”
Martin Fowler:
“确实,这个名字本身经常有一个转折:许多NoSQL的拥护者说这并不意味着对SQL的“不,”在这一点上,我认为将单个数据库与NoSQL倡导者认为是未来的生态系统区分开来是有用的。当我们说“x是一个NoSQL数据库”时,我认为将NoSQL解释为“不仅”是愚蠢的,因为这将使这个术语变得毫无意义。(您可以合理地认为SQL Server(比如)是一个NoSQL数据库。)因此,我认为最好说“NoSQL数据库”是一个“no-sql”数据库。”
2ul0zpep2#
它不使用SQL或类似SQL的查询吗?
虽然“非关系数据库”可能是一个更准确的名称,但它们中的大多数实际上并不使用SQL或类似的东西。
NoSQL数据库不是关系型的吗?我相信MongoDB中的文档仍然是通过一些键相关/链接的(如果我错了,请纠正我)。那么为什么它被标记为非关系型的呢?
NoSQL数据库是非关系数据库。
它们有各种各样的风格(主要是“文档数据库”、“键值存储”和“图形数据库”),但通常不会获得以下任何或所有“关系”特性:
(What通过放弃其中一些便利的功能,您可以获得更好的性能、可用性和可伸缩性)。
3xiyfsfu3#
正如维基所说:
[NoSQL]是一个广泛的数据库管理系统类别,它不遵守广泛使用的关系数据库管理系统模型。
这意味着它是一个不遵守关系模型(Codd的模型)的数据库,因此它不使用SQL。
smdnsysy4#
我经历了这个流行词的演变,我看到了:
注意:SQL是一个涉及语言语法的术语,而不是数据模型。它并不特别绑定到关系表数据(例如,Hadoop Pig与Hadoop Impala)
我所记得的:当NoSQL作为一个时髦词首次亮相时,它真正的意思是“没有结构化查询语言”。
我相信:在某种程度上,像Oracle和Microsoft这样的大公司感受到了与这些解决方案竞争的压力,他们通过扩展其整体解决方案来支持“除SQL之外”的数据模型和查询语言。因此,他们的营销团队转而使用/混淆术语来表示“不仅仅是SQL”,试图保持相关性。
但是“不仅仅是结构化查询语言”没有意义,因为它的含义与其原始含义完全相反。如果我们指的是数据存储解决方案家族,包括那些使用SQL的解决方案,那么我们没有做出任何有意义的区分--该类别将包括所有数据库,甚至是1990年以前的数据库,但不包括最初在2000年普及该术语使用的现代创新数据库。