ヘッダーをスキップ
Oracle Warehouse Builderユーザーズ・ガイド
11gリリース1(11.1)
E05734-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

13 Oracleデータ・オブジェクトの定義

データ・ウェアハウスまたはデータ・マートの設計を終了すると、ターゲット・システムを設計できるようになります。ターゲット・スキーマ・モデリングの大半はデータ・オブジェクト・エディタ内で実行されます。この章では、データ・オブジェクト・エディタを使用してデータ・オブジェクトを作成する方法を説明します。

この章の内容は次のとおりです。

データ・オブジェクトについて

Oracleモジュールには、Warehouse Builderで定義できるデータ・オブジェクトの各タイプのノードが含まれています。プロジェクト・エクスプローラの「Oracle」ノードで、モジュール・ノードを拡張すると、サポートされているデータ・オブジェクトがすべて表示されます。

Warehouse Builderによりリレーショナルおよびディメンショナルのデータ・オブジェクトがサポートされます。リレーショナル・データベースなどのリレーショナル・オブジェクトは、表および表から取得されたオブジェクトに依存し、すべてのデータを格納し、それらのデータにリンクします。定義するリレーショナル・オブジェクトは、データベース内の物理的なコンテナで、データの格納に使用されます。これらのリレーショナル・オブジェクトから、ウェアハウスが作成された後に問合せを実行します。リレーショナル・オブジェクトには、表、ビュー、マテリアライズド・ビューおよび順序が含まれます。また、制約、索引、パーティションおよび属性セットなどのリレーショナル・オブジェクトに関連付けられたオプションの構造も作成できます。

ディメンション・オブジェクトには、データを識別し、分類するための追加のメタデータが含まれています。ディメンション・オブジェクトを定義するときは、より構造化された形式でデータを格納できるように、論理的な関係を記述します。ディメンション・オブジェクトには、ディメンションおよびキューブがあります。この章では、各種のディメンション・オブジェクトに関する特定の情報を提供し、各オブジェクト・タイプがWarehouse Builderでどのように使用されるかを示します。

Warehouse Builderでは、リレーショナル・オブジェクトとディメンション・オブジェクトの他に、インテリジェンス・オブジェクトもサポートされています。インテリジェンス・オブジェクトは、Oracleモジュールの一部ではありません。プロジェクト・エクスプローラでは「ビジネス・インテリジェンス」ノードに表示されます。インテリジェンス・オブジェクトを使用すると、ビジネス・ビューの定義を格納できます。これらの定義をOracle Discovererなどの分析ツールに配布し、ウェアハウスに対して非定型の問合せを実行することができます。インテリジェンス・オブジェクトの詳細は、「ビジネス・インテリジェンス・ツールとの統合」を参照してください。

表13-1に、Warehouse Builderで使用できるデータ・オブジェクトのタイプを説明します。

表13-1 Warehouse Builderのデータ・オブジェクト

データ・オブジェクト タイプ 説明

リレーショナル

リレーショナル・データベース管理システムの記憶域の基本単位です。表を作成した後は、その表に有効なデータ行を挿入できます。その後、表の情報の問合せ、削除または更新を実行できます。定義済のビジネス・ルールを表のデータで順守するために、表に対して整合性制約を定義できます。

詳細は、「表の使用」を参照してください。

外部表

リレーショナル

外部表は、非リレーショナルなフラット・ファイルのデータを、リレーショナル形式で表示する表です。外部表は、フラット・ファイル演算子やSQL*Loaderのかわりに使用します。

詳細は、「外部表の使用」を参照してください。

ビュー

リレーショナル

ビューは、1つ以上の表のデータをカスタマイズして表示したものです。ビューには、データが実際に格納されているわけではありません。データはビューの基となる表から導出されます。制約はいくつかありますが、表と同様に、ビューに対しても、問合せ、更新、挿入および削除を実行できます。ビューに対して実行した操作はすべて、ビューの実表に影響を与えます。データの表示を簡潔にしたり、データへのアクセスを制限するには、ビューを使用します。

詳細は、「ビューの使用」を参照してください。

マテリアライズド・ビュー

リレーショナル

マテリアライズド・ビューは事前に計算された表で、ファクト表、および場合によってはディメンション表から集計または結合されたデータで構成されます。サマリー表または集計表とも呼ばれます。問合せのパフォーマンスを改善するには、マテリアライズド・ビューを使用します。

詳細は、「マテリアライズド・ビューの使用」を参照してください。

順序

リレーショナル

順序は、一意の数字のリストを生成するデータベース・オブジェクトです。順序を使用すると、一意のサロゲート・キー値を生成できます。

詳細は、「順序の使用」を参照してください。

ディメンション

ディメンショナル

データ・セットのメンバーの指定に使用される特性を表す一般的な用語です。販売向けのデータ・ウェアハウスにおけるこれら最も一般的な3つのディメンションは、時間、地理および製品です。ほとんどのディメンションには階層があります。

詳細は、「ディメンションについて」および「時間ディメンションについて」を参照してください。

キューブ

ディメンショナル

キューブには、メジャー、および1つ以上のディメンション表へのリンクが含まれます。これらはファクトとも呼ばれます。

詳細は、「キューブの概要」を参照してください。

アドバンスト・キュー

リレーショナル

アドバンスト・キューによって、アプリケーションの統合に必要なメッセージ管理および通信が可能になります。

現在は、Warehouse Builderを使用してアドバンスト・キューを作成することはできません。.mdlファイルにエクスポートされたアドバンスト・キューを以前のバージョンの製品を使用してインポートすることのみ可能です。

キュー表

リレーショナル

キュー表は、キューを格納する表です。各キュー表には、データ型がオブジェクト・タイプまたはRAWであるペイロードが含まれます。

Warehouse Builderを使用してキュー表を作成することはできません。キュー表は、アドバンスト・キュー・ペイロードの一部としてインポートされます。

オブジェクト・タイプ

リレーショナル

オブジェクト・タイプは、1つ以上のユーザー定義型またはスカラー型から構成されます。

詳細は、「オブジェクト・タイプの作成」を参照してください。

可変長配列

リレーショナル

可変長配列は、順序付けられた要素の集合です。

詳細は、「可変長配列の作成」を参照してください。

ネストした表

リレーショナル

ネストした表は、可変長配列データ型の機能を補完します。ネストした表では、1つの行に、1つのオブジェクト内の関連するデータについて複数のミニ行を指定できます。

詳細は、「ネストした表の作成」を参照してください。


サポートされるデータ型

表13-2に、列の作成および編集に使用できるデータ型を示します。

表13-2 データ型

データ型 説明

BINARY_DOUBLE

倍精度IEEE 754形式の単精度浮動小数点数を格納します。主に科学分野の高速計算に使用されます。この型のリテラルはdで終わります。例: 3.0235d

BINARY_FLOAT

単精度IEEE 754形式の単精度浮動小数点数を格納します。主に科学分野の高速計算に使用されます。この型のリテラルはfで終わります。例: 2.07f

BLOB

ラージ・バイナリ・オブジェクトをデータベースの表内または表外に格納します。すべてのBLOB変数には、ラージ・バイナリ・オブジェクトを指し示すロケータが含まれます。BLOBの最大サイズは4GBです。

CHAR

固定長の文字データを最大4000文字まで格納します。内部のデータ表現は、データベースのキャラクタ・セットによって異なります。サイズはバイト数または文字数で指定できます。各文字には、キャラクタ・セットのエンコードに応じて、1バイトまたは複数バイトが含まれます。

CLOB

文字データの大規模なブロックをデータベースの表内または表外に格納します。固定幅と可変幅の両方のキャラクタ・セットがサポートされます。すべてのCLOB変数には、文字データの大規模なブロックを指し示すロケータが含まれます。CLOBの最大サイズは4GBです。

DATE

固定長の日時を格納します。この日時には、午前0時から現在時刻までの経過秒数が含まれています。日付は現行月の最初の日、時刻は午前0時にデフォルト設定されます。日付関数SYSDATEは、現在の日時を戻します。

FLOAT

単精度浮動小数点数を格納します。FLOATが正しい結果でロードされるのは、FLOATの表現に互換性があり、長さが同じであるシステム間の場合のみです。

INTEGER

NUMBERのサブ型であり、最大精度38桁で整数値を格納します。

INTERVAL DAY TO SECOND

日、時間、分および秒の間隔を格納します。

INTERVAL YEAR TO MONTH

年および月の間隔を格納します。

LONG

固定長の文字列を格納します。LONGデータ型はVARCHAR2データ型に類似していますが、LONG値の最大長が2147483647バイト(2GB)である点が異なります。

MDSYS.SDOAGGRTYPE

空間オブジェクトのジオメトリの記述および許容差です。許容差は、2つの点が同じ点であるとみなすのに十分近いと判断するために使用されます。

MDSYS.SDO_DIM_ARRAY

MDSYS.SDO_DIM_ELEMENT型の配列を格納します。

MDSYS.SDO_DIM_ELEMENT

ディメンション名、下限、上限および許容差を格納します。

MDSYS.SDO_ELEM_INFO_ARRAY

MDSYS.SDO_ORDINATE_ARRAY型の配列を格納します。

MDSYS.SDO_GEOMETRY

地理情報システム(GIS)データまたは空間データをデータベースに格納します。詳細は、Oracle Spatialユーザーズ・ガイドおよびリファレンスを参照してください。

MDSYS.SDO_ORDINATE_ARRAY

ジオメトリを定義するすべての頂点のリストを格納します。

MDSYS.SDO_POINT_TYPE

2次元および3次元の点を格納します。

NCHAR

固定長(必要に応じて空白が埋め込まれます)の各国語キャラクタ・データを格納します。この型は常にマルチバイト文字に対応可能であるため、この型を使用してUnicode文字データを格納できます。内部のデータ表現は、データベースの作成時に指定された各国語キャラクタ・セットによって異なります。これには、可変幅のエンコーディング(UTF8)または固定幅のエンコーディング(AL16UTF16)が使用される場合があります。

NCLOB

NCHARデータの大規模なブロックをデータベースの表内または表外に格納します。

NUMBER

固定小数点または浮動小数点の形式で実数を格納します。このデータ型を使用する数値は、異なるOracleプラットフォーム間で移植可能であることが保証され、最大38桁の精度で表されます。NUMBER列には、正数と負数の他に、0(ゼロ)も格納できます。

NVARCHAR2

可変長のUnicode文字データを格納します。この型は常にマルチバイト文字に対応可能であるため、この型を使用してUnicode文字データを格納できます。内部のデータ表現は、データベースの作成時に指定された各国語キャラクタ・セットによって異なります。これには、可変幅のエンコーディング(UTF8)または固定幅のエンコーディング(AL16UTF16)が使用される場合があります。

RAW

バイナリ・データまたはバイト列を格納します。たとえば、RAW変数には、一連の図形文字またはデジタル化された写真などが格納される場合があります。RawデータはVARCHAR2データに類似していますが、RawデータはPL/SQLで解析できない点が異なります。

SYS.ANYDATA

特定の型のインスタンスを、データとともに、型の説明も付加して格納できるOracle提供の型です。ANYDATAは表の列データ型として使用でき、単一の列に異なる型の値を格納できます。値には、SQL組込み型またはユーザー定義型を使用できます。

SYS.LCR$_ROW_RECORD

データ操作言語(DML)による表内の行への変更を表します。この型は、LCR$_ROW_LIST型を使用します。

TIMESTAMP

DATEデータ型を拡張し、年、月、日、時間、分および秒を格納します。デフォルトのタイムスタンプ書式は、Oracle初期化パラメータNLS_TIMESTAMP_FORMATによって設定されます。

TIMESTAMP WITH LOCAL TIMEZONE

TIMESTAMPデータ型を拡張し、タイムゾーンによる時差を組み込みます。タイムゾーンによる時差は、ローカル時間と協定世界時(UTC、元標準グリニッジ時)との差違です。TIMESTAMP WITH TIME ZONEと同様に、名前付きのタイムゾーンを使用することもできます。

TIMESTAMP WITH TIMEZONE

TIMESTAMPデータ型を拡張し、タイムゾーンによる時差を組み込みます。タイムゾーンによる時差は、ローカル時間と協定世界時(UTC、元標準グリニッジ時)との差違です。

VARCHAR

長さと値のペアのデータ型を格納します。このデータ型は、バイナリ長のサブフィールドと、それに続く指定した長さの文字列で構成されます。長さはバイトで表現されますが、データ・ファイルに文字と長さのセマンティクスが使用されている場合には、文字数で表現されます。

VARCHAR2

可変長の文字データを格納します。内部のデータ表現は、データベースのキャラクタ・セットによって異なります。VARCHAR2データ型は、最大4000文字まで指定する必須パラメータを使用します。

XMLFORMAT

SYS_XMLGEN()およびSYS_XMLAGG()関数の書式設定引数の指定に使用されるオブジェクト型です。

XMLTYPE

データベース内のXMLデータの格納および問合せに使用できるOracle提供の型です。XPath式を使用したXMLデータに対するアクセス、抽出および問合せに使用できるメンバー関数が含まれます。XPathは、XML文書の参照用にW3C委員会によって開発された別の標準です。


データ・オブジェクトのネーミング規則

データ・オブジェクトのネーミング規則は、「プリファレンス」ダイアログ・ボックスのネーミング・プリファレンス・セクションでWarehouse Builder用に設定するネーミング・モードに応じて異なります。Warehouse Builderでは、ワークスペースに格納されているオブジェクトごとにビジネス名と物理名が維持されます。オブジェクトのビジネス名は詳細な論理名であり、物理名はWarehouse Builderでコード生成時に使用される名前です。ネーミング・モードの指定方法の詳細は、ネーミング・プリファレンスを参照してください。

データ・オブジェクトの名前を指定または変更するときは、次のネーミング規則を使用してください。

データ・オブジェクトのネーミング

物理ネーミング・モードでは、名前は1文字から30文字までの英数字で、空白は使用できません。オブジェクト名として予約語を使用しないでください。

ビジネス・ネーミング・モードでは、200文字までに制限されています。名前はオブジェクトを所有するオブジェクト・カテゴリ全体で一意である必要があります。たとえば、すべての表がモジュールに属しているため、表名は表が属しているモジュール全体で一意である必要があります。同様に、モジュール名はモジュールが属しているプロジェクト全体で一意である必要があります。

データ・オブジェクトの記述

必要に応じてデータ・オブジェクトの説明を編集します。説明には2文字から2,000文字の英数字を使用でき、空白を含めることができます。データ・オブジェクトの説明を指定するかどうかはオプションです。

データ・オブジェクト・エディタについて

データ・オブジェクト・エディタは、Oracleデータ・オブジェクトの作成、編集、構成、検証および配布に使用する中央インタフェースを提供します。データ・オブジェクト・エディタはリレーショナル、ディメンションおよびビジネス・インテリジェンスの各オブジェクトで使用できます。これらのオブジェクトに格納されているデータを表示することもできます。

データ・オブジェクト・エディタを使用して、ウェアハウス・スキーマの設計を作成できます。また、データ・オブジェクト・エディタは、直感的なユーザー・インタフェースを提供し、設計詳細を速やかに入力できるようサポートします。データ・オブジェクト・エディタには、1つのメニュー・バー、複数のツールバーおよび複数のパネルがあります。すべてのパネルは、結合可能です。パネルのサイズを変更し、エディタ・ウィンドウ内のいずれかの場所にパネルを再配置できます。また、すべてのパネルについて表示するか非表示にするかを選択できます。データ・オブジェクト・エディタのコンポーネントの詳細はオンライン・ヘルプを参照してください。

パネルを再配置するには、パネルのタイトル上でマウスのボタンを押し、そのまま新しい場所までドラッグしてマウスのボタンを放します。パネルのサイズを変更するには、パネルの境界上にマウスを置き、双方向矢印が表示された時点でマウスのボタンを押して、適切なサイズになるようにマウスをドラッグします。

図13-1に、データ・オブジェクト・エディタを示します。

図13-1 データ・オブジェクト・エディタ・ウィンドウ

図13-1の説明が続きます
「図13-1 データ・オブジェクト・エディタ・ウィンドウ」の説明

データ・オブジェクト・エディタを使用して次の操作を実行できます。

データ・オブジェクト・エディタの起動

データ・オブジェクト・エディタを起動するには、次のいずれかの方法を使用します。

データ・ビューア

「データ・ビューア」を使用して、データ・オブジェクトに格納されているデータを表示できます。たとえば、表の「データ・ビューア」を使用して、表データを表示できます。「データ・ビューア」にアクセスするには、次の方法のいずれかを使用します。

  • プロジェクト・エクスプローラで、データ・オブジェクトを右クリックして「データ」を選択します。

  • データ・オブジェクトのデータ・オブジェクト・エディタで、「詳細」パネルの「データ・ビューア」タブにナビゲートします。「問合せの実行」をクリックします。

「データ・ビューア」タブには、「問合せの実行」、「詳細を取得」、「WHERE句」および「詳細」というボタンがあります。「詳細」ボタンがタブの最下部に表示されます。

「問合せの実行」をクリックしてデータ・オブジェクトの問合せを実行し、データをフェッチします。

デフォルトでは、「データ・ビューア」により、データの最初の100行が表示されます。次の行のセットを取得するには、「詳細を取得」をクリックします。または、「詳細」をクリックして同じアクションを実行できます。

「WHERE句」をクリックし、「データ・ビューア」に表示されるデータを制限するために使用する条件を指定します。このボタンをクリックすることにより、「WHERE句」ダイアログ・ボックスが表示されます。このダイアログ・ボックスを使用してデータのフィルタに使用する条件を指定します。このオプションは表およびビューのみに使用できます。

データ・オブジェクト・エディタに表示される列および列名は、実際の表が配布されるロケーションから直接取得されます。データ・ビューアの表定義がデータ・オブジェクト・エディタの表示と一致しない場合は、エディタでの変更がまだ配布されていない可能性があります。

データ・オブジェクトを作成するためのデータ・オブジェクト・エディタの使用

データ・オブジェクト・エディタは、リレーショナル・オブジェクト、ディメンション・オブジェクト、および一部のビジネス・インテリジェンス・オブジェクトの作成に使用します。データ・オブジェクト・エディタを使用してデータ・オブジェクトを作成する方法はいくつかあります。

データ・オブジェクトを作成するには、次のいずれかのエディタ・コンポーネントを使用します。

メニュー・バーを使用したデータ・オブジェクトの作成

メニュー・バーを使用してデータ・オブジェクトを作成する手順は、次のとおりです。

  1. 開いていない場合、データ・オブジェクト・エディタを開きます。

  2. 作成するデータ・オブジェクトのタイプに対応するタブにナビゲートします。

    たとえば、表を作成するには、「リレーショナル」タブを選択します。ビジネスエリアを作成するには、「ビジネス・インテリジェンス」タブを選択します。ディメンションおよびキューブを作成するには、「ディメンショナル」タブを選択します。

  3. 「ダイアグラム」メニューから、「追加」を選択してから、作成するデータ・オブジェクトのタイプを選択します。

    Warehouse Builderにより「新規または既存の<オブジェクト>を追加」ダイアログ・ボックスが表示されます。このダイアログ・ボックスの詳細は、「ヘルプ」をクリックします。

    「追加」メニューのデータ・オブジェクトのリストに、無効なアイテムがいくつか含まれることに注意してください。現在のエディタ・コンテキストから作成できるデータ・オブジェクトのみが有効となっています。

  4. 「新規<オブジェクト>の作成」オプションを選択します。

    たとえば、表を追加するには、「新規表の作成」オプションを選択します。

  5. 「新規<オブジェクト>名」フィールドを使用してデータ・オブジェクト名を指定します。

    「新規<オブジェクト>名」フィールドに、オブジェクトのデフォルト名が表示されます。このデフォルト名を保持するよう選択するか、別名を指定します。

  6. 「OK」をクリックします。

    Warehouse Builderにより、新規データ・オブジェクトのノードがキャンバスに追加されます。

  7. 「詳細」パネルのタブを使用して、データ・オブジェクトを定義します。

キャンバスを使用したデータ・オブジェクトの作成

キャンバスを使用してデータ・オブジェクトを作成する手順は、次のとおりです。

  1. 開いていない場合、データ・オブジェクト・エディタを開きます。

  2. 作成するデータ・オブジェクトのタイプに対応するタブにナビゲートします。

    たとえば、マテリアライズド・ビューを作成するには、「リレーショナル」タブを選択します。ディメンションを作成するには、「ディメンショナル」タブを選択します。

  3. キャンバス上の空白(空白領域)を右クリックします。

    Warehouse Builderにより、作成可能なデータ・オブジェクトのタイプを含むショートカット・メニューが表示されます。

  4. 作成するオブジェクトのタイプに対応するオプションを選択します。

    たとえば、マテリアライズド・ビューを作成するには、「マイテリアライズド・ビューの追加」オプションを選択します。

    Warehouse Builderにより「新規または既存の<オブジェクト>を追加」ダイアログ・ボックスが表示されます。このダイアログ・ボックスの詳細は、「ヘルプ」をクリックします。

  5. 「新規<オブジェクト>の作成」オプションを選択します。

    たとえば、キューブを追加するには、「新規キューブの作成」オプションを選択します。

  6. 「新規<オブジェクト>名」フィールドを使用してデータ・オブジェクト名を指定します。

    「新規<オブジェクト>名」フィールドに、オブジェクトのデフォルト名が表示されます。このデフォルト名を保持するよう選択するか、別名を指定します。

  7. 「OK」をクリックします。

    Warehouse Builderにより、新規データ・オブジェクトのノードがキャンバスに追加されます。

  8. 「詳細」パネルのタブを使用して、データ・オブジェクトを定義します。

データ・オブジェクトのエディタ・パレットを使用したデータ・オブジェクトの作成

パレットを使用してデータ・オブジェクトを作成する手順は、次のとおりです。

  1. 開いていない場合、データ・オブジェクト・エディタを開きます。

  2. 作成するデータ・オブジェクトのタイプに対応するタブにナビゲートします。

    たとえば、ビューを作成するには、「リレーショナル」タブを選択します。キューブを作成するには、「ディメンショナル」タブを選択します。

  3. 作成するオブジェクトのタイプに対応する演算子をキャンバスにドラッグ・アンド・ドロップします。

    たとえば、ビューを作成するには、「パレット」からキャンバスに「ビュー演算子」をドラッグ・アンド・ドロップします。

    Warehouse Builderにより「新規または既存の<オブジェクト>を追加」ダイアログ・ボックスが表示されます。このダイアログ・ボックスの詳細は、「ヘルプ」をクリックします。

  4. 「新規<オブジェクト>の作成」オプションを選択します。

    たとえば、キューブを追加するには、「新規キューブの作成」オプションを選択します。

  5. 「新規<オブジェクト>名」フィールドを使用してデータ・オブジェクト名を指定します。

    「新規<オブジェクト>名」フィールドに、オブジェクトのデフォルト名が表示されます。このデフォルト名を保持するよう選択するか、別名を指定します。

  6. 「OK」をクリックします。

    Warehouse Builderにより、新規データ・オブジェクトのノードがキャンバスに追加されます。

  7. 「詳細」パネルのタブを使用して、データ・オブジェクトを定義します。

データ・オブジェクト・エディタを使用したOracleデータ・オブジェクトの編集

データ・オブジェクト・エディタを使用して、リレーショナル・オブジェクト、ディメンション・オブジェクトまたはビジネス・インテリジェンス・オブジェクト(アイテム・フォルダおよびビジネス・エリアのみ)を編集します。データ・オブジェクトに対してエディタを開くには、次のいずれかの方法を使用します。

データ・オブジェクト・エディタが表示された後、「詳細」パネル内のタブを使用してデータ・オブジェクト定義を編集します。各データ・オブジェクトに対するデータ・オブジェクト・エディタの各タブの詳細は、次の各項を参照してください。

制約の使用

表、ビューおよびマテリアライズド・ビューなどのリレーショナル・データ・オブジェクトに対して、オプションで制約を作成できます。

制約について

制約は、データベース内の情報と関連付けるビジネス・ルールを順守するために使用されます。制約によって、無効なデータが表に挿入されないようにします。ビジネス・ルールでは、必ずTRUEまたはFALSEになる条件と関係が指定されます。Warehouse Builderでは、表、ビューおよびマテリアライズド・ビューに対して制約を作成できます。

たとえば、従業員表の給与列に、給与<10,000という制約を定義した場合、この制約によって、この表のすべての行で、この列には10,000を超える数値を格納できない、というルールが順守されます。INSERT文またはUPDATE文によってこの整合性制約への違反が発生した場合は、エラー・メッセージが表示されます。制約を使用すると、ロードのパフォーマンスが低下することに注意してください。

表、ビューおよびマテリアライズド・ビューに対して次の制約を定義できます。

  • 一意キー(UK): 一意キーの制約では、1つの列または列セット(キー)内のすべての値が一意であることが必要です。表内のどの2つの行にも、指定された列または列セットに重複する値を格納できません。UK列にはNULL値も格納できます。

  • 主キー(PK): キー(列または列セット)に定義される値。この値は、表内の各行を、キー(列または列セット)内の値で一意に識別できることを指定します。表内のどの2つの行にも、指定された列または列セットに重複する値を格納できません。データベース内の各表に設定できるPK制約は1つのみです。PK列にはNULL値を格納できません。

  • 外部キー(FK): 1つの表内のキー(列または列セット)に定義されるルール。このルールは、該当するキーの値が、参照表のPKキーまたはUKキー(列または列セット)の値と一致することを保証します。

  • チェック制約: 列(または列セット)に対するユーザー定義のルール。このルールは、行の挿入と更新を、その列(または列セット)に格納されている値に基づいて制限します。チェックの条件は、挿入または更新する行の値を使用して評価されるブール式であることが必要です。たとえば、受注日<出荷日という条件では、受注日列の値が出荷日列の値より必ず前の日付であることがチェックされます。この条件を満たしていない場合は、表のロード時にエラーが発生し、レコードは拒否されます。チェック条件に、副問合せや順序、またはSYSDATEUIDUSERUSERENV SQL関数を含めることはできません。チェック制約はデータの検証に役立ちますが、ロードのパフォーマンスは低下します。

制約の作成

制約を作成するには、データ・オブジェクト・エディタの「制約」タブを使用します。作成できる制約のタイプは、主キー、外部キー、一意キーおよびチェック制約です。

表、ビューまたはマテリアライズド・ビューに制約を作成する手順は、次のとおりです。

  1. 制約を追加するデータ・オブジェクト用にデータ・オブジェクト・エディタを開きます。

    プロジェクト・エクスプローラで、制約を定義するデータ・オブジェクトをダブルクリックします。あるいは、プロジェクト・エクスプローラでデータ・オブジェクトを右クリックし、「エディタを開く」を選択できます。

  2. 「制約」タブにナビゲートします。

  3. 作成する制約のタイプに応じて、次のいずれかの項を参照してください。

主キー制約の作成

主キー制約を定義する手順は、次のとおりです。

  1. 「制約」タブで、「制約の追加」ボタンをクリックします。

    「名前」列にカーソルが置かれた空白行が表示されます。

  2. 「名前」列に制約名を入力します。

  3. 「タイプ」列で「主キー」を選択します。

    [Tab]キーを押して「タイプ」列の外に移動するか、または「制約」タブ内の空いている場所をクリックします。

  4. 「ローカル列の追加」ボタンをクリックします。

    現在の行の下に、制約名および制約タイプが含まれる新しい行が追加されます。この新しい行の「ローカル列」列にはリストが表示されます。

  5. 新しい行の「ローカル列」リストで、主キーを表す列名を選択します。

    コンポジット主キーを作成するには、主キーを追加する列ごとに手順4および5を繰り返します。

外部キー制約の作成

外部キー制約を定義する手順は、次のとおりです。

  1. 「制約」タブで、「制約の追加」ボタンをクリックします。

    「名前」フィールドにカーソルが置かれた空白行が表示されます。

  2. 「名前」列に制約名を入力します。

  3. 「タイプ」列で「外部キー」を選択します。

    [Tab]キーを押して「タイプ」列の外に移動するか、または「制約」タブ内の空いている場所をクリックします。

  4. 「参照」列で、省略記号ボタンをクリックします。

    「キー・セレクタ」ダイアログ・ボックスが表示されます。このダイアログ・ボックスを使用して、現在の列が参照する表および列を選択します。

  5. 「キー・セレクタ」ダイアログ・ボックスで、外部キーが参照する主キー制約を選択します。

    たとえば、DEPARTMENTS表ではdepartment_id列に対してDEPT_PKという主キーが定義されています。EMPLOYEES表のdepartment_id列が主キーDEPT_FKを参照する外部キーであると指定するには、「キー・セレクタ」ダイアログ・ボックスでDEPARTMETNS表を表すノードの下のDEPT_FKを選択します。

  6. 「OK」をクリックします。

    データ・オブジェクト・エディタの「制約」タブに戻り、外部キー制約が追加されます。

一意キー制約の作成

一意キー制約を定義する手順は、次のとおりです。

  1. 「制約」タブで、「制約の追加」ボタンをクリックします。

    「名前」フィールドにカーソルが置かれた空白行が表示されます。

  2. 「名前」列に制約名を入力し、[Enter]キーを押します。

    [Tab]キーを押すか、エディタ内の他の場所をクリックすることもできます。

  3. 「タイプ」列で「一意キー」を選択します。

    [Tab]キーを押して「タイプ」列の外に移動するか、または「制約」タブ内の空いている場所をクリックします。

  4. 「ローカル列の追加」ボタンをクリックします。

    現在の行の下に、制約名および制約タイプが含まれる新しい行が追加されます。この新しい行の「ローカル列」列にはリストが表示されます。

  5. 新しい行の「ローカル列」リストで、一意キーを作成する列の名前を選択します。

チェック制約の作成

チェック制約を定義する手順は、次のとおりです。

  1. 「制約」タブで、「制約の追加」ボタンをクリックします。

    「名前」フィールドにカーソルが置かれた空白行が表示されます。

  2. 「名前」列に制約名を入力し、[Enter]キーを押します。

    [Tab]キーを押すか、エディタ内の他の場所をクリックすることもできます。

  3. 「タイプ」列で「チェック制約」を選択します。

    [Tab]キーを押して「タイプ」列の外に移動するか、または「制約」タブ内の空いている場所をクリックします。

  4. 「条件」列で、チェック制約に適用する条件を入力します(給与 > 2000など)。このフィールドを空白にすると検証時にエラーが生成され、この制約に対して有効なコードを生成できません。

    チェック条件で参照される列名は、プロパティ・シート内の表に対して定義された物理名と完全一致する必要があります。Warehouse Builderは検証時に条件の構文をチェックしません。これにより配布時にエラーとなる可能性があります。エラーが発生した場合は、リポジトリ・ブラウザで詳細を確認してください。

制約の編集

データ・オブジェクト・エディタの「制約」タブを使用して、制約を編集できます。制約について次の内容を変更できます。

  • 制約の改名

  • タイプの変更

  • チェック条件の変更

  • 外部キー制約の参照列の変更

  • 主キーの主キー列の変更

索引の使用

データ・ウェアハウスの問合せパフォーマンスを改善するには、索引を使用します。Warehouse Builderでは、表、マテリアライズド・ビューに対して索引を作成できます。簡潔に表現するために、以降の各項では、索引の定義が可能なすべてのオブジェクトをという語で表します。

索引は、ウェアハウス内で処理されるデータに迅速にアクセスすることによって問合せを高速化するために重要です。表の1つ以上の列に索引を作成すると、その表に対するSQL文の実行を高速化できます。索引には、次のような特徴があります。

索引および索引の方針の詳細は、Oracleデータ・ウェアハウス・ガイドを参照してください。

索引の作成

通常、索引を定義するには、データ・オブジェクト・エディタの「索引」タブを使用します。データ・オブジェクト・エディタを起動するには、プロジェクト・エクスプローラで表または他のデータ・オブジェクトに移動し、該当するオブジェクトをダブルクリックするか、右クリックして「エディタを開く」を選択します。索引タイプを選択すると、その索引の定義に使用できる適切なテンプレートが表示されます。

ビットマップ索引を除くすべてのタイプの索引については、基礎となる表のパーティション化メソッドを継承するかどうかを決定できます。パーティション化メソッドを継承する索引はローカル索引と呼ばれ、独自のパーティション化メソッドを使用する索引はグローバル索引と呼ばれます。詳細は、「索引のパーティション化」を参照してください。

Warehouse Builderでは、次のタイプの索引を作成できます。

  • 一意: これらの索引では、表内のどの2つの行にも、キー列または複合キー列に重複値がないことが保証されます。

  • 標準: 非一意索引とも呼ばれます。これらはBツリー・タイプの索引で、キー列または複合キー列の重複値に対する制限はありません。

  • ビットマップ: これらの索引は、大量のデータの問合せを可能にするために、データ・ウェアハウス・アプリケーションで主に使用されます。キー値として、行IDのリストのかわりにビットマップが使用されます。ビットマップは、索引キーの値が小さいリストを構成している場合に有効です。たとえば、AGE_GROUPは索引キーとして適切ですが、AGEは適切ではありません。

    ビットマップでは、スター問合せ変換が可能です。この変換は、スター問合せの効率的な実行を目的とした、コストベースの問合せ変換です。スター型変換の前提条件は、ビットマップ索引が、キューブ(複数可)の各外部キー列に作成されていることです。

    Warehouse Builderでビットマップ索引を定義するときは、そのスコープをLOCALに、パーティション化をNONEに設定します。

  • ファンクション・ベース: これらの索引では、表内の1つ以上の列に定義したファンクションまたは式の値が計算され、格納されます。ファンクションは、PL/SQLファンクション、パッケージ・ファンクション、CコールアウトまたはSQLファンクションを含む算術式です。

  • コンポジット: 連結索引とも呼ばれる複数列に対する索引です。表内の列の順序は任意で、互いに隣接している必要はありません。

    Warehouse Builderでコンポジット索引を定義するには、他の索引と同じように索引を作成し、2から32の索引列を割り当てます。

  • 逆: この索引は、ROWID列以外の索引付けされた各列について、列内のバイトを逆にします。ROWIDは逆にされないため、この索引では列順は保守されます。

    Warehouse Builderで逆索引を定義するには、他の索引と同じように索引を作成した後、構成ウィンドウに移動し、「パフォーマンス・パラメータ」の下にある「索引ソート」を「逆」に設定します。

パーティションの使用

パーティションを使用すると、非常に大きい表や索引を、管理しやすい小さい部分に分割して効率的に管理できます。パーティションでは、操作がデータのサブセットに対して行われるため、問合せやロードのパフォーマンスが向上します。パーティションを使用すると、データ・アクセスが改善され、全体的なアプリケーション・パフォーマンスが向上します。何百万もの行があり、データ・サイズがGB単位の表や索引にアクセスするアプリケーションに対しては特に有効です。

Warehouse Builderでは、表、索引、マテリアライズド・ビューおよびMOLAPキューブに対してパーティションを定義できます。簡潔に表現するために、以降の各項では、パーティションの定義が可能なすべてのオブジェクトをという語で表します。この後の項では、MOLAPキューブを除く前述のすべてのオブジェクトに対するパーティション化について説明します。MOLAPキューブについては別に説明します。

これらのオブジェクトに対するパーティションを定義するには、データ・オブジェクト・エディタの「パーティション」タブを使用します。データ・オブジェクト・エディタを起動するには、プロジェクト・エクスプローラでオブジェクトに移動し、そのオブジェクトをダブルクリックするか、右クリックして「編集」を選択します。作成するパーティションのタイプに応じて、「構成」パネルでパーティションの表領域の構成が必要となる場合もあります。

次のタイプのパーティションを作成できます。

レンジ・パーティション化

レンジ・パーティション化は最も一般的なタイプのパーティション化であり、日付範囲に基づいてデータをパーティション化する際によく使用されます。たとえば、売上高データを月次パーティションにパーティション化できます。

レンジ・パーティション化を使用するには、データ・オブジェクト・エディタの「パーティション」タブに移動してパーティション・キーを指定し、作成するパーティションごとに名前および値範囲を割り当てます。図13-3は、次の手順に基づいて4つのレンジ・パーティションにパーティション化された表の例を示しています。

範囲に基づいてデータをパーティション化する手順は、次のとおりです。

  1. データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下の最初のセルをクリックし、「範囲」を選択します。

    必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、レンジ・パーティションのテンプレートを展開します。

    図13-2 レンジ・パーティションが選択された「パーティション」タブ

    図13-2の説明が続きます
    「図13-2 レンジ・パーティションが選択された「パーティション」タブ」の説明

  2. パーティション・キーを選択します。

    Warehouse Builderに、選択したオブジェクトのすべての列がリストされます。任意のデータ型の列を選択できますが、DATEはレンジ・パーティション化で最も一般的なパーティション・キーです。

    複数のキー列に基づいてパーティション・キーを設定できます。別のキー列を追加するには、パーティション・キー・ノードを選択し、「追加」をクリックします。

  3. パーティションを定義します。

    パーティションの定義に役立てる目的で、テンプレートでは編集可能(ただし削除不可)な2つのパーティションが提供されています。「P1」は最初のパーティションを表し、「PDEFAULT」は最後のパーティションを表します。月に基づいてデータをパーティション化する場合、「P1」をJanに、また「PDEFAULT」をDecに、それぞれ改名できます。

    最後のパーティションがキーワード「MAXVALUE」に設定されています。これは、そのデータ型の他の値(NULL値を含む)よりも高くソートされる仮想の無限値を表します。

    最初と最後のパーティションの間にパーティションを追加するには、「パーティション」ノードをクリックし、「追加」を選択します。

    「値」で、作成した最初の範囲およびすべての追加範囲の最大値を指定します。これらの値は、それを下回ることを示す値です。たとえば、最初のパーティションが年の最初の月に対応する場合、そのパーティションに2月1日より前の値を含めるには、その日付をDD/MM/YYYYの書式で入力します。

レンジ・パーティション化の例

図13-3に、カレンダ年の四半期ごとにパーティションを定義する方法を示します。

図13-3 レンジ・パーティション化を指定した表の例

図13-3の説明が続きます
「図13-3 レンジ・パーティション化を指定した表の例」の説明

月または週ごとにデータをパーティション化することもできます。表などを使用してマッピングを設計する場合、パーティション交換ロード(PEL)の有効化を検討します。PELは、データ定義言語(DDL)の操作であり、ターゲット表の既存パーティションを新しいパーティションとスワップします。データ操作言語(DML)の操作ではないため、パーティションのスワップは即座に実行されます。

ハッシュ・パーティション化

ハッシュ・パーティション化では、ユーザーが識別したパーティション化キーにOracleデータベースが適用するハッシング・アルゴリズムに基づいて、データがパーティションに割り当てられます。ハッシング・アルゴリズムではパーティション間に行が均等に配分され、パーティションにはほぼ同じサイズが指定されます。データが履歴に基づくものではなく、明白な列または列リストが存在せず、論理範囲パーティション・プルーニングの方が好都合である場合、ハッシュ・パーティション化は、レンジ・パーティション化のかわりとなる適正かつ便利な手段です。

ハッシュ・アルゴリズムに基づいてデータをパーティション化する手順は、次のとおりです。

  1. データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下のセルをクリックし、「ハッシュ」を選択します。

    必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、ハッシュ・パーティションを定義するためのテンプレートを展開します。

    図13-4 ハッシュ・パーティション化

    図13-4の説明が続きます
    「図13-4 ハッシュ・パーティション化」の説明

  2. パーティション・キーを選択します。

    Warehouse Builderに、選択したオブジェクトのすべての列がリストされます。任意のデータ型の列を選択できます。

  3. パーティションを定義します。

    Warehouse Builderは、改名できる2つのパーティションを提供します。「パーティション」ノードをクリックし、「追加」 を選択して必要な数のパーティションを追加します。

    Oracleデータベースは、線形ハッシング・アルゴリズムを使用することで、特定のパーティション内でデータがクラスタ化されないようにしています。パーティションの数を2の累乗(2、4、8など)で定義する必要があります。

数量別ハッシュ・パーティション化

ハッシュ・パーティション化をすばやく定義するには、数量別ハッシュを使用します。パーティション・キーおよびパーティション数を定義すると、パーティションが自動的に作成され、名前が指定されます。この後、同一の表領域リストを共有するようパーティションを構成できます。

ハッシュ・アルゴリズムに基づいてデータをパーティション化する手順は、次のとおりです。

  1. データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下のセルをクリックし、「HASH BY QUANTITY」を選択します。

    必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、数量別ハッシュ・パーティションの定義用テンプレートを展開します。

    図13-5 HASH BY QUANTITYパーティション化

    図13-5の説明が続きます
    「図13-5 HASH BY QUANTITYパーティション化」の説明

  2. パーティションの数を定義します。デフォルト値は2つのパーティションです。

    Oracleデータベースは、線形ハッシング・アルゴリズムを使用することで、特定のパーティション内でデータがクラスタ化されないようにしています。パーティションの数を2の累乗(2、4、8など)で定義する必要があります。

  3. パーティション・キーを選択します。

    Warehouse Builderに、選択したオブジェクトのすべての列がリストされます。任意のデータ型の列を選択できます。

  4. 構成ウィンドウで、「パーティション表領域リスト」および「オーバーフロー表領域リスト」を定義します。

リスト・パーティション化

リスト・パーティション化を使用すると、行をパーティションに明示的に割り当てることができます。各パーティションに個別の値リストを指定することで、リスト・パーティション化を実行可能です。リスト・パーティション化の利点は、ソートおよび関連付けのされていないデータ・セットを自然な方法でグループ化、組織化できることです。

値リストに基づいてデータをパーティション化する手順は、次のとおりです。

  1. データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下のセルをクリックし、パーティション化メソッド「リスト」を選択します。

    必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、リスト・パーティションの定義用テンプレートを展開します。

    図13-6 リスト・パーティションが選択された「パーティション」タブ

    図13-6の説明が続きます
    「図13-6 リスト・パーティションが選択された「パーティション」タブ」の説明

  2. パーティション・キーを選択します。

    Warehouse Builderに、選択したオブジェクトのすべての列がリストされます。任意のデータ型の列を選択できます。

  3. パーティションを定義します。

    「PDEFAULT」はキーワード「DEFAULT」に設定されており、他のパーティションに割り当てられていないすべての行が含まれます。未割当てのすべての行を取得するパーティションは、データの整合性を維持するために必須となります。

    パーティションの定義に役立てる目的で、テンプレートは編集可能(ただし削除不可)な2つのパーティションを提供しています。P1は最初のパーティションを表し、PDEFAULTは最後のパーティションを表します。

    最初と最後のパーティションの間にパーティションを追加するには、「パーティション」ノードをクリックし、「追加」を選択します。

    「値」で、以前に選択したパーティション・キー内のデータに対応するパーティションごとに、カンマ区切りの値リストを入力します。たとえば、パーティション・キーがCOUNTRY_IDである場合、Asia、Eastern Europe、Western Europeなどについてパーティションを作成できます。その後に、各パーティションの値について、図13-7に示すように、リージョン内の国ごとに対応するCOUNTRY_IDをリストします。

リスト・パーティション化の例

図13-7では、「COUNTRY_ID」列に基づいてデータ・リストが異なるリージョンにパーティション化された表を示しています。各パーティションに単一のカンマ区切りリストが含まれます。

図13-7 単一キー列に基づくリスト・パーティション化

図13-7の説明が続きます
「図13-7 単一キー列に基づくリスト・パーティション化」の説明

図13-8では、キー列「REGION」および「SALES_DIVISION」に基づいてデータがパーティション化された表を示しています。各パーティションには、一重引用符で囲まれた2つのカンマ区切りリストが含まれます。この例では、「N」、「NE」、「S」、「SW」、「W」および「NW」が「REGION」に対応し、「PRD1」、「PRD2」、「PRD3」などが「SALES_DIVISION」に対応します。

図13-8 複数キー列に基づくリスト・パーティション化

図13-8の説明が続きます
「図13-8 複数キー列に基づくリスト・パーティション化」の説明

コンポジット・パーティション化

コンポジット・パーティション化メソッドには、レンジ・ハッシュ、数量別レンジ・ハッシュおよびレンジ・リスト・パーティション化が含まれます。Oracleデータベースは最初にレンジ・パーティション化を実行してから、ユーザーが選択した2つ目のパーティション化を使用してデータをさらに分割します。

コンポジット・パーティション・メソッドを定義するステップは、レンジ、ハッシュおよびリストなどの単純なパーティション・メソッドの定義に似ていますが、追加オプションが含まれます。

データをレンジ・パーティション化してから、リスト、ハッシュまたは数量別ハッシュに基づいてサブパーティション化する手順は、次のとおりです。

  1. データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下のセルをクリックし、コンポジット・パーティション化メソッドのいずれかを選択します。

    必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、テンプレートを展開します。

  2. パーティション・キーを選択し、「レンジ・パーティション化」の説明に従ってパーティションを定義します。

    図13-9 サブパーティション・テンプレートでリストが定義されたレンジ・リスト・パーティション化

    図13-9の説明が続きます
    「図13-9 サブパーティション・テンプレートでリストが定義されたレンジ・リスト・パーティション化」の説明

  3. サブパーティション・キーの列を選択します。

  4. サブパーティション・テンプレート・ノードで、「サブパーティション・テンプレートについて」の説明に従って2つ目のパーティション化メソッドの値を定義します。

  5. カスタム・サブパーティションを定義します(オプション)。

    レンジ・リスト・パーティションについて、サブパーティション・ノードで定義したデフォルトを上書きするカスタム・サブパーティションを指定できます。詳細は、「カスタム・サブパーティションの作成」を参照してください。

  6. 構成ウィンドウで、「パーティション表領域リスト」および「オーバーフロー表領域リスト」を構成します。

サブパーティション・テンプレートについて

コンポジット・パーティション化で2つ目のパーティション化メソッドを指定するには、サブパーティション・テンプレートを使用します。実行するステップは、選択するコンポジット・パーティションのタイプによって異なります。

数量別レンジ・ハッシュの場合、サブパーティションの数のみを入力します。

レンジ・ハッシュの場合、サブパーティション・テンプレートではサブパーティションの名前のみを入力できます。

レンジ・リストの場合、リストに名前を指定し、カンマ区切り値を入力します。必ず最後のサブパーティションが「DEFAULT」に設定された状態を維持してください。

カスタム・サブパーティションの作成

サブパーティション・テンプレートは、サブパーティションを定義する上で最も便利かつ最も一般的な方法です。サブパーティション・テンプレートで指定するエントリは、パーティション・ノードに含まれるすべてのパーティションに均等に適用されます。ただし、場合によってはサブパーティション・テンプレートを上書きする必要があります。

数量別レンジ・ハッシュの場合、パーティションを選択してから「ハッシュ・カウントの追加」をクリックします。Warehouse Builderではパーティション・ノードが展開され、そのパーティションに一意に適用されるハッシュ・サブパーティションの数を指定できます。

レンジ・ハッシュの場合、パーティションを選択してから「サブパーティションの追加」をクリックします。Warehouse Builderではパーティション・ノードが展開され、そのパーティションのサブパーティションにのみ名前を指定できます。

レンジ・リストの場合、パーティションを選択してから「サブパーティションの追加」をクリックします。Warehouse Builderではパーティション・ノードが展開され、そのパーティションのリスト・サブパーティションのみを指定できます。必ず最後のサブパーティションがDEFAULTに設定された状態を維持してください。

図13-10 サブパーティション・テンプレートを上書きするサブパーティション

図13-10の説明が続きます
「図13-10 サブパーティション・テンプレートを上書きするサブパーティション」の説明

索引パーティション化

ビットマップ索引を除くすべてのタイプの索引について、基礎となる表のパーティション化メソッドを継承するかどうかを決定できます。基礎となる表のパーティション化メソッドを継承する索引はローカル索引と呼ばれ、独自のパーティション化メソッドを使用する索引はグローバル索引と呼ばれます。

ローカル索引

ローカル索引は、基礎となる表で指定されたパーティションおよびサブパーティションと同じ列でパーティション化され、それらと同じ定義が設定されます。さらに、ローカル索引は表と同じ表領域を共有します。

たとえば、レンジ・リスト・パーティション化を使用して、売上高データの表を四半期別にパーティション化した後にリージョン別にパーティション化した場合、ローカル索引も四半期別にパーティション化された後、リージョン別にパーティション化されます。

ビットマップ索引はローカル索引としてのみ定義することができ、大量のデータを問い合せる際のパフォーマンスが最大限まで向上します。

Warehouse Builderでローカル索引を定義するには、「スコープ」を「LOCAL」に、「パーティション化」を「NONE」に設定します。

グローバル索引

グローバル索引は、基礎となる表に適用されたパーティション方針に関係なく索引をパーティション化できる索引です。レンジ・パーティション化またはハッシュ・パーティション化のいずれかを選択できます。グローバル索引オプションは、ビットマップ索引を除くすべての索引で使用できます。

Oracle 10g以前のリリースでは、パーティションのメンテナンス時に表のパーティションを削除すると索引全体が無効となり、索引の再作成が必要となるため、データ・ウェアハウス・アプリケーションにグローバル索引を使用しないよう推奨してきました。Oracle 10g以降、グローバル索引はパーティション化のメンテナンスにより悪影響を受けることがなくなったため、制限もなくなりました。

それでもなお、ローカル索引はパーティションの管理のしやすさおよび問合せ操作のパラレル化機能の面から、データ・ウェアハウス・アプリケーションに推奨される選択肢です。

グローバル索引は、表パーティション・キー以外の索引パーティション・キーを指定する際に役立ちます。その場合、索引キー列に重複した行がないことを確認し、索引タイプは一意を選択してください。

索引パフォーマンスの考慮事項

使用する索引のタイプを決定する際には、索引がパフォーマンス面において次の順序でランク付けされることを考慮してください。

  1. 一意のローカル索引

  2. 一意のグローバル索引

  3. 他のすべての一意でない索引(標準、ビットマップ、機能ベース)およびローカル索引

パーティションの構成

一部の(ただし、すべてではない)パーティション化メソッドでは、パーティション表領域を構成する必要があります。

プロジェクト・エクスプローラまたはデータ・オブジェクト・エディタから、パーティションのパラメータにアクセスできます。プロジェクト・エクスプローラでは、表を右クリックして「構成」を選択し、下にスクロールして「パーティション・パラメータ」を表示させます。または、データ・オブジェクト・エディタで「構成」パネルを選択して、「パーティション・パラメータ」ノードを展開します。

パーティション表領域リスト

数量別ハッシュ、レンジ・リスト、レンジ・ハッシュまたは数量別レンジ・ハッシュのいずれかのメソッドによりパーティション化する場合、カンマ区切りの表領域リストを入力します。

パーティション表領域を指定しない場合、表に関連付けられたデフォルトの表領域が使用され、パーティションの定義によるパフォーマンス上の利点は活かされません。

オーバーフロー表領域リスト

数量別ハッシュ・メソッドによりパーティション化する場合、カンマ区切りの表領域リストを入力します。パーティション数よりも少ない表領域のリストを指定した場合、Oracleデータベースによりそれらの表領域が循環使用されます。

オーバーフロー表領域を指定しない場合、パーティション表領域の制限を超えると、表に関連付けられたデフォルトの表領域が使用され、パーティションの定義によるパフォーマンス上の利点は活かされません。

表の使用

表はリレーショナル記憶域オブジェクトのメタデータ表現です。データベース・システムの表(Oracle表など)またはSAPシステムの表の場合もあります。次の各項では、表の作成および使用方法を説明します。

表定義の作成

作成した表には、ターゲット・スキーマのモデル化に使用されるメタデータが取り込まれます。この表定義には、表の制約、索引、パーティション、属性セットおよび表で使用される列とデータ型に関するメタデータが指定されています。この情報はワークスペースに格納されます。後からこれらの定義を使用して.ddlスクリプトを生成し、配布してターゲット・データベース内に物理表を作成できます。その後、これらの表に選択したソース表のデータをロードできます。

表を作成するにはデータ・オブジェクト・エディタを使用します。次に示す手順を実行します。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。

  2. 表を作成するモジュールを展開します。

  3. 「表」を右クリックし、「新規」を選択します。

    Warehouse Builderにデータ・オブジェクト・エディタが表示されます。データ・オブジェクト・エディタの表の詳細パネルにある次のタブを使用して表を定義します。

    「データ・ビューア」タブでは、ワークスペース表に格納されたデータを表示できます。「データ・ビューア」タブの詳細は、「データ・ビューア」を参照してください。

    これらのタブを使用した表の定義を終了すると、表定義が作成され、ワークスペースに格納されます。また、新しい表の名前がプロジェクト・エクスプローラに追加されます。


注意:

マッピング・エディタから表を作成することもできます。

「名前」タブ

データ・オブジェクトのネーミング規則に表示される指示に従って、名前と説明(オプション)を指定します。

「列」タブ

表の列を定義するには、「列」タブを使用します。このタブには列の定義に使用する表が表示されます。表内の各行は、表の1つの列の定義に対応します。Warehouse Builderにより、列を入力した順序で列の位置が生成されます。列の順序を変更するには、「表における列の順序変更」を参照してください。

列ごとに次の詳細を入力します。

  • 名前: 列名を入力します。列名は表内で一意である必要があります。予約語は使用できません。

  • データ型: 「データ型」リストから列のデータ型を選択します。Warehouse Builderにより、列名に基づいて列ごとにデフォルトのデータ型が割り当てられます。たとえば、start_dateという列を作成した場合、割り当てられるデータ型はDATEです。データ要件に合わない場合はデフォルトの割当てを変更できます。

    サポートされているOracleデータベースのデータ型のリストについては、「サポートされているデータ型」を参照してください。

  • 長さ: 属性の長さを指定します。長さは文字データ型にのみ適用可能です。

  • 精度: 列に許可された合計桁数を指定します。精度は数値データ型にのみ適用可能です。

  • スケール: 小数点以下の合計桁数を指定します。スケールは数値データ型にのみ適用可能です。

  • 秒精度: TIMESTAMPデータ型にのみ使用します。日時フィールドの小数部分に桁数を指定します。

  • NOT NULL: 列にNULL値を含めないよう指定するにはこのフィールドを選択します。デフォルトでは、表内のすべての列でNULLを使用できます。

  • デフォルト値: この列のデフォルト値を指定します。表にデータをロードする際にこの列に値が入力されていない場合、デフォルト値が使用されます。データのロード中にこの列の値を指定した場合、デフォルト値が上書きされ、指定した値がこの列に格納されます。

  • 説明: 列の説明(オプション)を入力します。

「制約」タブ

表の列に対して制約を作成するには、「制約」タブを使用します。主キー、外部キー、一意キーおよびチェック制約を作成できます。制約の作成の詳細は、「制約の作成」を参照してください。

「索引」タブ

表に対して索引を作成するには、「索引」タブを使用します。一意、標準、ビットマップ、機能ベース、コンポジットおよび逆タイプの索引を作成できます。

これらの索引の作成方法は、「索引の作成」を参照してください。

「パーティション」タブ

表のパーティションを作成するには、「パーティション」タブを使用します。レンジ、ハッシュ、数量別ハッシュ、リスト、コンポジットおよび索引の各タイプのパーティションを作成できます。

これらのパーティションの詳細および各タイプのパーティションの作成方法は、「パーティションの使用」を参照してください。

「属性セット」タブ

表の属性セットを作成するには、「属性セット」タブを使用します。ユーザー定義およびブリッジ属性セットを作成できます。表の属性セットを作成する手順は、「属性セットの使用」を参照してください。

「データ・ルール」タブ

表にデータ・ルールを適用するには、「データ・ルール」タブを使用します。データ・ルールを使用すると、表内の有効なデータおよび表間の有効な関係を決定できます。表にデータ・ルールを適用すると、Warehouse Builderにより表内のデータが指定のデータ・ルールに従っているかどうかが確認されます。データ・ルールの詳細は、「データ・ルールについて」を参照してください。

表にデータ・ルールを適用する前に、データ・ルールをワークスペースに定義しておく必要があります。データ・ルールの作成の詳細は、「データ・ルールの作成」を参照してください。

表にデータ・ルールを適用するには、「データ・ルール」タブの「ルールの適用」ボタンをクリックします。「データ・ルールの適用ウィザード」が表示されます。このウィザードを使用して、データ・ルールおよびデータ・ルールの適用先となる列を選択します。「データ・ルールの適用ウィザード」の使用方法は、「データ・ルールのオブジェクトへの適用」を参照してください。

「データ・ルール」タブの「適用されたルール」セクションに、表にバインドされているデータ・ルールが表示されます。データ・ルールを表に適用するには、データ・ルール名の左側のチェック・ボックスが選択されていることを確認してください。このオプションの選択を解除すると、データ・ルールが表に適用されません。

「バインド」セクションの「バインド」列に、データ・ルールのバインド先である表の列が表示されます。

表定義の編集

表定義を編集するには、データ・オブジェクト・エディタを使用します。データ・オブジェクト・エディタを起動するには、プロジェクト・エクスプローラで表の名前を右クリックし、「エディタを開く」を選択します。または、プロジェクト・エクスプローラで表の名前をダブルクリックします。

次の各項で、編集可能な表定義について説明します。

表の改名

データ・オブジェクト・エディタの「名前」タブにナビゲートします。「名前」フィールドをクリックし、表の新しい名前を入力します。「説明」フィールドに格納された説明を変更することもできます。

表の列の追加、変更および削除

列の追加: 「列」タブにナビゲートします。空白行で「名前」フィールドをクリックし、列を定義する詳細を入力します。詳細は、「「列」タブ」を参照してください。

列の変更: 列定義を変更するには、データ・オブジェクト・エディタの「列」タブを使用します。列定義の任意の属性を変更できます。詳細は、「「列」タブ」を参照してください。

列の削除: 「列」タブにナビゲートします。削除する列名の左側にあるグレーのセルを右クリックし、「削除」を選択します。

表制約の追加、変更および削除

データ・オブジェクト・エディタの「制約」タブにナビゲートします。

制約の追加および編集の詳細は、「制約の作成」および「制約の編集」をそれぞれ参照してください。

制約を削除するには、列名の左側にあるグレーのセルをクリックして、制約を表す行を選択します。タブの最下部にある「削除」をクリックします。

属性セットの追加、編集および削除

属性セットの追加の詳細は、「属性セットの作成」を参照してください。属性セットの編集方法は、「属性セットの編集」を参照してください。

属性セットを削除するには、「属性セット」タブにナビゲートします。削除する属性セットの左側にあるセルを右クリックし、「削除」を選択します。

表内の列の順序変更

デフォルトでは、表内の列は作成された順序で表示されます。この順序は、表の作成のために生成するDDLスクリプトにも伝播されます。このデフォルトの順序がアプリケーションのニーズに合わない場合、または問合せのパフォーマンスをさらに最適化する場合は、列の順序を変更できます。

列の位置を変更する手順は、次のとおりです。

  1. 表に対してデータ・オブジェクト・エディタが開いていない場合は、このエディタを開きます。

    そのためには、プロジェクト・エクスプローラで表の名前をダブルクリックする方法と、プロジェクト・エクスプローラで表の名前を右クリックして「エディタを開く」を選択する方法があります。

  2. 「列」タブで、列名の左側にあるグレーの四角を選択します。

    行全体がハイライト表示されます。

  3. 「列」タブの左側のボタンを使用し、列を必要な位置まで移動します。

    これで列の位置が更新されました。

  4. データ・オブジェクト・エディタを閉じます。

列の位置の変更をワークスペースに格納された表に反映させるには、変更した表定義を配布する必要があります。

ビューの使用

ビューおよびマテリアライズド・ビューを定義できます。この項ではビューについて説明します。マテリアライズド・ビューの詳細は、「マテリアライズド・ビューの使用」を参照してください。

ビューについて

ビューは、データの表示を単純化したり、データへのアクセスを制限するために使用します。ユーザーが関心を持つデータは、通常は多くの列を含む複数の表にまたがって格納されています。ビューを作成する場合、適切なデータのみまたはユーザーがアクセス権限を持つデータのみを取り出すよう格納される問合せを作成します。

ターゲット・データに対する問合せをモデル化するためにビューを定義できます。この問合せ情報はワークスペースに格納されます。後でこれらの定義を使用して.ddlスクリプトを生成し、配布してターゲット・システムにビューを作成できます。

ビューの使用方法は、次の項を参照してください。

ビュー定義の作成

ビュー定義には、ビュー、制約、属性セット、データ・ルールおよびビューで使用される列とデータ型に関するメタデータの作成に使用される問合せが指定されています。この情報はワークスペースに格納されます。ビュー定義を生成し、.ddlスクリプトを作成できます。これらのスクリプトを配布して、データベースに物理ビューを作成できます。

データ・オブジェクト・エディタでは、ビュー定義を作成できます。ビュー定義を作成する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを開きます。

  2. ビューを作成するターゲット・モジュールを展開します。

  3. 「ビュー」を右クリックし、「新規」を選択します。

    Warehouse Builderに、ビューに対するデータ・オブジェクト・エディタが表示されます。


    注意:

    マッピング・エディタからビューを定義し、独自の問合せをモデル化することもできます。

  4. データ・オブジェクト・エディタの次のタブで情報を指定し、ビューを定義します。

  5. データ・オブジェクト・エディタを閉じます。

    Warehouse Builderにより、ビューの定義が作成され、この定義がワークスペースに格納され、さらにプロジェクト・エクスプローラに定義名が挿入されます。

「名前」タブ

データ・オブジェクトのネーミング規則に表示される指示に従って、名前と説明(オプション)を指定します。

「列」タブ

ビューの列を定義するには、「列」タブを使用します。このタブには、ビューの列を定義する際に使用する表が表示されます。この表の各行は、ビューの列の1つの定義に対応しています。ビューの列ごとに、「名前」、「データ型」、「長さ」、「精度」、「スケール」、「秒精度」、「NOT NULL」、「デフォルト値」および「説明」の各詳細を入力します。これらのフィールドの説明は、「「列」タブ」を参照してください。

「問合せ」タブ

ビューの作成に使用する問合せを定義するには、「問合せ」タブを使用します。ビューには、ビューが属するモジュールとは別のモジュールに属する表のデータを含めることができます。また、結合を使用して複数の表のデータを結合できます。

入力する問合せ文が有効であることを確認してください。Warehouse Builderでは「問合せ」タブ内のテキストは検証されず、構文が無効である場合でもビューの配布が試行されます。

「制約」タブ

ビューの論理制約を定義するには、このページを使用します。ビューのDDLを列挙する際にこれらの制約は使用されませんが、これらの制約はビューがマッピングでデータ・ソースとなる場合に役立つことがあります。マッピング・エディタでは、論理外部キー制約を使用して、参照ディメンションを2つ目のソースとしてマッピングに含めることができます。


注意:

ビューにはチェック制約は作成できません。

制約の作成方法は、「制約について」を参照してください。

「属性セット」タブ

ビューの属性セットを定義するには、「属性セット」タブを使用します。属性セットおよびその作成方法の詳細は、「属性セットの使用」を参照してください。

「データ・ルール」タブ

ビューに適用されるデータ・ルールを指定するには、「データ・ルール」タブを使用します。「データ・ルール」タブの詳細は、「「データ・ルール」タブ」を参照してください。

「データ・ビューア」タブ

「データ・ビューア」タブでは、ビューの基礎となるデータベース表に格納されたデータを表示できます。このタブの詳細は、「データ・ビューア」を参照してください。

ビュー定義の編集

ビュー定義を編集するには、データ・オブジェクト・エディタを使用します。データ・オブジェクト・エディタを開くには、プロジェクト・エクスプローラでビューを右クリックし、開く-エクスプローラを選択します。次の各項では、編集可能なビュー定義について説明します。

ビューの改名

データ・オブジェクト・エディタの「名前」タブにナビゲートします。「名前」フィールドをクリックし、ビューの新しい名前を入力します。「説明」フィールドに格納された説明を変更することもできます。ハイライト表示されたオブジェクト名の上に新しい名前を入力します。

あるいは、プロジェクト・エクスプローラでビュー名を右クリックして「名前の変更」を選択し、ビューを改名できます。

ビュー列の追加、編集および削除

列の追加: 「列」タブにナビゲートします。空白行で「名前」フィールドをクリックし、列を定義する詳細を入力します。これらの詳細の情報は、「「列」タブ」を参照してください。

列の削除: 「列」タブにナビゲートします。削除する列名の左側にあるグレーのセルを右クリックし、「削除」を選択します。

ビュー制約の追加、編集および削除

データ・オブジェクト・エディタの「制約」タブにナビゲートします。制約の追加および編集の詳細は、「制約の作成」および「制約の編集」をそれぞれ参照してください。

制約を削除するには、「制約」タブで、制約を表す行を選択します。タブの最下部にある「削除」をクリックします。

属性セットの追加、編集および削除

属性セットの追加の詳細は、「属性セットの作成」を参照してください。属性セットの編集方法は、「属性セットの編集」を参照してください。

属性セットを削除するには、「属性セット」タブにナビゲートします。削除する属性セットの左側にあるセルを右クリックし、「削除」を選択します。

マテリアライズド・ビューの使用

ビューおよびマテリアライズド・ビューを定義できます。この項ではマテリアライズド・ビューについて説明します。従来型のビューの詳細は、「ビューの使用」を参照してください。

次の各項では、マテリアライズド・ビューの使用について説明します。

マテリアライズド・ビューについて

マテリアライズド・ビューを作成して、問合せのパフォーマンスを向上させることができます。マテリアライズド・ビューを作成する場合、複数の表のデータを集計または結合する問合せコマンド一式を作成します。マテリアライズド・ビューは、再使用またはリモート・データ・マートへのレプリケートが可能な事前計算済データを提供します。たとえば、企業の売上に関するデータが組織全体にわたって広範囲に検索されます。

マテリアライズド・ビューを作成する場合、Oracleデータベースで使用できるクエリー・リライトおよび高速リフレッシュ機能を活用するよう構成できます。クエリー・リライトおよび高速リフレッシュの詳細は、「マテリアライズド・ビューの高速リフレッシュ」を参照してください。

マテリアライズド・ビュー定義の作成

マテリアライズド・ビュー定義では、マテリアライズド・ビュー、制約、索引、パーティション、属性セット、データ・ルールおよびマテリアライズド・ビューで使用される列およびデータ型に関するメタデータの作成に使用する問合せが指定されます。ビュー定義を生成し、マテリアライズド・ビューの配布に使用される.ddlスクリプトを取得できます。

データ・オブジェクト・エディタにより、マテリアライズド・ビューを作成できます。マテリアライズド・ビューを作成する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを開きます。

  2. マテリアライズド・ビューを作成するターゲット・モジュールを展開します。

  3. 「マテリアライズド・ビュー」を右クリックし、「新規」を選択します。

    Warehouse Builderに、このマテリアライズド・ビューに対するデータ・オブジェクト・エディタが表示されます。


    注意:

    マッピング・エディタからマテリアライズド・ビューを定義することもできます。

  4. データ・オブジェクト・エディタの次のタブで情報を指定し、マテリアライズド・ビュー定義を作成します。

  5. データ・オブジェクト・エディタを閉じます。

    このウィザードでは、マテリアライズド・ビューの定義の作成、データベース・モジュールへのこの定義の格納、およびウェアハウス・モジュール・プロジェクト・エクスプローラへの定義名の挿入が実行されます。

「名前」タブ

データ・オブジェクトのネーミング規則に表示される指示に従って、名前と説明(オプション)を指定します。

「列」タブ

マテリアライズド・ビューの列を定義するには、「列」タブを使用します。このタブには、列を定義できる表が表示されます。表内の1行はマテリアライズド・ビュー内の1列に対応しています。列ごとに、詳細(「名前」、「データ型」、「長さ」、「精度」、「スケール」、「秒精度」、「NOT NULL」、「デフォルト値」および「説明」)を指定します。詳細は、「「列」タブ」を参照してください。

「問合せ」タブ

マテリアライズド・ビューの作成に使用する問合せを定義するには、「問合せ」タブを使用します。「SELECT文」フィールドに必ず有効な問合せを入力してください。列名については、前のステップで列ページに指定した名前を使用します。列ページの列名を変更する場合は、「問合せ」タブで名前を手動で変更する必要があります。Warehouse Builderでは、「問合せ」タブ内のテキストは検証されず、構文が無効であってもマテリアライズド・ビューの配布が試行されます。

「制約」タブ

マテリアライズド・ビューの制約を定義するには、「制約」タブを使用します。制約の定義はオプションです。これらの制約は論理設計のみを目的としており、ビューのDDLを列挙する際にこれらの制約は使用されません。制約の作成の詳細は、「制約の作成」を参照してください。


注意:

ビューにはチェック制約は作成できません。

「索引」タブ

マテリアライズド・ビューに対して索引を定義するには、「索引」タブを使用します。索引の定義はオプションです。一意、標準、ビットマップ、ファンクション・ベース、コンポジットおよび逆タイプの索引を作成できます。

索引の作成の詳細は、「索引の作成」を参照してください。

「パーティション」タブ

マテリアライズド・ビューに対してパーティションを定義するには、「パーティション」タブを使用します。マテリアライズド・ビューのパーティション化はオプションです。「索引パーティション化」「範囲パーティション化」「HASHパーティション化」「HASH BY QUANTITYパーティション化」「LISTパーティション化」またはコンポジット・パーティション化を実行できます。

「属性セット」タブ

マテリアライズド・ビューに対して属性セットを定義するには、「属性セット」タブを使用します。属性セットの定義はオプションです。作成できる属性セットのタイプは、ユーザー定義およびブリッジです。属性セットの定義方法の詳細は、「属性セットの作成」を参照してください。

「データ・ルール」タブ

マテリアライズド・ビュー・データに適用する必要があるデータ・ルールを指定するには、「データ・ルール」タブを使用します。

マテリアライズド・ビュー定義の編集

マテリアライズド・ビュー定義を編集するには、データ・オブジェクト・エディタを使用します。データ・オブジェクト・エディタを開くには、マテリアライズド・ビューを右クリックし、「エディタを開く」を選択します。次の各項では、マテリアライズド・ビューに関する編集可能な定義について説明します。

マテリアライズド・ビューの改名

エディタの「名前」タブにある「名前」フィールドをダブルクリックします。これにより名前が選択されます。新しい名前を入力します。

あるいは、プロジェクト・エクスプローラで、マテリアライズド・ビュー名を右クリックし、「名前の変更」を選択します。ハイライト表示されたオブジェクト名の上から新しい名前を入力します。

マテリアライズド・ビュー列の追加、編集および削除

列の追加: 「列」タブにナビゲートします。空白行で「名前」フィールドをクリックし、列の詳細を入力します。これらの詳細の情報は、「「列」タブ」を参照してください。

列の削除: 「列」タブにナビゲートします。削除する列名の左側にあるグレーのセルを右クリックし、「削除」を選択します。

マテリアライズド・ビューの制約の追加、編集および削除

データ・オブジェクト・エディタの「制約」タブにナビゲートします。制約の追加および編集の詳細は、「制約の作成」および「制約の編集」をそれぞれ参照してください。

制約を削除するには、「制約」タブで、制約を表す行を選択します。タブの最下部にある「削除」をクリックします。

属性セットの追加、編集および削除

属性セットの追加の詳細は、「属性セットの作成」を参照してください。属性セットの編集方法は、「属性セットの編集」を参照してください。

属性セットを削除するには、「属性セット」タブにナビゲートします。削除する属性セットの左側にあるセルを右クリックし、「削除」を選択します。

属性セットの使用

属性セットには、選択した列のセットが指定した順に含まれています。属性セットは、マッピングの定義時、またはデータのインポートおよびエクスポート時に役立ちます。Warehouse Builderでは、表、ビューおよびマテリアライズド・ビューの属性セットを定義できます。簡潔に表現するために、以降の各項では、属性セットの定義が可能なすべてのオブジェクトをという語で表します

各表に対して、その表内のすべての列が含まれる事前定義済の属性セットが生成されます。さらに、定義済の各制約に対しても事前定義済の属性セットが生成されます。事前定義済の属性セットは変更または削除できません。

属性セットの作成

属性セットを作成するには、データ・オブジェクト・エディタの「属性セット」タブを使用します。次のタイプの属性セットを作成できます。

  • ユーザー定義: 表プロパティ・ウィンドウで作成、変更または削除できるオプションの属性セットです。

  • ブリッジ: Oracle Discovererなどの別のアプリケーションにエクスポートおよび表示できるオプションの属性セットです。表プロパティ・ウィンドウでは、ブリッジ・タイプの属性セットを作成、変更または削除できます。1つのオブジェクトに指定できるブリッジ・タイプの属性セットは1つのみです。

表に属性セットを追加する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで表名を右クリックし、「エディタを開く」を選択します。

    表に対するデータ・オブジェクト・エディタが表示されます。

  2. 「属性セット」タブを選択します。

    このタブには、「属性セット」および「選択された属性セットの属性」の2つのセクションが含まれます。

    「属性セット」セクションには、表に対して定義されている属性セットが表示されます。このセクションには、「名前」、「タイプ」および「説明」の各属性セットを定義する3つの列が含まれます。

    「選択された属性セットの属性」セクションには、表内のすべての属性がリストされます。「挿入」列を使用して選択した属性は、「エンティティの属性セット」セクションで選択した属性セットの一部である属性です。

  3. 「エンティティの属性セット」セクションで、空白行の「名前」フィールドをクリックし、属性セット名を入力します。

    物理モードでは、1から30文字の有効な文字で名前を入力する必要があります。空白は使用できません。論理モードでは、最大200文字の有効な文字を入力できます。空白は使用できます。属性セット名はオブジェクト内で一意である必要があります。

    「選択された属性セットの属性」セクションにすべての表属性が表示されていることに注意してください。

  4. 「タイプ」リストで、属性セットのタイプとして「USER_DEFINED」または「BRIDGE_TYPE」を選択します。

  5. オプションで、「説明」列を使用して属性セットの説明を入力できます。

  6. 「選択された属性セットの属性」セクションで、属性セットに含める属性ごとに「挿入」を選択します。列を選択する順序により、属性セット内での初期順序が決定されます。

    属性セットに表示されたすべての列を選択するには、「すべて選択」を選択します。属性セットからすべての列を除外するには、「すべて選択解除」を選択します。属性セットから列を削除するには、「挿入」の選択を解除します。

  7. 「BRIDGE_TYPE」を選択した場合、「拡張」をクリックします。

    Warehouse Builderに、「拡張された属性セット・プロパティです。」ダイアログ・ボックスが表示されます。

  8. BRIDGE_TYPE属性セット内の属性ごとに、次のプロパティを指定します。これらのプロパティにより、Oracle Discovererでのオブジェクトの表示方法が決定されます。

    非表示: 表が別のアプリケーションに表示されている場合に未使用または失効した列を非表示にするには、「非表示」を選択します。Discoverer Administration Editionでは、非表示の列はグレー表示されます。Discoverer Plus Editionでは、非表示の列は表示されません。

    集計: 数値属性に対する集計として「SUM」、「MIN」、「MAX、「AVG」または「COUNT」を、集計しない場合は「DETAIL」を選択します。デフォルトは「SUM」です。

    位置: 属性のデフォルトの位置を「DATA POINT」、「PAGE」、「SIDE」、「TOP」または「TOP/SIDE」から選択します。デフォルトは「DATA POINT」です。

    アイテム・クラス: TRUEの場合は選択し、FALSEの場合は選択を解除します。デフォルトはFALSEです。

    ヘッダー: ヘッダー・テキストを入力します。

    フォーマット: 「フォーマット」フィールドのテキストを入力します。

  9. 「Ok」をクリックし、「拡張された属性セット・プロパティです。」ダイアログ・ボックスを閉じます。

属性セットの編集

属性セットを編集するには、データ・オブジェクト・エディタの「属性セット」タブを使用します。属性セットを編集する際に、次のアクションを実行できます。属性セットを編集する前に、属性セットが含まれるオブジェクトに対してデータ・オブジェクト・エディタが開いていることを確認します。また、データ・オブジェクト・エディタの「属性セット」タブにナビゲートします。

  • 属性セットの改名

    「エンティティの属性セット」セクションの「名前」列で属性セット名をクリックし、新しい名前を入力します。

  • 属性セットのタイプの変更

    「エンティティの属性セット」セクションの「タイプ」リストを使用して、属性セットのタイプを変更します。

  • 属性セットの属性の追加または削除

    属性セットへの属性の追加: 「エンティティの属性セット」セクションの属性セット名の左側にあるグレーのセルをクリックし、属性を追加する属性セットを選択します。「選択された属性セットの属性」セクションで、属性セットに含める属性ごとに「挿入」をクリックします。

    属性セットからの属性の削除: 属性セットの左側にあるグレーのセルをクリックし、属性を削除する属性セットを選択します。「選択された属性セットの属性」セクションで、属性セットから削除する属性について「挿入」をクリックします。

  • 属性セットにおける属性の表示順序の変更

    属性セットでの属性の順序を変更するには、「選択された属性セットの属性」セクションの左側にあるボタンを使用します。属性の左側にあるグレーのセルをクリックし、ボタンを使用して属性の順序を上下に移動します。

  • 属性セットの削除

    属性セット名の左側にあるグレーのセルを右クリックし、「削除」を選択します。

順序の使用

順序は、連続した一意の数値のリストを生成するデータベース・オブジェクトです。順序を使用して、一意の主キー値を生成し、複数の行または表にまたがってキーを統合できます。順序の値は一意になるよう保証されています。順序を作成する場合、ワークスペースに格納される順序定義を作成します。順序定義をマッピングに使用して、ターゲット・システムにデータを変換および移動する際に一意の数値を生成できます。

次の各項では、順序の使用方法について説明します。

順序について

順序は、NEXTVALおよびCURRVAL疑似列を使用してSQL文において参照されます。各新規順序番号は疑似列NEXTVALへの参照により増加し、現行の順序番号は疑似列CURRVALを使用して参照されます。順序を定義すると、これらの属性が作成されます。

「オブジェクト・インポート・ウィザード」を使用して既存のソース・システムから順序定義をインポートすることもできます。

順序定義の作成

新規順序を作成する手順は、次のとおりです。

  1. プロジェクト・エクスプローラでウェアハウス・モジュール・ノードを開きます。

  2. 「順序」を右クリックし、メニューから「新規」を選択します。

    Warehouse Builderに、順序の作成ウィザードが表示されます。

  3. 表の名前および説明(オプション)を指定するには、「名前」タブを使用します。「データ・オブジェクトのネーミング規則」にリストされたルールに加えて、モジュール間で名前が一意である必要があります。

  4. 「OK」をクリックします。

    Warehouse Builderにより順序の定義が格納され、プロジェクト・エクスプローラに順序名が挿入されます。

順序定義の編集

「順序の編集」ダイアログ・ボックスを使用して、順序定義を編集します。順序の名前、説明および列に関する注意を編集できます。

順序プロパティを編集するには、プロジェクト・エクスプローラで順序名を右クリックして「エディタを開く」を選択するか、順序名をダブルクリックします。「順序の編集」ダイアログ・ボックスが表示されます。このダイアログ・ボックスには、「名前」タブ「列」タブの2つのタブがあります。

これらのタブをクリックし、次のタスクを実行します。

  • 順序の名前変更

  • 順序列の編集

「名前」タブ

データ・オブジェクトのネーミング規則に表示される指示に従って、名前と説明(オプション)を指定します。

また、プロジェクト・エクスプローラで順序名を右クリックして「名前の変更」を選択し、順序名を変更できます。

「列」タブ

「列」タブには、順序列「CURRVAL」および「NEXTVAL」が表示されます。これらの列の説明を編集できます。

順序列の説明の編集

順序の列の説明を編集する手順は、次のとおりです。

  1. 順序名を右クリックし、「エディタを開く」を選択します。

    「順序エディタ」ダイアログ・ボックスが開きます。

  2. 「列」タブを選択します。

  3. スクロールして「説明」フィールドを表示し、選択した列の説明を入力または変更します。

ユーザー定義型の使用

ユーザー定義データ型では、Oracle組込みデータ型およびその他のユーザー定義データ型が、アプリケーションでのデータの構造および動作をモデル化するオブジェクト・タイプの構築ブロックとして使用されます。組込みデータ型は、ほとんどの場合スカラーであり、アプリケーション固有のデータ構造によるモデル化ほどは柔軟性がありません。単純な顧客表の例を考えてみましょう。顧客の住所情報は通常4つまたは5つの独立したフィールドとしてモデル化され、それぞれに適切なスカラー型が指定されます。ユーザー定義型では、コンポジット型としてのアドレスの定義およびその型に対する検証の定義が可能です。

ユーザー定義データ型は、システム固有のデータ型のモデル化機能を拡張するものです。ユーザー定義データ型では、基礎となる持続データ(属性)および関連動作(メソッド)の両方が指定されます。

ユーザー定義型では、データ属性をセマンティック動作にバインドすることで、現実における複雑なエンティティのより適切なモデルを作成できます。

ユーザー定義型の作成

ユーザー定義型は、1つ以上の単純なデータ型の組合せから作成されます。単純なデータ型の例として、整数、文字およびバイト列があります。

この項では、次のユーザー・データ型の概要を説明します。

オブジェクト・タイプについて

オブジェクト・タイプは、アプリケーション・プログラムによって処理される、発注などの実際のエンティティを抽象化したものです。これは異機種間ユーザー定義型です。1つ以上のユーザー定義型またはスカラー型で構成されます。

オブジェクト・タイプは、次のコンポーネントを含むスキーマ・オブジェクトです。

  • 名前: 名前は、そのスキーマ内でオブジェクト・タイプを一意に識別します。

  • 属性: 属性は、オブジェクトで表される実際のエンティティの構造および状態を作成する際に使用します。属性には組込み型またはその他のユーザー定義型があります。

  • メソッド: メソッドには、PL/SQLまたはJavaで記述され、データベースに格納されているか、またはCなどの言語で記述され、外部に格納されているファンクションまたはプロシージャが含まれます。メソッドは、アプリケーションが実際のエンティティに対して実行できる操作のコードベース表現です。


    注意:

    メソッドは現在サポートされていません。

たとえば、アドレス・タイプ定義は次のように定義できます。

CREATE TYPE ADDRESS AS OBJECT ( street_name varchar2(240) , door_no varchar2(30) , po_box_no number , city varchar2(35) , state varchar2(30), country varchar2(30)).

タイプが定義された後は、フィールドの1つとしてタイプ定義「アドレス」を必要とする表のスキーマ全体で使用できます。

オブジェクト・タイプの作成

オブジェクト・タイプを作成する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。

  2. オブジェクト・タイプを作成するモジュールを展開します。

  3. 「ユーザー定義タイプ」ノードを展開します。

  4. 「オブジェクト・タイプ」を右クリックし、「新規」を選択します。

    データ・オブジェクト・エディタが表示されます。データ・オブジェクト・エディタの「ObjectTypesプロパティ」パネルにある次のタブを使用して、オブジェクト・タイプを定義します。

「名前」タブ

データ・オブジェクトのネーミング規則に表示される指示に従って、名前と説明(オプション)を指定します。

「列」タブ

オブジェクト・タイプ内の列を定義するには、「列」タブを使用します。このタブには、列の定義に使用できる属性のリストが表示されます。属性内の各行は1つのオブジェクト列の定義に対応しています。

列ごとに次の詳細を指定します。

  • 名前: 列名を入力します。列名はオブジェクト・タイプ内で一意である必要があります。予約語は使用できません。

  • データ型: 「データ型」リストから列のデータ型を選択します。Warehouse Builderにより、列名に基づいて列のデフォルトのデータ型が割り当てられます。たとえば、start_dateという列を作成する場合、割り当てられるデータ型はDATEです。デフォルトの割当てがデータ要件に合わない場合は変更できます。


    関連項目:

    Oracleデータベースのサポートされるデータ型のリストは、サポートされているデータ型を参照してください。

  • 長さ: 列の長さを指定します。長さは文字データ型にのみ適用可能です。

  • 精度: 列に許可された合計桁数を指定します。精度は数値データ型にのみ適用可能です。

  • スケール: 小数点以下の合計桁数を指定します。スケールは数値データ型にのみ適用可能です。

  • 秒精度: 日時フィールドの小数部分の桁数を指定します。秒精度はTIMESTAMPデータ型にのみ使用されます。

  • NOT NULL: 列にNULL値を含めないよう指定するにはこのフィールドを選択します。デフォルトでは、表内のすべての列でNULLを使用できます。この列はオブジェクト・タイプには適用できません。

  • デフォルト値: この列のデフォルト値を指定します。データが表に格納されている一方でこの列に値が入力されていない場合、デフォルト値が使用されます。データのロード中にこの列の値を指定した場合、デフォルト値が上書きされ、指定値が列に格納されます。この列はオブジェクト・タイプには適用できません。

  • 説明: 列の説明を入力します。これはオプションです。

オブジェクト・タイプの編集

オブジェクト・タイプを編集する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。

  2. オブジェクト・タイプを作成するモジュールを展開します。

  3. 「ユーザー定義タイプ」ノードを展開します。

  4. 「オブジェクト・タイプ」ノードを展開します。

  5. 編集するオブジェクト・タイプを右クリックし、「エディタを開く」を選択します。

データ・オブジェクト・エディタが表示されます。「オブジェクト・タイプの作成」の項で定義されている「名前」および「列」タブを使用して、オブジェクト・タイプの定義を編集します。

可変長配列について

可変長配列は、順序を設定したデータ要素コレクションです。可変長配列内の各要素の位置は、索引番号として格納されます。この番号を使用して、特定の要素にアクセスできます。可変長配列を定義する際、配列に含めることができる最大要素数を指定します。この数値は後で変更できます。可変長配列は不透明なオブジェクト(RAWまたはBLOBなど)として格納されます。

顧客が複数のアドレス(3つのアドレスなど)を持っている場合、もう1つのタイプとして3つのアドレスを保持する表タイプを作成できます。次の例では、アドレス・タイプの表を作成します。

TYPE address_store is VARRAY(3) of address;

可変長配列は、順序を設定した要素セットです。したがって、リストの最初のアドレスが第1アドレスとみなされ、残りのアドレスは第2アドレスとみなされます。

可変長配列の作成

可変長配列を作成する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。

  2. 可変長配列を作成するモジュールを展開します。

  3. 「ユーザー定義タイプ」ノードを展開します。

  4. 「可変長配列」を右クリックし、「新規」を選択します。

    データ・オブジェクト・エディタが表示されます。データ・オブジェクト・エディタの「可変長配列詳細」パネルにある次のタブを使用して、オブジェクト・タイプを定義します。

「名前」タブ

データ・オブジェクトのネーミング規則に表示される指示に従って、名前と説明(オプション)を指定します。

「詳細」タブ

「詳細」タブを使用して、次のフィールドの値を指定します。

  • 長さ: 可変長配列要素の長さを指定します。長さは文字データ型にのみ適用可能です。

  • 精度: 可変長配列要素に対して可能な合計桁数を指定します。精度は数値データ型にのみ適用可能です。

  • スケール: 小数点以下の合計桁数を指定します。スケールは数値データ型にのみ適用可能です。

  • 秒精度: 日時フィールドの小数部分の桁数を指定します。秒精度はTIMESTAMPデータ型にのみ使用されます。

  • サイズ: 可変長配列のサイズを指定します。

可変長配列の編集

可変長配列を編集するには、次の手順を実行します。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。

  2. 可変長配列タイプを編集するモジュールを展開します。

  3. 「ユーザー定義タイプ」ノードを展開します。

  4. 「可変長配列」ノードを展開します。

  5. 編集する可変長配列を右クリックし、「エディタを開く」を選択します。

データ・オブジェクト・エディタが表示されます。「可変長配列の作成」の項で定義されている「名前」および「詳細」タブを使用して、可変長配列の定義を編集します。

ネストした表について

ネストした表は、不規則なデータ要素コレクションです。ネストした表では、任意の数の要素を使用できます。表の定義では最大要素数は指定されていません。要素の順序は保持されません。通常の表に対して実行できるSELECT、INSERTおよびDELETEなどのすべての操作をネストした表で実行できます。ネストした表の要素は、各要素が属する親表の行またはオブジェクトを識別する列が含まれる独立した記憶域表に格納されます。要素には組込み型またはユーザー定義型を指定できます。ネストした表を単一列の表で表示、またはネストした表がオブジェクト・タイプである場合は、オブジェクト・タイプの属性ごとに1列ずつ、複数列の表で表示できます。

ネストした表は、サイズが事前定義されていない不規則な要素セットの格納に使用されます。たとえば、顧客参照などです。

ネストした表の作成

ネストした表を作成する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。

  2. ネストした表を作成するモジュールを展開します。

  3. 「ユーザー定義タイプ」ノードを展開します。

  4. 「ネストした表」を右クリックし、「新規」を選択します。

    データ・オブジェクト・エディタが表示されます。データ・オブジェクト・エディタのネストした表の詳細パネルにある次のタブを使用して、オブジェクト・タイプを定義します。

「名前」タブ

データ・オブジェクトのネーミング規則に表示される指示に従って、名前と説明(オプション)を指定します。

「詳細」タブ

「詳細」タブを使用して、次のフィールドの値を指定します。

  • 長さ: ネストした表要素の長さを指定します。長さは文字データ型にのみ適用可能です。

  • 精度: ネストした表要素に対して可能な合計桁数を指定します。精度は数値データ型にのみ適用可能です。

  • スケール: 小数点以下の合計桁数を指定します。スケールは数値データ型にのみ適用可能です。

  • 秒精度: 日時フィールドの小数部分の桁数を指定します。秒精度はTIMESTAMPデータ型にのみ使用されます。

ネストした表の編集

ネストした表を編集するには、次の手順を実行します。

  1. プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。

  2. ネストした表を編集するモジュールを展開します。

  3. 「ユーザー定義タイプ」ノードを展開します。

  4. 「ネストした表」ノードを展開します。

  5. 編集するネストした表を右クリックし、「エディタを開く」を選択します。

データ・オブジェクト・エディタが表示されます。「ネストした表の作成」の項で定義されている「名前」および「詳細」タブを使用して、ネストした表の定義を編集します。

データ・オブジェクトの構成

設計フェーズの初期に、Warehouse Builder設計オブジェクトを使用してターゲット・システムの論理モデルを定義しました。この項では、それらの設計オブジェクトに物理プロパティを割り当てる方法について説明します。

この項の内容は次のとおりです。

設計オブジェクトの構成

このフェーズでは、表領域、パーティションおよびその他の識別パラメータなどのプロパティを構成し、オブジェクト定義に物理配布プロパティを割り当てます。ジョブ名、ランタイム・ディレクトリなどのランタイム・パラメータも構成します。

「構成プロパティ」ダイアログ・ボックスを使用して、これらの物理プロパティを設定します。以降の各項で、物理プロパティを論理設計モデルに割り当てる方法を示します。

ターゲット・モジュールの構成

各ターゲット・モジュールでは、そのモジュールに含まれるすべてのオブジェクトに対してトップ・レベルの構成オプションが提供されます。

ターゲット・モジュールを構成する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで、「データベース」「Oracle」を順に開き、ターゲット・モジュール名を右クリックして「構成」を選択します。

    Warehouse Builderに「構成プロパティ」ダイアログ・ボックスが表示されます。

  2. 構成するパラメータを選択し、パラメータ名の右側の空白をクリックしてパラメータ値を編集します。

    パラメータごとに、リストからオプションを選択するか、値を入力するか、または省略記号ボタンをクリックして別の「プロパティ」ダイアログ・ボックスを表示できます。

  3. 次の各項にリストしたパラメータを構成します。

識別

メイン・アプリケーションの短縮名: このパラメータは廃止されており、使用していません。

アプリケーションの短縮名: このパラメータは廃止されており、使用していません。

ロケーション: モジュールが関連付けられているロケーションを表します。モジュールがソース・モジュールである場合、この値はデータのソースであるロケーションを表します。モジュールがターゲット・モジュールである場合、この値は生成済コードおよびオブジェクト・データの配布先となるロケーションを表します。

トップ・ディレクトリ: 生成済コードが格納されるディレクトリの名前を表します。このパラメータのデフォルト値は..¥..¥codegen¥です。この値は生成済コードを格納する任意のディレクトリに変更できます。

配布可能: モジュールに含まれるオブジェクトを配布できることを示すには、このオプションを選択します。

ストリーム管理者: このパラメータは今後のリリースで使用されます。

表領域のデフォルト

デフォルト索引表領域: 索引が作成される各表領域の名前を定義します。デフォルトはNULLです。オブジェクト・レベルではなくターゲット・モジュール・レベルで索引表領域を構成した場合、コード生成時にターゲット・モジュール・レベルで構成された表領域の値が使用されます。各索引の表領域をオブジェクト・レベルで構成した場合、ターゲット・モジュール・レベルで構成された表領域の値が上書きされます。

オブジェクト表領域: オブジェクトが作成される各表領域の名前(表、ビューまたはマテリアライズド・ビューなど)を定義します。デフォルトはNULLです。個々のオブジェクト・レベルではなくターゲット・モジュール・レベルでオブジェクト表領域を構成した場合、コード生成時にターゲット・モジュール・レベルで構成された値が使用されます。各オブジェクトの表領域を構成した場合、ターゲット・モジュール・レベルで構成された表領域の値が上書きされます。

生成プリファレンス

行端: フラット・ファイルの行端マーカーを定義します。これはウェアハウスの配布先であるプラットフォームによって異なります。UNIXの場合は¥nを使用し、NTの場合は¥r¥nを使用します。

配布システム・タイプ

PL/SQL生成モード: ターゲット・データベース・タイプを定義します。コード生成はこのフィールドでの選択内容に基づきます。たとえば、Oracle 9iコード構成を必ず使用するにはOracle 9iを選択します。Oracle 8iを選択した場合、行ベース・コードが生成されます。

各リリースでは新機能が導入されており、その一部はOracle Databaseの最新バージョンと組み合せた場合のみ使用できます。たとえば、「PL/SQL生成モード」としてOracle 8iを選択した場合、テーブル・ファンクションおよび外部表など、一部のOracle 9i Warehouse Builderコンポーネントにアクセスできません。旧リリースのOracle Databaseと互換性のないコンポーネントのリストは、Oracle Warehouse Builderリリース・ノートを参照してください。

ランタイム・ディレクトリ

受信ディレクトリ: 現在使用していません。デフォルトはreceive¥です。

入力ディレクトリ: 現在使用していません。デフォルトはinput¥です。

無効ディレクトリ: ローダー・エラーおよび拒否されたレコードのディレクトリです。デフォルトはinvalid¥です。

作業ディレクトリ: 現在使用していません。デフォルトはwork¥です。

ソート・ディレクトリ: 現在使用していません。デフォルトはsort¥です。

ログ・ディレクトリ: SQL*Loaderのログ・ディレクトリです。デフォルトはlog¥です。

アーカイブ・ディレクトリ: 現在使用していません。デフォルトはarchive¥です。

生成ターゲットのディレクトリ

DDLディレクトリ: ターゲット・スキーマでデータベース・オブジェクトを作成するスクリプトのロケーションを入力します。デフォルトはddl¥です。

DDL拡張子: DDLスクリプトのファイル名拡張子を入力します。デフォルトは.ddlです。

DDLスプール・ディレクトリ: スクリプトの生成処理中にDDLスクリプトがバッファされるロケーションを入力します。デフォルトはddl¥logです。

LIBディレクトリ: Oracleファンクションおよびプロシージャを生成するスクリプトのロケーションを入力します。デフォルトはlib¥です。

LIB拡張子: マッピング名に追加される接尾辞を入力します。デフォルトは.libです。

LIBスプール・ディレクトリ: ユーザー定義ファンクションおよびプロシージャを生成するスクリプトのロケーションを入力します。デフォルトはlib¥log¥です。

PL/SQLディレクトリ: PL/SQLスクリプトのロケーションを入力します。デフォルトはpls¥です。

PL/SQL実行パラメータ・ファイル: PL/SQLジョブ内のパラメータ・スクリプトの接尾辞を入力します。デフォルトは_run.iniです。

PL/SQLスプール・ディレクトリ: スクリプトの生成処理中にPL/SQLスクリプトがバッファされるロケーションを入力します。デフォルトはpls¥log¥です。

PL/SQL拡張子: PL/SQLスクリプトのファイル名拡張子を入力します。デフォルトは.plsです。

ステージング・ファイル・ディレクトリ: SAP表に関連するすべてのABAP構成については、第6章「アプリケーションとの統合」を参照してください。

ABAP拡張子: ABAPスクリプトのファイル名拡張子を入力します。デフォルトは.abapです。

ABAP実行パラメータ・ファイル: ABAPジョブ内のパラメータ・スクリプトの接尾辞を入力します。デフォルトは_run.iniです。

ABAPスプール・ディレクトリ: スクリプトの生成処理中にABAPスクリプトがバッファされるロケーションを入力します。

LOADERディレクトリ: 制御ファイルのロケーションを入力します。デフォルトはctl¥です。

LOADER拡張子: ローダー・スクリプトの接尾辞を入力します。デフォルトは.ctlです。

LOADER実行パラメータ・ファイル: パラメータ初期化ファイルの接尾辞を入力します。デフォルトは_run.iniです。

表の構成

Warehouse Builderでは、ターゲット・モジュールで定義されている表ごとにDDLスクリプトが生成されます。表を構成するには、次の手順に従います。

表の物理プロパティを構成するには、表の名前を右クリックし、「構成」を選択します。「構成プロパティ」ダイアログ・ボックスが表示されます。次の各項にリストされた構成パラメータを設定します。

識別

  • 配布可能: この表を配布するよう指定するには、このオプションを選択します。配布可能とマークされた表制約についてのみスクリプトが生成されます。

  • エラー表のみ: このオプションを選択すると、表に関連付けられたエラー表にのみ生成アクションまたは配布アクションを実行します。このオプションは、エラー表を既存のデータベース表に追加する場合に使用します。この設定は、「配布可能」パラメータのアクションを制御しますが、パラメータを上書きしません。

    このオプションの選択を解除すると、主表と一緒にエラー表が配布されます。

記憶域パラメータ

記憶域パラメータでは、データベースへの表の格納方法を定義できます。このカテゴリには、BUFFER_POOL、FREELIST GROUPS、FREELISTS、INITIAL、MINEXTENTS、MAXEXTENTS、NEXTおよびPCTINCREASEなどのパラメータが含まれます。

「表領域」パラメータは、表を作成する各表領域の名前を定義します。デフォルト値はNULLです。デフォルト値NULLをそのまま使用する場合、ターゲット・モジュールの構成プロパティに設定されている表領域の値に基づいて表が生成されます。個々のオブジェクトに対して表領域を構成する場合、ターゲット・モジュールに構成された表領域の値が上書きされます。

パラレル

  • パラレル・アクセス・モード: 表が作成済である場合にパラレル処理を可能にします。デフォルトはPARALLELです。

  • 並列度: 並列度を指定します。これはパラレル操作で使用されるパラレル・スレッドの数です。

パフォーマンス・パラメータ

  • バッファ・キャッシュ: Oracleでバッファ・キャッシュに行を格納する方法を指定します。

  • データ・セグメント圧縮: データ・セグメントを圧縮するかどうかを指定します。圧縮するとディスク使用率が減ります。デフォルトは「NOCOMPRESS」です。

  • ロギング・モード: DMLアクションをREDOログ・ファイルに記録するかどうかを指定します。パフォーマンスを向上させるには、このパラメータをNOLOGGINGに設定します。デフォルトはLOGGINGです。

  • 統計収集: 表について統計を収集するかどうかを指定します。変更の統計をこの表で収集するには、「MONITORING」を指定します。

  • 行レベルの依存性: 行レベルの依存性トラッキングを使用するかどうかを指定します。

  • 行移動: Oracleサーバーが表の行を移動できるかどうかを指定します。

パーティション・パラメータ

  • パーティション表領域リスト: 表領域のカンマ区切りリストを指定します。シンプル・パーティション化オブジェクトの場合、このリストはHASH BY QUANTITYパーティション表領域に使用されます。コンポジット・パーティション化表の場合、サブパーティション・テンプレートで表領域のリストを格納するために使用されます。

  • オーバーフロー表領域リスト: オーバーフロー・データの表領域のカンマ区切りリストを指定します。シンプル・パーティション化オブジェクトの場合、このリストはHASH BY QUANTITYパーティション・オーバーフロー表領域に使用されます。表領域の数をパーティションの数と等しくする必要はありません。パーティション数が表領域数より多い場合は、表領域の名前がOracleで循環使用されます。

エラー表

  • エラー表名: ロード操作で表にロードされなかった行を格納するエラー表の名前を指定します。

  • 表領域: エラー表を格納する表領域の名前を指定します。

マテリアライズド・ビューの構成

マテリアライズド・ビューの物理プロパティを構成する手順は、次のとおりです。

  1. プロジェクト・エクスプローラで、マテリアライズド・ビュー名を右クリックし、「構成」を選択します。

    構成プロパティ・ウィンドウが表示されます。

  2. 表にリストされた構成のガイドラインに従ってください。詳細は、「表の構成」を参照してください。

  3. 次の項の「マテリアライズド・ビュー・パラメータ」を構成します。

マテリアライズド・ビュー・パラメータ

マテリアライズド・ビューのパラメータを次に示します。

マテリアライズド・ビュー・パラメータ

  • 開始: 最初の自動リフレッシュ時間を指定します。このパラメータには日時の値を指定します。

  • リフレッシュ: 「COMMIT」および「DEMAND」のオプションがあります。データベースがマテリアライズド・ビューのマスター表上で動作するトランザクションをコミットするたびに高速リフレッシュが行われるように指示するには、「COMMIT」を指定します。必要に応じてマテリアライズド・ビューがリフレッシュされるように指示するには、「DEMAND」を指定します。このためには、DBMS_MVIEWパッケージのリフレッシュ・プロシージャのいずれかを使用します。デフォルト設定は「DEMAND」です。

  • クエリー・リライト: マテリアライズド・ビューがクエリー・リライトに適格かどうかを指定します。「ENABLE」および「DISABLE」のオプションがあります。デフォルトは「DISABLE」です。

    Enable: クエリー・リライトを有効にします。その他のクエリー・リライト要件については、「マテリアライズド・ビューの高速リフレッシュ」を参照してください。

    Disable: クエリー・リライトを無効にします。マテリアライズド・ビュー内のデータが失効していることがわかっている、または問合せ文を変更する場合、クエリー・リライトを無効にできます。

  • デフォルト・ロールバック・セグメント: 「DEFAULT」、「DEFAULT MASTER」、「DEFAULT LOCAL」および「NONE」のオプションがあります。デフォルト設定は「DEFAULT LOCAL」です。使用するロールバック・セグメントをOracleデータベースで選択する必要があることを指示するには、「DEFAULT」を指定します。リモート・ロールバック・セグメントをリモート・サイトで使用するには、「DEFAULT MASTER」を指定します。リモート・ロールバック・セグメントをマテリアライズド・ビューが含まれるローカル・リフレッシュ・グループに使用するには、「DEFAULT LOCAL」を指定します。マスター・セグメントおよびローカル・セグメントの両方を指定するには、「NONE」を指定します。

  • NEXT(日付): 自動リフレッシュ間の間隔を指定します。このパラメータには日時の値を指定します。

  • 制約の使用: このパラメータについて選択できるオプションは「TRUSTED」または「ENFORCED」です。DBAが信頼できると宣言してはいるが、Oracleでは検証されていないディメンションと制約情報をOracleで使用可能にするには、「TRUSTED」を選択します。デフォルト設定は「ENFORCED」です。

  • リフレッシュ: リフレッシュ方法を指定します。「Complete」、「Fast」、「Force」および「Never」のオプションがあります。デフォルト設定は「Force」です。

    Complete: Oracleサーバーはリフレッシュ時にマテリアライズド・ビューを切り捨て、問合せを再実行します。

    Fast: 実表データに変更を適用する目的でのみマテリアライズド・ビューを使用します。高速リフレッシュを正しく動作させるには、多くの要件があります。詳細は、「マテリアライズド・ビューの高速リフレッシュ」を参照してください。

    Force: Oracleサーバーは高速モードを使用してリフレッシュを試行します。高速モードでリフレッシュできない場合、Oracleサーバーはリフレッシュ時に問合せを再実行します。

    Never: マテリアライズド・ビューがリフレッシュされないようにします。

  • WITH: 主キー・マテリアライズド・ビューを作成するには「PRIMARY_KEY」を選択します。ROWIDマテリアライズド・ビューを作成するには「ROWID」を選択します。デフォルト設定は「PRIMARY_KEY」です。

  • FOR UPDATE: 副問合せ、主キー、ROWIDまたはオブジェクト・マテリアライズド・ビューを更新できるようにするには、「はい」を選択します。デフォルト設定は「いいえ」です。

  • マスター・ロールバック・セグメント: マテリアライズド・ビューのリモート・マスター・サイトで使用されるリモート・ロールバック・セグメント名を指定します。

  • 実表: マテリアライズド・ビューで参照される実表のカンマ区切りリストを指定します。各表名をカンマで区切ります。表名が大文字でない場合は、名前を二重引用符で囲みます。

  • ローカル・ロールバック・セグメント: マテリアライズド・ビューのローカル・リフレッシュ・グループに使用する名前付きリモート・ロールバック・セグメントを指定します。デフォルトはNULLです。

  • BUILD: マテリアライズド・ビューに移入されるタイミングを指定します。オプションは「Immediate(デフォルト)」、「Deferred」および「Prebuilt」です。

    Immediate: マテリアライズド・ビューの作成時に移入します。

    Deferred: 次回のリフレッシュ操作までマテリアライズド・ビューの移入を遅延させます。マテリアライズド・ビューの設計中、実表のメタデータは正しいがデータが正しくない場合、このオプションを選択できます。

    Prebuilt: マテリアライズド・ビューがビルトインであることを示します。

パフォーマンス・パラメータ:

ロギング・モード: DMLアクションをREDOログ・ファイルに記録するかどうかを指定します。パフォーマンスを向上させるには、このパラメータをNOLOGGINGに設定します。デフォルトはLOGGINGです。

エラー表

  • エラー表名: ロード操作で表にロードされなかった行を格納するエラー表の名前を指定します。

  • 表領域: エラー表を格納する表領域の名前を指定します。

パラレル

  • パラレル・アクセス・モード: 表が作成済である場合にパラレル処理を可能にします。デフォルトはPARALLELです。

  • 並列度: 並列度を指定します。これはパラレル操作で使用されるパラレル・スレッドの数です。

識別

  • 配布可能: このマテリアライズド・ビューを配布するかどうかを指定するには、「TRUE」を選択します。Warehouse Builderでは、配布可能とマークされているマテリアライズド・ビューについてのみスクリプトが生成されます。

  • エラー表のみ: このオプションを選択すると、マテリアライズド・ビューに関連付けられたエラー表にのみ生成アクションまたは配布アクションを実行します。このオプションは、エラー表を既存のマテリアライズド・ビューに追加する場合に使用します。この設定は、「配布可能」パラメータのアクションを制御しますが、パラメータを上書きしません。

    このオプションの選択を解除すると、マテリアライズド・ビューと一緒にエラー表が配布されます。

ハッシュ・パーティション・パラメータ

  • ハッシュ・パーティション表領域リスト: パーティションまたはサブパーティションのデータを格納する表領域を指定します。複数の表領域を指定するには、カンマ区切りリストを使用します。

マテリアライズド・ビューの高速リフレッシュ

マテリアライズド・ビューを増分リフレッシュするよう構成できます。マテリアライズド・ビューの実表を更新すると、更新済レコード・ポインタがマテリアライズド・ビュー・ログに格納されます。ログ表内の変更内容は、関連付けられたマテリアライズド・ビューのリフレッシュに使用されます。

マテリアライズド・ビューを確実に増分リフレッシュするには、次の条件を確認します。

  • 「リフレッシュ」パラメータが「Fast」に設定されており、「実表」パラメータにすべての実表がリストされている必要があります。

  • 各実表にPK制約が定義されている必要があります。Warehouse BuilderはPK制約に基づいてCREATE文を生成し、そのログを使用して、依存するマテリアライズド・ビューをリフレッシュします。

  • マテリアライズド・ビューには、SYSDATE、ROWNUMおよび反復不可のPL/SQLファンクションなど、非反復式への参照を含めることはできません。

  • マテリアライズド・ビューには、データ型RAWおよびLONG RAWへの参照を含めることはできません。

  • 結合、集計および集合の文を含むマテリアライズド・ビューには、この他にも制限があります。その他の制限の詳細は、Oracle Databaseデータ・ウェアハウス・ガイドを参照してください。

ビューの構成

Warehouse Builderでは、ターゲット・モジュールで定義されているビューごとにスクリプトが生成されます。「配布可能」パラメータを「TRUE」または「FALSE」に設定して、特定のビューを配布するかどうかを設定できます。

ビューの詳細は、次を参照してください。

順序の構成

順序オブジェクトごとにスクリプトが生成されます。順序オブジェクトには、「開始」および「増分」パラメータがあります。どちらのパラメータも数値です。

順序の物理プロパティを構成する手順は、次のとおりです。

  1. 順序の名前を右クリックし、「構成」を選択します。

    「構成プロパティ」ダイアログ・ボックスが表示されます。

  2. 次の「順序」パラメータを構成します。

    増分: 順序を増加させる数。

    開始: 順序の開始番号。

  3. 次の「識別」パラメータを構成します。

    配布可能: この順序を配布するよう指定するには、このオプションを選択します。Warehouse Builderでは、配布可能とマークされた順序についてのみスクリプトが生成されます。