主流資料庫管理系統介紹
目前有許多DBMS產品,如DB2、Oracle、Microsoft SQL Server、Sybase SQLServer、Informix、MySQL等,它們在資料庫市場上各自佔有一席之地。下面簡要介紹幾種常用的資料庫管理系統。
(1)DB2
DB2第一種使用使用SQL的資料庫產品。DB2 於1982 年首次釋出,現在已經可以用在許多作業系統平臺上,它除了可以執行在OS/390和VM 等大型機作業系統以及中等規模
的AS/400 系統之外,IBM還提供了跨平臺(包括基於UNIX 的LINUX,HP-UX,Sun Solaris,
以及SCO UnixWare;還有用於個人電腦的Windows 2000系統)的DB2 產品。應用程式可以通過使用微軟的ODBC介面、Java的JDBC介面或者CORBA介面代理來訪問DB2資料庫。
DB2 有不同的版本,比如DB2 Everyplace是為移動使用者提供的一個記憶體佔用小且效能出色的版本;DB2 for z/OS則是為主機系統提供的版本;Enterprise Server Edition(ESE)是一種適用於中型和大型企業的版本;Workgroup Server Edition(WSE)主要適用於小型和中型企業,它提供除大型機連線之外的所有ESE 特性;而DB2 Express則是為開發人員提供的可以免費使用的版本。
IBM 是最早進行關係資料庫理論研究和產品開發的公司,在關係資料庫理論方面一直走在業界的前列,所以DB2 的功能和效能都是非常優秀的,不過對開發人員的要求也比其他資料庫系統更高,使用不當很容易造成宕機、死鎖等問題;DB2 在SQL的擴充套件方面比較保守,很多其他資料庫系統支援的SQL 擴充套件特性在DB2 上都無法使用;同時DB2 對資料的型別要求也非常嚴格,在資料型別不匹配的時候會報錯而不是進行型別轉換,而且如果發生精度溢位、資料超長等問題的時候也會直接報錯,這雖然保證了資料的正確性,但是也使得基於DB2的開發更加麻煩。因此,很多開發人員稱DB2 為“最難用的資料庫系統”。
(2)Oracle
Oracle是和DB2 同時期發展起來的資料庫產品,也是第二個採用SQL的資料庫產品。Oracle從DB2等產品中吸取到了很多優點,同時又避免了IBM的官僚體制與過度學術化,大膽的引進了許多新的理論與特性,所以Oracle無論是功能、效能還是可用性都是非常好的。
(3)Microsoft SQL Server
Microsoft SQL Server 是微軟推出的一款資料庫產品。細心的讀者也許已經發現我們前面提到了另外一個名字非常相似的Sybase SQLServer,這裡的名字相似並不是一種巧合,這還要從Microsoft SQL Server 的發展史談起。
微軟當初要進軍圖形化作業系統,所以就開始和IBM“合作”開發OS/2,最終當然無疾而終,但是微軟就很快的推出了自己的新一代視窗作業系統;而當微軟發現數據庫系統這塊新的市場的時候,微軟沒有自己重頭開發一個數據庫系統,而是找到了Sybase來“合作”開發基於OS/2 的資料產品,當然微軟達到目的以後就立即停止和Sybase的合作了,於1995
年推出了自己的Microsoft SQL Server6.0,經過幾年的發展終於在1998年推出了轟動一時的Microsoft SQL Server7.0,也正是這一個版本使得微軟在資料庫產品領域有了一席之地。正因為這段“合作”歷史,所以使得Microsoft SQL Server 和Sybase SQLServer 在很多地方非常類似,比如底層採用的TDS協議、支援的語法擴充套件、函式等等。
微軟在2000年推出了Microsoft SQL Server 2000,這個版本繼續穩固了Microsoft SQL Server的市場地位,由於Windows作業系統在個人計算機領域的普及,Microsoft SQL Server理所當然的成為了很多資料庫開發人員的接觸的第一個而且有可能也是唯一一個數據庫產品,很多人甚至在“SQL Server”和“資料庫”之間劃上了等號,而且用“SQL”一次來專指Microsoft SQL Server,可見微軟的市場普及做的還是非常好的。做足足夠的市場以後,微軟在2005年“審時度勢”的推出了Microsoft SQL Server 2005,並將於2008年釋出新一代的Microsoft SQL Server 2008。
Microsoft SQL Server 的可用性做的非常好,提供了很多了外圍工具來幫助使用者對資料庫進行管理,使用者甚至無需直接執行任何SQL 語句就可以完成資料庫的建立、資料表的建立、資料的備份/恢復等工作;Microsoft SQL Server 的開發者社群也是非常龐大的,因此有眾多可以參考的學習資料,學習成本非常低,這是其他資料庫產品做不具有的優勢;同時從Microsoft SQL Server 2005開始開發人員可以使用任何支援.Net的語言來編寫儲存過程,這進一步降低了Microsoft SQL Server 的使用門檻。
不過正如微軟產品的一貫風格,Microsoft SQL Server 的劣勢也是非常明顯的:只能運行於Windows 作業系統,因此我們無法在Linux、Unix 上執行它;不管微軟給出什麼樣的測試資料,在實際使用中Microsoft SQL Server 在大資料量和大交易量的環境中的表現都是不盡人意的,當企業的業務量到達一個水平後就要考慮升級到Oracle或者DB2了。
(4)MySQL
MySQL是一個小型關係型資料庫管理系統,開發者為瑞典MySQL AB 公司。目前MySQL被廣泛地應用在中小型系統中,特別是在網路應用中使用者群更多。MySQL 沒有提供一些中小型系統中很少使用的功能,所以MySQL的資源佔用非常小,更加易於安裝、使用和管理。
由於MySQL是開源的,所以在PHP和Java 開發人員心中更是首選的資料庫開發搭檔,目前Internet上流行的網站構架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為作業系統,Apache 作為Web 伺服器,MySQL 作為資料庫,PHP 作為伺服器端指令碼直譯器。
MySQL目前還很難用於支撐大業務量的系統,所以目前MySQL大部分還是用來執行非核心業務;同時由於MySQL在國內沒有足夠的技術支援力量,所以對MySQL的技術支援工作是由ISV或者系統整合商來承擔,這也導致部分客戶對MySQL比較抵制,他們更傾向於使用有更強技術支援力量的資料庫產品。