筆者個人的 SQL 使用相關經驗都是以 MS-SQL 的 T-SQL(Since MS-SQL7.0)為主,所以對T-SQL的了解當然就會比較深入,加上後來 MicroSoft 佛心來著,推出了 express 的免費版本,雖有限制,但對小型企業和測試、展示來說已經足夠,這的確是很大的福音。但是,如果是有大資料量的需求及效能考慮的企業,還是建議購買商業版本,這就有了成本的考量,當然,如果客戶的情況許可,筆者都會建議購買商業授權版本。
後來,隨著 Open Source 各項專案的風起雲湧,各式各樣的應用程式如雨後春筍般的冒出來,其中不乏另人讚不絕口的傑出產品。而在資料庫管理程式的領域,也出現了許多優秀的產品,其中以 MySQL、PostgreSQL 等更是其中的翹楚。很多人都以為 Open Source = FREE(免費),這事實上是個誤解。的確,有一部份的 Open Source產品是完全免費的(即使是商業使用),但大部份的 Open Source 都有商業版本或開發版本的授權使用費用,只是通常和大型商業軟體比起來,費用相對低很多,在使用前請詳細的閱讀了解該產品的授權方式。本文只是簡單的介紹下面幾個產品,其授權方式列示如下,詳細的內容,還是以各產品的說明文準。
產品 | 開發組織、公司 | Licence方式 | 商業使用 |
---|---|---|---|
MS-SQL | Microsoft | 不開源 | 商業授權 |
MySQL | Oracle | GPL | 企業授權 |
MariaDB | MariaDB 基金會 | GPL 2 | 企業授權 |
PostgreSQL | PostgreSQL Global Development Group | BSD | 免費 |
當然,還有很多其他優秀的資料庫軟體,但【人力終有窮,天道終有定】,只能就我曾經涉獵過的幾個 Database 簡單說明,任何一個系統想要精通,沒有 3-5 年的經驗累積是不可能的,但是要學會基本概念倒是不難。所以接下來,我就簡單的介紹幾個資料庫軟體的安裝、官網介紹,至於您想深入學習哪一套軟體,就由您自行決定,本文所介紹的內容,都是一些通則,對大部分的資料庫而言,都是通用的。
開發環境測試,建議下載 express 版本測試,如果您的 Windows OS 是 Windows 7,請安裝 SQL 2012 版
https://www.microsoft.com/zh-tw/download/details.aspx?id=56042
其他較新的版本,也可以安裝最新的 SQL2017 版
https://www.microsoft.com/zh-tw/sql-server/sql-server-editions-express
LocalDB 也是一個不錯的選擇,但是限制較多(主要是字元集的預設值),下載點是在上面的載點中,指定後下載
關於 LocalDB 不可不看保哥(Will) 的好文
https://blog.miniasp.com/post/2012/09/03/SQL-Server-2012-Express-LocalDB-Quick-Start.aspx
原本是一個開放原始碼的關聯式資料庫管理系統,原開發者為瑞典的 MySQL AB公司,該公司於2008年被昇陽微系統(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成為Oracle旗下產品。MySQL被廣泛地應用在 Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了 MySQL作為網站資料庫。隨著MySQL的不斷成熟,它也逐漸用於更多大規模網站和應用,比如維基百科、Google和Facebook等網站。非常流行的開源軟體組合LAMP中的「M」指的就是MySQL。
MySQL原先被人所詬病的一些缺點,如不支援Store Procedure等必要的進階功能,在V5.0以後的版本都已經提供。但自從被甲骨文公司收購後,Oracle大幅調漲MySQL商業版的售價,且甲骨文公司不再支援另一個自由軟體計畫OpenSolaris的發展,因此導致自由軟體社群們對於Oracle是否還會持續支援MySQL社群版(MySQL之中唯一的免費版本)有所隱憂,因此原先一些使用MySQL的開源軟體逐漸轉向其它的資料庫。例如維基百科已於2013年正式宣布將從MySQL遷移到MariaDB資料庫。
MySQL 的社群版下載點
https://dev.mysql.com/downloads/mysql/
我曾經有多次安裝 MySQL 失敗的經驗(在 Windows 7 的 VM 中),和 MariaDB 的完全零失敗的安裝經驗比起來,我真的衷心推薦改用 MariaDB。
https://mariadb.org/
https://mariadb.com/
MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權授權。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社群採用分支的方式來避開這個風險。
MariaDB的目的是完全相容MySQL,包括API和命令列,使之能輕鬆成為MySQL的代替品。MariaDB由MySQL的創始人 Ulf Michael Widenius)主導開發,他早前曾以10億美元的價格,將自己建立的公司MySQL AB賣給了SUN,此後,隨著SUN被甲骨文收購,MySQL的所有權也落入Oracle的手中。MariaDB名稱來自 Michael 的女兒 Maria 的名字。
MariaDB 下載點
https://mariadb.com/downloads/mariadb-tx
安裝完 MariaDB 會預設安裝 HeidiSQL,基本上它有貼心的考慮到使用者的需求。
PostgreSQL經歷了長時間的演變,開始於在 UC Berkeley(柏克萊加州大學)的Ingres計劃。這個計劃的領導者Michael Stonebraker在1982年離開Berkeley去商業化Ingres,但是最後還是返回了學術界。在1985年返回Berkeley之後,Stonebraker開始了post-Ingres計劃來致力於在1980年代早期變得日益清楚的、當代資料庫系統的問題。Postgres和Ingres的代碼庫開始(並保持)完全分離了。
第一次PostgreSQL發行形成了版本6.0。隨後來自世界各地的一組資料庫開發者和志願者,透過Internet協作起來,維護著這套軟體。自從版本6.0之後,出現了很多後續發行,在系統中也出現了很多改進;在2005年1月19日,版本8.0成為當前發行。由8.0後,PostgreSQL以原生(Native)的方式,執行於Windows 視窗系統。
PostgreSQL 下載點
https://www.postgresql.org/download/
原本在 MySQL 和 PostgreSQL 這2套 Opensource 資料庫軟體,我自己本來是決定要採用 PostgreSQL 的,這當然有很多包括經濟因素、授權因素、網路評價 等等非常多的因素。我前面有提到,想要真正精通一套資料庫,沒有 3-5 年的累積是不可能的,這一定是實戰開發真實系統,而不只是看看書那麼簡單。所以除了我已經實際使用多年的 MS-SQL 資歷庫,我想要在 Opensource 資料庫中,選擇一套來深入學習。最後,我還是決定投入 MariaDB 的懷抱。
所以本文的相關範例,我會盡量使用 MS-SQL 和 MariaDB 來實作,當然,這沒有對錯,只是單純的評估選擇,您當然也會有您的選擇,都好,都對,但盡量深入,不要貪多嚼不爛即可。
關於資料庫,我就簡單的介紹到這邊,接下來會在 VM 中,重新安裝完整的 Node.js 的環境,希望您會喜歡,再次感謝您的收看,明天見。