IBM Db2
IBM Db2
IBM Db2 (あいびーえむ でぃーびーつー)は、1983年よりIBMが開発・販売するデータベース管理システムの1つであり、および当製品を中心としたデータ管理ソフトウェア群のブランド名。
旧称はIBM DB2、IBM Database 2など。DB2は関係データベースだが、2001年以降はオブジェクトデータベース機能やXMLデータベース機能なども持つ。DB2ファミリーは、IBMのソフトウェアブランドの1つであるIBM Information Management Softwareを構成する。データベース言語であるSQLを初めて採用した関係データベース管理システムと言われている。
稼働プラットフォームにより以下製品がある。
Db2 (Linux、UnixおよびWindows用。LUWとも略される。)
Db2 for z/OS (z/OS用)
DB2 Server for VSE&VM (z/VSE及びz/VM用)
DB2 Server for i (IBM i用。IBM iのコンポーネント。)
Db2はIBMの関係データベース用のミドルウェアである。1981年にメインフレームのDOS/VSEおよびVM/CMS用のSQL/DSが登場し、1983年のMVS用がDB2と名付けられ、1990年代にUNIX版やWindows版などが追加され、更にオブジェクト管理データベースを兼ねたORDBMSとなった。IBMは関係データベースの概念を世界で初めて提唱したが、製品の出荷はオラクルが先となった。特徴としては、大規模なデータベースを支える信頼性とスケーラビリティ、コストベースの照会最適化、メインフレーム用からパーソナルコンピュータ用までのマルチプラットフォーム対応などが挙げられる。
なお、IBMのデータベース関連のソフトウェアブランド名も従来は「DB2」で、多数の製品群でDB2ファミリーを形成した。しかし2001年のIBMによるInformix買収後は、ソフトウェアブランド名は徐々に「Information Management Software」に変更され、DB2ファミリーやInformixファミリーはその中の製品群となった。
DB2 (Database2) との名称は、1983年にメインフレーム用のRDBMSとして発表された際に、従来の階層型データモデルのデータベース管理システム(DBMS; IMS、DL/Iなど)との対比で与えられた。バージョン7、8ではDB2ユニバーサルデータベース (DB2 UDB) と称したが、バージョン9ではUDBの名称は消えた。
2017年6月、「Db2」にリブランドした。
プラットフォームのアーキテクチャに応じて、以下の製品構成に大別される(実際の製品名では、これらにバージョンやエディションを組み合わせる)。
DB2 for z/OS
z/OS用。DB2ファミリーの元祖。クラスタリングはDISK共有モデル。
DB2 Server for VSE and VM
VSE, VM用。従来の「SQL/DS for VSE and VM」を改名したもの。
DB2 for i
IBM i用。内部的にはH/W(AS/400、iSeries、System i、Power Systems i Edition)標準の、H/WのRDBMS機能を使用している。単独製品ではなく、IBM i の標準機能として提供されている。
DB2 for Linux, UNIX and Windows (DB2 for LUW)
Linux, AIX, HP-UX, Solaris, Windows用。従来の「DB2 for Multiplatform」。ソフトウェアでRDBMS機能を実現している。オプションのクラスタリングはシェアードナッシングモデルだった。ただし2009年10月にAIXの特定のモデルのみDB2 pureScaleを用意しておりこちらはメインフレーム版のDB2およびOracleRACと同じDISK共有モデルを採用している。
Db2は長い歴史をもつソフトウェアである。一部の人々は、Db2がデータベース言語SQLを初めて採用した関係データベース管理システム (RDBMS) の製品だと考えている。
1980年にIBMはSystem/38(現在の System i)というコンピュータシステムをリリースした。System/38 では、そのシステムの中核部分に、RDBMSの機能を統合していた。1981年にIBM はSQL/DSというRDBMS製品をリリースし、1983年にはDB2 (Database2) をリリースした。SQL/DSとDB2は、IBMのメインフレームで動くRDBMSであった。IBMがRDBMを製品化する以前には、IBMで 1970年代に研究目的で開発されたRDBMSであるSystem Rがあった。SQL/DSとDB2は、IBMに勤めていたエドガー・F・コッド博士が 1969年に論文で発表した関係データベースの理論 (関係モデル) と、System Rが基礎となっている。
System Rは、IBMのサンノゼ研究所で 1970年代に行われた、関係モデルをソフトウェアとして実装するプロジェクトであった。System R で、コッドは関係データベースを扱う言語を必要とした。コッドはこのためにデータベース言語を設計し、Alphaという名前をつけた。IBMはこのとき、コッドが考案した関係データベースの理論に秘められた可能性を、軽視していた。そのためIBMは、関係データベースを実装するためのプログラマのチームをコッドに預けたが、このプログラマたちはもともとコッドの管理下にいた人々ではなかった。このプログラマたちは、関係モデルのいくつかの重要な構成要素を曲解してしまった。こうした混乱はあったものの、System Rプロジェクトは成功し、RDBMSが実用化できることが示された。
System Rの成果の一つが、データベース言語SEQUELである(コッドのAlphaとは別の言語)。SEQUELは、"Structured English QUEry Language" を略した呼称である。しかしSEQUELという名称は、当時すでに別の会社が登録商標としていた。そのためIBMは、"Structured Query Language" の短い呼称として、頭文字をとってSQLという名称に変え、現在に至っている。
データベースの歴史においては、Informixが自社の関係データベース管理システムInformixのエンジンをオブジェクト関係データベース管理システムのエンジンに改良したときのことが特筆される (Informix Universal Server) 。Informixは、Informixのデータベースエンジンの改良を、Illustraを買収して Illustraのユニバーサルサーバの技術を導入することによって、行った。Informixの動きをみて、オラクルとIBMも追随した。両社は、それぞれのデータベースエンジンを改良し、オブジェクト指向関係データベース管理システムの機能を、拡張機能として実装した。このとき、IBMはDB2を「DB2ユニバーサルデータベース」(DB2 UDB) という名称にしている。2001年に、IBMはInformixを買収した。その後、IBMはInformixの技術をDB2の製品群に導入している。現在 DB2 は、技術的にはオブジェクト関係データベース管理システム (ORDBMS) として位置づけられる。
長い間、DB2はIBMの汎用コンピュータ(System/370やSystem/390、AS/400など)のプラットフォームの上でしか動かなかった。先述したように、IBMのコンピュータSystem/38(後のAS/400、現在のSystem i)では、そのシステムの中核部分に、RDBMSの機能を統合していた。このRDBMSの機能には当初は名前がつけられていなかったが、1994年にDB2/400と名付けられた。DB2/400はDB2ソフトウェア群の一つと位置づけられている。DB2/400は、現在ではDB2 for IBM iという名称で呼ばれることが多い。
1990年代にIBMはDB2を他のプラットフォームに移植し、DB2はUNIX、Windowsサーバ、Linux(Linux on IBM System zも含む)、各社の携帯情報端末 (PDA) でも動くようになった。DB2の実装の細部は、一部、IBM DL/IとIBM IMSという階層型データベースが基になっている。IBMが近年開発した汎用コンピュータSystem zのOSである、z/VSEやz/VMで動作するDB2のバージョンも、利用することができるようになっている。少し前のDB2のバージョンは、OS/2向けにも提供されていた。
主なバージョンのリリース年月 (GA, General Available) は以下である  。以下の他に、DB2 Server for VSE and VMと、DB2 for i(IBM iの機能として提供)が存在する。
1983年 DB2 (MVS版)リリース
1986年 DB2 R2 (MVS版)リリース
1997年6月 DB2 for OS/390 V5.1 リリース
1998年6月 DB2 for OS/390 V6.1 リリース
2001年3月 DB2 for OS/390 and z/OS V7.1 リリース
2004年3月 DB2 for z/OS V8.1 リリース
2008年2月 DB2 for z/OS V9.1 リリース
2010年10月 DB2 for z/OS V10 リリース
2013年10月 DB2 for z/OS V11 リリース
2016年10月 DB2 for z/OS V12 リリース
2022年5月 Db2 for z/OS V13 リリース
1993年 DB2 (AIX版) リリース
1994年 DB2 (Solaris、HP-UX版) リリース
1995年 DB2 (Windows版) リリース
1999年 DB2 (Linux版) リリース
2001年6月 DB2 Universal Database V7.2 リリース
2002年12月 DB2 Universal Database V8.1 リリース
2004年10月 DB2 Universal Database V8.2 リリース
2006年9月 DB2 V9.1(開発コード名:Viper)リリース
2007年12月 DB2 V9.5(開発コード名:Viper2)リリース
2009年6月 DB2 V9.7(開発コード名:Cobra)リリース
2012年4月 DB2 V10.1 リリース
2013年4月 DB2 V10.5 リリース
2016年6月 DB2 V11.1 リリース
2019年6月 DB2 V11.5 リリース
DB2ユニバーサルデータベース (Db2 UDB) は、いくつかのライセンス形態(エディション)で提供されている。汎用コンピュータにおける、データベース機能のない「エディション」では、ユーザは、自分たちが必要としないデータベース機能のために、金銭を支払う必要がない。他のエディションとして、ワークグループ、ワークグループアンリミテッド、エンタープライズサーバの、各エディションが提供されている。ハイエンドのエディションは、「DB2 UDB データウェアハウスエンタープライズエディション」(DWE) である。このエディション (DWE) は、オンライントランザクション処理 (OLTP) とビジネスインテリジェンス (BI) の複合したワークロードを、対象としたものであり、ビジネスインテリジェンスの機能を実装している。
DWEでは、いくつかのビジネスインテリジェンスの機能(データウェアハウス、ETL、データマイニング、OLAP拡張、インライン分析)が提供される。
z/OS向けのDB2 (DB2 for System z) は、z/OSプラットフォームに固有のライセンス形態で、利用することができる。z/OSは、IBMのメインフレームSystem/390の後継機種であるSystem zのOSである。DB2 UDBのバージョン8 以降、IBMはz/OS上でDB2を利用できるようにしている。DB2 for System zは、z/OS以外のプラットフォームのDB2との関係が、より密接になっている(それまでは、例えばデータベース言語SQLの文法が異なるなど、大きな違いがいくつかあった)。DB2 for System zは、いくつかの高度な機能を備えている。その中でも特筆すべき機能は、マルチレベルセキュリティ (MLS)、非常に大きな容量のテーブル、ハードウェアの機能を利用したデータ圧縮である。このような高度な機能は、z/OSが提供する優れた環境と、ユーザからの要望によって、実現された。DB2 for System z は、その第一級のオンライントランザクション処理 (OLTP) 性能と処理能力によって、人々に認知されていた。しかし現在DB2 for System zは、マテリアライズ照会表 (MQT) の導入など、ビジネスインテリジェンスの機能も備えつつある。オラクルのCEOのラリー・エリソンは、2003年10月に、並列シスプレックスを用いたDB2 UDB for z/OS(現在の DB2 for System z)に言及して、Oracle Databaseと競い合う唯一のデータベースであり尊敬と称賛に値する、と論評したことが、広く報道された。
DB2はオラクルのOracle Database、SAPのSAP HANAと激しいトップシェア争いをしている。DB2の主要な市場はメインフレーム、オフィスコンピュータの領域であったが、1990年代以降は、UNIX、パーソナルコンピュータ (PC) 向けのDB2もシェアを伸ばしている。2004年5月3日、IBMのデータベース開発と販売を統括するジャネット・パーナ (Janet Perna) は、IBMの主要な競争相手は、高度なトランザクション処理においてはOracle Databaseであり、意思決定支援システム (データウェアハウスなど) においてはNCRのTeradataであると、見解を述べている。また、2010年にSAPよりインメモリーデータベースSAP HANAがリリースされてからは従来基幹系システムや情報系システムにDB2やOracle Databaseを採用していた企業がSAP HANAに移行する事例も相次いで出てきており、2016年現在、大企業向けのデータベース管理システム市場はDB2、Oracle Database、SAP HANAの3大製品が占める構図になっている。
中小規模のデータベースにおいても、DB2は有力な存在であるが、多くの競争相手が存在している。Oracleは大規模データベースと同様に、中小規模のデータベースにおいても、DB2と激しく争っている。Oracle Databaseの他、商用ではマイクロソフトの Microsoft SQL ServerやSAP Sybase Adaptive Server Enterprise 、オープンソースではPostgreSQLやMySQLなどが有力な存在である。
z/OS向けのDB2 (DB2 for System z) は、z/OSプラットフォームにおいて非常に強く、正面から競合する相手はほとんど存在しないといってよいであろう。z/OSプラットフォームにおいては、Oracleがz/OSの顧客にLinux on IBM System z向けのOracleを採用するようはたらきかけている。ただしOracleを採用するケースでも顧客がDB2を捨てるわけではないようである。またCAが、同社のDatacomという関係データベースのz/OS向けのバージョンで、DB2に挑戦している。Datacomを採用するケースでもDatacomの顧客は多くの場合DB2を手放すわけではない。
メインフレームでは、DB2 for System z以外には、日本のメインフレーマー各社が自社開発したRDBMSが提供されている。
IBMおよびDB2は、トランザクション処理性能評議会 (TPC) のウェブサイトで公表されているTPC-C (OLTP) とTPC-H (データウェアハウス) のベンチマークにおいて、業界の首位もしくは首位に近い性能を示す常連である。
クエリー最適化については、当初よりコストベースのオプティマイザーが実装されており、様々な実行計画から最適なプランをDB2が自動的に選択する。
読み取り一貫性はロックにより実現される。ロックは必要に応じて自動的に行われるが、アプリケーションやデータベース構成パラメーターの設計が不適切な場合には、ロック・エスカレーションにより想定以上のロックが取得されたり、場合によってはデッドロックが発生するケースもある。ただし、その他の方式としてよくみられるMVCCに比較すると、更新前のデータを退避する必要が無いため、ストレージコストが少ないというメリットも存在する。
元々SQLがIBMから始まっているということもあって、SQL-92といった国際標準へ準拠度は高めである。また、v9.7よりOracle Databaseとの互換性強化のため、PL/SQLがサポートされた。
DB2は、Oracle Databaseと同じく、データベースを管理するためのユーザインタフェース (UI) として、コマンドラインユーザインタフェース (CUI) とグラフィカルユーザインタフェース (GUI) の両方を提供している。DB2のコマンドラインインタフェースを使う場合は、DB2に関してのある程度の知識が必要であるが、管理作業のスクリプト化や自動化が簡単にできる。DB2のGUIは、豊富なウィザードを使うことができ、まだDB2に習熟していない人にとって使いやすい。DB2のGUIは、マルチプラットフォームのJavaのアプリケーションソフトウェアである。
DB2では、非常に多くのプログラミング言語やプラットフォームに対応したアプリケーションプログラミングインタフェース (API) を、利用することができる。主要なものでは、Java、.NET FrameworkのCLI (CLR)、Ruby、Python、Perl、PHP、C++、C、REXX、PL/I、RPG、COBOL、FORTRAN などがある。DB2ではまた、EclipseとVisual Studioの統合開発環境 (IDE) に対しても、DB2を利用したソフトウェア開発を支援する機能を、統合的に使えるようにしている。
ジャネット・パーナ (Janet Perna) は、IBMソフトウェアグループのインフォメーション・マネジメント事業部で、部長 (General Manager) を務めていた。パーナは2005年7月にIBMを退職した。パーナの後は、アンブシュ・ゴヤール (Ambuj Goyal) がその地位を引き継いだ。