最近,在Medium上出現了一個採訪問題:如何向奶奶解釋SQL和NoSQL之間的區別。我認為作者使用自己的結構化家譜來比較sql和nosql之間的差異。寫作非常好,但是有點尷尬。面試官沒有時間聽你的話。我個人認為sql和nosql之間的區別消失了。一兩個句子無法概括,更不用說告訴奶奶了,因此,如果您 ...
最近,在Medium上出現了一個採訪問題:如何向奶奶解釋SQL和NoSQL之間的區別。我認為作者使用自己的結構化家譜來比較sql和nosql之間的差異。寫作非常好,但是有點尷尬。面試官沒有時間聽你的話。我個人認為sql和nosql之間的區別消失了。一兩個句子無法概括,更不用說告訴奶奶了,因此,如果您真的被問到這個問題,可以選擇主要區別之一。這個比喻是好的。例如,sql是通用的,而nosql是特殊的。所以我的答案是這樣的:
親愛的祖母,資料庫是用來存儲數據的倉庫,就像我們生活中用來存儲項目的容器一樣,但是這些容器也是通用的和特殊的。例如,塑料袋是通用容器,因為塑料袋可以容納各種東西:即可以容納糖果或鉛筆。但是我們也可以選擇一種更合適的存儲方式:糖果盒和糖果盒。糖果盒和筆筒是特殊的容器。數據和項目也可以以一般或特殊方式存儲,各有利弊。 SQL是常規資料庫,而NoSQL是特殊資料庫。這是兩者之間的區別。
集合論與關係代數
但是為什麼SQL是通用的?世界上有數千萬的數據結構。為什麼SQL可以滿足各種需求並且半個世紀都沒有過時?
儘管唯一不變的是變化,但是電腦行業一直在裂變,但是一些基本的東西總是一樣,或者變化非常緩慢:JavaScript是當今世界上最流行的編程語言,至今仍堅持使用Lisp語言60年前。標準的現代操作系統Windows,OSX和Linux都來自共同的祖先Unix。
資料庫的開發是相同的。無論形式如何變化,其本質都是圍繞集合論和關係代數設計的。基本理論決定一切。只要您掌握了軟體行業的基本數學理論,就可以掌握所有變化的規律。這是SQL永恆的秘密。文章來源:神經網路