SQL和NoSQL类比的非技术

时间:2013-01-20 19:00:18

标签: mysql sql sql-server mongodb nosql

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

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

2 个答案:

答案 0 :(得分:19)

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

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

如果有一个商店是按食谱组织的,那不是更好吗?所以你可以去商店的一个地方并从那个地方抓住你需要的一切?当然,你可以在50个不同的地方找到鸡蛋等食材,因此在放置货架时会有一些开销,但从消费者的角度来看,找到他们想要的东西要容易得多/快得多。

答案 1 :(得分:5)

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

你的办公室里满是纸张,里面有各种不同的信息。但是你不能以同样的方式存储它们:

  • 部分内容存储在文件柜中
  • 有些人躺在你的桌子上
  • 有些固定在你的针板上

为什么这样做?因为每种信息都有不同的访问特征。您的插板上装满了您需要快速访问的数据(如memcached)。你的柜子里装满了你很少看到或改变的数据,但这些数据在将来的某个时候可能变得非常重要。它也非常有条理地优化搜索(如关系数据库)。您的桌面上装满了您目前需要快速访问的数据。订单不多,因为桌面上严格的订单会影响您的工作效率(如文档存储)。

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