SQL 誕生 48年了!為什麼我們仍在使用它?

為什麼我們仍在使用 SQL?

SQL 和關係資料庫管理系統(RDBMS)都是在 上世紀70 年代早期開發的。Edgar F. Codd 開發了 RDBMS,而 Donald D. Chamberling 和 Raymond F. Boyce 開發了 SQL。

二者都誕生在計算機技術的早期,而且在 90% 的時間裡都非常有效,使得資料庫成為了一項 “已經被解決的問題”。就像 MailChimp 已經成為了傳送新聞簡訊的同義詞。如果你想使用資料庫,你就得使用 RDBMS 和 SQL。

不過,仍然還是有人使用其他 Email 軟體,正如還是用人使用非 SQL 的資料庫。但即使是存在著其他可供使用的資料庫技術,SQL 依舊佔據霸主地位。

以下 8 條,就是我們在 SQL 誕生 48 年後依舊使用它的原因。

1. 資料處理能力

所以,SQL 是特別為處理資料而設計的,而事實證明,它非常善於存取和組織資料。

那麼第一個原因就是:作為一種資料庫技術,SQL 非常稱職。

2. 實踐檢驗

有些軟體就是能解決問題,尤其是當你在處理充斥著丟失、損壞和失敗等問題的資料庫時,這種優勢尤為明顯。作為成熟的軟體,SQL 有著備份計劃、變化管理和操作嚴謹性,而這些會使棘手的情況大為好轉。

因此,SQL 資料庫幾乎總是最好的選擇。

3. 知識和社群

因為 SQL 社群如此活躍,SQL 檔案又如此豐富,所以它便吸引了大量的人才和商業活動。而又因為 SQL 吸引了大量的人才,所以 SQL 社群更加壯大,知識更加深入。
這就是多年來 SQL 的發展狀況。

4. 簡單

即使是傳統意義上的非技術崗位,比如市場,公司高管,以及非技術性的產品經理,都會去學習基本的 SQL 功能,來支援他們的工作。

而深入地瞭解 SQL 基於的關係型資料庫系統,完全是另一件事。對於大多數只需要使用查詢功能的人來說,SQL 真是太好用了。

5. 高度普及

可見,SQL 資料庫普及度極高的特性,已經為其自身的成長構築了一個良性迴圈。

6. 開源及互操作性

開發者使用的資料庫技術排行, Stack Overflow

其實,PostgreSQL 是開發者最希望使用的資料庫技術之一。儘管它領先的幅度很小,且被 MongoDB 大幅超越。

開發者最希望使用的資料庫技術排行, Stack Overflow

這種向開源 SQL 資料庫切換的趨勢,對於已經規模龐大的 SQL 社群來說是一件好事。同時這種趨勢的存在也印證了,SQL 社群中的開發者們正在努力地使 SQL 變得更好。

7. 能用 SQL 誰還寫程式碼?

能用 SQL server 做好的事情就別寫程式碼。

這句話背後的邏輯是,在絕大多數情況下,SQL 都能找到最有效的辦法來完成你的任務,而且做得比任何能自己寫程式碼來解決的人更好。

舉個例子。假設我們需要建立一份關於 “加利福尼亞 2020 年第三季稅收” 的報告,具體做法是,選出列表中加利福尼亞的使用者,並按照資料進行排列。那麼你只需要一句 SQL 語句就可以完成:

SELECT SUM(Value_USD) AS California_Revenue_Q3 FROM Transactions WHERE Location = ‘California’ AND DATEPART(q, Date) = 3 AND YEAR(Date) = 2020;

而如果你要按照不同的地區對資料進行分解,那麼 SQL 語句是這樣的:

SELECT Location, SUM(Value_USD) AS Revenue_Q3 FROM Transactions WHERE DATEPART(q, Date) = 3 AND YEAR(Date) = 2020 GROUP BY Location ORDER BY Location;

如果你想得到稅收最高的 5 個區域:

SELECT TOP 5 Location, SUM(Value_USD) AS Revenue_Q3 FROM Transactions WHERE DATEPART(q, Date) = 3 AND YEAR(Date) = 2020 GROUP BY Location ORDER BY SUM(Value_USD) DESC;

如果你想用其他語言來進行這些查詢,情況就會複雜很多,既耗時間,語句也長得多。設計 SQL 就是為了切割資料,而且看起來 SQL 做得非常好。畢竟,不是資料因計算而存在,而是計算因資料而存在。

8.SQL/RDBMS 和 NoSQL/DBMS 資料庫各司其職

SQL/RDBMS 只是眾多工具中的一種,且剛好在很多情況下都是切實能用的那種。而當需要保證資料的完整性、一致性時(比如金融領域),SQL/RDBMS 就是最好用的工具。

SQL 資料庫有它們自身的缺點,且對於某些工作來說,並不是最好的選擇。但在大部分情況下,它們可以輕鬆打敗其他非 SQL 資料庫。

有些人會擔心資料規模的問題,但實際上,只有很小一部分人需要解決 RDBMS 的擴容問題 — — 畢竟你不是 Facebook 或者 Google。因此,你仍然可以用 SQL 資料庫管理數一百萬計的使用者資訊,而不出現任何問題。

更何況,只要知道如何權衡利弊,RDBMS 是可以擴容的。

再用 48 年?

確實,SQL 資料庫是有缺點的。但在絕大多數的案例中,龐大的社群,簡單的語言,以及有強大的 RDBMS 作為其基礎,使得 SQL 成為了最好的選擇之一。

為什麼我們在 SQL 誕生 48 年後還一直使用它呢?因為它能用,而且在 90% 的情況中都能完成任務。這對於身處越來越複雜的技術與整合環境中的開發者而言,就是最大的優點。

關注數據君的臉書:

--

--

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/