データ・ウェアハウスまたはデータ・マートの設計を終了すると、Warehouse Builderを使用してターゲット・システムを設計できるようになります。ターゲット・スキーマ・モデリングの多くはデータ・オブジェクト・エディタ内部で実行されます。この章では、データ・オブジェクト・エディタを使用してデータ・オブジェクトを作成する方法を説明します。
この章の内容は次のとおりです。
データ・オブジェクト・エディタを使用して、リレーショナル、ディメンションまたはビジネス・インテリジェンス(アイテム・フォルダおよびビジネス・エリアのみ)オブジェクトを編集します。データ・オブジェクトに対してエディタを開くには、次のいずれかの方法を使用します。
プロジェクト・エクスプローラで、編集するデータ・オブジェクトをダブルクリックします。
たとえば、SALESキューブを編集するには、プロジェクト・エクスプローラでSALESキューブをダブルクリックします。
プロジェクト・エクスプローラで、編集対象のデータ・オブジェクトを右クリックし、「エディタを開く」を選択します。
たとえば、SALESキューブを編集するには、プロジェクト・エクスプローラでSALESキューブを右クリックし、「エディタを開く」を選択します。
データ・オブジェクト・エディタが表示された後、「詳細」パネル内のタブを使用してデータ・オブジェクト定義を編集します。各データ・オブジェクトに対するデータ・オブジェクト・エディタの各タブの詳細は、次の各項を参照してください。
制約は、データベース内の情報に関連付けるビジネス・ルールを適用できます。制約により表に無効なデータが入力されなくなります。制約のタイプの詳細は、「制約について」を参照してください。
制約を作成するには、データ・オブジェクト・エディタの「制約」タブを使用します。作成できる制約のタイプは、主キー、外部キー、一意キーおよびチェック制約です。
表、ビューまたはマテリアライズド・ビューに対して制約を作成する手順は、次のとおりです。
制約を追加するデータ・オブジェクト用にデータ・オブジェクト・エディタを開きます。
プロジェクト・エクスプローラで、制約を定義するデータ・オブジェクトをダブルクリックします。あるいは、プロジェクト・エクスプローラでデータ・オブジェクトを右クリックし、「エディタを開く」を選択できます。
「制約」タブにナビゲートします。
作成する制約のタイプに応じて、次のいずれかの項を参照してください。
主キー制約を定義する手順は、次のとおりです。
「制約」タブで、「制約の追加」ボタンをクリックします。
「名前」列にカーソルが置かれた空白行が表示されます。
「名前」列に制約名を入力します。
「タイプ」列で「主キー」を選択します。
[Tab]キーを押して「タイプ」列の外に移動するか、または「制約」タブ内の空いている場所をクリックします。
「ローカル列の追加」ボタンをクリックします。
現在の行の下に、制約名および制約タイプが含まれる新しい行が追加されます。この新しい行の「ローカル列」列にはドロップダウン・リストが表示されます。
新しい行の「ローカル列」ドロップダウン・リストで、主キーを表す列の名前を選択します。
コンポジット主キーを作成するには、主キーを追加する列ごとにステップ4および5を繰り返します。
外部キー制約を定義する手順は、次のとおりです。
「制約」タブで、「制約の追加」ボタンをクリックします。
「名前」フィールドにカーソルが置かれた空白行が表示されます。
「名前」列に制約名を入力します。
「タイプ」列で「外部キー」を選択します。
[Tab]キーを押して「タイプ」列の外に移動するか、または「制約」タブ内の空いている場所をクリックします。
「参照」列で、省略記号ボタンをクリックします。
「キー・セレクタ」ダイアログが表示されます。このダイアログを使用して、現在の列が参照する表および列を選択します。
「キー・セレクタ」ダイアログで、外部キーが参照する主キー制約を選択します。
たとえば、「DEPARTMENTS」表では「department_id」列に対して「DEPT_PK」という主キーが定義されています。「EMPLOYEES」表の「department_id」列が主キー「DEPT_FK」を参照する外部キーであると指定するには、「キー・セレクタ」ダイアログで「DEPARTMETNS」表を表すノードの下の「DEPT_FK」を選択します。
「OK」をクリックします。
データ・オブジェクト・エディタの「制約」タブに戻り、外部キー制約が追加されます。
一意キー制約を定義する手順は、次のとおりです。
「制約」タブで、「制約の追加」ボタンをクリックします。
「名前」フィールドにカーソルが置かれた空白行が表示されます。
「名前」列に制約名を入力し、[Enter]キーを押します。
[Tab]キーを押すか、エディタ内の他の場所をクリックすることもできます。
「タイプ」列で「一意キー」を選択します。
[Tab]キーを押して「タイプ」列の外に移動するか、または「制約」タブ内の空いている場所をクリックします。
「ローカル列の追加」ボタンをクリックします。
現在の行の下に、制約名および制約タイプが含まれる新しい行が追加されます。この新しい行の「ローカル列」列にはドロップダウン・リストが表示されます。
新しい行の「ローカル列」ドロップダウン・リストで、一意キーを作成する列の名前を選択します。
チェック制約を定義する手順は、次のとおりです。
「制約」タブで、「制約の追加」ボタンをクリックします。
「名前」フィールドにカーソルが置かれた空白行が表示されます。
「名前」列に制約名を入力し、[Enter]キーを押します。
[Tab]キーを押すか、エディタ内の他の場所をクリックすることもできます。
「タイプ」列で「チェック制約」を選択します。
[Tab]キーを押して「タイプ」列の外に移動するか、または「制約」タブ内の空いている場所をクリックします。
「条件」列で、チェック制約に適用する条件を入力します(給与 > 2000など)。このフィールドを空白にすると検証時にエラーが生成され、この制約に対して有効なコードを生成できません。
チェック条件で参照される列名は、プロパティ・シート内の表に対して定義された物理名と完全一致する必要があります。Warehouse Builderは検証時に条件の構文をチェックしません。これにより配布時にエラーとなる可能性があります。エラーが発生した場合は、リポジトリ・ブラウザで詳細を確認してください。
パーティションを使用すると、非常に大きい表や索引を、管理しやすい小さい部分に分割して効率的に管理できます。パーティションでは、操作がデータのサブセットに対して行われるため、問合せやロードのパフォーマンスが向上します。パーティションを使用すると、データ・アクセスが改善され、全体的なアプリケーション・パフォーマンスが向上します。何百万もの行があり、データ・サイズがGB単位の表や索引にアクセスするアプリケーションに対しては特に有効です。
次のタイプのパーティションを作成できます。
レンジ・パーティション化は最も一般的なタイプのパーティション化であり、日付範囲に基づいてデータをパーティション化する際によく使用されます。たとえば、売上高データを月次パーティションにパーティション化できます。
Warehouse Builderでレンジ・パーティション化を使用するには、データ・オブジェクト・エディタの「パーティション」タブに移動してパーティション・キーを指定し、作成するパーティションごとに名前および値範囲を割り当てます。図12-2では、次の手順に基づいて4つのレンジ・パーティションにパーティション化された表の例を示しています。
範囲別にデータをパーティション化するには、次の手順を実行します。
データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下の最初のセルをクリックし、「範囲」を選択します。
必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、図12-1に示すように、レンジ・パーティションのテンプレートを展開します。
パーティション・キーを選択します。
Warehouse Builderに、選択したオブジェクトのすべての列がリストされます。任意のデータ型の列を選択できますが、DATEはレンジ・パーティション化で最も一般的なパーティション・キーです。
複数のキー列に基づいてパーティション・キーを設定できます。別のキー列を追加するには、パーティション・キー・ノードを選択し、「追加」をクリックします。
パーティションを定義します。
パーティションの定義に役立てる目的で、テンプレートでは編集可能(ただし削除不可)な2つのパーティションが提供されています。「P1」は最初のパーティションを表し、「PDEFAULT」は最後のパーティションを表します。月に基づいてデータをパーティション化する場合、「P1」をJanに、また「PDEFAULT」をDecに、それぞれ改名できます。
最後のパーティションがキーワード「MAXVALUE」に設定されています。これは、そのデータ型の他の値(NULL値を含む)よりも高くソートされる仮想の無限値を表します。
最初と最後のパーティションの間にパーティションを追加するには、「パーティション」ノードをクリックし、「追加」を選択します。
「値」で、作成した最初の範囲およびすべての追加範囲の最大値を指定します。これらの値は、それを下回ることを示す値です。たとえば、最初のパーティションが年の最初の月に対応する場合、そのパーティションに2月1日より前の値を含めるには、その日付をDD/MM/YYYYの書式で入力します。
図12-2では、カレンダ年の四半期ごとにパーティションを定義する方法を示しています。月または週ごとにデータをパーティション化することもできます。こうした表を使用してマッピングを設計する場合、パーティション交換ロード(PEL)の有効化を検討してください。PELはターゲット表の既存のパーティションを新規パーティションとスワップする、データ定義言語(DDL)の操作です。データ操作言語(DML)の操作ではないため、パーティションの交換は即時実行されます。
ハッシュ・パーティション化では、ユーザーが識別したパーティション化キーにOracleが適用するハッシング・アルゴリズムに基づいて、データがパーティションに割り当てられます。ハッシング・アルゴリズムではパーティション間に行が均等に配分され、パーティションにはほぼ同じサイズが指定されます。データが履歴に基づくものではなく、明白な列または列リストが存在せず、論理範囲パーティション・プルーニングの方が好都合である場合、ハッシュ・パーティション化は、レンジ・パーティション化のかわりとなる適正かつ使いやすい手段です。
ハッシュ・アルゴリズムに基づいてデータをパーティション化するには、次の手順を実行します。
データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下のセルをクリックし、「ハッシュ」を選択します。
必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、ハッシュ・パーティションを定義するためのテンプレートを展開します。
パーティション・キーを選択します。
Warehouse Builderに、選択したオブジェクトのすべての列がリストされます。任意のデータ型の列を選択できます。
パーティションを定義します。
Warehouse Builderは、改名できる2つのパーティションを提供します。「パーティション」ノードをクリックし、「追加」 を選択して必要な数のパーティションを追加します。
Oracleデータベースは、線形ハッシング・アルゴリズムを使用することで、特定のパーティション内でデータがクラスタ化されないようにしています。パーティションの数を2の累乗(2、4、8など)で定義する必要があります。
ハッシュ・パーティション化を迅速に定義するには、数量別ハッシュを使用します。パーティション・キーおよびパーティション数を定義すると、Warehouse Builderによりパーティションが作成され、名前が指定されます。この後、同一の表領域リストを共有するようパーティションを構成できます。
ハッシュ・アルゴリズムに基づいてデータをパーティション化するには、次の手順を実行します。
データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下のセルをクリックし、「HASH BY QUANTITY」を選択します。
必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、図12-3で示すようにHASH BY QUANTITYパーティションを定義するためのテンプレートを展開します。
パーティションの数を定義します。デフォルト値は2つのパーティションです。
Oracleデータベースは、線形ハッシング・アルゴリズムを使用することで、特定のパーティション内でデータがクラスタ化されないようにしています。パーティションの数を2の累乗(2、4、8など)で定義する必要があります。
パーティション・キーを選択します。
Warehouse Builderに、選択したオブジェクトのすべての列がリストされます。任意のデータ型の列を選択できます。
「構成」ウィンドウで、「パーティション表領域リスト」および「オーバーフロー表領域リスト」を定義します。
リスト・パーティション化では、行をパーティションに明示的に割り当てることができます。そのためには、パーティションごとに離散値のリストを指定します。リスト・パーティション化の利点は、不規則かつ関連性のないデータ・セットを通常の方法でグループ化および構成できる点です。図12-5では、次の手順に基づいてリスト・パーティションにパーティション化された表の例を示しています。
値リストに基づいてデータをパーティション化するには、次の手順を実行します。
データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下のセルをクリックし、パーティション化メソッド「リスト」を選択します。
必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、図12-4で示すようにリスト・パーティションを定義するためのテンプレートを展開します。
パーティション・キーを選択します。
Warehouse Builderに、選択したオブジェクトのすべての列がリストされます。任意のデータ型の列を選択できます。
パーティションを定義します。
「PDEFAULT」はキーワード「DEFAULT」に設定されており、他のパーティションに割り当てられていないすべての行が含まれます。未割当てのすべての行を取得するパーティションは、データの整合性を維持するために必須となります。
パーティションの定義に役立てる目的で、テンプレートは編集可能(ただし削除不可)な2つのパーティションを提供しています。P1は最初のパーティションを表し、PDEFAULTは最後のパーティションを表します。
最初と最後のパーティションの間にパーティションを追加するには、「パーティション」ノードをクリックし、「追加」を選択します。
「値」で、以前に選択したパーティション・キー内のデータに対応するパーティションごとに、カンマ区切りの値リストを入力します。たとえば、パーティション・キーがCOUNTRY_IDである場合、Asia、Eastern Europe、Western Europeなどについてパーティションを作成できます。その後、各パーティションの値について、図12-5に示すように、リージョン内の国ごとに対応するCOUNTRY_IDをリストします。
図12-5では、「COUNTRY_ID」列に基づいてデータ・リストが異なるリージョンにパーティション化された表を示しています。各パーティションに単一のカンマ区切りリストが含まれます。
図12-6では、キー列「REGION」および「SALES_DIVISION」に基づいてデータがパーティション化された表を示しています。各パーティションには、一重引用符で囲まれた2つのカンマ区切りリストが含まれます。この例では、「N」、「NE」、「S」、「SW」、「W」および「NW」が「REGION」に対応し、「PRD1」、「PRD2」、「PRD3」などが「SALES_DIVISION」に対応します。
コンポジット・パーティション化メソッドには、レンジ・ハッシュ、数量別レンジ・ハッシュおよびレンジ・リスト・パーティション化が含まれます。Oracleデータベースは最初にレンジ・パーティション化を実行してから、ユーザーが選択した2つ目のパーティション化を使用してデータをさらに分割します。
コンポジット・パーティション・メソッドを定義するステップは、レンジ、ハッシュおよびリストなどの単純なパーティション・メソッドの定義に似ていますが、追加オプションが含まれます。
データをレンジ・パーティション化してから、リスト、ハッシュまたは数量別ハッシュに基づいてサブパーティション化する手順は、次のとおりです。
データ・オブジェクト・エディタの「パーティション」タブで、「タイプ」の下のセルをクリックし、コンポジット・パーティション化メソッドのいずれかを選択します。
必要に応じて、「タイプ」の左側にあるプラス記号をクリックし、テンプレートを展開します。
パーティション・キーを選択し、「レンジ・パーティション化」の説明に従ってパーティションを定義します。
図12-7では、パーティション・キーはSALE_DATEで、関連付けられているレンジ・パーティションはQTR_1、QTR_2、QTR_3およびQTR_4です。
図12-7 サブパーティション・テンプレートでリストが定義されたレンジ・リスト・パーティション化
サブパーティション・キーの列を選択します。
サブパーティション・テンプレート・ノードで、「サブパーティション・テンプレートについて」の説明に従って2つ目のパーティション化メソッドの値を定義します。
カスタム・サブパーティションを定義します(オプション)。
レンジ・リスト・パーティションについて、サブパーティション・ノードで定義したデフォルトを上書きするカスタム・サブパーティションを指定できます。詳細は、「カスタム・サブパーティションの作成」を参照してください。
「構成」ウィンドウで、「パーティション表領域リスト」および「オーバーフロー表領域リスト」を構成します。
コンポジット・パーティション化で2つ目のパーティション化メソッドを指定するには、サブパーティション・テンプレートを使用します。実行するステップは、選択するコンポジット・パーティションのタイプによって異なります。
数量別レンジ・ハッシュの場合、サブパーティションの数のみを入力します。
レンジ・ハッシュの場合、サブパーティション・テンプレートではサブパーティションの名前のみを入力できます。
レンジ・リストの場合、リストに名前を指定し、カンマ区切り値を入力します。必ず最後のサブパーティションが「DEFAULT」に設定された状態を維持してください。
図12-7は、「REGION」キー列に基づくサブパーティションおよび国のグループに対応するサブパーティションのリストを示しています。Warehouse Builderでは、各パーティション(「QTR_1」、「QTR_2」など)がサブパーティション(「ASIA」、「WEST_EUR」など)に分割されます。
サブパーティション・テンプレートは、サブパーティションを定義する上で最も便利かつ最も一般的な方法です。サブパーティション・テンプレートで指定するエントリは、パーティション・ノードに含まれるすべてのパーティションに均等に適用されます。ただし、場合によってはサブパーティション・テンプレートを上書きする必要があります。
数量別レンジ・ハッシュの場合、パーティションを選択してから「ハッシュ・カウントの追加」をクリックします。Warehouse Builderではパーティション・ノードが展開され、そのパーティションに一意に適用されるハッシュ・サブパーティションの数を指定できます。
レンジ・ハッシュの場合、パーティションを選択してから「サブパーティションの追加」をクリックします。Warehouse Builderではパーティション・ノードが展開され、そのパーティションのサブパーティションにのみ名前を指定できます。
レンジ・リストの場合、パーティションを選択してから「サブパーティションの追加」をクリックします。Warehouse Builderではパーティション・ノードが展開され、そのパーティションのリスト・サブパーティションのみを指定できます。必ず最後のサブパーティションがDEFAULTに設定された状態を維持してください。
図12-8は、パーティションQTR_1がUK、EURおよびALL_OTHERSのリストにサブパーティション化され、その他の四半期がサブパーティション・テンプレートに従ってパーティション化されている状態を示しています。
ビットマップ索引を除くすべてのタイプの索引について、基礎となる表のパーティション化メソッドを継承するかどうかを決定できます。パーティション化メソッドを継承する索引はローカル索引と呼ばれ、独自のパーティション化メソッドを使用する索引はグローバル索引と呼ばれます。
ローカル索引
ローカル索引は、基礎となる表で指定されたパーティションおよびサブパーティションと同じ列でパーティション化され、それらと同じ定義が設定されます。さらに、ローカル索引は表と同じ表領域を共有します。
たとえば、レンジ・リスト・パーティション化を使用して、売上高データの表を四半期別にパーティション化した後にリージョン別にパーティション化した場合、ローカル索引も四半期別にパーティション化された後、リージョン別にパーティション化されます。
ビットマップ索引はローカル索引としてのみ定義することができ、大量のデータを問い合せる際のパフォーマンスが最大限まで向上します。
Warehouse Builderで索引をローカルとして定義するには、図12-9で示すように、「スコープ」を「LOCAL」に、また「パーティション化」を「NONE」に設定します。
グローバル索引
グローバル索引は、基礎となる表に適用されたパーティション方針に関係なく索引をパーティション化できる索引です。レンジ・パーティション化またはハッシュ・パーティション化のいずれかを選択できます。グローバル索引オプションは、ビットマップ索引を除くすべての索引で使用できます。
旧リリースでは、パーティションの保守時に表のパーティションを削除すると索引全体が無効となり、索引の再作成が必要となるため、データ・ウェアハウス・アプリケーションにグローバル索引を使用しないよう推奨してきました。Oracle 10g以降、グローバル索引はパーティション化の保守により悪影響を受けることがなくなったため、制限もなくなりました。
それでもなお、ローカル索引はパーティションの管理のしやすさおよび問合せ操作のパラレル化機能の面から、データ・ウェアハウス・アプリケーションに推奨される選択肢です。
グローバル索引は、表パーティション・キー以外の索引パーティション・キーを指定する際に役立ちます。その場合、索引キー列に重複した行がないことを確認し、索引タイプは一意を選択してください。
一部の(ただし、すべてではない)パーティション化メソッドでは、パーティション表領域を構成する必要があります。
パーティションのパラメータにはプロジェクト・エクスプローラまたはデータ・オブジェクト・エディタからアクセスできます。プロジェクト・エクスプローラでは、表を右クリックし、「構成」を選択し、下方向にスクロールして「パーティション・パラメータ」を表示します。データ・オブジェクト・エディタでは、図12-10に示すように、「構成」ウィンドウを選択し、下方向にスクロールして「パーティション・パラメータ」を表示します。
図12-10 データ・オブジェクト・エディタの「構成」ウィンドウにおける「パーティション・パラメータ」
パーティション表領域リスト
数量別ハッシュ、レンジ・リスト、レンジ・ハッシュまたは数量別レンジ・ハッシュのいずれかのメソッドによりパーティション化する場合、カンマ区切りの表領域リストを入力します。
パーティション表領域を指定しない場合、Warehouse Builderでは表に関連付けられたデフォルトの表領域が使用され、パーティションの定義によるパフォーマンス上の利点は活かされません。
オーバーフロー表領域リスト
数量別ハッシュ・メソッドによりパーティション化する場合、カンマ区切りの表領域リストを入力します。パーティション数よりも少ない表領域のリストを指定した場合、Oracleデータベースによりそれらの表領域が循環使用されます。
オーバーフロー表領域を指定しない場合、Warehouse Builderでは表に関連付けられたデフォルトの表領域が使用され、パーティション表領域の制限を超えると、パーティションの定義によるパフォーマンス上の利点は活かされません。
Warehouse Builderでは、表はリレーショナル記憶域オブジェクトのメタデータ表現です。データベース・システムの表(Oracle表など)またはSAPシステムの表の場合もあります。次の各項では、Warehouse Builderにおける表の作成および使用方法を説明します。
Warehouse Builderで作成した表は、ターゲット・スキーマのモデル化に使用されるメタデータを取得します。この表定義は、表制約、索引、パーティション、属性セットおよび表で使用される列とデータ型に関するメタデータを指定します。この情報はWarehouse Builderリポジトリに格納されます。後からこれらの定義を使用してWarehouse Builderで.ddl
スクリプトを生成し、配布してターゲット・データベース内に物理表を作成できます。その後、これらの表に選択したソース表のデータをロードできます。
表を作成するにはデータ・オブジェクト・エディタを使用します。次に示す手順を実行します。
プロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
表を作成するモジュールを展開します。
「表」を右クリックし、「新規」を選択します。
Warehouse Builderにデータ・オブジェクト・エディタが表示されます。データ・オブジェクト・エディタの表の詳細パネルにある次のタブを使用して表を定義します。
「データ・ビューア」タブでは、リポジトリ表に格納されたデータを表示できます。「データ・ビューア」タブの詳細は、「データ・ビューア」を参照してください。
これらのタブを使用して表の定義を終了した後、Warehouse Builderにより表定義が作成され、リポジトリに格納されます。また、プロジェクト・エクスプローラに新規の表の名前が挿入されます。
注意: マッピング・エディタから表を作成することもできます。 |
「データ・オブジェクトのネーミング規則」の規則に従って、名前と説明(オプション)を指定します。
表の列を定義するには、「列」タブを使用します。このタブには列の定義に使用する表が表示されます。表内の各行は、表の1つの列の定義に対応します。Warehouse Builderにより、列を入力した順序で列の位置が生成されます。列の順序を変更するには、「表における列の順序変更」を参照してください。
列ごとに次の詳細を入力します。
名前: 列名を入力します。列名は表内で一意である必要があります。予約語は使用できません。
データ型: 「データ型」ドロップダウン・リストから列のデータ型を選択します。Warehouse Builderにより、列名に基づいて列ごとにデフォルトのデータ型が割り当てられます。たとえば、start_dateという列を作成した場合、割り当てられるデータ型はDATEです。データ要件に合わない場合はデフォルトの割当てを変更できます。
サポートされているOracleデータベースのデータ型のリストについては、「サポートされているデータ型」を参照してください。
長さ: 属性の長さを指定します。長さは文字データ型にのみ適用可能です。
精度: 列に許可された合計桁数を指定します。精度は数値データ型にのみ適用可能です。
スケール: 小数点以下の合計桁数を指定します。スケールは数値データ型にのみ適用可能です。
秒精度: TIMESTAMPデータ型にのみ使用します。日時フィールドの小数部分に桁数を指定します。
NOT NULL: 列にNULL値を含めないよう指定するにはこのフィールドを選択します。デフォルトでは、表内のすべての列でNULLを使用できます。
デフォルト値: この列のデフォルト値を指定します。表にデータをロードする際にこの列に値が入力されていない場合、デフォルト値が使用されます。データのロード中にこの列の値を指定した場合、デフォルト値が上書きされ、指定した値がこの列に格納されます。
説明: 列の説明(オプション)を入力します。
表の列に対して制約を作成するには、「制約」タブを使用します。主キー、外部キー、一意キーおよびチェック制約を作成できます。制約の作成の詳細は、「制約の作成」を参照してください。
表に対して索引を作成するには、「索引」タブを使用します。一意、標準、ビットマップ、機能ベース、コンポジットおよび逆タイプの索引を作成できます。
これらの索引の作成方法は、「索引の作成」を参照してください。
表のパーティションを作成するには、「パーティション」タブを使用します。レンジ、ハッシュ、数量別ハッシュ、リスト、コンポジットおよび索引の各タイプのパーティションを作成できます。
これらのパーティションの詳細および各タイプのパーティションの作成方法は、「パーティションの使用」を参照してください。
表の属性セットを作成するには、「属性セット」タブを使用します。ユーザー定義およびブリッジ属性セットを作成できます。表の属性セットを作成する手順は、「属性セットについて」を参照してください。
表にデータ・ルールを適用するには、「データ・ルール」タブを使用します。データ・ルールを使用すると、表内の有効なデータおよび表間の有効な関係を決定できます。表にデータ・ルールを適用すると、Warehouse Builderにより表内のデータが指定のデータ・ルールに従っているかどうかが確認されます。データ・ルールの詳細は、「データ・ルールについて」を参照してください。
表にデータ・ルールを適用する前に、データ・ルールがリポジトリで定義されている必要があります。データ・ルールの作成方法は、「データ・ルールの作成」を参照してください。
表にデータ・ルールを適用するには、「データ・ルール」タブの「ルールの適用」ボタンをクリックします。「データ・ルールの適用ウィザード」が表示されます。このウィザードを使用して、データ・ルールおよびデータ・ルールの適用先となる列を選択します。「データ・ルールの適用ウィザード」の使用方法は、「データ・ルールの適用」を参照してください。
「データ・ルール」タブの「適用されたルール」セクションに、表にバインドされているデータ・ルールが表示されます。データ・ルールを表に適用するには、データ・ルール名の左側のチェック・ボックスが選択されていることを確認してください。このオプションの選択を解除すると、データ・ルールが表に適用されません。
「バインド」セクションの「バインド」列に、データ・ルールのバインド先である表の列が表示されます。
表定義を編集するには、データ・オブジェクト・エディタを使用します。データ・オブジェクト・エディタを起動するには、プロジェクト・エクスプローラで表の名前を右クリックし、「エディタを開く」を選択します。あるいは、プロジェクト・エクスプローラで表の名前をダブルクリックします。
次の各項で、編集可能な表定義について説明します。
列の追加: 「列」タブにナビゲートします。空白行で「名前」フィールドをクリックし、列を定義する詳細を入力します。詳細は、「「列」タブ」を参照してください。
列の変更: 列定義を変更するには、データ・オブジェクト・エディタの「列」タブを使用します。列定義の任意の属性を変更できます。詳細は、「「列」タブ」を参照してください。
列の削除: 「列」タブにナビゲートします。削除する列名の左側にあるグレーのセルを右クリックし、「削除」を選択します。
データ・オブジェクト・エディタの「制約」タブにナビゲートします。
制約の追加および編集の詳細は、「制約の作成」および「制約の編集」をそれぞれ参照してください。
制約を削除するには、列名の左側にあるグレーのセルをクリックして、制約を表す行を選択します。タブの最下部にある「削除」をクリックします。
属性セットの追加の詳細は、「属性セットの作成」を参照してください。属性セットの編集方法は、「属性セットの編集」を参照してください。
属性セットを削除するには、「属性セット」タブにナビゲートします。削除する属性セットの左側にあるセルを右クリックし、「削除」を選択します。
デフォルトでは、表内の列は作成された順序で表示されます。この順序は、表を作成するためにWarehouse Builderにより生成されるDDLスクリプトにも伝播されます。このデフォルトの順序がアプリケーションのニーズに合わない場合、または問合せのパフォーマンスをさらに最適化する場合は、列を順序変更できます。
列の位置を変更する手順は、次のとおりです。
表に対してデータ・オブジェクト・エディタが開いていない場合は、このエディタを開きます。
そのためには、プロジェクト・エクスプローラで表の名前をダブルクリックする方法と、プロジェクト・エクスプローラで表の名前を右クリックして「エディタを開く」を選択する方法があります。
「列」タブで、列名の左側にあるグレーの四角を選択します。
行全体がハイライト表示されます。
「列」タブの左側のボタンを使用し、列を必要な位置まで移動します。
これで列の位置が更新されました。
データ・オブジェクト・エディタを閉じます。
列の位置の変更をリポジトリに格納された表に反映させるには、変更した表定義を配布する必要があります。
Warehouse Builderでは、ビューおよびマテリアライズド・ビューを定義できます。この項ではビューについて説明します。マテリアライズド・ビューの詳細は、「マテリアライズド・ビューの使用」を参照してください。
ビューは、データの表示を単純化したり、データへのアクセスを制限するために使用します。ユーザーが関心を持つデータは、通常は多くの列を含む複数の表にまたがって格納されています。ビューを作成する場合、適切なデータのみまたはユーザーがアクセス権限を持つデータのみを取り出すよう格納される問合せを作成します。
Warehouse Builderでは、ターゲット・データに対する問合せをモデル化するためにビューを定義できます。この問合せ情報はWarehouse Builderリポジトリに格納されます。後でこれらの定義を使用してWarehouse Builderで.ddl
スクリプトを生成し、配布してターゲット・システムでビューを作成できます。
ビューの使用方法は、次の項を参照してください。
ビュー定義は、ビュー、制約、属性セット、データ・ルールおよびビューで使用される列とデータ型に関するメタデータの作成に使用される問合せを指定します。この情報はWarehouse Builderリポジトリに格納されます。ビュー定義を生成し、.ddl
スクリプトを作成できます。これらのスクリプトを配布して、データベースで物理ビューを作成できます。
データ・オブジェクト・エディタでは、ビュー定義を作成できます。ビュー定義を作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
ビューを作成するターゲット・モジュールを展開します。
「ビュー」を右クリックし、「新規」を選択します。
Warehouse Builderに、ビューに対するデータ・オブジェクト・エディタが表示されます。
注意: マッピング・エディタからビューを定義し、独自の問合せをモデル化することもできます。 |
次の「データ・オブジェクト・エディタ」タブで情報を指定し、ビューを定義します。
データ・オブジェクト・エディタを閉じます。
Warehouse Builderにより、ビューの定義が作成され、この定義がリポジトリに格納され、さらにプロジェクト・エクスプローラに定義名が挿入されます。
「データ・オブジェクトのネーミング規則」の規則に従って、名前と説明(オプション)を指定します。
ビューの列を定義するには、「列」タブを使用します。このタブには、ビューの列を定義する際に使用する表が表示されます。この表の各行は、ビューの列の1つの定義に対応しています。ビューの列ごとに、「名前」、「データ型」、「長さ」、「精度」、「スケール」、「秒精度」、「NOT NULL」、「デフォルト値」および「説明」の各詳細を入力します。これらのフィールドの説明は、「「列」タブ」を参照してください。
ビューの作成に使用する問合せを定義するには、「問合せ」タブを使用します。ビューには、ビューが属するモジュールとは別のモジュールに属する表のデータを含めることができます。また、結合を使用して複数の表のデータを結合できます。
入力する問合せ文が有効であることを確認してください。Warehouse Builderでは「問合せ」タブ内のテキストは検証されず、構文が無効である場合でもビューの配布が試行されます。
ビューの論理制約を定義するには、このページを使用します。Warehouse BuilderではビューのDDLを列挙する際にこれらの制約は使用されませんが、これらの制約はビューがマッピングでデータ・ソースとなる場合に役立つことがあります。マッピング・エディタでは、論理外部キー制約を使用して、参照ディメンションを2つ目のソースとしてマッピングに含めることができます。
注意: ビューにはチェック制約は作成できません。 |
制約の作成方法は、「制約について」を参照してください。
ビューの属性セットを定義するには、「属性セット」タブを使用します。属性セットおよびその作成方法の詳細は、「属性セットについて」を参照してください。
ビューに適用されるデータ・ルールを指定するには、「データ・ルール」タブを使用します。「データ・ルール」タブの詳細は、「「データ・ルール」タブ」を参照してください。
「データ・ビューア」タブでは、ビューの基礎となるデータベース表に格納されたデータを表示できます。このタブの詳細は、「データ・ビューア」を参照してください。
ビュー定義を編集するには、データ・オブジェクト・エディタを使用します。データ・オブジェクト・エディタを開くには、プロジェクト・エクスプローラでビューを右クリックし、開く-エクスプローラを選択します。次の各項では、編集可能なビュー定義について説明します。
データ・オブジェクト・エディタの「名前」タブにナビゲートします。「名前」フィールドをクリックし、ビューの新しい名前を入力します。「説明」フィールドに格納された説明を変更することもできます。ハイライト表示されたオブジェクト名の上に新しい名前を入力します。
あるいは、プロジェクト・エクスプローラでビュー名を右クリックして「名前の変更」を選択し、ビューを改名できます。
列の追加: 「列」タブにナビゲートします。空白行で「名前」フィールドをクリックし、列を定義する詳細を入力します。これらの詳細の情報は、「「列」タブ」を参照してください。
列の削除: 「列」タブにナビゲートします。削除する列名の左側にあるグレーのセルを右クリックし、「削除」を選択します。
データ・オブジェクト・エディタの「制約」タブにナビゲートします。制約の追加および編集の詳細は、「制約の作成」および「制約の編集」をそれぞれ参照してください。
制約を削除するには、「制約」タブで、制約を表す行を選択します。タブの最下部にある「削除」をクリックします。
属性セットの追加の詳細は、「属性セットの作成」を参照してください。属性セットの編集方法は、「属性セットの編集」を参照してください。
属性セットを削除するには、「属性セット」タブにナビゲートします。削除する属性セットの左側にあるセルを右クリックし、「削除」を選択します。
Warehouse Builderでは、ビューおよびマテリアライズド・ビューを定義できます。この項ではマテリアライズド・ビューについて説明します。従来型のビューの情報は、「ビューの使用」を参照してください。
次の各項では、マテリアライズド・ビューの使用について説明します。
Warehouse Builderでは、マテリアライズド・ビューを作成して問合せのパフォーマンスを向上させることができます。マテリアライズド・ビューを作成する場合、複数の表のデータを集計または結合する問合せコマンド一式を作成します。マテリアライズド・ビューでは、リモート・データ・マートに再使用またはレプリケートできる事前計算済データが提供されます。たとえば、企業の売上げに関するデータが組織全体にわたって広範囲に検索されます。
Warehouse Builderでマテリアライズド・ビューを作成する場合、Oracleデータベースで使用できるクエリー・リライトおよび高速リフレッシュ機能を活用するよう構成できます。クエリー・リライトおよび高速リフレッシュの詳細は、「マテリアライズド・ビューの高速リフレッシュ」を参照してください。
マテリアライズド・ビュー定義では、マテリアライズド・ビュー、制約、索引、パーティション、属性セット、データ・ルールおよびマテリアライズド・ビューで使用される列およびデータ型に関するメタデータの作成に使用する問合せが指定されます。ビュー定義を生成し、マテリアライズド・ビューの配布に使用される.ddl
スクリプトを取得できます。
データ・オブジェクト・エディタを使用して、マテリアライズド・ビューを作成できます。マテリアライズド・ビューを作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
マテリアライズド・ビューを作成するターゲット・モジュールを展開します。
「マテリアライズド・ビュー」を右クリックし、「新規」を選択します。
Warehouse Builderに、このマテリアライズド・ビューに対するデータ・オブジェクト・エディタが表示されます。
注意: マッピング・エディタからマテリアライズド・ビューを定義することもできます。 |
データ・オブジェクト・エディタの次のタブで情報を指定し、マテリアライズド・ビュー定義を作成します。
データ・オブジェクト・エディタを閉じます。
このウィザードでは、マテリアライズド・ビューの定義の作成、データベース・モジュールへのこの定義の格納、およびウェアハウス・モジュール・プロジェクト・エクスプローラへの定義名の挿入が実行されます。
「データ・オブジェクトのネーミング規則」の規則に従って、名前と説明(オプション)を指定します。
マテリアライズド・ビューの列を定義するには、「列」タブを使用します。このタブには、列を定義できる表が表示されます。表内の1行はマテリアライズド・ビュー内の1列に対応しています。列ごとに、詳細(「名前」、「データ型」、「長さ」、「精度」、「スケール」、「秒精度」、「NOT NULL」、「デフォルト値」および「説明」)を指定します。詳細は、「「列」タブ」を参照してください。
マテリアライズド・ビューの作成に使用する問合せを定義するには、「問合せ」タブを使用します。「SELECT文」フィールドに必ず有効な問合せを入力してください。列名については、前のステップで列ページに指定した名前を使用します。列ページの列名を変更する場合は、「問合せ」タブで名前を手動で変更する必要があります。Warehouse Builderでは、「問合せ」タブ内のテキストは検証されず、構文が無効であってもマテリアライズド・ビューの配布が試行されます。
マテリアライズド・ビューの制約を定義するには、「制約」タブを使用します。制約の定義はオプションです。これらの制約は論理設計のみを目的としており、Warehouse BuilderではビューのDDLを列挙する際にこれらの制約は使用されません。制約の作成の詳細は、「制約の作成」を参照してください。
注意: ビューにはチェック制約は作成できません。 |
マテリアライズド・ビューに対して索引を定義するには、「索引」タブを使用します。索引の定義はオプションです。一意、標準、ビットマップ、ファンクション・ベース、コンポジットおよび逆タイプの索引を作成できます。
索引の作成の詳細は、「索引の作成」を参照してください。
マテリアライズド・ビューに対してパーティションを定義するには、「パーティション」タブを使用します。マテリアライズド・ビューのパーティション化はオプションです。「索引パーティション化」、「範囲パーティション化」、「HASHパーティション化」、「HASH BY QUANTITYパーティション化」、「LISTパーティション化」またはコンポジット・パーティション化を実行できます。
マテリアライズド・ビューに対して属性セットを定義するには、「属性セット」タブを使用します。属性セットの定義はオプションです。作成できる属性セットのタイプは、ユーザー定義およびブリッジです。属性セットの定義方法の詳細は、「属性セットの作成」を参照してください。
マテリアライズド・ビュー定義を編集するには、データ・オブジェクト・エディタを使用します。データ・オブジェクト・エディタを開くには、マテリアライズド・ビューを右クリックし、「エディタを開く」を選択します。次の各項では、マテリアライズド・ビューに関する編集可能な定義について説明します。
エディタの「名前」タブにある「名前」フィールドをダブルクリックします。これにより名前が選択されます。新しい名前を入力します。
あるいは、プロジェクト・エクスプローラで、マテリアライズド・ビュー名を右クリックし、「名前の変更」を選択します。ハイライト表示されたオブジェクト名の上から新しい名前を入力します。
列の追加: 「列」タブにナビゲートします。空白行で「名前」フィールドをクリックし、列の詳細を入力します。これらの詳細の情報は、「「列」タブ」を参照してください。
列の削除: 「列」タブにナビゲートします。削除する列名の左側にあるグレーのセルを右クリックし、「削除」を選択します。
データ・オブジェクト・エディタの「制約」タブにナビゲートします。制約の追加および編集の詳細は、「制約の作成」および「制約の編集」をそれぞれ参照してください。
制約を削除するには、「制約」タブで、制約を表す行を選択します。タブの最下部にある「削除」をクリックします。
属性セットの追加の詳細は、「属性セットの作成」を参照してください。属性セットの編集方法は、「属性セットの編集」を参照してください。
属性セットを削除するには、「属性セット」タブにナビゲートします。削除する属性セットの左側にあるセルを右クリックし、「削除」を選択します。
属性セットには、選択した列のセットが指定した順に含まれています。属性セットは、マッピングの定義時、またはデータのインポートおよびエクスポート時に役立ちます。Warehouse Builderでは、表、ビューおよびマテリアライズド・ビューの属性セットを定義できます。簡潔に表現するために、以降の各項では、属性セットの定義が可能なすべてのオブジェクトを表という語で表します。
各表に対して、Warehouse Builderでは、その表内のすべての列が含まれる事前定義済の属性セットが生成されます。さらに、定義済の各制約に対しても事前定義済の属性セットが生成されます。事前定義済の属性セットは変更または削除できません。
属性セットを作成するには、データ・オブジェクト・エディタの「属性セット」タブを使用します。次のタイプの属性セットを作成できます。
ユーザー定義: 「表プロパティ」ウィンドウで作成、変更または削除できるオプションの属性セットです。
ブリッジ: Oracle Discovererなどの別のアプリケーションにエクスポートおよび表示できるオプションの属性セットです。「表プロパティ」ウィンドウでは、ブリッジ・タイプの属性セットを作成、変更または削除できます。1つのオブジェクトに指定できるブリッジ・タイプの属性セットは1つのみです。
表に属性セットを追加する手順は、次のとおりです。
プロジェクト・エクスプローラで表名を右クリックし、「エディタを開く」を選択します。
表に対するデータ・オブジェクト・エディタが表示されます。
「属性セット」タブを選択します。
このタブには、「属性セット」および「選択された属性セットの属性」の2つのセクションが含まれます。
「属性セット」セクションには、表に対して定義されている属性セットが表示されます。このセクションには、「名前」、「タイプ」および「説明」の各属性セットを定義する3つの列が含まれます。
「選択された属性セットの属性」セクションには、表内のすべての属性がリストされます。「挿入」列を使用して選択した属性は、「エンティティの属性セット」セクションで選択した属性セットの一部である属性です。
「エンティティの属性セット」セクションで、空白行の「名前」フィールドをクリックし、属性セット名を入力します。
物理モードでは、1から30文字の有効な文字で名前を入力する必要があります。空白は使用できません。論理モードでは、最大200文字の有効な文字を入力できます。空白は使用できます。属性セット名はオブジェクト内で一意である必要があります。
「選択された属性セットの属性」セクションにすべての表属性が表示されていることに注意してください。
「タイプ」ドロップダウン・リストで、属性セットのタイプとして「USER_DEFINED」または「BRIDGE_TYPE」を選択します。
オプションで、「説明」列を使用して属性セットの説明を入力できます。
「選択された属性セットの属性」セクションで、属性セットに含める属性ごとに「挿入」をクリックします。列を選択する順序により、属性セット内での初期順序が決定されます。
属性セット内に表示されているすべての列を選択するには、「すべて選択」をクリックします。属性セットからすべての列を除外するには、「すべて選択解除」をクリックします。属性セットから1つの列を削除するには、チェック・ボックスを再度クリックしてチェック・マークを削除します。
「BRIDGE_TYPE」を選択した場合、「拡張」をクリックします。
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です。
ヘッダー: ヘッダー・テキストを入力します。
フォーマット: 「フォーマット」フィールドのテキストを入力します。
「OK」をクリックし、「拡張された属性セット・プロパティです。」ダイアログを閉じます。
属性セットを編集するには、データ・オブジェクト・エディタの「属性セット」タブを使用します。属性セットを編集する際に、次のアクションを実行できます。属性セットを編集する前に、属性セットが含まれるオブジェクトに対してデータ・オブジェクト・エディタが開いていることを確認します。また、データ・オブジェクト・エディタの「属性セット」タブにナビゲートします。
属性セットの改名
「エンティティの属性セット」セクションの「名前」列で属性セット名をクリックし、新しい名前を入力します。
属性セットのタイプの変更
「エンティティの属性セット」セクションの「タイプ」ドロップダウン・リストを使用して、属性セットのタイプを変更します。
属性セットの属性の追加または削除
属性セットへの属性の追加: 「エンティティの属性セット」セクションの属性セット名の左側にあるグレーのセルをクリックし、属性を追加する属性セットを選択します。「選択された属性セットの属性」セクションで、属性セットに含める属性ごとに「挿入」をクリックします。
属性セットからの属性の削除: 属性セットの左側にあるグレーのセルをクリックし、属性を削除する属性セットを選択します。「選択された属性セットの属性」セクションで、属性セットから削除する属性について「挿入」をクリックします。
属性セットにおける属性の表示順序の変更
属性セットでの属性の順序を変更するには、「選択された属性セットの属性」セクションの左側にあるボタンを使用します。属性の左側にあるグレーのセルをクリックし、ボタンを使用して属性の順序を上下に移動します。
属性セットを削除するには、属性セット名の左側にあるグレーのセルを右クリックし、「削除」を選択します。
順序は、連続した一意の数値のリストを生成するデータベース・オブジェクトです。順序を使用して、一意の主キー値を生成し、複数の行または表にまたがってキーを統合できます。順序の値は一意になるよう保証されています。Warehouse Builderで順序を作成する場合、リポジトリに格納される順序定義を作成します。順序定義をマッピングに使用して、ターゲット・システムにデータを変換および移動する際に一意の数値を生成できます。
次の各項では、順序の使用方法について説明します。
順序は、「NEXTVAL」および「CURRVAL」疑似列を使用してSQL文において参照されます。各新規順序番号は疑似列「NEXTVAL」への参照により増加し、現行の順序番号は疑似列「CURRVAL」を使用して参照されます。順序を定義すると、Warehouse Builderによりこれらの属性が作成されます。
Warehouse Builderでは、「オブジェクト・インポート・ウィザード」を使用して既存のソース・システムから順序定義をインポートすることもできます。
新規順序を作成する手順は、次のとおりです。
Warehouse Builderのプロジェクト・エクスプローラでウェアハウス・モジュール・ノードを拡張します。
「順序」を右クリックし、ポップアップ・メニューから「新規」を選択します。
Warehouse Builderに、順序の作成ウィザードが表示されます。
表の名前および説明(オプション)を指定するには、「名前」タブを使用します。「データ・オブジェクトのネーミング規則」にリストされたルールに加えて、モジュール間で名前が一意である必要があります。
「OK」をクリックします。
Warehouse Builderにより順序の定義が格納され、プロジェクト・エクスプローラに順序名が挿入されます。
「順序の編集」ダイアログを使用して、順序定義を編集します。順序の名前、説明および列に関する注意を編集できます。
順序プロパティを編集するには、「プロジェクト・エクスプローラ」で順序名を右クリックして「エディタを開く」を選択するか、順序名をダブルクリックします。「順序の編集」ダイアログが表示されます。このダイアログには、「名前」タブと「列」タブの2つのタブがあります。
これらのタブをクリックし、次のタスクを実行します。
順序の名前変更
順序列の編集
「データ・オブジェクトのネーミング規則」の規則に従って、名前と説明(オプション)を指定します。
また、プロジェクト・エクスプローラで順序名を右クリックして「名前の変更」を選択し、順序名を変更できます。
「列」タブには、順序列「CURRVAL」および「NEXTVAL」が表示されます。これらの列の説明を編集できます。
ユーザー定義データ型では、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つとしてタイプ定義「アドレス」を必要とする表のスキーマ全体で使用できます。
オブジェクト・タイプを作成する手順は、次のとおりです。
プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。
オブジェクト・タイプを作成するモジュールを展開します。
「ユーザー定義タイプ」ノードを展開します。
「オブジェクト・タイプ」を右クリックし、「新規」を選択します。
データ・オブジェクト・エディタが表示されます。データ・オブジェクト・エディタの「ObjectTypesプロパティ」パネルにある次のタブを使用して、オブジェクト・タイプを定義します。
「データ・オブジェクトのネーミング規則」の規則に従って、名前と説明(オプション)を指定します。
オブジェクト・タイプ内の列を定義するには、「列」タブを使用します。このタブには、列の定義に使用できる属性のリストが表示されます。属性内の各行は1つのオブジェクト列の定義に対応しています。
列ごとに次の詳細を指定します。
名前: 列名を入力します。列名はオブジェクト・タイプ内で一意である必要があります。予約語は使用できません。
データ型: 「データ型」リストから列のデータ型を選択します。Warehouse Builderにより、列名に基づいて列のデフォルトのデータ型が割り当てられます。たとえば、start_date
という列を作成する場合、割り当てられるデータ型はDATEです。デフォルトの割当てがデータ要件に合わない場合は変更できます。
長さ: 列の長さを指定します。長さは文字データ型にのみ適用可能です。
精度: 列に許可された合計桁数を指定します。精度は数値データ型にのみ適用可能です。
スケール: 小数点以下の合計桁数を指定します。スケールは数値データ型にのみ適用可能です。
秒精度: 日時フィールドの小数部分の桁数を指定します。秒精度はTIMESTAMPデータ型にのみ使用されます。
NOT NULL: 列にNULL値を含めないよう指定するにはこのフィールドを選択します。デフォルトでは、表内のすべての列でNULLを使用できます。この列はオブジェクト・タイプには適用できません。
デフォルト値: この列のデフォルト値を指定します。データが表に格納されている一方でこの列に値が入力されていない場合、デフォルト値が使用されます。データのロード中にこの列の値を指定した場合、デフォルト値が上書きされ、指定値が列に格納されます。この列はオブジェクト・タイプには適用できません。
説明: 列の説明を入力します。これはオプションです。
オブジェクト・タイプを編集する手順は、次のとおりです。
プロジェクト・エクスプローラで、「データベース」ノード、続いて「Oracle」ノードを展開します。
オブジェクト・タイプを作成するモジュールを展開します。
「ユーザー定義タイプ」ノードを展開します。
「オブジェクト・タイプ」ノードを展開します。
編集するオブジェクト・タイプを右クリックし、「エディタを開く」を選択します。
データ・オブジェクト・エディタが表示されます。「オブジェクト・タイプの作成」の項で定義されている「名前」および「列」タブを使用して、オブジェクト・タイプの定義を編集します。
可変長配列は、順序を設定したデータ要素コレクションです。可変長配列内の各要素の位置は、索引番号として格納されます。この番号を使用して、特定の要素にアクセスできます。可変長配列を定義する際、配列に含めることができる最大要素数を指定します。この数値は後で変更できます。可変長配列は不透明なオブジェクト(RAWまたはBLOBなど)として格納されます。
顧客が複数のアドレス(3つのアドレスなど)を持っている場合、もう1つのタイプとして3つのアドレスを保持する表タイプを作成できます。次の例では、アドレス・タイプの表を作成します。
TYPE address_store is VARRAY(3) of address;
可変長配列は順序を設定した要素セットであるため、リスト内の最初のアドレスが第1アドレスであり、残りのアドレスは第2アドレスであるとみなすことができます。
可変長配列を作成する手順は、次のとおりです。
プロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
可変長配列を作成するモジュールを展開します。
「ユーザー定義タイプ」ノードを展開します。
「可変長配列」を右クリックし、「新規」を選択します。
データ・オブジェクト・エディタが表示されます。データ・オブジェクト・エディタの「可変長配列詳細」パネルにある次のタブを使用して、オブジェクト・タイプを定義します。
「データ・オブジェクトのネーミング規則」の規則に従って、名前と説明(オプション)を指定します。
「詳細」タブを使用して、次のフィールドの値を指定します。
長さ: 可変長配列要素の長さを指定します。長さは文字データ型にのみ適用可能です。
精度: 可変長配列要素に対して可能な合計桁数を指定します。精度は数値データ型にのみ適用可能です。
スケール: 小数点以下の合計桁数を指定します。スケールは数値データ型にのみ適用可能です。
秒精度: 日時フィールドの小数部分の桁数を指定します。秒精度はTIMESTAMPデータ型にのみ使用されます。
サイズ: 可変長配列のサイズを指定します。
可変長配列を編集するには、次の手順を実行します。
プロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
可変長配列タイプを編集するモジュールを展開します。
「ユーザー定義タイプ」ノードを展開します。
「可変長配列」ノードを展開します。
編集する可変長配列を右クリックし、「エディタを開く」を選択します。
データ・オブジェクト・エディタが表示されます。「可変長配列の作成」の項で定義されている「名前」および「詳細」タブを使用して、可変長配列の定義を編集します。
ネストした表は、不規則なデータ要素コレクションです。ネストした表では、任意の数の要素を使用できます。表の定義では最大要素数は指定されていません。要素の順序は保持されません。通常の表に対して実行できるSELECT、INSERTおよびDELETEなどのすべての操作をネストした表で実行できます。ネストした表の要素は、各要素が属する親表の行またはオブジェクトを識別する列が含まれる独立した記憶域表に格納されます。要素には組込み型またはユーザー定義型を指定できます。ネストした表を1列の表で表示、またはネストした表がオブジェクト・タイプである場合は、オブジェクト・タイプの属性ごとに1列ずつ、複数列の表で表示できます。
ネストした表は、サイズが事前定義されていない不規則な要素セットの格納に使用されます。たとえば、顧客参照などです。
ネストした表を作成する手順は、次のとおりです。
プロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
ネストした表を作成するモジュールを展開します。
「ユーザー定義タイプ」ノードを展開します。
「ネストした表」を右クリックし、「新規」を選択します。
データ・オブジェクト・エディタが表示されます。データ・オブジェクト・エディタのネストした表の詳細パネルにある次のタブを使用して、オブジェクト・タイプを定義します。
「データ・オブジェクトのネーミング規則」の規則に従って、名前と説明(オプション)を指定します。
「詳細」タブを使用して、次のフィールドの値を指定します。
長さ: ネストした表要素の長さを指定します。長さは文字データ型にのみ適用可能です。
精度: ネストした表要素に対して可能な合計桁数を指定します。精度は数値データ型にのみ適用可能です。
スケール: 小数点以下の合計桁数を指定します。スケールは数値データ型にのみ適用可能です。
秒精度: 日時フィールドの小数部分の桁数を指定します。秒精度はTIMESTAMPデータ型にのみ使用されます。
ネストした表を編集するには、次の手順を実行します。
プロジェクト・エクスプローラから、「データベース」ノード、続いて「Oracle」ノードを展開します。
ネストした表を編集するモジュールを展開します。
「ユーザー定義タイプ」ノードを展開します。
「ネストした表」ノードを展開します。
編集するネストした表を右クリックし、「エディタを開く」を選択します。
データ・オブジェクト・エディタが表示されます。「ネストした表の作成」の項で定義されている「名前」および「詳細」タブを使用して、ネストした表の定義を編集します。
設計フェーズの初期に、Warehouse Builder設計オブジェクトを使用してターゲット・システムの論理モデルを定義しました。この項では、それらの設計オブジェクトに物理プロパティを割り当てる方法について説明します。
この項の内容は次のとおりです。
このフェーズでは、表領域、パーティションおよびその他の識別パラメータなどのプロパティを構成し、Warehouse Builderで作成したオブジェクト定義に物理配布プロパティを割り当てます。ジョブ名、ランタイム・ディレクトリなどのランタイム・パラメータも構成します。
「構成プロパティ」ダイアログを使用して、これらの物理プロパティを設定します。図12-11に、Oracleモジュールに関する「構成プロパティ」ダイアログを示します。ターゲット・モジュール、または表、ディメンション、ビュー、マッピングなどの個々の設計オブジェクトについてプロパティを設定できます。次の各項では、論理設計モデルに物理プロパティを割り当てる方法を説明します。
各ターゲット・モジュールでは、そのモジュールに含まれるすべてのオブジェクトに対してトップ・レベルの構成オプションが提供されます。
Warehouse Builderのプロジェクト・エクスプローラから、「データベース」、「Oracle」を順に展開し、ターゲット・モジュール名を右クリックして「構成」を選択します。
Warehouse Builderに「構成プロパティ」ダイアログが表示されます。
構成するパラメータを選択し、パラメータ名の右側の空白をクリックしてパラメータ値を編集します。
パラメータごとに、リストからオプションを選択するか、値を入力するか、または楕円をクリックして別のプロパティ・ダイアログを表示できます。
次の各項にリストしたパラメータを構成します。
メイン・アプリケーションの短縮名: このパラメータは廃止されており、使用していません。
アプリケーションの短縮名: このパラメータは廃止されており、使用していません。
ロケーション: モジュールが関連付けられているロケーションを表します。モジュールがソース・モジュールである場合、この値はデータのソースであるロケーションを表します。モジュールがターゲット・モジュールである場合、この値は生成済コードおよびオブジェクト・データの配布先となるロケーションを表します。
トップ・ディレクトリ: 生成済コードが格納されるディレクトリの名前を表します。このパラメータのデフォルト値は..¥..¥codegen
¥です。この値は生成済コードを格納する任意のディレクトリに変更できます。
配布可能: モジュールに含まれるオブジェクトを配布できることを示すには、このオプションを選択します。
ストリーム管理者: このパラメータは今後のリリースで使用されます。
デフォルト索引表領域: 索引が作成される各表領域の名前を定義します。デフォルトはNULLです。オブジェクト・レベルではなくターゲット・モジュール・レベルで索引表領域を構成した場合、Warehouse Builderでは、コード生成時にターゲット・モジュール・レベルで構成された表領域の値が使用されます。各索引の表領域をオブジェクト・レベルで構成した場合、Warehouse Builderでは、ターゲット・モジュール・レベルで構成された表領域の値が上書きされます。
オブジェクト表領域: オブジェクトが作成される各表領域の名前(表、ビューまたはマテリアライズド・ビューなど)を定義します。デフォルトはNULLです。個々のオブジェクト・レベルではなくターゲット・モジュール・レベルでオブジェクト表領域を構成した場合、Warehouse Builderでは、コード生成時にターゲット・モジュール・レベルで構成された値が使用されます。各オブジェクトの表領域を構成した場合、Warehouse Builderでは、ターゲット・モジュール・レベルで構成された表領域の値が上書きされます。
行端: フラット・ファイルの行端マーカーを定義します。これはウェアハウスの配布先であるプラットフォームによって決まります。UNIXの場合は\n
を使用し、NTの場合は\r\n
を使用します。
PL/SQL生成モード: ターゲット・データベース・タイプを定義します。コード生成はこのフィールドでの選択内容に基づきます。たとえば、Oracle 9iコード構成を必ず使用するにはOracle 9iを選択します。Oracle 8iを選択した場合、Warehouse Builderでは行ベース・コードが生成されます。
Warehouse Builderの各リリースでは新機能が導入されており、その一部はOracleデータベースの最新バージョンと組み合せた場合のみ使用できます。たとえば、「PL/SQL生成モード」としてOracle8iを選択した場合、テーブル・ファンクションや外部表など、一部のOracle9i Warehouse Builderコンポーネントにアクセスできません。旧リリースのOracle Databaseと互換性のないOracle Warehouse Builderコンポーネントのリストは、Oracle Warehouse Builderリリース・ノートを参照してください。
受信ディレクトリ: 現在使用していません。デフォルトはreceive¥です。
入力ディレクトリ: 現在使用していません。デフォルトはinput¥です。
無効ディレクトリ: ローダー・エラーおよび拒否されたレコードのディレクトリです。デフォルトはinvalid¥です。
作業ディレクトリ: 現在使用していません。デフォルトはwork¥です。
ソート・ディレクトリ: 現在使用していません。デフォルトはsort¥です。
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構成については、第18章「サード・パーティ・アプリケーションからのデータのインポート」を参照してください。
ABAP拡張子: ABAPスクリプトのファイル名拡張子を入力します。デフォルトは.abap
です。
ABAP実行パラメータ・ファイル: ABAPジョブ内のパラメータ・スクリプトの接尾辞を入力します。デフォルトは_run.iniです。
ABAPスプール・ディレクトリ: スクリプトの生成処理中にABAPスクリプトがバッファされるロケーションを入力します。
LOADERディレクトリ: 制御ファイルのロケーションを入力します。デフォルトはctl¥
です。
LOADER拡張子: ローダー・スクリプトの接尾辞を入力します。デフォルトは.ctl
です。
LOADER実行パラメータ・ファイル: パラメータ初期化ファイルの接尾辞を入力します。デフォルトは_run.ini
です。
Warehouse Builderでは、ターゲット・モジュールで定義されている表ごとにDDLスクリプトが生成されます。表を構成するには、次の手順に従います。
表の物理プロパティを構成するには、表の名前を右クリックし、「構成」を選択します。Warehouse Builderに「構成プロパティ」ダイアログが表示されます。次の各項にリストした構成パラメータを設定します。
識別
配布可能: この表を配布するよう指定するには、このオプションを選択します。Warehouse Builderでは、配布可能とマークされた表制約についてのみスクリプトが生成されます。
記憶域パラメータ
記憶域パラメータでは、データベースへの表の格納方法を定義できます。このカテゴリには、BUFFER_POOL、FREELIST GROUPS、FREELISTS、INITIAL、MINEXTENTS、MAXEXTENTS、NEXTおよびPCTINCREASEなどのパラメータが含まれます。
「表領域」パラメータは、表を作成する各表領域の名前を定義します。デフォルト値はNULLです。デフォルト値NULLをそのまま使用する場合、Warehouse Builderでは、ターゲット・モジュールの構成プロパティに設定されている表領域の値に基づいて表が生成されます。個々のオブジェクトに対して表領域を構成する場合、Warehouse Builderでは、ターゲット・モジュールに構成された表領域の値が上書きされます。
パラレル
パフォーマンス・パラメータ
データ・セグメント圧縮: データ・セグメントを圧縮するかどうかを指定します。圧縮するとディスク使用率が減ります。デフォルトは「NOCOMPRESS」です。
ロギング・モード: DMLアクションをREDOログ・ファイルに記録するかどうかを指定します。パフォーマンスを向上させるには、このパラメータをNOLOGGING
に設定します。デフォルトはLOGGING
です。
統計収集: 表について統計を収集するかどうかを指定します。変更の統計をこの表で収集するには、「MONITORING」を指定します。
パーティション・パラメータ
パーティション表領域リスト: 表領域のカンマ区切りリストを指定します。単純なパーティション化オブジェクトの場合、このリストはHASH BY QUANTITYパーティション表領域に使用されます。コンポジット・パーティション化表の場合は、サブパーティション・テンプレートで表領域のリストを格納するために使用されます。
オーバーフロー表領域リスト: オーバーフロー・データの表領域のカンマ区切りリストを指定します。シンプル・パーティション化オブジェクトの場合、このリストはHASH BY QUANTITYパーティション・オーバーフロー表領域に使用されます。表領域の数をパーティションの数と等しくする必要はありません。パーティション数が表領域数より多い場合は、表領域の名前がOracleで循環使用されます。
シャドウ表
マテリアライズド・ビューの物理プロパティを構成する手順は、次のとおりです。
プロジェクト・エクスプローラで、マテリアライズド・ビュー名を右クリックし、「構成」を選択します。
構成プロパティ・ウィンドウが表示されます。
表にリストされた構成のガイドラインに従ってください。詳細は、「表の構成」を参照してください。
次の項の「マテリアライズド・ビュー・パラメータ」を構成します。
マテリアライズド・ビューのパラメータを次に示します。
マテリアライズド・ビュー・パラメータ
リフレッシュ: 「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」を指定します。
制約の使用: このパラメータについて選択できるオプションは「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またはオブジェクト・マテリアライズド・ビューを更新できるようにするには、「Yes」を選択します。デフォルト設定は「No」です。
マスター・ロールバック・セグメント: マテリアライズド・ビューのリモート・マスター・サイトで使用されるリモート・ロールバック・セグメント名を指定します。
実表: マテリアライズド・ビューで参照される実表のカンマ区切りリストを指定します。各表名をカンマで区切ります。表名が大文字でない場合は、名前を二重引用符で囲みます。
ローカル・ロールバック・セグメント: マテリアライズド・ビューのローカル・リフレッシュ・グループに使用する名前付きリモート・ロールバック・セグメントを指定します。デフォルトはNULLです。
BUILD: マテリアライズド・ビューに移入されるタイミングを指定します。オプションは「Immediate(デフォルト)」、「Deferred」および「Prebuilt」です。
Immediate: マテリアライズド・ビューの作成時に移入します。
Deferred: 次回のリフレッシュ操作までマテリアライズド・ビューの移入を遅延させます。マテリアライズド・ビューの設計中、実表のメタデータは正しいがデータが正しくない場合、このオプションを選択できます。
Prebuilt: マテリアライズド・ビューがビルトインであることを示します。
パフォーマンス・パラメータ:
ロギング・モード: DMLアクションをREDOログ・ファイルに記録するかどうかを指定します。パフォーマンスを向上させるには、このパラメータをNOLOGGING
に設定します。デフォルトはLOGGING
です。
シャドウ表
パラレル
識別
配布可能: このマテリアライズド・ビューを配布するかどうかを指定するには、「TRUE」を選択します。Warehouse Builderでは、配布可能とマークされているマテリアライズド・ビューについてのみスクリプトが生成されます。
ハッシュ・パーティション・パラメータ
Warehouse Builderでは、マテリアライズド・ビューを増分リフレッシュするよう構成できます。マテリアライズド・ビューの実表を更新すると、データベースにより更新済レコード・ポインタがマテリアライズド・ビュー・ログに格納されます。ログ表内の変更内容は、関連付けられたマテリアライズド・ビューのリフレッシュに使用されます。
Warehouse Builderでマテリアライズド・ビューを確実に増分リフレッシュするには、次の条件を確認します。
「リフレッシュ」パラメータが「Fast」に設定されており、「実表」パラメータにすべての実表がリストされている必要があります。
各実表にPK制約が定義されている必要があります。Warehouse BuilderはPK制約に基づいてCREATE文を生成し、そのログを使用して、依存するマテリアライズド・ビューをリフレッシュします。
マテリアライズド・ビューには、SYSDATE、ROWNUMおよび反復不可のPL/SQLファンクションなど、非反復式への参照を含めることはできません。
マテリアライズド・ビューには、データ型RAWおよびLONG RAWへの参照を含めることはできません。
結合、集計およびUNION文を含むマテリアライズド・ビューには、この他にも制限があります。追加の制限の詳細は、Oracle9iデータ・ウェアハウス・ガイドを参照してください。
Warehouse Builderでは、ターゲット・モジュールで定義されているビューごとにスクリプトが生成されます。「配布可能」パラメータを「TRUE」または「FALSE」に設定して、特定のビューを配布するかどうかを設定できます。
ビューの詳細は、次の各項を参照してください。