什么nosql意味着什么?有人能用简单的话语向我解释一下吗?

时间:2009-08-07 15:14:17

标签: sql nosql

在这篇文章中Stack Overflow Architecture我读到了一些名为nosql的内容,我不明白这意味着什么,我试图在谷歌搜索但接缝我无法得到它的确切含义。

任何人都可以用简单的词解释nosql的含义吗?

7 个答案:

答案 0 :(得分:25)

如果您曾经使用过数据库,那么您可能已经使用了关系数据库。示例可以是Access数据库,SQL Server或MySQL。当您考虑这些类型的数据库中的表时,通常会想到一个网格,就像在Excel中一样。您必须为数据库表的每一列命名,并且必须指定该列中的所有值是否为整数,字符串等。最后,当您要在该表中查找信息时,必须使用一种名为SQL。

围绕非关系型数据库形成了一种新趋势,即不属于整齐网格的数据库。您不必指定哪些内容是整数,字符串和布尔值等。这些类型的数据库更灵活,但它们不使用SQL,因为它们的结构不是那样。

简而言之,这就是为什么它们是“NoSQL”数据库。

使用NoSQL数据库的优势在于,您无需提前确切了解数据的样子。也许您有一个联系人表,但您不知道您希望存储哪些关于每个联系人的信息。在关系数据库中,您需要创建“名称”和“地址”之类的列。如果您稍后发现需要电话号码,则必须为此添加一列。在NoSQL数据库中不需要这种规划/结构。还有潜在的扩展优势,但这有点争议,所以我不会在那里提出任何要求。

NoSQL数据库的缺点实际上是缺少SQL。 SQL很简单,无处不在。 SQL允许您更容易地对数据进行切片和切块以获得聚合结果,而在NoSQL数据库中则更复杂(您可能会使用MapReduce之类的东西,因为它有一些学习曲线)。

答案 1 :(得分:7)

来自NoSQL Homepage

  

NoSQL是一种快速,可移植的关系数据库管理系统,没有任何限制(除了内存和处理器速度),它在UNIX 1操作系统下运行并与之相互作用。它使用1991年3月的“Unix Review”中描述的“Operator-Stream Paradigm”,第24页,标题为“A 4GL Language”。有许多“运营商”各自对数据执行独特的功能。 “流”由UNIX输入/输出重定向机制提供。因此,每个运算符处理一些数据,然后通过UNIX管道函数将其传递给下一个运算符。这非常有效,因为UNIX管道在内存中实现。 NoSQL符合“关系模型”。

我也会在Stackoverflow上看到这个答案。

答案 2 :(得分:3)

NoSql是新的数据库哲学,它讲述了关系数据库设计的所有缺点,特别是它们在扩展当今苛刻的Web环境时遇到的问题。

NoSql正在迅速发展成为一种新的工具,软件和格式,可以替代SQL。

RDBMS与OOP一样无处不在,虽然这两种设计方法都能很好地解决一些问题,但它们并不能解决所有问题。

因此,将NoSql视为数据库世界的功能程序。

这很简单吗?

答案 3 :(得分:3)

NoSQL认为SQL类型的数据库不能满足大量使用的数据库的需求/要求,这些数据库要求事务可靠且安全(或接近它)。这与ACID和CAP的想法联系在一起,两者都值得关注但不会失去睡眠,除非你经营一个非常受欢迎的交易网站(即亚马逊或Ebay)。为了在这些主题上取得良好开端,我建议:

http://www.eflorenzano.com/blog/post/my-thoughts-nosql/

http://www.julianbrowne.com/article/viewer/brewers-cap-theorem

答案 4 :(得分:2)

简而言之,这意味着不使用关系数据库进行数据存储。

以下是相关文章:http://www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_

答案 5 :(得分:1)

每个人都在考虑采用“nosql”方法应该考虑:

(我不会冒险将图像放入这篇文章,因为它包含一个诅咒词,我不想要令人反感的旗帜。所以点击者要小心 - 那里有一个f字。只有你有一个f字。幽默感。)

http://browsertoolkit.com/fault-tolerance.png

答案 6 :(得分:1)