前言
這個資料庫技術棧是我寫的“爆棧三部曲”的最後一部 ;-)
最近我寫過 .NET技術大系概覽 (迄今為止最全的.NET技術棧) ,相信很多網友感嘆掌握的.NET技術遠沒有這個技術棧裡面所描述的多。
然後我還寫 Web前端開發大系概覽 (前端開發技術棧) ,包含大約180個技術點,做前端的都會覺得前端開發包含的技術相對繁多。
什麼叫全棧(full stack)?簡單地說就是萬金油,web前端、後臺、資料庫、桌面應用等都能搞。
爆棧(stack overflow)來得更多些,包括但不僅限於:
- web前端
- 後臺服務
- 資料儲存
- 關係型資料庫系統
- NoSQL
- 雲端儲存
- 桌面應用
- 手機App
- ESB
- 架構
- 運維
- 管理
- 等等
爆棧三部曲
問題
大家是否想過:
- 資料庫開發究竟包含哪些技術呢?
- 我所掌握的技術這個子集,在資料庫技術大系這個超集裡面佔的比例是多少呢?
- 我究竟還沒有掌握多少資料庫技術呢?
- 面試的時候會考哪些技術呢?
我之前寫的.NET技術大系概覽 (迄今為止最全的.NET技術棧),一個簡單易懂的棧圖可以概括.NET這個技術圈裡面基礎技術:
(檢視大圖)
同樣,我之前寫的Web前端開發大系概覽 (前端開發技術棧),以下棧圖可以概括Web前端開發這個龐大的技術生態圈裡面基礎技術:
(檢視大圖)
那麼,資料庫開發是否也應該有這樣的技術棧概覽圖呢?
搜尋了很久,沒有找到一個符合我要求的“較為全面”地表述資料庫技術大系的圖表。
網際網路上來去都是那幾個簡單的,譬如這個:
或者這個:
或者這個:
(檢視大圖)
不過這些都遠遠沒有高度概括整個資料庫開發技術,和我需要的不一樣。
資料庫開發技術棧
這個技術棧,大約50個層級,大約300多個技術點:
- RDMBS關係型資料庫系統
- SQL Server
- SQL OS
- Storage Engine 儲存引擎
- Relational Engine 關係引擎
- Communication 通訊
- Core Concepts 核心概念
- Core Objects 關鍵物件
- Language 語言
- System Databases 系統資料庫
- File 檔案
- Runtime 執行時
- Replication 同步
- Versions 版本
- Maintenance 維護
- Management 管理
- BI 商業智慧
- Troubleshoot 除錯
- Performance 效能
- Services 服務
- SQL Server
- Azure
- No SQL
這個圖表裡的分類未必準確,相關技術也難免會有遺漏,歡迎大家指點以便不斷改進。
資料庫技術實在太繁多限於篇幅,這裡沒有羅列一些技術。
以下是預覽圖:
(檢視大圖)
因為內容太多,要看完整技術棧圖的,可以訪問GitHub。
GitHub開源
在GitHub開源了:Database Stack
點選這裡可以檢視基於HTML5的互動式圖表 (滑鼠拖放/縮放)