DB2是IBM的數據庫產品,近年來Oracle、Sybase等數據庫的大力發展曾使很多人認為DB2將逐步退出數據庫市場,但幾年過去了,DB2不但沒有退出的跡象,反而一步步發展壯大,逐步奪回失去的市場。在這篇文章中我將其與Oracle、Sybase等數據庫作一簡單的對比,希望能讓讀者了解DB2能屹立不倒的原因。
DB2與Oracle比較
開放性/可移植性
IBM DB2 UDB在各層面,從網絡協議的支持到應用開發程序的編程接口,數據庫存儲程序及觸發器,服務器之間的分布式運作,都是基於最新的國際標准,以確保其開放性及移植性。ORACLE的許多功能都是使用其私有的,非開放性的技術。例如:ORACLE PL/SQL語言是ORACLE私有的。其存儲程序語句也不符合ANSISQL及ISOSQL的標准,客戶機/服務器的編程接口,Oracle的SQL*NET也不是根據標准定義的。
處理性能
IBM發明了關系型數據庫以及其優化技術,並不斷發展,所以DB2在各種性能測試中均占領先地位。IBM有信心能在各種標准的測試環境下超越ORACLE。DB2在高端應用具有過硬的技術,有眾多超過1Tera-bytes數據量的用戶實例。由於ORACLE限制用戶在未經許可的情況下不能公布他們所作的性能測試,故一般用戶不易取得ORACLE的比較資料。Oracle超過1Tera-bytes數據量的客戶實例很少。
並行能力
DB2的並行版支持位圖索引和對象關系,因此,DB2有更好的擴展性和性能。
Oracle觸發器無法支持並行:在一些特殊的引用完整性(referentialintegrity)的限制下,並行也無法運用:如果表格中有大對象,由於前述的限制(表不能分割),並行也無法運用。總之,Oracle在並行系統中沒有實現位圖索引和對象關系,
分布式數據庫
DB2分布式數據庫的處理(如兩階段提交)及連接功能是建立在DB2的核心中,不需要使用其它的產品附件。性能好,易使用,減少開支。Oracle的分布式功能需要另外購買DistributedOption以及SQL*NET等產品才能實現分布式數據庫的連接。
異構平台支持
在異構的環境中,IBM數據庫方案簡單、更加無縫而且比Oracle的成本低; Oracle的異構網關性能差,當訪問異構數據庫時,Oracle缺乏全局的優化,導致了過多的數據及網絡傳輸。
復制能力
DB2提供業界最佳效率的和最開放的復制方案;DB2提供自動沖突檢測和解決方法。 Oracle只提供自動沖突檢測和解決方法的例子程序,用戶須對例子程序做定制後來解決復制沖突
對電子商務支持
IBM的Java技術為業界所公認,DB2公認為電子商務基石。DB2提供的JDBC接口,還可用Java語言寫儲存過程和用戶自定義函數 Oracle的Java技術僅局限於數據庫和ERP應用。
對商業智能支持
DB2OLAPServer遠比Express更易使用和實現。DB2OLAPServer提供讀/寫能力-這對一些關鍵性的多維分析擴展應用如:預測和預算,是非常有用的(Express只支持讀)。IBM的商業智能解決方案中,擁有數據挖掘(IntelligentMiner)工具。 OracleExpress只支持讀的能力,不利於支持預測和預算。Oracle缺乏數據挖掘方面的工具。
軟件質量與可靠性
DB2的軟件開發實驗室早在1994年便已通過ISO9000國際質量管理標准的驗證與認可。故DB2的軟件質量是所有數據庫廠家中可靠性最高,故障率最低的數據庫。 Oracle版本6及版本7在推出後皆需經過無數次修訂版升級才能達到一定程度的可用度,這給用戶帶來極大的不便,並且嚴重影響到投產系統的可用性及可靠性。
DB2與Sybase比較
開放性/可移植性
IBMDB2的編程接口遵照ANSI、X/OPEN標准的CLI(CallLevelInterface)及ANSISQL的嵌入式SQL等開放標准。IBMDB2的存儲程序和觸發器機制則使用最新的SQL國際標准並支持標准的開放語言如C/C++。在DB2CommonServerV2.1.2(1996)以及DB2UDB(1997)中更加入了用Java語言開發存儲程序和觸發器的功能。 1.編程接口:SYBASE使用的編程接口不是開放的,因為他使用的是自己的OpenClIEnt/OpenServer接口,而不是基於某一標准的接口。2.存儲程序(StoredProcedure):由於Sybase的CLIENT/SERVER技術是80年代開發的,沒有使用SQL92等相關的標准,因此編制存儲程序和觸發器所用的Transact-SQL也是它們自己專用的。
處理性能
IBM發明了關系型數據庫以及其優化技術,並不斷發展,所以DB2在各種性能測試中均占領先地位。DB2在高端應用具有過硬的技術,有眾多超過1Tera-bytes數據量的用戶實例。 SYBASE的優化器(OPTIMIZER)不能有效的支持復雜的查詢(ComplexQuerIEs)。應用程序中稍微復雜一些的SQL語句,SYBASE的優化器就無法妥善優化處理。SYBASE剛剛進入海量多處理器MPP的領域,缺乏這方面的經驗及先例,Sybase大於一個TB數據量的客戶實例很少。
並行能力
DB2的並行版支持位圖索引和對象關系,因此,DB2有更好的擴展性和性能; Sybase數據庫核心結構較陳舊,尤其在多處理器(SMP)的服務器上無法做到軟硬件相配合的延伸與擴展(scale),無法發揮多處理器的優勢。其單進程多線索的結構就無法象DB2的多進程多線索的結構更能有效地在SMP等機器上運行。
高可用性
DB2可以用數據庫及表空間兩種粒度(granularity)對數據作備份與恢復(BACKUP及RESTORE),並且備份可以在聯機方式(ONLINE)下進行,不影響多用戶的同時使用。
這使得DB2能真正地滿足一天24小時、一星期七天的全天候使用。 SYBASE在BACKUP數據庫及RESTORE數據庫時,需要將系統轉為單一用戶模式以保證數據庫中數據的完整性及一致性,並且在BACKUP之後,要運行DBCC檢查數據的一致性,這使得Sybase數據庫在可用性方面受到限制。數據完整與可管理性
IBMDB2中數據庫可自動的維持兩表間的一致性,無需再由DBA編程。 Sybase在其數據庫技術中引入RI(ReferentialIntegrity數據引用完整性)較晚,而且功能有限。例如,當表A中的列A是另一個表B中列B的ForeignKey時,若要刪掉表A中的一個記錄,在Sybase中是不允許的,只有通過觸發器(Trigger)及存儲過程(StoredProcedure),才能刪掉表A中的一個記錄,同時刪掉表B中的相關記錄,或把其值設置為NULL。
異構平台支持
在異構的環境中,IBM數據庫方案簡單、更加無縫而且成本低; Oracle的異構網關性能差,當訪問異構數據庫時,Oracle缺乏全局的優化,導致了過多的數據及網絡傳輸。
復制能力
DB2提供業界最佳效率的和最開放的復制方案;DB2支持對數據做預處理後再復制到遠端,更有效率且網絡流量少。 Sybase是立即復制交易,數據和網絡流量大,據用戶反映,Sybase的復制難以實施。SybaseAdaptiveServerAnywhere和AdaptiveServerEnterprise之間的數據復制不是無縫連接,且要求整合工作。
對電子商務支持
IBM的Java技術為業界所公認,DB2公認為電子商務基石。DB2提供的JDBC接口,還可用Java語言寫儲存過程和用戶自定義函數 Oracle的Java技術僅局限於數據庫和ERP應用。
對商業智能支持
DB2WarehouseManager內置了數據倉庫管理功能。IBM的商業智能解決方案中,擁有數據挖掘(IntelligentMiner)工具。 Sybase數據集市(datamart)沒有提供倉庫(Warehouse)管理與自動化的功能。
軟件質量與可靠性
DB2的軟件開發實驗室早在1994年便已通過ISO9000國際質量管理標准的驗證與認可。故DB2的軟件質量是所有數據庫廠家中可靠性最高,故障率最低的數據庫。數據在IBM系統內被腐化(corrupted)不但是前所未聞,也是IBM傳統用戶所不可能忍受的。 Sybase中的數據需要小心的維護,因為數據在數據庫中有可能被“腐化(corrupted)”而無法繼續使用。在沒有事先修補的情形下,若這些數據被備份了,則它們無法再被使用。為此Sybase不得不為客戶提供一個檢查程序(DBCC)。
DB2與Informix比較
開放性/可移植性
IBMDB2UDB在各層面,從網絡協議的支持到應用開發程序的編程接口,數據庫存儲程序及觸發器,服務器之間的分布式運作,都是基於最新的國際標准,以確保其開放性及移植性。 INFORMIX私有4GL編寫的程序只能局限在INFORMIX上運行。
處理性能
IBM發明了關系型數據庫以及其優化技術,並不斷發展,所以DB2在各種性能測試中均占領先地位。DB2在高端應用具有過硬的技術,有眾多超過1Tera-bytes數據量的用戶實例。 由於INFORMIX是以小型數據庫起家,所以其產品設計到目前為止仍有許多小型數據庫的限制。許多用戶都曾遇到INFORMIX在數據存儲、日志管理、備份、恢復等方面的問題。Informix的擴展並行選項在支持多用戶並發訪問時存在困難。INFORMIX由於缺乏對大量數據的管理經驗,所以其優化器技術也不能針對大量數據做優化。
並行能力
DB2EEE能利用HACMP自動接替故障節點正常工作,Informix做不到。DB2EEE已經有多年的歷史,頒布了最高的TPC-D和TPC-H基准測試值。DB2EEE支持動態位圖索引完成Star-jion,從而既提高了性能又不增加數據庫系統管理員的維護量。 在並行機SP上,當SP的高性能開關(switch)不能通訊時,InformixXPS數據庫將處於癱瘓狀態.當並行機的節點出現故障時,InformixXPS數據庫將處於癱瘓狀態,停機時間為4到24小時;InformixXPS沒有備份和恢復。InformixXPS沒有對查詢的監控機制,有可能某一個用戶的一個查詢耗盡系統的所有資源而不讓其他用戶使用。
分布式數據庫
DB2則是通過核心直接支持XA接口,並且提供許多其它廠商所沒有的XA先進功能,例如工商銀行山東分行的DB2應用就大量地使用了DB2XA接口,實現了與CICS結合的大型聯機事物處理系統(OLTP)來支持全省通存通兌等應用。 INFORMIX對異構分布式數據庫的支持是通過X/OPEN、XA實現的。雖然INFORMIX聲稱它能夠支持X/OPEN、XA接口,但只是在某幾個版本通過附加選件完成。並且在這方面,INFORMIX很少有使用先例,也沒有這方面的技術支持。
異構平台支持
在異構的環境中,IBM數據庫方案簡單、更加無縫而且成本低; INFORMIX在數據庫與數據庫之間的連接方面很弱。例如INFORMIX沒有連接其他數據庫如bbOracle、Sybase等數據庫的產品.
復制能力
DB2提供業界最佳效率的和最開放的復制方案;DB2提供自動沖突檢測和解決方法。 Informix只支持Informix數據庫間的復制,若要同其它數據庫相互復制,則必須購買第三方支持軟件。
成功案例
DB2在國內、國際的用戶群
DB2的用戶不勝枚舉。它在全球有一百萬以上的License和超過四千萬的用戶,它在全世界有一萬一千個企業級用戶。全世界70%公司的數據儲存在IBM的數據庫裡。