目前市場上有些什麼樣的數據庫管理系統(DBMS),它們都有什麼特色?它們之間的優缺點有什麼?它們的使用場合分別是?

1 要求mysql

目前市場上有些什麼樣的數據庫管理系統(DBMS),它們都有什麼特色?它們之間的優缺點有什麼?它們的使用場合分別是?linux

1.1 目前市場上有些什麼樣的數據庫管理系統(DBMS)sql

目前市場上的數據庫管理系統(DBMS)常見的品牌有:Oracle、Sybase、Informix、Microsoft SQL Server、Microsoft Access、Visual FoxPro、PostgreSQL、mySQL、DB二、Ingres、MongoDB、達夢(DM)數據庫。數據庫

1.2 它們都有什麼特色?它們之間的優缺點有什麼?瀏覽器

總體上能夠把這些數據庫分爲商業數據庫和開源數據庫兩類。當前主流的商業數據庫有Oracle微軟SQL ServerIBM DB2和SybaseAdaptive SQL Server。而在開源方面,主要有三家主流數據庫:MySQL、PostgreSQL和Ingres。這兩類數據庫都已經證實了本身能夠勝任數據存儲和管理的須要。但相對於商業數據庫,開源數據庫多是比較低的數據處理數量、缺乏的功能、受限制的圖形化管理,較低的安全性、或者是一些其餘商業數據庫有而開源數據庫不具有的的東西。安全

2 商業數據庫和開源數據庫總覽服務器

2.1 商業數據庫之Oracleoracle

Oracle是商業數據庫的表明,具備很是豐富的功能、普遍的平臺支持和大量的附加功能。在IDC的一個調查中,Oracle佔據了數據庫市場的44%,增加了14%。ide

Oracle的功能從表分區和大量的統計功能,到一些高可用功能,諸如本地複製、數據鏡像和應用集羣(Real Application Clusters,RAC)等。工具

Oracle另外一個強大的功能是在線表和索引重建。在不少數據庫中,須要離線進行重建,也就是說當索引被重建的時候,不容許訪問數據,由於這個操做要求獨佔性訪問對象。固然,這不是Oracle的所有功能,只是其所能提供的高級功能的一些示例。

2.2 商業數據庫之IBM DB2

在2004年,DB2數據庫的銷售主要集中在IBM大型機和它們本身的AS/400系列系統中。儘管根據2006 IDC的調查報告,DB2的市場佔有率高居第二位,可是與Oracle相比,它的銷售額和市場佔有率都要低不少。

如今除了IBM的專有操做系統外,DB2能夠運行在Windows、LinuxUnix平臺上。新版的DB2 V9在XML處理方面具備較大的改進。在我最近的一個使用了其餘數據庫的項目中,在規劃XML方面咱們作了大量的額外工做。若是咱們所使用的數據庫具備 DB2 V9的相應功能,或許就不會有這麼多麻煩了。

另外,IBM正在經過其DB2 Everyplace進入移動領域,目前支持PDA和智能手機

2.3 商業數據庫之微軟SQL Server

一直以來,微軟的SQL Server都只能夠運行在其Windows操做系統平臺上,可是在上一年的今天,也就是2016年的3月8日,宣佈推出可運行在 Linux 系統下的 SQL Server 數據庫。SQL Server的市場份額將會更快的增加。

根據IDC的統計,微軟的SQL Server是市場份額增加最快的數據庫,市場份額僅次於DB2,排名第三。

在最新版本的SQL Server 2005中,增長了許多新的功能,使其進一步對Oracle夠成威脅。其中包括表分區、在線索引操做和不少其餘管理功能。從下文中你將看到,不少用戶對SQL Server的直觀、易用的管理界面深表支持。

2.4 商業數據庫之Sybase

最新版本的Sybase Adaptive Server與之前的版本相比,具備更豐富的功能設置,可是與上面Oracle和DB2兩個商業數據庫相比仍是少不少,舉個例子來講,它缺乏對高可用羣集和在線索引重建的支持。這或許是爲何在IDC的一次調查中,它僅排名第四,只有可憐的3.2%的市場份額。

Sybase比較強大的地方在於它對資源的低佔有率上。在這一方面,Sybase 15還引入了新的「專利查詢過程技術」,顯示了加強的性能和下降的硬件資源消耗。另外一方面,Sybase正在經過其SQL Anywhere數據庫服務器進入移動領域。SQL Anywhere功能之一就是其常駐內存的數據庫管理系統,能夠運行在Windows Mobile、Windows、Palm OSSymbian上。

關於Sybase還有一個頗有意思的歷史插曲,微軟的SQL Server是從Sybase開發而來的。微軟和Sybase簽定了一個合約,微軟被受權能夠銷售一個從新包裝的Sybase,或在它的基礎上開發一個它本身的版本。儘管微軟已經對其進行了不少修改,你依然能夠在SQL Server的命令組成中看到二者之間的淵源。

2.5開源數據庫之MySQL

MySQL是開源數據庫中的佼佼者,它的用戶數是在同類開源數據庫中是最多的,它既能夠被小的新興公司所使用,也能夠被採用了操做系統集羣的大型Web站點所使用。

MySQL擁有不少插入式的存儲引擎,用來給用戶提供不一樣的所需功能,而不是默認具備所有功能。這也是爲何MySQL會在數據恢復操做中具備最佳表現的另外一個緣由。

自從MySQL初版發佈以來,就提供一個存儲引擎接口。它讓用戶來根據須要選擇數據存儲引擎。MySQL既有事務安全(ACID兼容)的存儲引擎(諸如InnoDB、Falcon),也有不支持事務處理的存儲引擎(MyISAM)、日誌引擎(不能被更新或刪除,Archive)和經過無共享體系結構實現高可用性的羣集技術, MySQL還有專有的第三方引擎,例如InfoBright和Nitro。

MySQL擁有不少實現特定功能的存儲引擎,可是並不建議你所有安裝它們。而像Google這樣的公司則編寫了本身的存儲引擎來加速它們的經常使用操做。

MySQL與Oracle相比的一個優點就是它對資源的佔用很是少。MySQL是實現數據恢復方面最快的數據庫,可是它的確缺乏一些在Oracle中的功能。

MySQL歷來沒有想過與其餘數據庫在功能數量上一較高下,MySQL的目標是易用、穩定和性能。MySQL如今具備豐富的功能,已經獲得了不少開發者的支持。

2.5開源數據庫之PostgreSQL

在開源數據庫中,PostgreSQL以其豐富的功能而顯得格外突出,其中包括存儲過程、表分區(partitioning)、多過程語言支持和多種數據類型和索引的支持。另外,PostgreSQL的標準兼容性和嚴格的安全功能也被衆多用戶所稱道。PostgreSQL的在線事務處理(OLTP)是其最受歡迎的功能,在開源數據庫中,它的數據倉庫方面也是表現最好的。

因爲PostgreSQL是一個被不一樣公司支持的社區控制型開源項目,不少公司提供對它的支持,諸如Sun、Fujitsu、SRA和Red Hat和不少新興公司和顧問公司。PostgrefSQL在日本的市場狀況很不錯,僅次於Oracle。

2.7開源數據庫之Ingres

在Ingres 2006版中引入了不少新功能,其中一些功能是關於大規模部署方面的,例如鍵範圍表分區(key range table partitioning)和並行查詢支持。另外,諸如存儲過程、觸發器和視圖功能早已被Ingres所支持,不過Ingres如今還不支持內部任務。

2.8嵌入式數據庫應用

數據庫的一個比較特別的應用案例是嵌入式應用程序,在這方面應用中,低資源佔用成爲一個必需的要求。

MySQL因爲其設計理念,在這一方面被應用的比較多。微軟的SQL Server 2005 Express版也被作爲嵌入式數據庫使用,它被認爲是微軟數據庫引擎(MSDE)的下一版本,並且它也是徹底免費的。而Oracle則又經過收購得來的 TimesTen內存數據庫來知足嵌入式應用程序。

Linux是開源數據庫的首選操做系統,由於它們都是開源並且徹底免費的產品。如今的消費電子產品市場中,Linux變種已經被普遍應用。而這也使得開源數據庫們在嵌入式應用程序受益。

3對這些數據庫管理系統的使用場合分別是什麼?

這個問題,我想以「如何選擇適合本身的數據庫的方式?」來回答。

3.1按需求來選擇

事實上,如今沒有天衣無縫的數據庫,不管是商業數據庫,仍是開源數據庫。咱們發現,選擇一個數據庫的主要理由就是它的功能是否能夠很好地支持你的應用程序。人們一般使用數據庫來完成的任務有:支持Web、事務處理、文本搜索,有的狀況下複製也是一個重要的要求。在事務處理方面,Oracle看上去更有領先優點,接下來是微軟的SQL Server。沒有一個開源數據庫具備能夠與Oracle相媲美的事務處理功能。

在那些要求功能豐富的狀況下,開源數據庫們並不比商業數據庫有什麼優點。人們常常提到的商業數據庫的優點功能有存儲過程、觸發器和一些安全功能。

不過,正如咱們上面提到過的,自從Ingres問世以來就支持觸發器和存儲過程。PostgreSQL對這些功能也早已支持。在MySQL的新版中最近也增長了存儲過程和觸發器功能。對於支持Web應用程序,MySQL看上去要比其餘對手錶現好。Web應用程序主要是對數據庫進行讀取操做。MySQL在這方面以速度快而見長。一些用戶表示,在快速閱讀操做方面,MySQL至少不比Oracle差。可是,當任務從閱讀數據庫轉向處理一個客戶購買操做的時候,用戶則可能更傾向於選擇Oracle而不是MySQL。在複製和羣集功能上,MySQL給人的印象差異很大。MySQL中的單向複製表現驚人,可是,MySQl的羣集功能被應用的很少,由於它只是基於內存的。

3.2按易用性和管理來選擇

開源數據庫們主要是以命令行工具中管理。儘管也有一些圖形工具可用,可是與Oracle等商業數據庫自帶的圖形管理工具相比,它們還顯得不夠靈活和穩定。在圖形化管理方面的贏家無疑是微軟。微軟的SQL Server管理工具不是基於瀏覽器的,而是自帶的一個終端平臺。這使得它有能力完成一些Web瀏覽器所不能實現的強大功能。一些用戶但願Oracle中的管理功能也和SQL Server中同樣好。

3.3按支持性來選擇

當討論開源軟件的時候咱們聽到最頻繁的問題是:「咱們從哪兒能獲得支持?」MySQL爲它本身的客戶提供24*七、30分鐘響應時間的支持。在其Unlimited服務中還有不少不一樣的付費支持級別。正如上面所提到的,PostgreSQL的支持來自於不一樣的平臺廠商,支持的內容、成本、地區和要求因廠商不一樣而不徹底同樣。因爲開源數據庫的源代碼能夠被任何人查看和修改,這致使了幾個潛在的問題。一個合法客戶對數據庫進行了修改會發生什麼?Sun公司不會對這種狀況提供支持,而MySQL公司將提供支持,可是須要知足一些特定條件和狀況。事實上,能對這些開源產品進行修改的客戶的數量是很是少的——這與產品的複雜度有關係。另外一個開源軟件的問題是,任何人能夠對產品進行修改的現實會帶來一些潛在的漏洞或安全問題。諸如此類的事情已經發生過,客戶須要確信從熟悉的網站下載這些產品,而且確認它們能夠經過MD5校驗。

3.4按成本因素來選擇

數據庫中成本因素是很是簡單的。對於開源數據庫,你能夠免費獲得受權,可是同時也犧牲了一些功能。而對於商業數據庫,你可使用更多強大的功能,可是你須要按每一個拷貝或每一個CPU來支付受權費用。對於開源數據庫,在維護成本方面,儘管看上去你能夠選擇不從廠商那兒購買支持合同,由於你擁有源代碼,可是實際上並不如此簡單。

雖然你能夠選擇修改源代碼,可是當新版數據庫出來後,你所作的修改不得不從新進行實施,並且你曾經所作的修改可能已經沒有必要,由於新版中增長了相應的功能。對咱們來講,惟一比較實際的作法就是成爲這個數據庫開發社區中的一員,這可能須要你投入大量的時間,其成本或許會超過購買一個支持合同。對於商業數據庫,你只有面臨一個選擇,若是你想獲得來自它們的維護支持,那麼就購買它們的支持合同。

4結論

整體來講,選擇什麼樣的數據庫要看你的應用程序的須要。若是它是以閱讀數據庫爲主的Web應用,MySQL無疑是最佳選擇。而若是須要那些事務處理和複雜的數據庫功能,那麼多是Oracle和微軟的SQL Server的地盤。若是你須要一些商業數據庫的高級功,但又不想支付受權費用,那麼看一下PostgreSQL或Ingres。對於嵌入式數據庫應用, MySQL和Sybase所佔有的系統資源最少。

相關文章
相關標籤/搜索