MySQL 其實並不是完全免費,在它還是昇陽產品的時候,就有雙授權模式,如果使用 MySQL 的前端軟體是自由軟體,那 MySQL 也是自由軟體。但如果使用 MySQL 的前端軟體是封閉商業軟體,則 MySQL 要付費使用。只是很少人會去鳥那個雙授權,昇陽也沒強勢宣張它的版權。所以大家都認為 MySQL 就是免費。
後來 MySQL 變成甲骨文的之後,也是有這樣的雙授權模式。而甲骨文的態度沒有昇陽開放。所以自由社群就有人認為這樣下去不是辦法,原 MySQL 創始者,自己跳出來另創了MariaDB,以他女兒名字Maria瑪利亞為名,並宣告永久開放、永久免費。
Maria DB 在5版的時候,和 MySQL 沒有任何差別,骨子是完全一樣東西,語法也一樣,只是名稱不同。6版之後才漸漸有了分支差別,功能模組有了差異。
目前各大 Linux 發行版,官方套件庫收納的資料庫,都已經改為 Maria DB,以前是 MySQL。
有興趣學資料庫的話,可以去看下 WIKI 維基百科,了解一下各套 DB資料庫 的發展歷史、緣由。多少可作為選擇時的參考。
甲骨文自己也有一套同名的商業資料庫 Oracle DB,算是資料庫始祖一輩的,評價亦不錯,它的準確性非常高,受到銀行一類的青睞。但它就是徹頭徹尾商業軟體,要錢的,且很貴。其實這套很少人在用,有在用的也是很大間的企業。一般中小企業根本看不到的。
MS SQL 並不是一套稱得上很專業的資料庫,它缺乏了一些專業資料庫的特性或功能,只適合小規模使用,大規模的撐不住。而且不能跨平台,只能在 windows 下使用,這就限制很多超級電腦、叢集伺服器無法去用它。另外它也是商業軟體,價格亦不親民。
昇陽 MySQL 崛起後,因為免費,很快就成為最受歡迎的資料庫,使用率遠遠超過了 Oracle。後來被甲骨文被收購,因為 OpenOffice 一連串的事件,MySQL 的開放性受到質疑,就發生了上述的跑出一個 Maria DB。
另還有一套免費的也很受歡迎,PostgreSQL,LOGO圖案是隻大象。阿里巴巴集團(馬雲的掏寶)就是用這套。
Google 最初是用 MySQL,後來改用 MariaDB。
可以看到世界頂尖數一數二網路大數據服務公司,用的都是自由軟體。原因無它,就是成本問題,這些全球頂尖的大數據公司,如果軟體要付授權費,成本太高競爭力就會輸人,就不會有今日的飛黃騰達。
當然前提是軟體也要有一定品質啦,否則若不穩定,再便宜有何用。至於穩不穩定?Google、阿里巴巴....這些頂尖企業,每日處理連線查詢是幾百億條的,難道還不夠說服力。
關聯式資料庫,其實用法都大同小異,概念通就全通了。語法什麼的不過是小差異,最主要是關聯式的觀念。還有就是每套資料庫有它特性和功能,比如:安全性方面、線上同步方面、數據準確性確保.....等等的特性模組。
****************************
至於前端軟體程式方面
PHP 是網頁伺服器軟體,這就是說它很適合開發 WEB化 的軟體。
電腦、手機,作業系統繁多。手機有安卓和蘋果的,電腦也有 winodws、MAC、unix-like...等等的。這麼多的作業系統如果每種都要開發軟體,豈不累死。
WEB化 一個最大好處就是:跨平台。
任何智慧3C裝置,必有瀏覽器。有瀏覽器就能上網,就能連去網頁伺服器。
亦即:你寫一份在網頁伺服器的 PHP 程式碼,並且運作它(網站服務)。那任何裝置只要有瀏覽器,無論電腦、手機、甚至智慧電視....啥的,都可以用了。
Java 也是跨平台的,write once,run everywhere 寫一次任何地方運行。表面是這樣,但其實需要 JRE 運行環境。並不是所有作業系統平台都有 JRE 可用。
跨平台來講,JAVA 沒有 PHP 優秀。
但 JAVA 可以寫本地端軟體,視窗軟體,會比 PHP 只能用瀏覽器運行,性能與界面直覺性會優上許多。
此外安卓的軟體,母語也是 JAVA 的。如果會 JAVA 要再去開發安卓軟體會很容易。
而其它不能跨平台的程式語言,就不與置評了,聰明的都不會去選....
不能跨平台=沒前途
那 PHP 和 JAVA 選哪種好?
看你未來的興趣與打算在哪邊。
PHP 是偏網站的。
同時也會學到很多關於架設網站伺服器的知識。
JAVA 是偏視窗軟體、手機軟體。
雖然它也有 JSP(類似PHP的東西)但沒 PHP 流行。
要說最大差異就在:離線 或 必須連網。
PHP 必須連網才能使用
JAVA 可以離線單獨使用,也可以連網
前端界面的設計,美術設計,視覺傳達,那就看個人功力了。
一般來說,寫程式的不會去做美術設計,團隊中另有人負責。因為熟編程的,通常美術細胞都不太好。術業有專攻。總不可能樣樣都神。樣樣通,就會樣樣鬆,沒一項專精。
網頁並不是說就無法達到視窗軟體的程度,HTML5 有畫布功能,還有CSS3佈局...等等的,其實現在也不少網頁線上遊戲,也是美侖美奐的。終究都是功力問題而已。
看起來很多人對MSSQL怨念很深..
其實MSSQL被詬病的效能問題, 無法重度負載, 高可用度(這其實是MSCS的原罪)這些問題
在2008版本後就大幅改善,
且微軟也抓住了機會, 在Oracle, IBM漲價又追補授權時
提供更多的附加功能(option), 如SSIS (免費的ETL, 有做ETL的大概知道這東西多貴)
SSRS (免費的report)
SSAS (免費的OLAP)
完全免費的Cluster, Replicate..(相信管Oracle知道Dataguard多少錢, RAC又多少錢)
在新一點的版本2016開始又加強資安, 如動態遮罩, 直讀HDFS的Polybase..
這些在其他商用資料庫都是"選購項目", 要加錢的..
此消彼漲之下, 會推著很多中小企業轉資料庫..
當然, 還是有很多轉不掉的(如AP綁DB, SAP..)
===================================================================
我不是那麼喜歡微軟, 但相對於Oracle, 我投MSSQL一票
沒錢就選M$,TW就業市場相對大,會的人也多一些,但機會也多一些.
也可選小眾市場JAVA寫APP,TW需求也不少
免費的一堆人號稱都會但精通的沒幾個,看個人功力,PHP .NET,MYSQL,MIRADB,MSSQL應屬此類
WEB是目前主流,前端PHP .NET後台MYSQL,MIRADB,MSSQL都要會一點,你光學DB是不夠的,還要會架站,老闆會要求統包,希望CASE又快又好,CMS必學,因為都是拿免費模板來改,一般要求是1週5個工作天要架好一個購物網站,至於你怎麼搞,不會管你,客戶滿意能收到錢就好,這部份算紅海.
T-SQL是標準資料庫語法,基本上可以說是通用的,個別資料庫會再有一些特別的功能,這些看說明就知道怎麼用了.
T-SQL學會,就可以去學前端的程式語言了.
挑什麼程式語言,取決於你之後到底想找什麼方面的工作.
因為各領域所用的程式語言都有個別特殊需求的地方.
像是WinForm視窗程式/Web Form網頁/Smart Device行動裝置
之後的世界各廣,有更多要學的,挑一個領域去學,不要像無頭蒼蠅的學,浪費錢,也浪費時間,每個領域都有非常多的東西要學.
會寫只是入門而已,接下來要學會處理效能,安全,穩定,資源有限,架構等問題.
我是先報名學MS SQL,之後Oracle跟Informix是工作中學的,遇到什麼就自己去找答案,只能說,現在Google很方便,我都是自己K網路上的說明.
如果是走.Net微軟這開發工具,未來應該會跟這個網頁很熟.
Microsoft Docs
註:
上課聽到SQL Injection時,耳朵張大一點,很多人常犯這個基本錯誤.
像是好市多跟部份房仲網站也有這個問題.
關閉廣告