IBM DB2

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
IBM DB2
開發者IBM
首次發佈1993年,​31年前​(1993
目前版本
  • 11.5.9 (2023年11月15日;穩定版本)[1][2][3]
編輯維基數據連結
程式語言C, C++
作業系統跨平台
語言英語
類型關聯式資料庫管理系統
許可協定proprietary EULA
網站www.ibm.com/products/db2/ 編輯維基數據

IBM DB2企業伺服器版本,是美國IBM公司發展的一套關係型資料庫管理系統。它主要的執行環境為UNIX(包括IBM自家的AIX)、LinuxIBM i(舊稱OS/400英語OS/400)、Z/OS,以及Windows伺服器版本。DB2也提供效能強大的各種IBM InfoSphere Warehouse版本。和DB2同級的還有另外一個關聯式資料庫管理系統:Informix英語Informix Corporation,它在2001年被IBM收購。

歷史[編輯]

DB2擁有悠久的歷史並且被很多人認為是最早使用SQL的資料庫產品。[來源請求]

DB2這個名字最早被用於資料庫管理系統Database Management System, DBMS)是在1983年當IBM發佈基於MVS大型電腦平台的DB2產品時。此前,一個叫做SQL/DS的同類產品被應用於VM大型電腦。更早期的38系統平台同樣也包含一個關係型資料庫管理系統。關係型系統(System R),是一個在70年代開發的檢索原型。DB2可以追溯至70年代初,當時在IBM工作的埃德加·科德博士描述了關係型資料庫理論並在1970年6月發表數據處理模型。為了應用這個模型科德需要一種被他稱為Alpha的關係型資料庫的語言。那個時候IBM並不相信科德想法的潛力,只是把這個專案的實施交給了一個並不在科德監管之下的程式小組,而這個小組違背了科德的關係型模型中的一些基礎理論;這個專案的實施結果就是Structured English QUEry語言(SEQUEL)。當IBM公佈其第一個關係型資料庫產品時,他們希望同樣能有一款可用於商業用途的子語言,因此IBM重新開發了SEQUEL並且命名其為SQLSQL,與流行的看法相反,並不是「依靠允許深層分支打破了面向結構的語言的基本規則」(Allen G. Taylor, 2004)的Structured Query Language的縮寫。

Informix英語Informix Corporation收購了Illustra英語Illustra並通過引進他們的Informix Universal Server使他們的資料庫引擎成為object-SQL資料庫管理系統英語Object–relational database後,甲骨文公司IBM跟隨着擴充了他們資料庫引擎能力從而也能處理關係型對象。更進一步的是,在2001年,IBM購買了Informix Corporation英語Informix Corporation並在第二年將Informix技術整合在DB2產品組中。今天,DB2可以被技術性地認為是一個object-SQL資料庫管理系統英語Object–relational database

在很多年裏,DB2作為一個全功能的資料庫管理系統,被IBM大型電腦所專用。此後IBMDB2帶向了其它平台,包括OS/2UNIX以及Windows伺服器,然後是Linux(包括Linux on zSeries)和PDAs。這一轉變主要發生在90年代。DB2大型電腦版本的結構靈感部分來源於IBM DL/1IBM IMS,這兩者最初都是層次型資料庫然後轉變為網絡型(CODASYL)資料庫。DB2也被嵌入在了用於IBM System ii系列,以前的AS/400)的i5/OS作業系統中,並且也有可用於z/VSEz/VM的版本。

DB2 LUW(Linux, Unix, Windows)的一個較早的代碼版本是OS/2一個擴充版本組件Database Manager的一部分。IBM多次擴充了Database Manager的功能,包括在區域網絡內允許遠端共用訪問的分配式資料庫功能。最終IBM宣佈在Database Manager的代碼中存在不可克服的複雜度問題,並且作出了困難的決定,在其多倫多實驗室完全重寫了這個軟件。新版本的Database Manager被稱為DB2,如同其在大型電腦上的前身一樣,同樣被執行在OS/2和RS/6000平台上,並分別被稱為DB2/2和DB2/6000。基於不同代碼的其它版本的DB2也遵循同樣的命名規則被叫做DB2/400(應用於AS/400),DB2/VSE(應用於 DOS/VSE環境)和 DB2/VM(應用於VM作業系統)。IBM的律師終止了這種簡便的命名方式並決定所有的產品都要被命名為「產品 for 平台」(例如,DB2 for OS/390)。接下來的新一代基於大型電腦和伺服器的產品被命名為DB2 Universal Database(DB2 UDB),但是這給DBMS的版本區分帶來了很大的混淆(大型電腦版本或者伺服器版本),出於這一點考慮,DB2大型電腦版本和伺服器版本使用完全不同的語言開發(大型電腦版本使用PL/S,伺服器版本使用C++),但是兩者共用非常相似的功能並使用相同的SQL最佳化的構架:Starburst Optimizer。

多年來DB2跟隨更新並促進了大量的硬件更新,特別是在IBM System z上的比如Parallel Sysplex數據共用特性。事實上,DB2 UDB Version 8 for z/OS現在只能在64位元系統上執行而不能執行在較早的處理器上,DB2 for z/OS保留了一些與眾不同的軟件特性為一些尖端客戶服務。雖然最終的軟硬件升級都歸結於IBM大型電腦,但在一定程度上這種擴充也發生在其它的平台上,IBM的軟件工程師們總和對應的硬件工程師們一起協同合作。

在90年代中期,IBM發佈了一組最初應用在AIX上的被稱為DB2 Parallel Edition的實現。此版本通過提供無分享架構(shared nothing architecture)而允許軟件更強的可伸縮性。在這個構架中一個單獨的大型資料庫被分割跨接在多個IBM伺服器上並通過高速連結來通訊。這個DB2版本最終被接入所有的Linux、UNIX以及Windows(LUW)平台並被重新命名為DB2 UDB Enterprise Server Edition(ESE)。IBM現在將這款產品稱為Database Partitioning Feature(DPF)並把它作為DB2旗艦企業級產品的附加功能售賣。

2006年年中,IBM宣佈應用在分散式平台以及z/OS上的DB2 9代碼名稱為「Viper」。DB2 9 for z/OS 於2007年年初被公佈。IBM聲明這個全新的DB2將是第一款「天然」儲存XML的關係型資料庫。其它的改進包括在分散式平台上OLTP相關的升級,z/OS 商業智能(Business intelligence)/數據倉庫(data warehousing)相關升級,更多的自我校正和自我管理特性,附加的64位元機的開發(專為在z/OS上的虛擬儲存而開發),在z/OS上儲存程序(stored procedure)效能的提高,並且繼續提高在z/OS和分散式平台之間的SQL詞表的收斂。

基於分散式平台的DB2 9在2006年7月28日全球售賣,DB2 9 Express的價格自4,874美元/處理器或者165美元/用戶(至少5個用戶)起,包括一年的技術支援。基於z/OS的DB2價格從大約4,450/月起,包括技術支援。

版本[編輯]

DB2有眾多的版本,或者是許可證。為了弱化「版本」的概念增強可選擇性,IBM允許客戶不購買他們不需要的特性。範例版本包括Express、Workgroup和Enterprise版本。基於Linux/UNIX/Windows的最複雜的版本是DB2 Data Warehouse Enterprise Edition,縮寫為DB2 DWE。這個版本偏重於混合工作負荷(線上交易處理數據倉庫)和商業智能的實現。DB2 DWE包括一些商務智能的特性例如ETL數據發掘OLAP加速以及in-line analytics。

基於z/OS的DB2有着自己的許可證系列。自Version 8開始,IBM使基於z/OS的DB2和其它平台的DB2更為接近。(例如以前在SQL詞表中存在很顯著的差異。)基於z/OS的DB2有一些專有特性——引人注意的多級安全模式(Multi-level Security,MLS)、巨大的表容量以及硬件輔助壓縮——這些特性取決於特殊的執行環境以及客戶的需要。基於z/OS的DB2總是以領導OLTP效能和能力而聞名,並且它支援重要商務操作的可靠性和有效性同樣廣為人知。但是現在z/OS版本開始同樣具備了商業智能特性,例如物化查詢表(materialized query tables, MQTs)和星型架構(star schema)。Oracle的CEO Larry Ellison評價DB2 for z/OS為他所尊重和欽佩的一個資料庫競爭對手。

2006年1月30日,IBM發佈了一個DB2免費版本DB2 Express-C。這是對最近公佈的Oracle免費版本10g以及微軟免費版本SQL Server的回應。和Oracle以及微軟的免費版本不同,Express-C,它不限制用戶數量以及資料庫的大小。DB2 Express-C 8.2版本和9.1版本對執行伺服器的硬件有所限制,而DB2 Express-C 9.5卻可以在Windows以及Linux的任何大小的機器上執行,只是資料庫引擎最多只能使用2個CPU內核和2GB的記憶體。2007年IBM提供了一個為期一年的服務支援產品叫做Fixed Term License(FTL),對每一台伺服器只要你每年付3000美元,將會得到Express-C一年的電話技術支援。購買FTL後DB2 Express-C引擎可以被允許用於高達4核的CPU以及4GB的記憶體。沒有購買FTL的DB2 Express-C用戶也可以在免費公開討論區上得到IBM技術人員和其他DB2用戶的技術支援和幫助。

競爭對手[編輯]

自80年代中期開始,資料庫管理軟件市場就被Oracle所佔據。2004年5月3日,IBM資料庫開發和銷售的高層人員,Janet Perna,宣佈他們的主要競爭對手為Oracle的進階事務處理(advanced transaction handling)以及Teradata的決策支援系統(decision support systems)(例如數據倉庫)。但是,在較小的市場中也有其他的競爭者,包括Microsoft SQL Server(只能被應用於Microsoft Windows),開源軟件產品例如FirebirdPostgreSQLMySQL,以及針對特殊用戶群的產品如SybaseMaxDB

在資料庫管理軟件競爭市場,資料庫可以成兆百萬位元組的增長,IBM的資料庫分區特性(Database Partitioning Feature, DPF)通常被用來和Oracle的Real Application Clusters(RAC)對比,RAC是一個共用硬碟的實現,作為Oracle Parallel Server(OPS)較早地為人所知。雖然DB2在價格上沒有明顯的優勢,但DB2 for z/OS似乎少有直接的競爭對手,值得注意的是,Oracle正在吸引客戶到其Linux on zSeries產品上。CA-Datacom和Software AG的ADABAS也在基於z/OS的關係型資料庫上進行競爭,而且也有一些其它的針對特殊用戶的產品佔有一定的市場(如Model 204、SUPRA SQL、NOMAD等)。Oracle擁有可用於z/OS的31位元RDBMS。非關係型資料庫競爭產品包括IMS、CA-IDMS等。

在Transaction Processing Performance Council的網站上,IBM和DB2常常居於TPC-C and TPC-H行業水準的首位。 2006年IBM通過發佈一系列整合了DB2 Warehouse Edition和IBM system p (AIX)或者IBM system x (Linux)伺服器的預架構軟硬件系統的產品線來應對在日漸顯現的數據倉庫應用上的競爭。這個"warehouse appliance-like"系統系列產品被命名為IBM Balanced Configuration Unit,縮寫為BCU,此系列產品瞄準以Netezza和DATAllegro為代表的倉庫應用市場,但是它使用了DB2全功能特徵並藉此區別於單一面向數據倉庫的RDBMS。

技術資訊[編輯]

從命令列方式到圖形化使用者介面都可以使用DB2。命令列介面要求對產品知識的更多了解同樣也更容易編寫指令碼並自動執行。圖形介面是一個多平台的Java客戶端,它包含了多種針對新手用戶的精靈服務。DB2同時支援SQL和XQuery。DB2本地執行XML數據儲存,在這裏XML數據以XML(不是關係型數據或者CLOB數據)格式儲存以更快地通過使用XQuery進行存取。

DB2擁有基於.NET CLI, Java, Python, Perl, PHP, Ruby, C++, C, REXX, PL/I, COBOL, RPG, FORTRAN的APIs,以及很多其它的程式語言。DB2同樣支援整合於Eclipse和Visual Studio .NET整合開發環境之中。

錯誤處理[編輯]

DB2電腦程式一個重要的特徵就是錯誤處理。SQL communications area(SQLCA)結構曾一度被專門用於DB2程式在每個SQL陳述式被執行後向應用程式返回錯誤資訊。在SQLCA block中常見錯誤診斷被體現在SQLCODE中。

SQL返回代碼的值對應為:

  • 0表示成功執行
  • 正值表示成功執行但是有一個或多個警告。例如+100表示沒有行被發現。
  • 負值表示出現錯誤。例如-911表示鎖逾時(或死結),並觸發復原程式。

DB2後來的版本增強了SQL陳述式執行的功能性和複雜性。多個錯誤或警告可以通過執行SQL陳述式被返回;它可以啟動一個資料庫觸發器和其它SQL陳述式。替代最初的SQLCA,錯誤資訊現在被連續不斷的GET DIAGNOSTICS陳述式執行所檢索。

察看更多的常見SQLCODEs列表SQL返回值英語SQL_Return_Codes

培訓及認證[編輯]

目前,IBM提供多種培訓和認證,在其官方網站上都有提供。

用戶組[編輯]

IDUG是International DB2 Users Group的縮寫,這是一個獨立的、非盈利的使用IBM 關係型資料庫管理系統(RDBMS)DB2的IT專業人才聯盟。IDUG提供培訓、技術資源、點網絡工作的機會、線上資源以及其它專案來使DB2用戶提高他們使用DB2的能力以達到自己的工作目標。

相關條目[編輯]

相關資訊[編輯]

外部連結[編輯]

  1. ^ 1.0 1.1 Db2 Documentation. [2023年11月15日]. 
  2. ^ 2.0 2.1 ibmcom/db2:11.5.9.0. [2023年11月15日]. 
  3. ^ 3.0 3.1 Download Db2 Fix Packs by version for DB2 for Linux, UNIX and Windows. [2023年11月15日].