數據庫的選擇(一)

數據庫如何選擇html

 

經常使用的數據庫通常是分爲五種:sql

(數據庫

編程

)瀏覽器

安全

Access(服務器

架構

)SqlServer(分佈式

工具

)MySQL(

)Oracle(

)SQLite

,那麼,用戶想作一個網站,到底

哪種數據庫是適合本身的呢

?

如下給你們介紹一下經常使用的數據庫有什麼區別或是功能方面。

 

1

Access 

Access 

是由微軟發佈的一款關聯式數據序管型系統

,

常被用來開發

Web 

應用程序這些應用程序都利用

Asp

技術在

IIs

上運行。不

過中於

Access 

是小型數據庫,商着根本的使用侷限性,在數據庫過大或者訪間量高的時候性能會急劇降低。

 

2

Mysql 

MySQL

是一個小型關係型數據庫管理系統,開發者爲瑞典

MySQLAB

公司,在

2008

1

16

號被

Sun

公司收購。

MySQL

被普遍

地應用在

Internet

上的中小型網站中。因爲其體積小、速度快、整體擁有成本低,尤爲是開放源碼這一特色,許多中小型網站爲

了下降網站整體擁有成本而選擇了

MySQL

做爲網站數據庫。

 

3

SqlServer 

SqlServer

的特色是真正的客戶

/

服務器體系結構

,

而且出十是圖形化的用戶界面,使數據庫管理方式更加直觀和簡單。它還提供

了豐富的編程接口工具

爲用戶進行程序設計提供了更大的選擇餘

 

4

Oracle 

Oracle

數據庫系統是美國

Oracle

公司(甲骨文)提供的以分佈式數據庫爲核心的一組軟件產品,是目前最流行的客戶

/

服務器

(CLIENT/SERVER)

B/S

體系結構的數據庫之一。

好比

SilverStream

就是基於數據庫的一種中間件。

ORACLE

數據庫是目前世界

上使用最爲普遍的數據庫管理系統,做爲一個通用的數據庫系統,它具備完整的數據管理功能;做爲一個關係數據庫,它是一

個完備關係的產品;做爲分佈式數據庫它實現了分佈式處理功能。但它的全部知識,只要在一種機型上學習了

ORACLE

知識,

便能在各類類型的機器上使用它。

 

5

SQLite 

SQLite

,是一款輕型的數據庫,是遵照

ACID

的關聯式數據庫管理系統,它的設計目標是嵌入式的,並且目前已經在不少嵌入式

產品中使用了它,它佔用資源很是的低,在嵌入式設備中,可能只須要幾百

K

的內存就夠了。它可以支持

Windows/Linux/Unix

等等主流的操做系統,

同時可以跟不少程序語言相結合,

好比

C#

PHP

Jav

a

等,

還有

ODBC

接口,

一樣比起

Mysql

PostgreSQL

這兩款開源世界著名的數據庫管理系統來說,它的處理速度比他們都快。

有沒有這樣一個數據庫?它不只可讓你來存儲你的全部數據,並且不用你去購買軟件受權,花不多的錢就能夠得到技術支持。或許你認爲這是白日作夢,實際上這樣的事情是確實存在的,它們的名字叫作「開源數據庫」。

  可是,開源數據庫和其餘事物同樣,並不是天衣無縫,它可能會讓你付出另外一種類型的代價,多是比較低的數據處理數量、缺乏的功能、受限制的圖形化管理,或者是一些其餘商業數據庫有而開源數據庫不具有的的東西。

  當前主流的商業數據庫有Oracle、微軟SQL Server、IBM DB2和Sybase Adaptive SQL Server。而在開源方面,主要有三家主流數據庫:MySQL、PostgreSQL和Ingres。全部這些數據庫管理系統都已經在市場上存在了十年以上。

  這兩類數據庫都已經證實了本身能夠勝任數據存儲和管理的須要。世界上大大小小的公司,從最小的新興公司到世界500強的大企業,再到政府部門,天天都在使用這些產品中的一種或多種,並放心地把它們的數據交給這些數據庫。

  本篇文章經過對開源和商業數據庫的用戶及廠商的分析,能夠看到開源數據庫正在經過不一樣的方面來完善本身。從商業的角度來看,開源數據庫正聯合起來來對抗它們的商業競爭對手。另外,在本文中咱們還將討論,對於不一樣的應用狀況是否具備選擇開源數據庫的理由。

  但願這篇文章能成爲一塊敲門磚、問路石,在你開始研究開源數據庫,在你考察是否將它們應用到你的企業中的時候,但願對你有些幫助做用。

  大多開發者使用的數據庫都不止一個,有四個因素是咱們很明顯要考慮的。首先是易用性,這是應用程序是否被選用的一個關鍵因素。圖形化管理界面也是被人們常常提到的。另外,在決定爲每個應用程序選用什麼數據庫的時候,功能的深度也起着重要的做用。最後,軟件的成本問題也是大多數人所關注的。

  1、商業數據庫和開源數據庫總覽

  1. 商業數據庫之Oracle

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

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

  

Oracle RAC

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

  2. 商業數據庫之IBM DB2

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

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

IBM DB2 V9的XML特性

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

  3. 商業數據庫之微軟SQL Server

  和本篇文章中提到的其餘數據庫不一樣的是,微軟的SQL Server只能夠運行在其Windows操做系統平臺上。不過因爲Windows操做系統的普遍普及,缺少對其餘系統的支持並無阻擋SQL Server的市場份額的增加。

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

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

    4. 商業數據庫之Sybase

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

  Sybase比較強大的地方在於它對資源的低佔有率上。在這一方面,Sybase 15還引入了新的「專利查詢過程技術」,顯示了加強的性能和下降的硬件資源消耗。

  另外一方面,Sybase正在經過其SQL Anywhere數據庫服務器進入移動領域。SQL Anywhere功能之一就是其常駐內存的數據庫管理系統,能夠運行在Windows Mobile、Windows、Palm OS和Symbian上。

  

Syabse數據倉庫

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

  5.開源數據庫之MySQL

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

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

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

  

MySQL體系結構

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

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

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

  6. 開源數據庫之PostgreSQL

  在開源數據庫中,PostgreSQL以其豐富的功能而顯得格外突出,其中包括存儲過程、表分區(partitioning)、多過程語言支持和多種數據類型和索引的支持。

  另外,PostgreSQL的標準兼容性和嚴格的安全功能也被衆多用戶所稱道。PostgreSQL的在線事務處理(OLTP)是其最受歡迎的功能,在開源數據庫中,它的數據倉庫方面也是表現最好的。

  

PostgreSQL V8.1架構

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

  7. 開源數據庫之Ingres

  在Ingres 2006版中引入了不少新功能,其中一些功能是關於大規模部署方面的,例如鍵範圍表分區(key range table partitioning)和並行查詢支持。

  另外,諸如存儲過程、觸發器和視圖功能早已被Ingres所支持,不過Ingres如今還不支持內部任務。

  8.嵌入式數據庫應用

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

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

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

  2、如何選擇適合本身的數據庫?

  1.按需求來選擇

  事實上,如今沒有天衣無縫的數據庫,不管是商業數據庫,仍是開源數據庫。

  咱們發現,選擇一個數據庫的主要理由就是它的功能是否能夠很好地支持你的應用程序。人們一般使用數據庫來完成的任務有:支持Web、事務處理、文本搜索,有的狀況下複製也是一個重要的要求。

  在事務處理方面,Oracle看上去更有領先優點,接下來是微軟的SQL Server。沒有一個開源數據庫具備能夠與Oracle相媲美的事務處理功能。

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

  不過,正如咱們上面提到過的,自從Ingres問世以來就支持觸發器和存儲過程。PostgreSQL對這些功能也早已支持。在MySQL的新版中最近也增長了存儲過程和觸發器功能。

  對於支持Web應用程序,MySQL看上去要比其餘對手錶現好。Web應用程序主要是對數據庫進行讀取操做。MySQL在這方面以速度快而見長。一些用戶表示,在快速閱讀操做方面,MySQL至少不比Oracle差。可是,當任務從閱讀數據庫轉向處理一個客戶購買操做的時候,用戶則可能更傾向於選擇Oracle而不是MySQL。

  在複製和羣集功能上,MySQL給人的印象差異很大。MySQL中的單向複製表現驚人,可是,MySQl的羣集功能被應用的很少,由於它只是基於內存的。

  2. 按易用性和管理來選擇

  開源數據庫們主要是以命令行工具中管理。儘管也有一些圖形工具可用,可是與Oracle等商業數據庫自帶的圖形管理工具相比,它們還顯得不夠靈活和穩定。

  在圖形化管理方面的贏家無疑是微軟。微軟的SQL Server管理工具不是基於瀏覽器的,而是自帶的一個終端平臺。這使得它有能力完成一些Web瀏覽器所不能實現的強大功能。一些用戶但願Oracle中的管理功能也和SQL Server中同樣好。

  3. 按支持性來選擇

  當討論開源軟件的時候咱們聽到最頻繁的問題是:「咱們從哪兒能獲得支持?」

  MySQL爲它本身的客戶提供24*七、30分鐘響應時間的支持。在其Unlimited服務中還有不少不一樣的付費支持級別。正如上面所提到的,PostgreSQL的支持來自於不一樣的平臺廠商,支持的內容、成本、地區和要求因廠商不一樣而不徹底同樣。

  因爲開源數據庫的源代碼能夠被任何人查看和修改,這致使了幾個潛在的問題。

  一個合法客戶對數據庫進行了修改會發生什麼?Sun公司不會對這種狀況提供支持,而MySQL公司將提供支持,可是須要知足一些特定條件和狀況。事實上,能對這些開源產品進行修改的客戶的數量是很是少的——這與產品的複雜度有關係。

  另外一個開源軟件的問題是,任何人能夠對產品進行修改的現實會帶來一些潛在的漏洞或安全問題。諸如此類的事情已經發生過,客戶須要確信從熟悉的網站下載這些產品,而且確認它們能夠經過MD5校驗。

  4. 按成本因素來選擇

  數據庫中成本因素是很是簡單的。

  對於開源數據庫,你能夠免費獲得受權,可是同時也犧牲了一些功能。而對於商業數據庫,你可使用更多強大的功能,可是你須要按每一個拷貝或每一個CPU來支付受權費用。

  對於開源數據庫,在維護成本方面,儘管看上去你能夠選擇不從廠商那兒購買支持合同,由於你擁有源代碼,可是實際上並不如此簡單。

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

  對於商業數據庫,你只有面臨一個選擇,若是你想獲得來自它們的維護支持,那麼就購買它們的支持合同。

  3、結論

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

  若是你由於懼怕缺少支持而對開源數據庫敬而遠之,那麼咱們的文章已經告訴你,你能夠把這些擔憂拋開了,三個主流開源數據庫都由實力強大的企業或組織來提供支持,響應時間和專業程度徹底能夠和商業數據庫廠商相媲美。

  切記,不選最好的,只選最適合你的。


原文出自【比特網】,轉載請保留原文連接:http://soft.chinabyte.com/465/7733465.shtml

相關文章
相關標籤/搜索