連載
» 2003年09月30日 00時00分 公開

DB2マイスター養成講座(2):DB2のデータベース・オブジェクトと物理設計 (1/2)

今回は、物理設計時の前提知識として各データベース・オブジェクトを紹介し、次に物理設計におけるポイントを解説する。(編集局)

[小林慶彦,@IT]

 第1回では、DB2のインストールからバイナリを最新の状態にするパッチセット「FixPak」を適用するところまで説明しました。今回は、次のステップであるデータベースの作成から話を進めます。

データベース・オブジェクト

 具体的な解説の前に、データベース・オブジェクトについて簡単に復習しておきましょう。

 DB2が使用するオブジェクトは画面1のような関係になっています。コントロール・センターのオブジェクト・ツリーですが、オブジェクトの関係を示すには最適です。

画面1 DB2のコントロール・センター 画面1 DB2のコントロール・センター(画像をクリックすると拡大表示します)

 1つのシステムで、複数のインスタンスを持つことができます。また、1つのインスタンスは複数のデータベースを持つことができます。以下、それぞれのオブジェクトについて詳しく見ていきましょう。

■インスタンス

 インスタンスはデータベースを管理するオブジェクトで、「データベース・マネージャ」と呼ばれることもあります。インスタンスはデータベースを制御し、割り当てられているシステムリソースを管理します。同一システム上に複数持つことができ、インスタンスごとにセキュリティが定義されます。

 UNIXでは、ユーザーアカウントに対してインスタンスが定義されるので、1ユーザー=1インスタンスです。もちろん、インスタンスを所有するユーザー名がインスタンス名となります。インスタンスに対する認証はOSに任せることになります。

■データベース

 データ(表)を管理する単位で、1インスタンス中に複数のデータベースを持つことが可能です。データベースの中には、バッファー・プール、表スペース、表、ビュー、索引のオブジェクトがあります。今回は物理設計がテーマですので、この中のバッファー・プールと表スペースを中心に解説します。

 ほかにも、データの物理/論理構造の情報を持つシステム・カタログ表やパラメータなどの値が入っている構成ファイル、トランザクションのログが含まれます。

■データベース・パーティション・グループ

 DB2もOracleと同様に複数台のサーバを使って並列クラスタ・データベースを構成できます。「データベース・パーティション」とは、複数台に分散されたデータベースの1区画を指し、複数区画をまとめたものを「データベース・パーティション・グループ」と呼びます。詳しい解説は第8回で行います。

並列クラスタ・データベースの構成図

■バッファー・プール

 DB2自身が管理するI/Oキャッシュメモリを「バッファー・プール」と呼びます。物理メモリとデータベースを直接結ぶのが、このバッファー・プールです。バッファー・プールは、表スペースと関連付けて複数定義でき、これにより表および表アクセスの特徴に応じて効果的なI/Oキャッシュ処理を実現できます。

■表スペース

 ストレージ(物理ディスク)と直接関係するのが、この表スペースです。文字通り、表や索引を格納する領域を指します。索引やラージ・オブジェクト(LOB)データなど、特定のオブジェクト専用の表スペースを用意することも可能です。また、表スペースは1つまたは複数の物理ストレージ・デバイスに分散させることもできます。表スペースの定義と属性は、データベース・システム・カタログに記録されています。

 表スペースは、物理的には、

  • システム管理スペース(SMS)
  • データベース管理スペース(DMS)

の2つのタイプがあります。SMS表スペースはOSのファイルシステム上のディレクトリを指定して作成し、ディスクへの書き込み/読み込みはOSを介して行います。DMS表スペースは、サイズが固定されたファイルもしくはRAWデバイスを指定し、ディスクへの書き込み/読み込みはDB2が制御します。

 また、用途によって3つのタイプの表スペースがあります。

  • REGULAR表スペース
    ユーザー・データを含む表を格納する表スペースです。デフォルトのユーザー表スペースUSERSPACE1や、システム・カタログ表スペースSYSCATSPACEは、このREGULAR表スペースに格納されます。

  • LARGE表スペース
    LONGフィールドやラージ・オブジェクト(LOB)データを格納できる表スペースです。通常はREGULAR表スペースに格納されますが、明示的にLARGE表スペースに格納可能です。

  • TEMPORARY表スペース
    TEMPORARY表スペースは、ソートや表の再編成、索引の作成、表の結合など、SQL操作中に必要となる内部的な一時データを保管するために使用します。デフォルトのSYSTEM TEMPORARY表スペースはTEMPSPACE1と呼ばれています。

 索引は、REGULAR表スペースまたはLARGE表スペースに格納できます。

■コンテナ

 コンテナは表スペースを構成する物理構成要素で、SMS表スペースであればディレクトリ、DMS表スペースであればファイルまたはデバイスを指します。1つの表スペースに対して、複数のコンテナを割り当てることが可能です。

 表スペースに複数のコンテナがある場合、データはすべてのコンテナにラウンドロビン方式で格納されます。このため、コンテナ間でデータが均等になります。データベース・マネージャがコンテナに書き込むページ数を「エクステント・サイズ」と呼びます。

■そのほかのオブジェクト(表、索引など)

 前出のコントロール・センターの図を見ると、上記以外にも論理オブジェクトがあることが分かります。表、索引、視点、別名、トリガー、スキーマ、ユーザー定義関数、ストアード・プロシージャなどです。

■ログ

 データベース・オブジェクトとは呼べないかもしれませんが、ログも物理構成する際に重要な要素です。特にOLTP系のトランザクションの頻度が高いシステムでは、ログを配置する場所などにも配慮する必要があります。

 DB2では、トランザクションがコミットされていない「アクティブ・ログ」と、トランザクションがコミットされディスクに書き込み済みの「アーカイブ・ログ」という2種類のログがあります。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。