11

我正在使用第三个客户端,它将同时使用 SQL 和 NoSQL 解决方案(通常是 SQL Server 和 Mongo)。我与之合作的最后两个客户了解大量技术信息,因此关系数据库或文档存储之类的短语对他们来说很有意义。我倾向于将银行处理用作 SQL 示例,将博客存储用作 NoSQL 示例,到目前为止,这对我的客户来说是有意义的。当客户想到交易和“实时提要”等可能包含数十万个字符的示例时,他们有时可能更喜欢这两种解决方案。

另一个客户,他的业务很出色,但没有那种技术优势(他是一位杰出的有魅力的领导者,所以我绝不会贬低他,因为我们都有自己的长处)。我很好奇这里是否有人不得不从技术角度向不熟悉它们的人解释这些数据库概念,以及您使用什么类比来解释每个过程如何单独工作以及它们如何协同工作?

4

2 回答 2

20

NoSQL(或无模式,或文档存储,或你有什么)数据库存储信息,就像你在书中的食谱一样。当你想知道如何做蛋糕时,你会去那个食谱,关于如何做蛋糕的所有信息(配料、准备、混合、烘焙、整理等)都在那一页上。

SQL 就像购买食谱的原料。为了将所有食材放入购物车,您必须前往许多不同的过道来获取每种食材。当您完成购物时,您的购物车将装满您必须跑来跑去收集的所有食材。

如果有一家商店是按食谱组织的,这样你可以去商店的一个地方,从那个地方拿走你需要的一切,那不是更好吗?当然,你会在 50 个不同的地方找到像鸡蛋这样的原料,所以在货架上放货时会有一些开销,但从消费者的角度来看,找到他们想要的东西要容易/快捷得多。

于 2013-01-20T19:15:12.373 回答
6

没有 noSQL 这样的东西。只有一大堆新的数据库技术具有完全不同的理念和用例,它们的共同点是它们与 SQL 数据库也有共同点。但是,当您真正要问的是“我如何向非技术人员解释异构存储策略”时,我会使用办公室的比喻。

你的办公室里堆满了各种信息的纸张。但是您不会以相同的方式存储它们:

  • 有些存储在您的文件柜中
  • 有些在你的桌子上
  • 有些固定在您的针板上

你为什么这样做?因为每种信息都有不同的访问特性。您的插板充满了您需要快速访问的数据(例如 memcached)。您的橱柜充满了您很少查看或更改的数据,但这些数据在未来的某个时候可能会变得非常重要。它也非常有组织地优化搜索(如关系数据库)。您的办公桌上堆满了您当前需要快速访问的数据。没有太多的顺序,因为你办公桌上的东西的严格顺序会抑制你的工作效率(比如文件存储)。

就像您为办公室中的每种数据选择不同的存储方式一样,我们对计算机系统中的每种信息使用不同的存储方式。

于 2013-01-20T19:15:02.467 回答