所謂「數據庫」這類軟件,近年呈三雄鼎立之勢:Oracle、MySQL 和 MS-SQL,都採用 SQL 語言。Oracle 底子最厚,80年代出身於大機(IBM 主機、DEC 中型機等等),當年其他競爭者,都不敵,現時盡攬主要的機構用戶。MS-SQL 是微軟品牌,運行在微軟伺服器上,是微軟由桌面 PC 進軍機構用戶伺服器市場的主力。
MySQL 來歷最離奇,是90年代中期由瑞典幾個年青人搞出來的開源軟件,採用雙重授權制,即是可免費下載,同時用戶亦可付費購買。聽來匪夷所思,其實他們生意不錯,而且90年代互聯網剛興起,很多人設置網站,MySQL 正好配合剛冒起的 PHP 語言,極速走紅。之後十多年,MySQL 佔盡全球中小企市場,2008年作價十億美元售予 SUN 電腦公司,後者卻於2009年被 Oracle 所購,結果數據庫市場第一、二名被一間公司單佔。
但市場並沒有就此停下來。互聯網發展,更多的數據服務,容許用戶以瀏覽器作前端使用,這是所謂雲端應用。有別於以往的數據庫應用,雲端應用並非所有數據都必須即時更新,例如網上的檔案,電腦上更新了,手機上可能略過一刻才更新也可。因此不一定採用 SQL 的方法,促使新一類稱為 NoSQL 數據庫軟件的出現。
按 DB-Engine 網站的統計,這幾年來數據庫排名首三位,仍然是上述三雄,但第四名已由 MonoDB 取代 PostgreSQL,而 MonoDB 正是 NoSQL 的表表者,意味着 NoSQL 抬頭。因為 MySQL和 MonoDB (以及 NoSQL 的第二名 Cassandra)都是開源軟件,很難確查它們的使用數量。我們用另一指標,看看每種軟件招聘職位多少,由美國 Indeed.com 的數字看,2010年起 NoSQL 數據庫相關的職位,都大幅增加。
NoSQL 顧名思義不用 SQL ,那麼使用什麼語言呢?原來,伴隨雲端應用而起的,是以「文件」為主體儲存,而非如以往單項數據儲存,因此 SQL 語言不一定適用。MonoDB 有自己的控制界面,並可配合大多數主要的電腦語言。此外,有可以 graph(網絡圖)形式儲存的數據庫軟件,例如 Neo4J,並不使用 SQL,亦一併歸入 NoSQL 類別稱之。