ヘッダーをスキップ
Oracle® Warehouse Builderデータ・モデリング、ETLおよびデータ・クオリティ・ガイド
11gリリース2 (11.2)
B61350-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 リレーショナル・データ・オブジェクトの作成

データ・ウェアハウスやデータ・マートの設計が完了したら、ターゲット・システムを設計できます。この章では、リレーショナル・データ・オブジェクトの作成方法について説明します。

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

データ・オブジェクトの概要

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

ディメンション・オブジェクトには、データを識別し、分類するための追加のメタデータが含まれています。ディメンション・オブジェクトを定義するときは、より構造化された形式でデータを格納できるように、論理的な関係を記述します。ディメンション・オブジェクトには、ディメンションとキューブがあります。

Oracleモジュールには、Oracle Warehouse Builderで定義できるリレーショナルおよびディメンションのそれぞれのデータ・オブジェクト・タイプのノードが含まれています。プロジェクト・ナビゲータで、モジュールを拡張すると、サポートされているデータ・オブジェクトがすべて表示されます。

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


関連項目:

Oracle BI Discoverer用のビジネス定義の作成方法は、『Oracle Warehouse Builderソースおよびターゲット・ガイド』を参照してください。

Oracle Warehouse Builderのデータ・オブジェクトのリスト

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

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

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

リレーショナル

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

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

外部表

リレーショナル

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

外部表の詳細は、『Oracle Warehouse Builderソースおよびターゲット・ガイド』を参照してください。

ビュー

リレーショナル

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

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

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

リレーショナル

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

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

順序

リレーショナル

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

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

ディメンション

ディメンショナル

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

詳細は、「ディメンションの概要」を参照してください。

キューブ

ディメンショナル

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

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

アドバンスト・キュー

リレーショナル

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

詳細は、「アドバンスト・キューの定義の作成」を参照してください。

キュー表

リレーショナル

キュー表は、キューを格納する表です。各キュー表には、データ型がキュー表の作成時に指定されるペイロードが含まれます。

詳細は、「キュー表の定義の作成」を参照してください。

オブジェクト・タイプ

リレーショナル

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

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

可変長配列

リレーショナル

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

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

ネストした表

リレーショナル

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

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


サポートされるデータ型

作成したデータ・オブジェクトのメタデータはリポジトリ内に格納されます。メタデータには、属性、列名、データ型、レベル名などの詳細が含まれます。

表2-2に、列や属性の定義に使用できるデータ型を示します。

表2-2 Oracle Warehouse Builderによってサポートされるデータ型

データ型 説明

BINARY_DOUBLE

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

BINARY_FLOAT

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

BLOB

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

CHAR

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

CLOB

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

DATE

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

FLOAT

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

INTEGER

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

INTERVALDAYTOSECOND

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

INTERVALYEARTOMONTH

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

LONG

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

LONG RAW

バイナリ・データまたはバイト列を格納します。このデータ型は、グラフィック、サウンド、ドキュメントまたはバイナリ・データ配列を格納するために使用されます。

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で解析できない点が異なります。

ROWID

表内の行の一意のアドレスを表すBase 64文字列です。このデータ型は、主にROWID疑似列から戻される値に使用されます。

SYS.ANYDATA

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

SYS.AQ$_JMS_BYTES_MESSAGE

BytesMessageをOracle Streams AQキューに格納するために使用される抽象データ型(ADT)です。

BytesMessageオブジェクトは、中断なしのバイト・ストリームを含むメッセージを送信するために使用されます。

このデータ型の詳細は、次を参照してください。

  • Oracle Database PL/SQLパッケージおよびデータ型リファレンス

  • Oracle Streamsアドバンスト・キュー・ユーザーズ・ガイド

SYS.AQ$_JMS_MAP_MESSAGE

MapMessageをOracle Streams AQキューに格納するために使用される抽象データ型(ADT)です。

MapMessageオブジェクトは、一連の名前と値のペアを送信するために使用されます。この場合の名前は文字列型、値はJavaプリミティブ型です。

このデータ型の詳細は、次を参照してください。

  • Oracle Database PL/SQLパッケージおよびデータ型リファレンス

  • Oracle Streamsアドバンスト・キュー・ユーザーズ・ガイド

SYS.AQ$_JMS_MESSAGE

5種類のJMSメッセージ・タイプ(テキスト・メッセージ、バイト・メッセージ、ストリーム・メッセージ、マップ・メッセージ、オブジェクト・メッセージ)のどれでも表せるADT型です。したがって、このADTを使用して作成されるキューには、5つのタイプのJMSメッセージをすべて格納できます。

このデータ型の詳細は、Oracle Database PL/SQLパッケージおよびデータ型リファレンスを参照してください。

SYS.AQ$_JMS_STREAM_MESSAGE

StreamMessageをOracle Streams AQキューに格納するために使用される抽象データ型(ADT)です。StreamMessageオブジェクトは、Javaプリミティブのストリームの送信に使用されます。このオブジェクトの入力および読取りは順次実行されます。

このデータ型の詳細は、次を参照してください。

  • Oracle Database PL/SQLパッケージおよびデータ型リファレンス

  • Oracle Streamsアドバンスト・キュー・ユーザーズ・ガイド

SYS.AQ$_JMS_TEXT_MESSAGE

TextMessageをOracle Streams AQキューに格納するために使用される抽象データ型(ADT)です。TextMessageオブジェクトは、java.lang.StringBufferを含むメッセージを送信するために使用されます。

このデータ型の詳細は、次を参照してください。

  • Oracle Database PL/SQLパッケージおよびデータ型リファレンス

  • Oracle Streamsアドバンスト・キュー・ユーザーズ・ガイド

SYS.LCR$_ROW_RECORD

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

TIMESTAMP

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

TIMESTAMPWITHLOCALTIMEZONE

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

TIMESTAMPWITHTIMEZONE

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

UROWID

物理表でもOracle Databaseによって生成された表でもないリレーショナル表内の特定の行のアドレスを表します。たとえば、索引によって編成された表の行アドレスや、Oracle以外の外部表(ゲートウェイを使用してアクセスされるDB2など)の行IDなどがあります。最大サイズは4000バイトです。

VARCHAR

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

VARCHAR2

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

XMLFORMAT

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

XMLTYPE

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

ユーザー定義型

Oracle組込みデータ型およびその他のユーザー定義データ型を、アプリケーションでのデータの構造および動作をモデル化するオブジェクト・タイプの構築ブロックとして使用します。

ユーザー定義型には、オブジェクト・タイプ、可変長配列およびネストした表が含まれます。


オブジェクト・クラス定義について

Oracle Warehouse Builderのアーキテクチャは、ファースト・クラス・オブジェクト、セカンド・クラス・オブジェクトおよびサード・クラス・オブジェクトなど、様々なクラスのオブジェクトで構成されています。この項では、これらのオブジェクト・クラスについて説明します。

ファースト・クラス・オブジェクト(FCO)について

ファースト・クラス・オブジェクト(FCO)は、Oracle Warehouse Builderインタフェースから操作できるメタデータ・リポジトリにあるコンポーネントを表します。ファースト・クラス・オブジェクトは、常にではありませんが多くの場合、他のオブジェクトを所有しています。たとえば、TABLEはFCOであり、セカンド・クラス・オブジェクトであるTABLE_COLUMN、UNIQUE_KEY、FOREIGN_KEYおよびCHECK_CONSTRAINTを所有する場合があります。

デザイン・センターを使用してOracle Warehouse Builderにアクセスする場合、一般的にFCOはナビゲーション・ツリーに表示されます。同様に、OMB*Plusを通じてOracle Warehouse Builderにアクセスするユーザーは、OMBCREATE、OMBALTER、OMBRETRIEVEおよびOMBDROPコマンドのオブジェクトとしてFCOを一般化できます。

セカンド・クラス・オブジェクト(SCO)について

セカンド・クラス・オブジェクト(SCO)は、依存オブジェクト・コンポーネントを表します。SCOは常に他のオブジェクトによって所有されますが、同時に、それ自体もオブジェクトを所有できます。たとえば、MAPPINGと呼ばれるFCOは、SCO MAPPING_OPERATORを含んでいますが、これにはさらにATTRIBUTESが含まれます。

デザイン・センターを使用してOracle Warehouse Builderにアクセスする場合、SCOはFCOを通じてのみ操作可能です。同様に、OMB*Plusを通じてOracle Warehouse Builderにアクセスするユーザーは、FCOに対するコマンドを通じてのみSCOの定義を操作できます。

サード・クラス・オブジェクトとフォース・クラス・オブジェクトについて

サード・クラス・オブジェクトとフォース・クラス・オブジェクトは、他のオブジェクトに所有されたオブジェクトの相対的な位置付けを表します。所有権が複数レイヤーになるオブジェクトにのみ当てはまります。たとえば、DIMENSION_TABLE(ファースト・クラス・オブジェクト)がINDEX_COLUMNを所有している場合、INDEX_COLUMNはセカンド・クラス・オブジェクトになります。しかし、ファースト・クラス・オブジェクトCUBE_TABLEがセカンド・クラス・オブジェクトINDEXを所有し、そのINDEXがINDEX_COLUMNを所有している場合には、INDEX_COLUMNはサード・クラス・オブジェクトになります。

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

データ・オブジェクトのネーミング規則は、Oracle Warehouse Builder用に設定するネーミング・モードに応じて異なります。Oracle Warehouse Builderでは、ワークスペースに格納されているオブジェクトごとにビジネス名と物理名が維持されます。オブジェクトのビジネス名は詳細な論理名であり、物理名はOracle Warehouse Builderでコード生成時に使用される名前です。

ネーミング・モードは、「プリファレンス」ダイアログ・ボックスのネーミング・プリファレンス・セクションで設定します。


関連項目:

ネーミングのプリファレンスの詳細は、Oracle Warehouse Builder概要を参照してください。

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

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

物理ネーミング・モードでは、Oracleデータ・オブジェクトの名前は1文字から30文字までの英数字です。名前はオブジェクトを所有するオブジェクト・カテゴリ全体で一意である必要があります。空白は使用できません。データ・オブジェクト名はOWB$で始まることはできません。


関連項目:

他のプラットフォームでの物理名の長さの詳細は、次を参照してください。

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

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

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

データ・オブジェクトのネーミングのベスト・プラクティス

データ・オブジェクト名またはFCO名は、そのFCOを所有するオブジェクト・カテゴリ全体で一意である必要があります。さらに、SCO名がFCOを所有するオブジェクト・カテゴリ全体で一意であるようにし、そのSCOを含んでいるSCOの名前とは異なる名前にするのが賢明です。

たとえば、表には制約が含まれています。表はFCOであり、制約はSCOです。表を定義するときには、その表が定義されるモジュール全体で一意の表名を付ける必要があります。さらに、そのモジュール内のすべてのFCOおよびSCOにわたって一意の制約名を付けることをお薦めします。

データ・ビューアを使用したデータ・オブジェクトに格納されたデータの表示

データ・ビューアを使用すると、リレーショナル・データ・オブジェクトおよびディメンション・データ・オブジェクトに格納されているデータを表示できます。たとえば、表のデータ・ビューアでは、表のデータを表示できます。同様に、キューブのデータ・ビューアでは、キューブに格納されているデータを表示できます。

データ・オブジェクトのデータ・ビューアにアクセスするには、そのデータ・オブジェクトを右クリックして「データ」を選択します。そのデータ・オブジェクトに格納されているデータを含むデータ・ビューアが、別のタブに表示されます。

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

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

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

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

データ・ビューアに表示される列と列名は、実際の表が配布されたロケーションから直接取得されます。


注意:

LONGデータ型の列の場合、データ・ビューアには、その列に格納されている実際の値のかわりに、<サポートされていないデータ型>と表示されます。

エラー表について

Oracle Warehouse Builderでは、データをOracleデータ・オブジェクト(表、ビュー、マテリアライズド・ビュー、ディメンション、キューブなど)にロードしているときに発生する可能性がある論理エラーを格納するエラー表を作成できます。

エラー表は次の目的で使用されます。

  • 表、ビューまたはマテリアライズド・ビューへのデータ・ルール適用時の論理エラーの取得。

  • DMLエラー・ロギングを使用した物理エラーの取得。

  • ディメンション・オブジェクトに対して親のないオーファン管理ポリシーが有効になっている場合にオーファン・レコードによって引き起こされたエラーの格納。


    関連項目:

    オーファン管理の詳細は、「ディメンション・オブジェクトのオーファン管理」を参照してください。

データ・オブジェクトのエラー表の定義

データ・オブジェクトのエラー表が作成されるのは、そのデータ・オブジェクトの「エラー表名」構成パラメータが設定された場合のみです。エラー表名を指定しなかった場合、そのオブジェクトに関する論理エラーは記録されなくなります。ただし、データ・オブジェクトにデータ・ルールが関連付けられている場合は、そのオブジェクトに対してエラー表名を指定しなくても、デフォルト名を使用してエラー表が作成されます。たとえば、データ・ルールを指定した表の名前がEMPの場合、エラー表の名前はEMP_ERRになります。

データ・オブジェクトのエラー表を作成する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、エラー表を作成するデータ・オブジェクトを右クリックし、「構成」を選択します。

    そのデータ・オブジェクトの構成パラメータを含む「構成」タブが表示されます。

  2. 「構成」タブで「エラー表」ノードを開きます。

  3. 「エラー表名」パラメータの値を、そのデータ・オブジェクトのエラー表の名前に設定します。

データ・オブジェクトの配布後に「エラー表名」パラメータの値を変更する場合は、そのデータ・オブジェクトを削除して再配布する必要があります。データ・オブジェクトがマッピングで使用されていた場合は、そのデータ・オブジェクトにバインドされていたすべての演算子を同期化し、マッピングを再配布します。


注意:

表演算子、ビュー演算子またはマテリアライズド・ビュー演算子の「エラー表名」および「エラー表の切り捨て」構成パラメータは、行ベース・コードには使用されません。

エラー表の列

データ・オブジェクトのエラー表には、データ・オブジェクトに含まれる列に加えて、表2-3に示す列も含まれます。

表2-3 エラー表の列

列名 説明

ORA_ERR_NUMBER$

Oracle Databaseエラー番号

ORA_ERR_MESG$

Oracle Databaseエラー・メッセージ・テキスト

ORA_ERR_ROWID$

(更新および削除)エラーのある行の行ID

ORA_ERR_OPTYPE$

操作のタイプ: 挿入(I)、更新(U)、削除(D)

ORA_ERR_TAG$

ランタイム監査データの手順または詳細な監査ID。これはランタイム・ビューALL_RT_AUDIT_STEP_RUNSSTEP_ID列です。


スカラー・データ型で、データ・オブジェクトに適用するデータ・ルールがない場合、エラー表の列はデータ型VARCHAR2(4000)です。これにより、ORA-12899などの物理データ・エラー(列に対して値が非常に大きいというエラー)を検出できます。データ・ルールを適用する場合、エラー表の列のデータ型は、データ・オブジェクト内の列と同じデータ型になります。

たとえば、表TESTに、C1(データ型はNUMBER)とC2(データ型はVARCHAR2(10))の2列があるとします。TESTに対して生成されるエラー表には、DMLエラー列のC1およびC2が含まれます。TESTにデータ・ルールが適用されていない場合、C1C2のデータ型は両方ともVARCHAR2(4000)になります。TESTにデータ・ルールが適用されている場合、C1のデータ型はNUMBERC2のデータ型はVARCHAR2(10)になります。

表の定義

表はリレーショナル記憶域オブジェクトのメタデータ表現です。データベース・システム(Oracle Databaseなど)の表である場合も、SAPシステムの表である場合もあります。

次の各項で、表の定義方法について説明します。

表定義の作成

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

前提作業

表を含めるターゲット・スキーマは、「ターゲット・スキーマの設計」の説明に従って作成してください。

Oracleモジュールで表を作成する手順は、次のとおりです。

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

  2. 表を作成するモジュールを展開し、「表」を右クリックして、「新規表」を選択します。

    または

    表を作成するモジュールを右クリックし、「新規」を選択します。「新規ギャラリ」ダイアログ・ボックスが表示されます。「アイテム」セクションから「表」を選択し、「OK」をクリックします。

  3. 「表の作成」ダイアログ・ボックスで、表の名前と説明(オプション)を入力し、「OK」をクリックします。または、自動生成された一意の表名を受け入れて「OK」をクリックすることもできます。

    表エディタが表示されます。次のタブを使用して表を定義します。

    れらのタブを使用して表の定義を終了すると、表定義が作成され、ワークスペースに格納されます。また、新しい表の名前がプロジェクト・ナビゲータに追加されます。この段階では、表のメタデータのみがワークスペース内に作成されます。ターゲット・スキーマ内に表を作成するには、表を配布する必要があります。


    注意:

    グラフィカル・ナビゲータから表を作成することもできます。

「名前」タブ

表の名前と説明を指定するには、「名前」タブを使用します。このタブには次のフィールドがあります。

  • 名前: 表の名前を表します。表が定義されるモジュール全体で一意の名前を付ける必要があります。

  • 説明: 表の説明(オプション)を指定します。

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

「列」タブ

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

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

  • 名前: 列の名前を入力します。列名は表内で一意である必要があります。

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

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

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

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

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

  • 秒精度: TIMESTAMPTIMESTAMP WITH TIME ZONEおよびTIMESTAMP WITH LOCAL TIME ZONEデータ型に対してのみ使用されます。日時フィールドの小数部の桁数を指定します。

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

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

  • 仮想: 列が仮想列であることを示すには、このオプションを選択します。

    仮想列はデータベースには格納されません。仮想列は、「式」フィールドで指定された式を使用して計算されます。仮想列は表内の他の列と同じ方法で参照できますが、仮想列に対して明示的に書き込むことはできません。

  • 式: 仮想列の値の計算に使用される式を指定します。式には、同じ表からの列、制約、SQL関数およびユーザー定義PL/SQL関数を含めることができます。

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

「キー」タブ

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

「索引」タブ

表に対する索引を作成するには、「索引」タブを使用します。索引を使用することにより、データ・ウェアハウスに格納されたデータをより迅速に取得できます。一意、標準、ビットマップ、機能ベース、コンポジットおよび逆タイプの索引を作成できます。これらの索引の作成方法は、「索引の作成」を参照してください。

「パーティション」タブ

表のパーティションを作成するには、「パーティション」タブを使用します。パーティションを使用すると、大きな表を管理しやすくなります。また、問合せとロードのパフォーマンスが向上します。レンジ、ハッシュ、数量別ハッシュ、リスト、レンジ・ハッシュ、数量別レンジ・ハッシュおよびレンジ・リストの各タイプのパーティションを作成できます。パーティションの詳細と各タイプのパーティションの作成方法は、「パーティションの定義」を参照してください。

「属性セット」タブ

表の属性セットを作成するには、「属性セット」タブを使用します。表の属性セットの作成方法は、「属性セットの定義」を参照してください。

「データ・ルール」タブ

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

Oracle Warehouse Builderには事前に定義されたデータ・ルールのセットが用意されており、それらのデータ・ルールはプロジェクト・ナビゲータの「データ・ルール」ノードの下にある「DERIVED_DATA_RULES」ノードにリストされます。「データ・ルール」ノードの下にデータ・ルールを作成することにより、独自のデータ・ルールを定義できます。

データ・ルールを表に適用するには、「ルールの適用」をクリックします。データ・ルールの適用ウィザードが表示されます。このウィザードを使用して、データ・ルールとそのデータ・ルールを適用する列を選択します。

データ・ルールを表に適用すると、そのデータ・ルールが「データ・ルール」タブに表示されます。データ・ルールを表に適用するには、そのデータ・ルール名の左側のチェック・ボックスを選択します。データ・ルールを表に適用しない場合は、このオプションの選択を解除します。

表定義の編集

表定義を編集するには、表エディタを使用します。エディタを開くには、プロジェクト・ナビゲータで表名を右クリックし、開くを選択します。かわりに、プロジェクト・ナビゲータで表名をダブルクリックして開くという方法もあります。この項では、編集できる表定義について説明します。

表の改名

表の名前を変更するには、次のいずれかの方法を使用します。

  • 表エディタの「名前」タブで「名前」フィールドをクリックし、表の新しい名前を入力します。フィールドに格納されている説明を変更することもできます。

    または、プロジェクト・ナビゲータで表を選択し、プロパティ・インスペクタで表のプロパティを表示します。物理名プロパティとプロパティの値を編集します。

  • プロジェクト・ナビゲータで、名前を変更する表を選択して[F2]キーを押します。表名がハイライト表示されます。新しい表名を入力して[Enter]キーを押します。

  • プロジェクト・ナビゲータで表名を右クリックし、改名を選択します。表名がハイライト表示されます。表の新しい名前を入力して[Enter]キーを押します。

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

表の列の追加、変更および削除には、表エディタの「列」タブを使用します。

列の追加 

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

列の変更 

列の定義を変更するには、表エディタの「列」タブを使用します。新しい値を入力するか、リストから新しい値を選択することにより、列定義の任意の属性を変更できます。詳細は、「「列」タブ」を参照してください。

列の削除 

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

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

表エディタの「キー」タブにナビゲートします。

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

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

属性セットの追加、変更および削除

表の属性セットの追加、変更および削除には、表エディタの「属性セット」タブを使用します。

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

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

表内の列の順序変更

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

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

  1. 表に対して表エディタが開いていない場合は、表エディタを開きます。

    それには、プロジェクト・ナビゲータで表の名前をダブルクリックします。または、プロジェクト・ナビゲータで表名を右クリックし、開くを選択します。

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

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

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

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

  4. 表エディタを閉じます。

表内での列の新しい位置をワークスペースに保存するには、変更した表定義を配布する必要があります。

ビューの定義

Oracle Warehouse Builderでは、ビューとマテリアライズド・ビューを定義できます。この項ではビューについて説明します。ビューは、データの表示を単純化したり、データへのアクセスを制限するために使用します。ユーザーが関心を持つデータは、通常は多くの列を含む複数の表にまたがって格納されています。ビューを作成する場合、適切なデータのみまたはユーザーがアクセス権限を持つデータのみを取り出すように、格納される問合せを作成します。


関連項目:

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

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

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

ビュー定義の作成

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

前提作業

ビューを含めるターゲット・スキーマは、「ターゲット・モジュールの作成」の説明に従って作成してください。

ビューを定義する手順は、次のとおりです。

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

  2. ビューを作成するターゲット・モジュールを展開し、「ビュー」を右クリックして、「新規ビュー」を選択します。

    または

    ビューを作成するターゲット・モジュールを右クリックし、「新規」を選択します。新規ギャラリダイアログ・ボックスで、「ビュー」を選択して「OK」をクリックします。

  3. 「ビューの作成」ダイアログ・ボックスで、ビューの名前と説明(オプション)を入力し、「OK」をクリックします。

    ビュー・エディタが表示されます。


    注意:

    名前と説明は、「データ・オブジェクトのネーミング規則」で説明されているネーミング規則に従う必要があります。

  4. ビュー・エディタの次のタブに情報を入力します。

    Oracle Warehouse Builderにより、ビューの定義が作成され、その定義がワークスペースに格納され、そのビュー名がプロジェクト・ナビゲータに追加されます。


注意:

グラフィカル・ナビゲータからビューを定義することもできます。

「名前」タブ

「ビューの作成」ダイアログ・ボックスで指定した名前および説明を変更するには、「名前」タブを使用します。名前と説明は、「データ・オブジェクトのネーミング規則」で説明されている規則に従う必要があります。

「列」タブ

ビューの列を定義するには、「列」タブを使用します。ビューの各列の詳細として、名前、データ型、長さ、精度、スケール、秒精度、NOT NULL、デフォルト値、仮想、式および説明を入力します。それぞれの詳細は、「「列」タブ」を参照してください。

「問合せ」タブ

ビューの作成に使用される問合せを定義するには、「問合せ」タブを使用します。ビューには、ビューが属するモジュールとは別のモジュールに属する表のデータを含めることができます。また、結合を使用して複数の表のデータを結合できます。入力する問合せ文が有効であることを確認してください。Oracle Warehouse Builderでは「問合せ」タブ内のテキストは検証されず、構文が無効である場合でもビューの配布が試行されます。

「キー」タブ

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


注意:

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

「属性セット」タブ

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

「データ・ルール」タブ

ビューに適用されるデータ・ルールを指定するには、「データ・ルール」タブを使用します。データ・ルールを使用し、表内で有効なデータまたは表間の有効な関係を定義することで、データ品質を保証できます。「データ・ルール」タブの詳細は、「「データ・ルール」タブ」を参照してください。

ビュー定義の編集

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

ビューの改名

ビューの名前を変更するには、ビュー・エディタの「名前」タブを使用します。「名前」フィールドをクリックし、ビューの新しい名前を入力します。フィールドに格納されている説明を変更することもできます。ハイライト表示されたオブジェクト名の上から新しい名前を入力します。または、プロジェクト・ナビゲータでビューを選択し、プロパティ・インスペクタでビューのプロパティを表示します。物理名プロパティとプロパティの値を編集します。

ビューの列の追加、変更および削除

ビューの列の追加、変更または削除には、「列」タブを使用します。詳細は、「「列」タブ」を参照してください。

列の追加: 列」タブで、空白行の「名前」フィールドをクリックし、列を定義する詳細を入力します。

列の編集: 列の定義を変更するには、表エディタの「列」タブを使用します。列定義の任意の属性を変更できます。

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

ビュー制約の追加、変更および削除

ビューの制約の追加、変更および削除には、ビュー・エディタの「キー」タブを使用します。制約の追加と編集の詳細は、「制約の作成」および「制約の編集」をそれぞれ参照してください。

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

属性セットの追加、変更および削除

属性セットの追加、変更および削除には、ビュー・エディタの「属性セット」タブを使用します。属性セットの追加の詳細は、「属性セットの作成」を参照してください。属性セットの編集方法は、「属性セットの編集」を参照してください。

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

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

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

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

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

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

前提作業

「ターゲット・モジュールの作成」の説明に従って、マテリアライズド・ビューを含めるターゲット・スキーマを作成します。

マテリアライズド・ビューを定義する手順は、次のとおりです。

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

  2. マテリアライズド・ビューを作成するターゲット・モジュールを展開し、「マテリアライズド・ビュー」を右クリックして、「新規マテリアライズド・ビュー」を選択します。

    または

    ビューを作成するターゲット・モジュールを右クリックし、「新規」を選択します。新規ギャラリダイアログ・ボックスで、「マテリアライズド・ビュー」を選択して「OK」をクリックします。

  3. 「マテリアライズド・ビューの作成」ダイアログ・ボックスで、マテリアライズド・ビューの名前と説明(オプション)を入力し、「OK」をクリックします。

    名前と説明は、「データ・オブジェクトのネーミング規則」で説明されているネーミング規則に従う必要があります。

  4. マテリアライズド・ビュー・エディタの次のタブに情報を入力します。

    Oracle Warehouse Builderにより、マテリアライズド・ビューの定義が作成され、この定義がワークスペースに格納され、さらにプロジェクト・ナビゲータに定義名が挿入されます。


    注意:

    グラフィカル・ナビゲータからマテリアライズド・ビューを定義することもできます。

「列」タブ

マテリアライズド・ビューの列を定義するには、「列」タブを使用します。各列の詳細として、名前、データ型、長さ、精度、スケール、秒精度、NOT NULL、デフォルト値および説明を指定します。マテリアライズド・ビューの各列について指定する情報の詳細は、「「列」タブ」を参照してください。

「問合せ」タブ

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

「キー」タブ

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


注意:

マテリアライズド・ビューに対してはチェック制約は作成できません。

「索引」タブ

マテリアライズド・ビューの索引を定義するには、「索引」タブを使用します。索引を定義するかどうかはオプションです。一意、標準、ビットマップ、機能ベース、コンポジットおよび逆タイプの索引を作成できます。索引の作成方法は、「索引の作成」を参照してください。

「パーティション」タブ

マテリアライズド・ビューのパーティションを定義するには、「パーティション」タブを使用します。マテリアライズド・ビューのパーティション化はオプションです。索引パーティション化レンジ・パーティション化ハッシュ・パーティション化数量別ハッシュ・パーティション化リスト・パーティション化またはコンポジット・パーティション化を実行できます。

「属性セット」タブ

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

「データ・ルール」タブ

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

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

マテリアライズド・ビューの定義を編集するには、マテリアライズド・ビュー・エディタを使用します。マテリアライズド・ビュー・エディタを開くには、マテリアライズド・ビューを右クリックし、開くを選択します。次の各項では、マテリアライズド・ビューに対して実行できる編集操作の種類について説明します。

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

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

または、プロジェクト・ナビゲータでマテリアライズド・ビューを選択し、プロパティ・インスペクタでマテリアライズド・ビューのプロパティを表示します。物理名プロパティとプロパティの値を編集します。

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

マテリアライズド・ビューの列の追加、変更または削除には、「列」タブを使用します。

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

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

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

マテリアライズド・ビューの制約の追加、変更および削除には、マテリアライズド・ビュー・エディタの「キー」タブを使用します。制約の追加と編集の詳細は、「制約の作成」および「制約の編集」をそれぞれ参照してください。

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

属性セットの追加、変更および削除

マテリアライズド・ビューの属性セットの追加、変更および削除には、「属性セット」タブを使用します。属性セットの追加の詳細は、「属性セットの作成」を参照してください。属性セットの編集方法は、「属性セットの編集」を参照してください。

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

制約の定義

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

制約について

制約は、データベース内の情報と関連付けるビジネス・ルールを順守するために使用されます。制約によって、無効なデータが表に挿入されないようにします。ビジネス・ルールでは、必ずTRUEまたはFALSEになる条件と関係が指定されます。

たとえば、「employees」表の「salary」列に、給与<10000という制約を定義した場合、この制約によって、この表のすべての行で、この列には10000を超える数値を格納できない、というルールが順守されます。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. 新しい行の「ローカル列」リストで、主キーを表す列名を選択します。

  6. (オプション)コンポジット主キーを作成するには、主キーを追加する列ごとに手順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. 新しい行の「ローカル列」リストで、一意キーを作成する列の名前を選択します。

  6. (オプション)コンポジット一意キーを作成するには、一意キーを追加する列ごとに手順4および5を繰り返します。

チェック制約の定義

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

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

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

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

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

    制約名は、制約を定義するデータ・オブジェクトを含んでいるモジュール全体で一意である必要があります。

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

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

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

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

制約の編集

オブジェクト・エディタの「キー」タブを使用して、制約を編集できます。次のタスクを実行できます。

  • 制約の改名

  • 制約タイプの変更

  • チェック条件の変更

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

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

制約の定義を編集した後は、変更した制約を含むデータ・オブジェクトを必ず再生成して再配布してください。

索引の定義

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

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


関連項目:

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

索引の作成

索引を作成するには、エディタの「索引」タブを使用します。エディタを起動するには、プロジェクト・ナビゲータで表または他のデータ・オブジェクトに移動し、目的のオブジェクトをダブルクリックするか、右クリックして開くを選択します。索引タイプを選択すると、その索引の定義に使用できる適切なテンプレートが表示されます。索引名は、索引を定義するデータ・オブジェクトを含んでいるモジュール全体で一意である必要があります。

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

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

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

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

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

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

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

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

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

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

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

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

パーティションの定義

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

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

これらのオブジェクトに対するパーティションを定義するには、オブジェクト・エディタの「パーティション」タブを使用します。作成するパーティションのタイプによっては、「構成」タブでパーティションの表領域の構成が必要になります。

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

作成するパーティションのタイプに応じて、「パーティション」タブが動的に変化し、適切な情報のみが表示されます。このタブでは、特定のパーティション・タイプに必要のない列または行は非表示になります。

たとえば、レンジ・パーティションまたはリスト・パーティションを作成する場合は、サブパーティションを作成できないため、サブパーティション・キー行とサブパーティション・テンプレート行は非表示になります。レンジ・ハッシュ・パーティションを作成する場合、サブパーティション・テンプレート行にはハッシュ・サブパーティション数のエントリが条件"="とともに含まれています。

サブパーティションの上限を定義する条件は、使用されるパーティション化メソッドのタイプによって異なります。たとえば、レンジ・リスト・パーティションの場合、パーティションの上限を決定するために使用できる条件は等式に基づいている必要があります。したがって、条件が格納される列(「パーティション」列と「値」列の間にある列)には"="が含まれていて無効になっています。ただし、サブパーティションの上限を決定するための条件は"<"として表示され、このフィールドを編集することはできません。

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

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

レンジ・パーティション化を使用するには、エディタの「パーティション」タブに移動してパーティション・キーを指定し、作成するパーティションごとに名前および値範囲を割り当てます。

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

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

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

  2. パーティション・キーノードの下でパーティション・キーを選択します。

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

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

  3. 「パーティション」ノードの下でパーティションを定義します。

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

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

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

    「値」で、作成した最初の範囲およびすべての追加範囲の最大値を指定します。これらの値は、それを下回ることを示す値です。

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

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

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

図2-1の説明が続きます。
「図2-1 レンジ・パーティション化を含む表の例」の説明

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

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

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

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

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

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

  2. パーティション・キーノードの下にある「キー列」列で、パーティション・キーを選択します。

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

  3. 「パーティション」ノードの下でパーティションを定義します。

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

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

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

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

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

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

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

  2. パーティション・キーノードの下にあるパーティション・キー列で、パーティション・キーを選択します。

  3. 「パーティション」ノードの下で、「値」列にパーティションの数を定義します。デフォルト値は2つのパーティションです。

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

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

    データ・オブジェクトについて「構成」タブを表示するには、そのデータ・オブジェクトを右クリックして「構成」を選択します。

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

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

図2-2は、次の手順に基づいてリスト・パーティションにパーティション化された表の例を示しています。

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

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

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

  2. パーティション・キーノードの下にある「キー列」列を使用して、パーティション・キーを選択します。

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

  3. 「パーティション」ノードの下でパーティションを定義します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    図2-4では、パーティション・キーはSALE_DATEで、それに関連付けられているレンジ・パーティションはQTR_1、QTR_2、QTR_3およびQTR_4です。

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

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

  3. サブパーティション・キーノードの下にある「キー列」リストで、サブパーティション・キーの列を選択します。

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

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

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

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

    データ・オブジェクトについて「構成」タブを表示するには、そのデータ・オブジェクトを右クリックして「構成」を選択します。

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

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

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

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

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

図2-4では、「REGION」キー列に基づいたリスト・サブパーティションと、国のグループに対応する各サブパーティションを示しています。Oracle Warehouse Builderにより、各パーティション(QTR_1、QTR_2など)がサブパーティション(ASIA、WEST_EURなど)に分割されます。

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

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

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

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

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

図2-5は、パーティションQTR_1がUK、EURおよびALL_OTHERSから成るリストにサブパーティション化され、その他の四半期がサブパーティション・テンプレートに従ってパーティション化されている状態を示しています。

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

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

索引パーティション化

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

ローカル索引

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

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

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

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

グローバル索引

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

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

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

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

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

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

  1. 一意のローカル索引

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

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

パーティションの構成

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

パーティションのパラメータには、プロジェクト・ナビゲータからアクセスできます。表を右クリックして「構成」を選択すると、その表の「構成」タブが表示されます。下へスクロールしていくと、「パーティション・パラメータ」ノードが表示されます。

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

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

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

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

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

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

属性セットの定義

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

属性セットの作成

属性セットを作成するには、オブジェクト・エディタの「属性セット」タブを使用します。属性セットは、表、ビューおよびマテリアライズド・ビューに対して定義できます。

属性セットを定義する手順は、次のとおりです。

  1. プロジェクト・ナビゲータから、属性セットを定義するオブジェクトの名前を右クリックし、開くを選択します。

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

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

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

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

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

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

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

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

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

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

属性セットの編集

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

属性セットを編集する際には、次のアクションを実行できます。

  • 属性セットの改名

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

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

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

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

  • 属性セットの削除

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

順序の定義

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

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

順序について

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

「メタデータのインポート」を使用して既存のソース・システムから順序定義をインポートすることもできます。

順序定義の作成

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

  1. プロジェクト・ナビゲータで、「データベース」ノードを開き、続いてターゲット・モジュールのノードを開きます。

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

    「順序の作成」ダイアログ・ボックスが表示されます。

  3. 「名前」フィールドを使用して名前を指定し、フィールドを使用して順序の説明(オプション)を指定します。

    名前は、「データ・オブジェクトのネーミング規則」に記載されている規則に従い、さらにモジュール全体で一意である必要があります。

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

    Oracle Warehouse Builderにより順序の定義が格納され、プロジェクト・ナビゲータに順序名が挿入されます。

順序定義の編集

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

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

「名前」タブ

順序の名前を変更するには、「名前」フィールドに新しい名前を入力します。また、プロジェクト・ナビゲータで順序名を右クリックして「名前の変更」を選択し、順序名を変更することもできます。

「データ・オブジェクトのネーミング規則」で説明されている規則に従って、名前と説明を指定します。

順序の説明を変更するには、フィールドに新しい説明を入力します。

「列」タブ

「列」タブには、順序列「CURRVAL」および「NEXTVAL」が表示されます。

ユーザー定義型の定義

ユーザー定義データ型では、Oracle組込みデータ型や他のユーザー定義データ型が、アプリケーションでのデータの構造および動作をモデル化するオブジェクト・タイプの構築ブロックとして使用されます。組込みデータ型は、ほとんどの場合スカラー型であり、アプリケーション固有のデータ構造によるモデル化ほどは柔軟性がありません。

ユーザー定義データ型は、基礎となる持続データ(属性)および関連動作(メソッド)の両方を指定することにより、システム固有のデータ型のモデル化機能を拡張します。ユーザー定義型では、データ属性をセマンティック動作にバインドすることで、現実における複雑なエンティティのより適切なモデルを作成できます。

単純な顧客表Customersの例を考えてみましょう。顧客の住所情報は通常4つまたは5つの独立したフィールドとしてモデル化され、それぞれに適切なスカラー型が指定されます。ユーザー定義型では、住所をコンポジット型として定義し、その型に対して検証を定義できます。

Oracle Warehouse Builderでは、次のユーザー定義データ型を定義できます。

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

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

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

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

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

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


    注意:

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

たとえば、ADDRESSタイプの定義は次のように定義できます。

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つとしてタイプ定義「ADDRESS」を必要とする表のスキーマ全体で使用できます。

オブジェクト・タイプの定義

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

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

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

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

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

    「オブジェクト・タイプの作成」ダイアログ・ボックスが表示されます。

  5. オブジェクト・タイプの名前と説明(オプション)を入力し、「OK」をクリックします。

    オブジェクト・タイプ・エディタが表示されます。エディタで次の各タブを使用して、オブジェクト・タイプを定義します。

「名前」タブ

「名前」フィールドを使用して、オブジェクト・タイプの名前を入力します。フィールドを使用して、オブジェクト・タイプの説明(オプション)を入力します。オブジェクト・タイプの名前を変更するには、名前を選択して新しい名前を入力します。

「データ・オブジェクトのネーミング規則」で説明されている規則に従って、名前と説明を指定します。

「列」タブ

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

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

  • 名前: 属性の名前を入力します。属性名はオブジェクト・タイプ内で一意である必要があります。

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


    関連項目:

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

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

  • 精度: 属性に使用できる合計桁数を指定します。精度は数値データ型にのみ適用可能です。

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

  • 秒精度: 日時フィールドの小数部の桁数を指定します。秒精度は、TIMESTAMPTIMESTAMP WITH TIME ZONEおよびTIMESTAMP WITH LOCAL TIME ZONEデータ型に対してのみ使用されます。

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

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

  • 仮想: 属性が仮想列のように動作することを示すには、このオプションを選択します。

    仮想列はデータベースには格納されません。仮想列は、「式」フィールドで指定された式を使用して計算されます。仮想列は表内の他の列と同じ方法で参照できますが、仮想列に対して明示的に書き込むことはできません。

  • 式: 仮想属性の値の計算に使用される式を指定します。式には、同じ表からの列、制約、SQL関数およびユーザー定義PL/SQL関数を含めることができます。

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

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

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

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

  2. 目的のオブジェクト・タイプが含まれているモジュールを開きます。

  3. 「ユーザー定義タイプ」ノードを開き、続いて「オブジェクト・タイプ」ノードを開きます。

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

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

可変長配列について

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

顧客が複数の住所(たとえば3つ)を持っている場合、もう1つのタイプとして3つの住所を保持する表タイプを作成できます。次の例では、ADDRESSタイプの表が作成されます。

TYPE address_store is VARRAY(3) of address;

リスト内の最初の住所が主な住所とみなされ、残りの住所は二次的な住所とみなされます。

可変長配列の定義

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

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

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

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

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

    「可変長配列の作成」ダイアログ・ボックスが表示されます。

  5. 可変長配列の名前と説明(オプション)を入力し、「OK」をクリックします。

    可変長配列エディタが表示されます。エディタで次の各タブを使用して、オブジェクト・タイプを定義します。

「名前」タブ

「名前」フィールドを使用して、可変長配列の名前を入力します。フィールドを使用して、可変長配列の説明(オプション)を入力します。可変長配列の名前を変更するには、名前を選択して新しい名前を入力します。

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

「詳細」タブ

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

  • データ型: 「データ型」リストから属性のデータ型を選択します。


    関連項目:

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

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

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

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

  • 秒精度: 日時フィールドの小数部の桁数を指定します。秒精度は、TIMESTAMPTIMESTAMP WITH TIME ZONEおよびTIMESTAMP WITH LOCAL TIME ZONEデータ型に対してのみ使用されます。

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

可変長配列の編集

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

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

  2. 目的の可変長配列タイプが含まれているモジュールを開きます。

  3. 「ユーザー定義タイプ」ノードを開き、続いて「可変長配列」ノードを開きます。

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

可変長配列エディタが表示されます。「可変長配列の定義」で説明されているように、「名前」タブと「詳細」タブを使用して、可変長配列の定義を編集します。

ネストした表について

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

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

ネストした表の定義

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

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

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

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

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

    「ネストした表の作成」ダイアログ・ボックスが表示されます。

  5. ネストした表の名前と説明(オプション)を入力し、「OK」をクリックします。

    ネストした表エディタが表示されます。エディタで次の各タブを使用して、ネストした表を定義します。

「名前」タブ

「名前」フィールドを使用して、ネストした表の名前を入力します。フィールドを使用して、ネストした表の説明(オプション)を入力します。ネストした表の名前を変更するには、名前を選択して新しい名前を入力します。

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

「詳細」タブ

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

  • データ型: 「データ型」リストから属性のデータ型を選択します。


    関連項目:

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

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

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

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

  • 秒精度: 日時フィールドの小数部の桁数を指定します。秒精度は、TIMESTAMP、TIMESTAMP WITH TIME ZONEおよびTIMESTAMP WITH LOCAL TIME ZONEデータ型に対してのみ使用されます。

ネストした表の編集

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

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

  2. 目的のネストした表が含まれているモジュールを開きます。

  3. 「ユーザー定義タイプ」ノードを開き、続いて「ネストした表」ノードを開きます。

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

ネストした表エディタが表示されます。「ネストした表の定義」で説明されているように、「名前」タブと「詳細」タブを使用して、ネストした表の定義を編集します。

キューの定義

キューを使用すると、メッセージを使用した情報の非同期共有が可能になります。データベース内またはデータベース間で、増分データ・ウェアハウスまたはレプリケーション・ソリューションを実装するには、キューを使用します。

メッセージの形でデータを共有するためには、複数のメッセージを格納および管理するデータ・オブジェクトを作成する必要があります。このオブジェクトはアドバンスト・キュー(AQ)です。キューの伝播を定義することにより、異なるキュー間でメッセージを伝播できます。次の各項では、キューの定義方法と使用方法を説明します。

キューには次の利点があります。

キュー表の定義の作成

キューはキュー表に格納されます。各キュー表はデータベース表であり、1つ以上のキューが格納されます。キュー表を作成すると、約25個の列で構成されるデータベース表が作成されます。これらの列には、Oracle AQメタデータとユーザー定義ペイロードが格納されます。

SYS.ANYDATAデータ型を使用してキュー表に格納されるデータの型を定義することにより、あらゆるタイプのメッセージを格納するキュー表を作成できます。

キュー表を作成する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、「データベース」ノードを開いて「Oracle」ノードを開いた後、その下にキュー表を定義するモジュール・ノードを開きます。

  2. キューノードを開き、「キュー表」を右クリックして、「新規キュー表」を選択します。

    「キュー表の作成」ダイアログ・ボックスが表示されます。

  3. キュー表の定義に必要な詳細を指定し、「OK」をクリックします。

    詳細は、「キュー表のペイロード・タイプの定義」を参照してください。

キュー表のメタデータがワークスペース内に作成され、そのキュー表がプロジェクト・ナビゲータのキューノードの下に追加されます。

キュー表のペイロード・タイプの定義

ペイロード・タイプやキュー内でのメッセージのソート順など、キュー表に関する追加の詳細を指定するには、「キュー表の作成」ダイアログ・ボックスまたは「キュー表の編集」ダイアログ・ボックスを使用します。次の項では、キュー表について指定する詳細について説明します。

名前

「名前」フィールドは、キュー表の名前を表します。名前は、このキュー表を含むOracleモジュール内で一意である必要があります。詳細は、「データ・オブジェクトのネーミング規則」を参照してください。

説明

フィールドには、キュー表の説明(オプション)を入力します。

ペイロード・タイプ

各キューには、転送される実際のデータを格納するペイロードが含まれています。ペイロード・タイプは、キュー表に格納できるデータのタイプを表します。

ペイロード・タイプとして、次のオプションのいずれかを選択できます。「オブジェクト・タイプ」、SYS.ANYDATARAWSYS.AQ$_JMS_BYTES_MESSAGESYS.AQ$_JMS_MAP_MESSAGESYS.AQ$_JMS_MESSAGESYS.AQ$_JMS_STREAM_MESSAGESYS.AQ$_JMS_TEXT_MESSAGEおよびXMLTYPE

検索

オブジェクトを検索するには、「検索」フィールドを使用します。このフィールドは、「ペイロード・タイプ」として「オブジェクト・タイプ」を選択した場合にのみ有効になります。

「検索」フィールドの下の領域には、ワークスペース内のオブジェクト・タイプが表示されます。オブジェクト・タイプは、それが属しているモジュールの下にリストされます。特定の名前のオブジェクトを検索するには、そのオブジェクトの名前を「検索」フィールドに入力し、「実行」をクリックします。

メッセージのトランザクション・プロパティを有効にする

メッセージのグループ化を有効にするには、メッセージのトランザクション・プロパティを有効にするを選択します。このオプションは、SYS.ANYDATAキューを除くすべてのオブジェクト・タイプのキューに対して有効になります。

メッセージのグループ化では、1つのキューに属するメッセージをグループ化して、一度に1人のユーザーによってのみ消費できるメッセージのセットにすることができます。同じグループに属するメッセージはすべて同じトランザクション内に作成する必要があり、同じトランザクション内に作成されたメッセージはすべて同じグループに属します。

この機能によって、複雑なメッセージを、複数の単純なメッセージにセグメント化できます。また、イメージやビデオなど、より小さなオブジェクトにセグメント化可能な複雑で大きなオブジェクトがメッセージ・ペイロードに含まれる場合にも、この機能が便利です。

保護キュー表

保護キューを作成するには、保護キュー表を選択します。このオプションは、SYS.ANYDATAキューを除くすべてのオブジェクト・タイプのキューに対して有効になります。

保護キューは、Oracle Streamsアドバンスト・キューイング(AQ)エージェントを、エンキューおよびデキューなどのキュー操作を実行できる1人以上のデータベース・ユーザーと明示的に関連付ける必要があるキューです。保護キューの所有者は、そのキューに対してすべてのキュー操作を実行できますが、他のユーザーは、保護キュー・ユーザーとして構成されていないかぎり、保護キューに対してキュー操作を実行することはできません。

メッセージのソート順

ペイロードに含まれるメッセージがソートされる順序を指定するには、メッセージのソート順リストを使用します。メッセージのソートに使用できるオプションは、次のとおりです。

  • Enqueue_time: メッセージの到着時刻の順にソートします。

  • Priority: メッセージの優先度の順にソートします。

  • Enqueue_time, priority: メッセージの到着時刻の順にソートし、到着時刻が同じメッセージはメッセージの優先度の順にソートします。

  • Priority, enqueue_time: メッセージの優先度の順にソートし、優先度が同じメッセージはメッセージの到着時刻の順にソートします。

キュー表の編集

キュー表を編集するには、キュー表を右クリックして開くを選択します。「キュー表の編集」ダイアログ・ボックスが表示されます。これを使用して、キュー表の定義を変更します。

キュー表を編集し、名前、説明またはペイロード・タイプを変更できます。ただし、キュー表のペイロード・タイプを変更した場合は、キュー表とそのキュー表に基づいたキューが削除されて再作成されます。そのため、キュー内のすべての既存データは失われます。配布後はペイロード・タイプを変更しないようお薦めします。

アドバンスト・キューの定義の作成

アドバンスト・キュー(AQ)は、データベースに統合されたメッセージ・キュー機能を提供します。メッセージを永続的に格納し、異なるコンピュータおよびデータベースにあるキュー間でメッセージを伝播し、Oracle Net Services、HTTPおよびHTTPSを使用してメッセージを送信できるように、Oracle Databaseの機能がアドバンスト・キューによって最適化されます。

アドバンスト・キューを使用して、同じOracleデータベース内で、または異なるデータベース間で、データの伝播と管理を行います。各アドバンスト・キューは、実際のキュー・データを格納するキュー表に基づいています。


関連項目:

アドバンスト・キューの詳細は、Oracle Streams概要および管理を参照してください。

アドバンスト・キューの定義を作成する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、「データベース」ノードを開いて「Oracle」ノードを開いた後、その下にアドバンスト・キューを定義するOracleモジュール・ノードを開きます。

  2. キューノードを右クリックし、新規アドバンスト・キューを選択します。

    アドバンスト・キューの作成ダイアログ・ボックスが表示されます。

  3. アドバンスト・キュー名やアドバンスト・キューの基礎となるキュー表など、詳細を指定します。「OK」をクリックします。

    詳細は、「AQの基礎となるキュー表の指定」を参照してください。

AQの基礎となるキュー表の指定

アドバンスト・キュー名やアドバンスト・キューの基礎となるキュー表などの詳細を指定するには、アドバンスト・キューの作成ダイアログ・ボックスを使用します。既存のキュー表を選択することも、新規のキュー表を作成することもできます。名前、説明またはアドバンスト・キューの基礎となるキュー表を変更するには、アドバンスト・キューの編集ダイアログ・ボックスを使用します。

名前

「名前」フィールドは、アドバンスト・キューの名前を表します。名前は、このアドバンスト・キューを含むOracleモジュール内で一意である必要があります。詳細は、「データ・オブジェクトのネーミング規則」を参照してください。

説明

フィールドには、アドバンスト・キューの説明(オプション)を入力します。

キュー表を選択

アドバンスト・キュー内のメッセージを格納するキュー表を選択するには、キュー表を選択リストを使用します。

新規キュー表を作成

アドバンスト・キューのデータを格納するキュー表を作成するには、「新規キュー表を作成」を選択します。ガイドに従ってキュー表を定義できる「キュー表の作成」ダイアログ・ボックスが表示されます。キュー表の定義方法の詳細は、「キュー表の定義の作成」を参照してください。

アドバンスト・キューの定義の編集

アドバンスト・キューを編集して、アドバンスト・キューの作成時に指定されたプロパティを変更できます。変更できるものには、名前、説明、キューのデータを格納するキュー表が含まれます。

アドバンスト・キューを編集するには、プロジェクト・ナビゲータでアドバンスト・キューを右クリックし、開くを選択します。アドバンスト・キューの編集ダイアログ・ボックスが表示されます。これを使用して、アドバンスト・キューを編集します。

このダイアログ・ボックスに含まれるオプションの詳細は、「アドバンスト・キューの定義の作成」を参照してください。

アドバンスト・キューの定義を編集した後は、そのアドバンスト・キューを使用するマッピングを同期化してください。

キューの伝播の作成

キューの伝播により、異なるキュー間でのメッセージの伝播が可能になります。たとえば、SRC_QUEおよびTGT_QUEという2つのキューがあるとします。SRC_QUEからTGT_QUEへメッセージを伝播するには、SRC_QUEで、ターゲット・キューをTGT_QUEとするキューの伝播を定義します。

通常、キューの伝播は、2つのデータベースが別々のロケーションにあって、ソース・データベースをターゲット・ロケーションにレプリケートする必要がある場合に、レプリケーションで使用されます。

キューの伝播を作成する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、「データベース」ノードを開いて「Oracle」ノードを開いた後、その下にキューの伝播を定義するOracleモジュール・ノードを開きます。

  2. キューノードを開き、その下に伝播を作成するアドバンスト・キューを右クリックして、「新規」を選択します。

    「新規ギャラリ」ダイアログ・ボックスが表示されます。

  3. 新規ギャラリダイアログ・ボックスで、キューの伝播を選択して「OK」をクリックします。

    キューの伝播の作成ダイアログ・ボックスが表示されます。

  4. キューの伝播の作成ダイアログ・ボックスを使用してターゲット・キューを定義し、「OK」をクリックします。

キューの伝播のメタデータがワークスペース内に作成され、そのキューの伝播がプロジェクト・ナビゲータのアドバンスト・キューの下に追加されます。

伝播のターゲット・キューの選択

伝播のターゲット・キューを指定するには、キューの伝播の作成ダイアログ・ボックスまたはキューの伝播の編集ダイアログ・ボックスを使用します。次の各項では、このページに含まれる各フィールドについて説明します。

名前

「名前」フィールドは、キューの伝播の名前を表します。名前は、その下にキューの伝播が定義されるアドバンスト・キュー全体で一意である必要があります。

キューの伝播の名前を変更するには、名前を選択して新しい名前を入力します。

説明

フィールドは、キューの伝播の説明を表します。説明の入力はオプションです。

伝播のターゲット・キューの選択

ターゲット・キューを定義するには、伝播のターゲット・キューの選択セクションを使用します。このセクションの下の領域には、現在のプロジェクトで定義されたアドバンスト・キューを含むノード・ツリーが表示されます。ターゲットとして使用するアドバンスト・キューを選択します。キューの伝播を定義したアドバンスト・キューからのメッセージを、ターゲット・キューとして定義したアドバンスト・キューへ伝播できます。

オブジェクト名を使用して特定のオブジェクトを検索するには、「検索」フィールドを使用します。このフィールドにオブジェクト名を入力し、「実行」をクリックします。

キューの伝播の編集

キューの伝播を編集し、キューの伝播を定義するために行った選択を変更できます。変更できるオプションには、名前、説明およびターゲット・キューが含まれます。

キューの伝播を編集するには、プロジェクト・ナビゲータでキューの伝播を右クリックし、開くを選択します。キューの伝播の編集ダイアログ・ボックスが表示されます。このダイアログ・ボックスに含まれるオプションの詳細は、「キューの伝播の作成」を参照してください。

リレーショナル・データ・オブジェクトの構成

設計フェーズの前半では、Oracle Warehouse Builderの設計オブジェクトを使用してターゲット・システムの論理モデルを定義しました。構成フェーズでは、表領域、パーティションおよびその他の識別パラメータなどのパラメータを構成し、オブジェクト定義に物理配布プロパティを割り当てます。ジョブ名、ランタイム・ディレクトリなどのランタイム・パラメータも構成します。

データ・オブジェクトの「「構成」タブを使用して、これらの物理プロパティを設定します。以降の各項で、物理プロパティを論理設計モデルに割り当てる方法を示します。

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

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

Oracleモジュールを構成する手順は、次のとおりです。

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

    「構成」タブが表示されます。

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

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

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

配布システム・タイプ

PL/SQL生成モード: ターゲット・データベースのタイプを定義します。選択できるオプションは、「デフォルト」、「Oracle10g」、Oracle 11g、「Oracle8i」および「Oracle9i」です。コードの生成はこのフィールドでの選択内容に基づいて行われます。たとえば、Oracle9iコード構成を必ず使用するには「Oracle9i」を選択します。「Oracle8i」を選択した場合は、行ベース・コードが生成されます。

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

生成プリファレンス

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ステージング・ファイル・ディレクトリ: SAP表に関連するすべてのABAP構成のためのディレクトリです。デフォルトはabap\です。

Tclディレクトリ: tclスクリプトのロケーションを入力します。デフォルトはtcl\です。


関連項目:

SAP表の使用方法の詳細は、『Oracle Warehouse Builderソースおよびターゲット・ガイド』を参照してください。

識別

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

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

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

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

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

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

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

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

無効ディレクトリ: SQL*Loaderエラーおよび拒否されたレコードのディレクトリです。デフォルトはinvalid\です。

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

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

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

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

表領域のデフォルト

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

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

表の構成

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

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

  1. プロジェクト・ナビゲータで表の名前を右クリックし、「構成」を選択します。

    その表の「構成」タブが表示されます。

  2. 次の各ノードの下にリストされる構成パラメータを設定します。「エラー表」「外部キー」「識別」「パラレル」「パフォーマンス・パラメータ」「パーティション・パラメータ」「記憶領域」および「チェンジ・データ・キャプチャ」

エラー表

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

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

外部キー

「外部キー」ノードは、表に外部キー定義が含まれている場合に表示されます。「外部キー」ノードの下には、表内の各外部キーに対応する個別のノードが表示されます。このノードの下に、作成方法カテゴリと「識別」カテゴリがあり、それぞれの下にパラメータがリストされます。

作成方法カテゴリには、次のパラメータが含まれています。

  • 制約チェック: こトランザクションのコミット後までこの制約のチェックを延期できるかどうかを示します。この制約のチェックをトランザクションのコミット後まで延期するために後続のトランザクションでSET CONSTRAINTS節を設定できることを示すには、このパラメータをDEFERABLEに設定します。この制約のチェックをトランザクションのコミット後まで延期するためにSET CONSTRAINTS節を使用できないことを示すには、このパラメータをNOT DEFERABLEに設定します。デフォルトはNOT DEFERABLEです。

  • 制約の状態: 制約を有効にするべきかどうかを示します。制約を表データに適用する場合はENABLEを選択します。整合性制約を無効にするには、DISABLEを選択します。デフォルトはENABLEです。

  • 制約の検証: 設定できるオプションはNOVALIDATEまたはVALIDATEです。このパラメータの設定による効果は、その制約が有効か無効かによって異なります。

  • 例外表: 例外表の名前を示します。制約の検証としてNOVALIDATEを設定した場合、このパラメータは使用できません。

  • 初期設定: このパラメータに設定できるオプションは、IMMEDIATEまたはDEFERREDです。デフォルト設定はIMMEDIATEです。IMMEDIATEは、延期可能な制約を各SQL文の後にチェックする必要があることを示します。DEFERREDは、延期可能な制約を後続のトランザクションの後にチェックする必要があることを示します。

  • NOVALIDATEモード: このパラメータに設定できるオプションは、NORELYおよびRELYであり、NORELYがデフォルト設定です。このパラメータをRELYに設定すると、クエリー・リライトでNOVALIDATEモードの制約がアクティブ化されます。

  • 削除時: 削除操作の際に、このパラメータは削除されるレコードに依存する外部キーをどのように処理するかを示します。このパラメータに設定できるオプションは、CASCADEまたはSET NULLです。CASCADEに設定すると、依存外部キー値が削除されます。SET NULLに設定すると、依存外部キー値がNULLに設定されます。

識別

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

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

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

パラレル

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

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

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

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

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

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

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

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

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

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

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

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

記憶域

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

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

変更データの取得

有効化: この表に対して変更データの取得を有効にするかどうかを示します。この表に対して変更データの取得を有効にする場合は、このパラメータでTrueを選択します。

表の位置: 変更データの取得における表の位置を示します。

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

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

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

    そのマテリアライズド・ビューの「構成」タブが表示されます。

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

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

  4. 「マテリアライズド・ビュー・ログ・パラメータ」の説明に従って、マテリアライズド・ビュー・ログ・パラメータを構成します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

バッファ・キャッシュ: この表のために取得したブロックをバッファ・キャッシュに格納する方法を指定します。選択できるオプションはCACHEまたはNOCACHEです。CACHEを選択した場合は、全表スキャンが実行されたときに、バッファ・キャッシュ内で最も長い間使用されていない(LRU)リストの最後に使用された終端にブロックが格納されます。小規模な参照表のように頻繁にアクセスされる表の場合は、「バッファ・キャッシュ」パラメータをCACHEに設定すると有用です。NOCACHEを選択した場合は、全表スキャンが実行されたときに、バッファ・キャッシュ内で最も長い間使用されていない(LRU)リストのLRU終端にブロックが格納されます。

データ・セグメント圧縮: ディスク上で使用領域を削減するためにデータ・セグメントを圧縮するかどうかを指定します。このパラメータに設定できるオプションは、COMPRESS、COMPRESS ALLまたはNOCOMPRESSです。デフォルトはNOCOMPRESSです。ダイレクト・パスINSERTの際に、データを圧縮することで生産性が向上する場合にのみ、このパラメータをCOMPRESSに設定します。このパラメータをCOMPRESS ALLに設定すると、表に対するすべてのDML操作でデータが圧縮されます。

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

エラー表

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

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

パラレル

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

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

識別

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

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

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

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

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

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

次のマテリアライズド・ビュー・ログ・パラメータを構成できます。

主キーを記録: 変更されたすべての行の主キーをマテリアライズド・ビュー・ログに記録する場合は、PRIMARY KEYを選択します。

ROWIDを記録: 変更されたすべての行の行IDをマテリアライズド・ビュー・ログに記録する場合は、ROWIDを選択します。

順序を記録: 追加の順序情報を提供する順序値をマテリアライズド・ビュー・ログに記録する場合は、SEQUENCEを選択します。

順序番号は、一部の更新シナリオの後の高速リフレッシュをサポートするために必要です。

: 変更されたすべての行についてマテリアライズド・ビュー・ログに値を記録する列を指定します。通常、これらの列はフィルタ列および結合列です。

マテリアライズド・ビュー・ログの生成: マテリアライズド・ビュー・ログ用のDDLを生成するには、「はい」を選択します。デフォルトは「はい」です。

新しい値: 新しい値と古い値の両方をログに保存するには、INCLUDINGを指定します。新しい値がログに保存されないようにするには、EXCLUDINGを指定します。デフォルトはEXCLUDINGです。

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

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

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

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

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

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

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

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

ビューの構成

Oracle Warehouse Builderでは、ターゲット・モジュールで定義されているビューごとにスクリプトが生成されます。次の各カテゴリにリストされているパラメータを構成できます。

識別

配布可能: このビューを配布するには、TRUEを設定します。

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

エラー表

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

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

順序の構成

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

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

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

    その順序の「構成」タブが表示されます。

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

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

    開始: 順序の開始番号。

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

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

アドバンスト・キューの構成

アドバンスト・キューを構成する手順は、次のとおりです。

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

  2. アドバンスト・キューが含まれているOracleモジュールを開き、キューノードを開いて、アドバンスト・キュー名を右クリックして「構成」を選択します。

    アドバンスト・キューの構成パラメータを含む「構成」タブが表示されます。

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

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

構成できるパラメータは次のとおりです。

デキューの有効化 アドバンスト・キューに対してデキューを有効にするには、このパラメータをtrueに設定します。

エンキューの有効化 アドバンスト・キューに対してエンキューを有効にするには、このパラメータをtrueに設定します。

最大再試行数 メッセージに対してデキューを試行できる回数を表します。max_retriesの最大値は2**31 -1です。

保持時間 メッセージがキューからデキューされた後でキュー表内に保持される秒数を表します。

再試行遅延時間 アプリケーションのロールバック後に、このメッセージの処理が再びスケジュールされるまでの遅延時間(秒数)を表します。このパラメータのデフォルト値は0で、可能になり次第メッセージを再試行できることを意味します。最大再試行数パラメータが0に設定されている場合、このパラメータには何の効果もありません。

キュー表の構成

キュー表を構成する手順は、次のとおりです。

  1. プロジェクト・ナビゲータで、「データベース」ノードを開き、キュー表を含むOracleノードを開きます。

  2. キューノードを開き、「キュー表」ノードを開きます。

  3. 構成するキュー表の名前を右クリックして「構成」を選択します。

    キュー表の構成パラメータを含む「構成」タブが表示されます。

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

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

生成オプションノードには、キュー表の生成パラメータが含まれています。このアドバンスト・キューのメッセージを保持するキュー表を作成するコードを生成するには、このパラメータをTrueに設定します。データベース内にキュー表が存在する場合はキュー表を作成する必要はないため、「キュー表の生成」パラメータをFalseに設定できます。

キューの伝播の構成

キューの伝播を構成するには、次の手順に従います。

  1. プロジェクト・ナビゲータで、「データベース」ノードを開き、キュー表を含むOracleノードを開きます。

  2. キューノードを開き、キューの伝播が含まれているアドバンスト・キューを開きます。

  3. 構成するキューの伝播の名前を右クリックして「構成」を選択します。

    キューの伝播の構成パラメータを含む「構成」タブが表示されます。

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

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

各構成パラメータについて、次の各項で説明します。

ルール条件: メッセージをサブスクライバに伝播できるかどうかをチェックするためのルール条件を表します。このパラメータは、非ストリーム・キューにのみ適用されます。

変換: ターゲット・キューへの伝播の前に適用される変換を表します。このパラメータは、非ストリーム・キューにのみ適用されます。

生成オプション 

  • データベース・リンクの生成: 伝播に使用されるデータベース・リンクを作成するスクリプトを生成するには、このパラメータをTrueに設定します。

  • キューの伝播の生成: キューの伝播を作成するコードを生成するには、このパラメータをTrueに設定します。

  • レプリケーション用のルールセットおよびルールの生成: レプリケーションを目的とするルールおよびルールセットのコードを生成するには、このパラメータをTrueに設定します。このパラメータは、ストリーム・キューにのみ適用されます。

  • 伝播のスケジュールの生成: キューの伝播をスケジュールするコードを生成するには、このパラメータをTrueに設定します。このパラメータは、非ストリーム・キューにのみ適用されます。

レプリケーション・オプション(ストリーム・キュー専用) 

  • 許可されないタグ値: カンマで区切られた、伝播を許可されていないタグ値(16進数)のリストです。

  • 許可されたタグ値: カンマで区切られた、伝播を許可されたタグ値(16進数)のリストです。

スケジュール・オプション 

  • 期間: 実行される伝播の期間を表します。デフォルト値はNULLです。このパラメータは、非ストリーム・キューにのみ適用されます。

  • 待ち時間: キューの伝播の待ち時間を表します。デフォルトの値は60です。このパラメータは、非ストリーム・キューにのみ適用されます。

  • 次回: 次にいつ伝播が実行されるかを表します。デフォルト値はNULLです。このパラメータは、非ストリーム・キューにのみ適用されます。

  • 開始時間: 伝播の開始時間を表します。デフォルト値はSYSDATEです。このパラメータは、非ストリーム・キューにのみ適用されます。

Microsoft SQL ServerおよびIBM DB2 UDBでのリレーショナル・データ・オブジェクトの作成

Microsoft SQL ServeモジュールまたはIBM DB2モジュールを作成するときに、表、ビュー、順序などのデータ・オブジェクトをそのモジュール内に定義できます。表およびビューの定義には、エディタを使用します。

Microsoft SQL ServerモジュールまたはIBM DB2 UDBモジュール内に、表、ビューまたは順序を定義する手順は、次のとおりです。

  1. データ・オブジェクトを作成するプロジェクト・ノードを開き、「データベース」ノードを開きます。

  2. SQL Serverの場合は、SQL Serverモジュールのノードを開き、データ・オブジェクトを作成するモジュールを開きます。

    IBM DB2 UDBの場合は、DB2モジュールのノードを開き、データ・オブジェクトを作成するモジュールを開きます。

  3. 作成するオブジェクトのタイプを表しているノードを右クリックし、「新規<オブジェクトのタイプ>」を選択します。そのオブジェクトのエディタが表示されます。

    たとえば、表を作成する場合は、「表」ノードを右クリックして、「新規表」を選択します。

  4. 作成するオブジェクトのタイプに応じて、次のいずれかの項に記載されている手順に従ってください。

異種データベース用のオブジェクト・エディタの相違点

表、ビューおよび順序をSQL ServerモジュールまたはDB2モジュールに定義する場合には、次のような違いがあります。

IBM DB2 UDBでのオブジェクトのネーミング規則

DB2からデータ・オブジェクトをインポートする場合、オブジェクト名の大文字と小文字の区別はそのまま保持されます。ただし、Oracle Warehouse Builderを使用して作成したオブジェクトはすべて、名前が自動的に大文字に変換されます。

DB2モジュールでは、オブジェクトのネーミングについて次の規則があります。

  • オブジェクト名と列名は一意である必要があります。

  • オブジェクト名の最大長は128文字です。

  • 各列名の最大長は30文字です。

  • 名前では、次の文字は不正です。`、*、+、|、[、]、:、;、"、'、&、<、>、?、/および空白。

  • 名前を空白、数字または次のいずれかの文字で始めることはできません。_、`、&、*、+、|、[、]、:、;、"、'、<、>、?および/。


注意:

名前の中の引用符で囲んだ不正な文字は、オブジェクトをインポートする場合にのみ使用できます。不正な文字をOracle Warehouse Builderで使用することはできません。

Microsoft SQL Serverでのオブジェクトのネーミング規則

SQL Serverからデータ・オブジェクトをインポートする場合、オブジェクト名の大文字と小文字の区別はそのまま保持されます。ただし、Oracle Warehouse Builderを使用して作成したオブジェクトはすべて、名前が自動的に大文字に変換されます。

Microsoft SQL Serverでは、オブジェクトのネーミングについて次の規則があります。

  • オブジェクト名と列名は一意である必要があります。

  • オブジェクト名の最大長は128文字です。

  • 名前では、次の文字は不正です。~、`、!、%、^、&、;、*、(、)、{、}、[、]、|、\、:、"、/、?、>および<。

  • 空白、ピリオドまたは数学記号を名前に含めることはできません。

  • 名前を空白または次のいずれかの文字で始めることはできません。~、`、!、%、^、&、*、(、)、{、}、[、]、|、\、:、;、"、'、/、?、<、>および$。

  • 列名を数学記号またはピリオドで始めることはできません。


注意:

名前の中の引用符で囲んだ不正な文字は、オブジェクトをインポートする場合にのみ使用できます。不正な文字をOracle Warehouse Builderで使用することはできません。