如何向小姐姐解释SQL和NoSQL之间的区别
最近,在Medium上出现了一个采访问题:如何向奶奶解释SQL和NoSQL之间的区别。我认为作者使用自己的结构化家谱来比较sql和nosql之间的差异。写作非常好,但是有点尴尬。面试官没有时间听你的话。我个人认为sql和nosql之间的区别消失了。一两个句子无法概括,更不用说告诉奶奶了,因此,如果您真的被问到这个问题,可以选择主要区别之一。这个比喻是好的。例如,sql是通用的,而nosql是特殊的。所以我的答案是这样的:
亲爱的祖母,数据库是用来存储数据的仓库,就像我们生活中用来存储项目的容器一样,但是这些容器也是通用的和特殊的。例如,塑料袋是通用容器,因为塑料袋可以容纳各种东西:即可以容纳糖果或铅笔。但是我们也可以选择一种更合适的存储方式:糖果盒和糖果盒。糖果盒和笔筒是特殊的容器。数据和项目也可以以一般或特殊方式存储,各有利弊。 SQL是常规数据库,而NoSQL是特殊数据库。这是两者之间的区别。
集合论与关系代数
但是为什么SQL是通用的?世界上有数千万的数据结构。为什么SQL可以满足各种需求并且半个世纪都没有过时?
尽管唯一不变的是变化,但是计算机行业一直在裂变,但是一些基本的东西总是一样,或者变化非常缓慢:JavaScript是当今世界上最流行的编程语言,至今仍坚持使用Lisp语言60年前。标准的现代操作系统Windows,OSX和Linux都来自共同的祖先Unix。
数据库的开发是相同的。无论形式如何变化,其本质都是围绕集合论和关系代数设计的。基本理论决定一切。只要您掌握了软件行业的基本数学理论,就可以掌握所有变化的规律。这是SQL永恒的秘密。