1. 程式人生 > >幾個關係型資料庫各方面比較

幾個關係型資料庫各方面比較

1IBM DB2

DB2是IBM著名的關係型資料庫產品,DB2系統在企業級的應用中十分廣泛。截止2003年,全球財富500強(Fortune 500)中有415家使用DB2,全球財富100強(Fortune100)中有96家使用DB2,使用者遍佈各個行業。2004年IBM的DB2就獲得相關專利239項,而Oracle僅為99項。DB2目前支援從PC到UNIX,從中小型機到大型機,從IBM到非IBM(HP及SUN UNIX系統等)的各種操作平臺。
   IBM絕對是資料庫行業的巨人。1968年IBM在IBM 360計算機上研製成功了IMS這個業界第一個層次型資料庫管理系統,也是層次型資料庫中最為著名和最為典型的。1970年,IBM E.F.Codd發表了業界第一篇關於關係資料庫理論的論文“A Relational Model of Data for Large Shared DataBanks”,首次提出了關係模型的概念。1974年,IBM Don Chamberlin和Ray Boyce通過System R專案的實踐,發表了論文“SEQUEL:A Structured English Query Language”,我們現在熟知SQL就是基於它發展起來的。IBM 在1983年釋出了DATABASE 2(DB2)for MVS(內部代號為“Eagle”),這就是著名的DB2資料庫。2001年IBM以10億美金收購了Informix的資料庫業務,這次收購擴大了IBM分散式資料庫業務。2006 DB2 9作為第三代資料庫的革命性產品正式在全球釋出。

作為關係資料庫領域的開拓者和領航人,IBM1977年完成了System R系統的原型,1980年開始提供整合的資料庫伺服器—— System/38,隨後是SQL/DSforVSEVM,其初始版本與SystemR研究原型密切相關。

DB2 forMVSV1 1983年推出。該版本的目標是提供這一新方案所承諾的簡單性,資料不相關性和使用者生產率。1988DB2 for MVS 提供了強大的線上事務處理(OLTP)支援,1989 年和1993 年分別以遠端工作單元和分散式工作單元實現了分散式資料庫支援。最近推出的DB2 Universal Database 6.1則是通用資料庫的典範,是第一個具備網上功能的多媒體關係資料庫管理系統,支援包括

Linux在內的一系列平臺。

Oracle 前身叫SDL,由Larry Ellison 和另兩個程式設計人員在1977創辦,他們開發了自己的拳頭產品,在市場上大量銷售,1979 年,Oracle公司引入了第一個商用SQL 關係資料庫管理系統。Oracle公司是最早開發關係資料庫的廠商之一,其產品支援最廣泛的作業系統平臺。目前Oracle關係資料庫產品的市場佔有率名列前茅。

Oracle公司是目前全球最大的資料庫軟體公司,也是近年業務增長極為迅速的軟體提供與服務商。IDC(Internet Data Center)2007統計資料顯示資料庫市場總量份額如下:Oracle 44.1% IBM 21.3%Microsoft 18.3% Teradata 3.4% Sybase 3.4%。不過從使用情況看,BZ Research的2007年度資料庫與資料存取的綜合研究報告表明76.4%的公司使用了Microsoft SQL Server,不過在高階領域仍然以Oracle,IBM,Teradata為主。
    2007年7月12日,甲骨文公司在美國紐約宣佈推出資料庫Oracle 11g,這是Oracle資料庫的最新版本。Oracle介紹說,Oracle 11g有400多項功能,經過了1500萬個小時的測試,開發工作量達到了3.6萬人/月。Oracle 11g在安全,XML DB,備份等方面得到了很大提升。Oracle發展歷史見轉載《書寫歷史的甲骨文–ORACLE公司傳奇》一文。

  InformixIBM公司出品2001的關係資料庫管理系統(RDBMS)家族。作為一個整合解決方案,它被定位為作為IBM線上事務處理(OLTP)旗艦級資料服務系統。Informix1980年成立,目的是為Unix等開放作業系統提供專業的關係型資料庫產品。公司的名稱Informix便是取自Information Unix的結合。Informix第一個真正支援SQL語言的關係資料庫產品是Informix SEStandardEngine)。InformixSE是在當時的微機Unix環境下主要的資料庫產品。它也是第一個被移植到Linux上的商業資料庫產品。

美國Sybase公司研製的一種關係型資料庫系統,是一種典型的UNIXWindowsNT平臺上客戶機/伺服器環境下的大型資料庫系統。Sybase SQL Server 是 Sybase 公司產品。Sybase公司成立於1984年11月,產品研究和開發包括企業級資料庫、資料複製和資料訪問。

Sybase公司成立於1984年,公司名稱“Sybase”取自“system”“database” 相結合的含義。Sybase公司的創始人之一Bob Epstein Ingres 大學版(與System/R同時期的關係資料庫模型產品)的主要設計人員。公司的第一個關係資料庫產品是19875月推出的Sybase SQLServer1.0Sybase首先提出Client/Server 資料庫體系結構的思想,並率先在Sybase SQLServer 中實現。

   起初,為了在企業級資料庫市場上與Oralce和IBM競爭,Sybase與Microsoft合作共同開發資料庫產品。1988年,Sybase、Microsoft和Asbton-Tate聯合開發了OS/2系統上的SQL Server 1.0,本質上和Sybase SQL Server 3.0是一樣的。而後Microsoft致力於將SQL Server移值到Win NT平臺上。Sybase與Microsoft的合作關係一直堅持到SQL Server 4.21(1993),隨後各自開發相應平臺的資料庫系統。1995年,Sybase釋出了SQL Server 11.0。為了區別於Microsoft SQL Server, Sybase將其11.5以及以上版本的SQL Server改名為Adaptive Server Enterprise (ASE)。2005年9月,Sybase強勢釋出Adaptive Server Enterprise 15。Sybase SQL Server與Microsoft SQL Server都使用T-SQL(Transact-SQL 由SQL擴充套件而來)做為資料庫語言。

Sybase提供了一套應用程式程式設計介面和庫,可以與非Sybase資料來源及伺服器整合,允許在多個數據庫之間複製資料,適於建立多層應用。系統具有完備的觸發器、儲存過程、規則以及完整性定義,支援優化查詢,具有較好的資料安全性。Sybase通常與SybaseSQLAnywhere用於客戶機/伺服器環境,前者作為伺服器資料庫,後者為客戶機資料庫,採用該公司研製的PowerBuilder為開發工具,在我國大中型系統中具有廣泛的應用。 

Microsoft SQL Server是微軟公司開發的大型關係型資料庫系統。SQL Server的功能比較全面,效率高,可以作為中型企業或單位的資料庫平臺。SQL Server可以與Windows作業系統緊密整合,不論是應用程式開發速度還是系統事務處理執行速度,都能得到較大的提升。對於在Windows平臺上開發的各種企業級資訊管理系統來說,不論是C/S(客戶機/伺服器)架構還是B/S(瀏覽器/伺服器)架構,SQL Server都是一個很好的選擇。SQL Server的缺點是隻能在Windows系統下執行。

1987 年,微軟IBM合作開發完成OS/2IBM 在其銷售的OS/2 ExtendedEdition 系統中綁定了OS/2Database Manager,而微軟產品線中尚缺少資料庫產品。為此,微軟將目光投向Sybase,同Sybase 簽訂了合作協議,使用Sybase的技術開發基於OS/2平臺的關係型資料庫。1989年,微軟釋出了SQL Server 1.0 版。 Microsoft在與Sybase分道揚鑣後,隨後在其6.05和7.0版本中重寫了核心資料庫系統,如今SQLServer 2008即將到來。

PostgreSQL是以加州大學伯克利分校計算機系開發的 POSTGRES,版本 4.2為基礎的物件關係型資料庫管理系統(ORDBMS)。 POSTGRES 領先的許多概念只是在非常遲的時候才出現在商業資料庫中。 

PostgreSQL 是一種特性非常齊全的自由軟體的物件——關係性資料庫管理系統(ORDBMS),它的很多特性是當今許多商業資料庫的前身。PostgreSQL最早開始於BSDIngres專案。PostgreSQL 的特性覆蓋了SQL-2/SQL-92SQL-3。首先,它包括了可以說是目前世界上最豐富的資料型別的支援;其次,目前PostgreSQL 是唯一支援事務、子查詢、多版本並行控制系統、資料完整性檢查等特性的唯一的一種自由軟體的資料庫管理系統.

7、mySQL

  mySQL是一個小型關係型資料庫管理系統,開發者為瑞典MySQL AB公司。在2008116號被Sun公司收購。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。MySQL的官方網站的網址是: www.mysql.com

美國Microsoft公司於1994年推出的微機資料庫管理系統。它具有介面友好、易學易用、開發簡單、介面靈活等特點,是典型的新一代桌面關係型資料庫管理系統。它結合了 Microsoft Jet Database Engine 和 圖形使用者介面兩項特點,是 Microsoft Office的成員之一。Access能夠存取 Access/Jet、Microsoft SQL Server、Oracle,或者任何 ODBC 相容資料庫的資料。Access介面友好而且易學易用,作為Office套件的一部分,可以與Office整合,實現無縫連線Access提供了表(Table)、查詢(Query)、窗體(Form)、報表(Report)、巨集(Macro)、模組(Module)等用來建立資料庫系統的物件。提供了多種嚮導、生成器、模板,把資料儲存、資料查詢、介面設計、報表生成等操作規範化。
   Access是入門級小型桌面資料庫,效能安全性都很一般。可供個人管理或小型網站之用。Access不是資料庫語言,只是一個數據庫程式。目前最新版本為Office 2007。其主要特點如下: 

  (1)完善地管理各種資料庫物件,具有強大的資料組織、使用者管理、安全檢查等功能。 

  (2)強大的資料處理功能,在一個工作組級別的網路環境中,使用Access開發的多使用者資料庫管理系統具有傳統的XBASE(DBASEFoxBASE的統稱)資料庫系統所無法實現的客戶伺服器(Cient/Server)結構和相應的資料庫安全機制,Access具備了許多先進的大型資料庫管理系統所具備的特徵,如事務處理/出錯回滾能力等。 

  (3)可以方便地生成各種資料物件,利用儲存的資料建立窗體和報表,可視性好。

  (4)作為Office套件的一部分,可以與Office整合,實現無縫連線。 

  (5)能夠利用Web檢索和釋出資料,實現與Internet的連線。 Access主要適用於中小型應用系統,或作為客戶機/伺服器系統中的客戶端資料庫。

最初由美國Fox公司1988年推出,1992Fox公司被Microsoft公司收購後,相繼推出了FoxPro2.52.6VisualFoxPro等版本,其功能和效能有了較大的提高。 FoxPro2.52.6分為DOSWindows兩種版本,分別運行於DOSWindows環境下。FoxProFoxBASE在功能和效能上又有了很大的改進,主要是引入了視窗、按紐、列表框和文字框等控制元件,進一步提高了系統的開發能力。

Visual FoxPro由FoxPro延伸而來,原名FoxBase,是美國Fox Software公司在1984推出的資料庫產品。FoxPro在DOS上執行,與xBase系列相相容。FoxPro是FoxBase的加強版,1992年Fox Software被微軟收購。可以說,Visual FoxPro是在dBASE和FoxBase系統的基礎上發展而成的。80年代初期,dBASE是PC機上最流行的資料庫管理系統,當時大多數的管理資訊系統採用了dBASE作為系統開發平臺。後來出現的FoxBase幾乎完全支援了dBASE的所有功能。

   Visual FoxPro出現是xBASE系列資料庫系統的一個飛躍,其不僅在圖形使用者介面的設計方面採用了一些新的技術,還提供了所見即所得的報表和螢幕格式設計工具。2002年,隨著微軟.NET口號的提出,釋出了Visual Studio .NET。在這個版本的 Visual Studio中,微軟將Visual FoxPro作為一個單獨的開發環境(Visual FoxPro 7.0)單獨銷售,不再與Studio
整合。2007年3月,微軟公司宣佈Visual FoxPro 9將是微軟的最後一款桌面資料庫開發工具軟體,今後將永遠不會出現VFP 10。微軟將會為VFP 9的普通使用者提供支援到2010年1月12日,購買擴充套件支援服務的使用者將可獲得到2015年1月13號的服務。Visual FoxPro只能在Windows系統下執行。

10、Teradata

Teradata資料庫是世界上最富盛名、功能最強大的資料倉庫管理系統,是Teradata公司產品, 1991年被NCR收購。客戶主要集中在電信,航空,物流,零售,銀行等方面。Teradata在全球資料倉庫領域處於領先地位。2007年,Teradata宣佈推出Teradata 12解決方案,包括Teradata資料庫12 (Teradata Database 12)、Teradata工具及實用程式12 (Teradata Tools and Utilities 12),以及通過應用整合和合作夥伴關係提供的專業和諮詢服務。該方案是Teradata第十二次重大資料庫產品改版。

主流資料庫詳細比較

1、效能  
SQL Server           

老版本多使用者時效能不佳,新版本的效能有了明顯的改善,各項處理能力都有了明顯的提高。保持了多項TPC-C紀錄。具體參見http://www.tpc.org/  
Oracle              
效能最高,保持Windows NT下的TPC-D和TPC-C的世界記錄。  
SYBASE           
效能較高,支援Sun、IBM、HP、Compaq和Veritas的叢集裝置的特性,實現高可用性。效能接近於SQL Server,但在UNIX平臺下的併發性要優與 SQL Server。適應於安全性要求極高的系統。  
DB2              
適用於資料倉庫和線上事物處理,效能較高。客戶端支援及應用模式。  
INFORMIX           
效能較高,支援叢集,實現高可用性。適應於安全性要求極高的系統,尤其是銀行, 證券系統的應用。  

2、可伸縮性,並行性  
SQL Server           
以前版本SQL Server並行實施和共存模型並不成熟。很難處理大量的使用者數和資料卷。伸縮性有限。新版本效能有了較大的改善,在Microsoft Advanced Servers上有突出的表現,超過了他的主要競爭對手。  
Oracle              
並行伺服器通過使一組結點共享同一簇中的工作來擴充套件Window NT的能力,提供高可用性和高伸縮性的簇的解決方案。如果Windows NT不能滿足需要, 使用者可以把資料庫移到UNIX中,具有很好的伸縮性。Oracle的並行伺服器對各種UNIX平臺的叢集機制都有著相當高的整合度。
SYBASE          
新版本具有較好的並行性,速度快,對巨量資料無明顯影響,但是技術實現複雜,需要程式支援,伸縮性有限。雖然有DB SWITCH來支援其並行伺服器,但DB SWITCH在技術層面還未成熟,且只支援版本12.5以上的ASE SERVER。DB SWITCH技術需要一臺伺服器充當SWITCH,從而在硬體上帶來一些麻煩。  
DB2            
DB2具有很好的並行性。DB2把資料庫管理擴充到了並行的、多節點的環境。資料庫分割槽是資料庫的一部分,包含自己的資料、索引、配置檔案、和事務日誌。資料庫分割槽有時被稱為節點或資料庫節點,伸縮性有限。   
INFORMIX          
採用單程序多執行緒的技術,具有較好的並行性。但是僅運行於UNIX平臺,伸縮性有限。  

3、安全性  
SQL server            
Microsoft Advanced Server 獲得最高安全認證,伺服器平臺的穩定性是資料庫的穩定性的基礎,新版本的SQL的安全性有了極大的提高。  
Oracle Server          
獲得最高認證級別的ISO標準認證。  
SYBASE            
通過Sun公司J2EE認證測試,獲得最高認證級別的ISO標準認證。  
DB2              
獲得最高認證級別的ISO標準認證。  
INFORMIX            
獲得最高認證級別的ISO標準認證。  

4、操作
SQL Server            
操作簡單,採用圖形介面。管理也很方便,而且程式設計介面特別友好(它的SQL-DMO讓程式設計變得非常方便!) ,從易維護性和價格上SQL Server明顯佔有優勢。  
Oracle           

較複雜, 同時提供GUI和命令列,在Windows NT和Unix, Linux 下操作相同。對資料庫管理人員要求較高。 
SYBASE         
複雜,使用命令列操作,對資料庫管理人員要求較高。同時提供GUI和命令列。但GUI較差,常常無法及時狀態,建議使用命令列。  
DB2           
操作簡單,同時提供GUI和命令列,在Windows NT和Unix下操作相同。 
INFORMIX         
使用和管理複雜,命令列操作。對資料庫管理人員要求較高。 

5、使用風險 
SQL Server           
完全重寫的程式碼,效能和相容性有了較大的提高,與Oracle,DB2的效能差距明顯減小。該產品的出臺經歷了長期的測試,為產品的安全和穩定進行了全面的檢測,安全穩定性有了明顯的提高。經歷了長期的測試,不斷延遲,許多功能需要時間來證明,並不十分相容。 
Oracle             
長時間的開發經驗,完全向下相容,得到廣泛的應用,完全沒有風險。可以安全的進行資料庫的升級,在企業、政府中得到廣泛的應用。並且如果在WINNT上無法滿足資料的要求,可以安全的把資料轉移到UNIX上來。  
SYBASE           
向下相容, 但是ct-library 程式不益移植。開發時間較長,升級較複雜,穩定性較好,資料安全有保障。風險小。在安全要求極高的銀行, 證券行業中得到了廣泛的應用。 
DB2             
在巨型企業得到廣泛的應用,向下相容性好。風險小。 
INFORMIX           
開發時間較長,升級較複雜,穩定性較好,資料安全有保障。風險小。在安全要求極高的銀行,證券行業中得到了廣泛的應用。 

6、開放性 
SQL Server          
只能在Windows 上執行,C/S結構,沒有絲毫的開放性,作業系統的系統的穩定對資料庫是十分重要的。只支援Windows客戶,可以用ADO,DAO,OLEDB,ODBC連線。Windows9X系列產品是偏重於桌面應用,NT server適合各種大中小型型企業。作業系統的系統的穩定對資料庫是十分重要的。Windows平臺的可靠性,安全性經過了最高級別的C2認證的。在處理大資料量的關鍵業務時提供了較好的效能。而且windows平臺的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經考驗,尤其是在處理大資料庫。  
Oracle          
能在所有主流平臺上執行(包括 Windows)。完全支援所有的工業標準。採用完全開放策略。多層次網路計算,支援多種工業標準,可以用ODBC,JDBC,OCI等網路客戶連線。可以使客戶選擇最適合的解決方案。對開發商全力支援。 
SYBASE         
能在所有主流平臺上執行,C/S結構,可以用ODBC、Jconnect、Ct-library等網路客戶連線。在銀行業中得到了廣泛的應用。但由於早期Sybase與OS整合度不高,因此VERSION11.9.2以下版本需要較多OS和DB級補丁。在多平臺的混合環境中,會有一定問題。
DB2           
能在所有主流平臺上執行(包括windows)。有較好的開放性,最適於海量資料。跨平臺,多層結構,支援ODBC,JDBC等客戶。在大型的國際企業中得到最為廣泛的應用,在全球的500家最大的企業中,幾乎85%以上採用DB2資料庫伺服器,而國內到97年約佔5%。
IINFORMIX         
僅執行在UNIX平臺,包括SUNOS、HPUX、 ALFAOSF/1。在銀行中得到廣泛的應用。

7、易維護性和價格 
SQL Server           
從易維護性和價格上SQL Server明顯佔有優勢。基於Microsoft的一貫風格,SQL Server的圖形管理介面帶來了明顯的易用性,微軟的資料庫管理員培訓進行的比較充分,可以輕鬆的找到很好的資料庫管理員,資料庫管理費用比較低,SQL Server的價格也是很低的,但是在License的購買上會擡高價格。總體來說SQL Server的價格在商用資料庫中是最低的。 
Oracle         
從易維護性和價格體來說Oracle的價格是比較高的,管理比較複雜,由於Oracle的應用很廣泛,經驗豐富的Oracle資料庫管理員可以比較容易的找到,從而實現Oracle的良好管理。因此Oracle的效能價格比在商用資料庫中是最好的。 
SYBASE         
SYBASE的價格是比較低的,但是SYBASE的在企業和政府中的應用較少,很難找到經驗豐富的管理員,執行管理費用較高。 

DB2             
價格高, 管理員少,在中國的應用較少,執行管理費用都很高,適用於大型企業的資料倉庫應用。  
INFORMIX          
價格在這些系統中居於中間,與SYBASE一樣,在企業和政府中應用較少,僅在銀行中得到了廣泛的應用。經驗豐富的管理人員較少,執行管理費用高。  

8、資料庫二次開發  
SQL Server            
資料庫的二次開發工具很多,包括Visual C++, Visual Basic等開發工具,可以實現很好的Windows應用。開發容易。  
Oracle              
資料庫的二次開發工具很多,涵蓋了資料庫開發的各個階段,開發容易。  
SYBASE          
開發工具較少,經驗豐富的人員很少。  
DB2            
在國外巨型企業得到廣泛的應用,中國的經驗豐富的人員很少。  
INFORMIX          
在銀行業中得到廣泛的應用,但是在中國的經驗豐富的人員很少。