この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:10
ページ更新者:atom
更新日時:2026-10-15 11:28:20

タイトル: DB2
SEOタイトル: IBM Db2入門|製品の違い・接続と確認コマンドの子ページ案内

IBM Db2の概要と、基本操作の子ページへの入口です。子ページから選択してください。一覧確認と変更作業を分け、目的に合う項目へ進みます。

Db2の製品と版を特定し、確認操作と変更作業を分ける流れ

先に見る子ページ

各子記事も対象版と実行環境を確認してください。「確認および拡張」のように読み取りと変更が同居する記事は、容量確認だけのために変更コマンドを実行しません。

周辺の子ページに関する注意:容量確認・拡張の現行本文はOracle向け、データ型はJavaScript向け、カラム変更は複数DBの構文が混在しています。DB2カテゴリにあるという理由だけでDb2用の操作として使用しないでください。旧DDL記事のパスワード引数の例も実資格情報で転用しません。

この記事の要点
  • IBM Db2 は IBM が開発するエンタープライズ RDBMS。1983 年リリースの老舗
  • 主要バリアント: Db2 for LUW (Linux/Unix/Windows) / Db2 for z/OS (メインフレーム) / Db2 for i (IBM i = AS/400)
  • 無償のCommunity系も、製品世代・提供形態・ライセンス条件を確認。無償という名称だけで本番利用可と判断しない
  • 本ページの操作例は主にLUW向け。CLPの管理コマンドとSQLを区別する
  • コンテナ単体とCloud Pak for Data等の配備製品を区別する
  • Oracle 互換モード(PL/SQL を Db2 で動かせる)で Oracle 移行を支援

IBM Db2 とは

IBM Db2(旧称 DB2)は IBM が開発・販売するリレーショナルデータベース管理システム。1983 年にメインフレーム向けに登場し、後に Linux / Unix / Windows / クラウド向けに拡張されました。世界中の銀行・保険・航空会社など巨大な基幹システムで使われています。

Db2という名前でもLUW・z/OS・iでは管理方法やカタログが異なります。既存システムの調査では、接続先製品・版・OS・クライアントを先に特定してください。

Db2 のバリアント

製品名プラットフォーム特徴
Db2 for LUWLinux / Unix / WindowsLUW系。OS/版ごとの対応と配備条件を確認
Db2 for z/OSIBM Z メインフレームメインフレーム向け。LUWの管理手順で代替しない
Db2 for iIBM i (AS/400 後継)OS と一体。中堅企業の基幹で広く採用
Db2 on CloudIBM Cloudマネージド提供。現行プラン/提供条件を個別確認
Db2 Warehouseクラウド / オンプレ分析・データウェアハウス用カラム指向

エディション

  • Db2 Community Edition: Community系の名称/容量/利用条件は世代と提供形態で照合する。旧Express-Cの条件を現在の契約条件へ引き継がない
  • Db2 Standard Edition: 対象版の有償エディション。現行AI系列との対応も公式で確認
  • Db2 Advanced Enterprise Server Edition (AESE): 旧世代の名称。現行Advanced/AI Advancedと名称・権利・制限を同一視しない
  • Db2 Developer Edition: 旧名称を含むため、実際に取得する版の用途制限と利用条件を確認

インストールと CLI

下は旧記事の導入記録で、そのまま実行する推奨手順ではありません。「最速」の実測根拠はありません。固定のpassword・無条件のLICENSE=accept・全インターフェースへの50000番公開を転用しないでください。--privilegedはホストへの強い権限を与えます。公式の対象イメージが要求する前提を確認し、共有/本番ホストへ無検討で実行せず、隔離した検証環境と利用条件・保存先・到達制限を先に設計します。秘密値は承認した手段で管理し、envファイルもinspect/ファイル/バックアップへの露出を解消する保証にはなりません。

# Docker で Db2 Community を最速起動
docker run -itd --name mydb2 --privileged=true \
    -p 50000:50000 \
    -e LICENSE=accept \
    -e DB2INST1_PASSWORD=password \
    -e DBNAME=testdb \
    ibmcom/db2

# コンテナに入る
docker exec -ti mydb2 bash -c "su - db2inst1"

# Db2 CLI 起動
db2

# 接続
db2 => CONNECT TO testdb

# SQL 実行
db2 => SELECT * FROM SYSCAT.TABLES FETCH FIRST 5 ROWS ONLY

# 終了
db2 => TERMINATE

典型的な SQL

下はCLPコマンドとSQLを含む旧説明例です。CREATE DATABASE/CONNECTはSQLアプリのクエリとしてそのまま送る命令ではありません。CREATE TABLE/INSERTは実データを変更するため、本番の既存MYDB/employeesへ貼り付けず、権限と隔離先を確認します。DB作成後の接続/DDL/DMLを一括実行してよいという意味ではありません。OFFSETの結果はデータの同時更新でも変わり、例の固定5件取得には順序の保証がありません。

-- データベース作成
CREATE DATABASE MYDB AUTOMATIC STORAGE YES
    USING CODESET UTF-8 TERRITORY JP;

CONNECT TO MYDB;

-- テーブル作成
CREATE TABLE employees (
    emp_id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,
    name VARCHAR(100) NOT NULL,
    dept_id INTEGER,
    salary DECIMAL(10, 2),
    hire_date DATE,
    PRIMARY KEY (emp_id)
);

-- INSERT (Db2 は VALUES の前で OK)
INSERT INTO employees (name, dept_id, salary, hire_date)
VALUES ('Alice', 10, 50000.00, '2024-01-15');

-- ページネーション
SELECT *
FROM employees
ORDER BY emp_id
OFFSET 20 ROWS FETCH FIRST 10 ROWS ONLY;

-- カタログ情報
SELECT tabname FROM syscat.tables WHERE tabschema = 'DB2INST1';

Db2 と Oracle の違い

項目Db2Oracle
手続き型言語SQL PL / PL/SQL 互換モードPL/SQL
シーケンスSEQUENCE / IDENTITY 両対応SEQUENCEに加え、IDENTITYの可否はOracleの対象版で確認
SQL 標準準拠対象構文をDb2の資料で確認標準と独自拡張を対象版で確認
サブクエリの FROM 句table-referenceの対象構文で確認Oracle側の対象構文で確認。一律比較しない
分離レベルUR / CS / RS / RR の 4 段階READ COMMITTED / SERIALIZABLE等。読取専用transactionとの区別も確認
カラム指向BLUの可否/条件を製品・版・構成で確認Database In-Memoryの利用条件を契約/版で確認

Oracle 互換モード

下のCREATE DATABASE MYDB COMPATIBILITY_VECTOR ORAは誤った旧例です。DB2_COMPATIBILITY_VECTORはdb2setで扱うレジストリ変数で、CREATE DATABASEの句ではありません。後続のDUAL/ROWNUM/PL/SQLも機能の有効化・対象版・制限・CLPの文終端設定等が前提で、既存DBで無条件に使える完成スクリプトではありません。

Oracle向けアプリケーションの移行を支援する互換機能ですが、すべてのPL/SQL/型/意味論/周辺機能が無変更で動く保証ではありません。必要な機能・制約・性能・データの検証を個別に行います。

-- 互換モード有効化(DB 作成時)
CREATE DATABASE MYDB COMPATIBILITY_VECTOR ORA;

-- DUAL テーブル使用可
SELECT 'hello' FROM DUAL;

-- ROWNUM 使用可
SELECT * FROM employees WHERE ROWNUM <= 10;

-- PL/SQL ブロックも動く
BEGIN
    FOR rec IN (SELECT * FROM employees WHERE dept_id = 10) LOOP
        DBMS_OUTPUT.PUT_LINE(rec.name);
    END LOOP;
END;
/

IBM Cloud Pak for Data との連携

Cloud Pak for Data は IBM のデータ + AI 統合プラットフォーム。Kubernetes 上で Db2 をはじめ Watson 系 AI サービス、データ仮想化、データガバナンスを統合提供します。

  • Db2の対象サービス・Operator・基盤要件と対応版を確認して配備
  • Watson Studio で機械学習
  • データ仮想化で複数 DB / S3 / Hive を統一クエリ
  • Watson Knowledge Catalog でガバナンス

クライアントツール

ツール用途
db2 CLI標準対話型 SQL クライアント
IBM Data StudioEclipseベースのツール。導入版の対応/サポートを公式で確認
Db2 Data Management ConsoleWeb管理ツール。接続対象・対応版・運用条件を個別確認
DBeaver / DataGripサードパーティ GUI (JDBC 接続)

FAQ

Q: Db2 と DB2 の表記の違いは
A: 2017 年から IBM の公式表記が Db2(小文字 b)に変更されました。以前は DB2 と全大文字。意味は同じです。

Q: Db2 Express-C はまだ使えるか
A: Express-C等の旧名称と現在のCommunity/AI Communityの提供条件は分けて確認します。無償だから本番/商用利用可とは断定せず、ダウンロードする製品のライセンス文書と用途条件を照合してください。

Q: Db2 for z/OS は LUW と SQL 互換性があるか
A: 共通する構文があっても製品固有の型・カタログ・管理操作・実行上の制約があります。標準SQLらしい構文でも移植可能と即断せず、移行元/先の版と実データで検証します。

導入や移行の前に確認すること

  1. LUW/i/zOS、製品版・エディション・配備形態を特定する。クライアントとサーバーの版も分ける。
  2. 対応OS/資源/保存先/通信経路/バックアップ・復旧手順を確認し、学習用Dockerを本番構成と扱わない。
  3. Oracle互換機能は既存SQLの解析・型/NULL等の意味の差・制約・依存先・性能を検証する。公式11.5資料ではレジストリ変更後の再起動/再バインド、DB作成時にだけ影響する機能が説明されている。既存本番への設定変更や再起動を初手にしない。

無償版の容量と利用条件の確認先

2026年10月の確認では、IBMの製品価格ページのDb2 AI Communityに4コア/16GB、12.1製品機能表のCommunityに4コア/8GBの記載があります。同じ「Community」だけで数値を混ぜず、正確な製品名・mod pack・配備形態・取得ライセンスを照合してください。旧記載のストレージ100GBや商用利用可も一律条件として引き継ぎません。ページ間の違いを独自に解釈して権利を確定せず、対象製品の利用条件をIBMへ確認します。

公式:Db2製品・価格 / 12.1機能表 / 製品世代と配備形態 / Oracle互換変数の用途・反映条件 / 対象Dockerの公式導入条件 / Dockerの権限とポート公開。Db2の実機導入・ライセンス同意・設定変更・移行実行は本稿の改善では行っていません。