13

在这篇Stack Overflow Architecture这篇文章中,我读到了一个叫做 nosql 的东西,我不明白它是什么意思,我试图在谷歌上搜索,但接缝我无法得到它的确切含义。

谁能用简单的话解释一下 nosql 的含义?

4

7 回答 7

27

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

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

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

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

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

于 2009-08-07T15:19:58.493 回答
7

来自NoSQL 主页

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

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

于 2009-08-07T15:17:48.947 回答
3

NoSQL 认为 SQL 类型的数据库不能满足要求事务可靠和故障安全(或接近它)的大量使用数据库的需求/要求。这与 ACID 和 CAP 的想法有关,这两件事都值得研究,但除非您运行一个非常受欢迎的交易量大的网站(即 Amazon 或 Ebay),否则不要为此失眠。为了在这些主题上有一个良好的开端,我建议:

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

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

于 2009-08-08T06:43:49.370 回答
3

NoSql 是一种新的数据库哲学,它讨论了关系数据库设计的所有缺点,特别是它们在为当今苛刻的 Web 环境扩展时所面临的问题。

NoSql 正在迅速演变成一场运动,新工具、软件和格式将作为 SQL 的替代品出现。

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

因此,可以将 NoSql 视为数据库世界的函数式编程器。

这足够简单吗?

于 2009-08-07T15:22:43.900 回答
3

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

这是一篇相关文章: http: //www.computerworld.com/s/article/9135086/No_to_SQL_Anti_database_movement_gains_steam_

于 2009-08-07T15:17:44.580 回答
1

每个考虑“nosql”方法的人都应该考虑:

(我不会冒险将图片放入这篇文章,因为它包含一个诅咒词,而且我不想要冒犯性的旗帜。所以点击者要小心 - 那里有一个 f 字。只有当你有幽默感时才点击.)

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

于 2009-08-28T04:55:33.297 回答
1

发现这篇关于 no-sql 的好文章

这也是: NoSQL,是搜索

于 2009-09-10T22:39:12.707 回答