3.4 データベース・オブジェクトの作成および編集
「SQL」ページおよび「Data Modeler」ページの「ナビゲータ」タブから使用可能な「オブジェクトの作成」ウィザードおよび「オブジェクトの編集」ウィザードを使用して、オブジェクトを作成および編集できます。
次の各項では、様々なオブジェクト・タイプを作成および編集するためのウィザードについて説明します。
3.4.1 「表のプロパティ」ダイアログ
「表のプロパティ」ダイアログは、表を作成したり、既存の表を編集したり、既存の表をテンプレートとして使用して表を作成する際に表示されます。
「表のプロパティ」ダイアログは、「SQL」または「Data Modeler」の「ナビゲータ」タブから開くことができます。
特定のスキーマの表を作成するには、「ナビゲータ」タブで、オブジェクト・タイプ・ドロップダウン・リストから「表」を選択し、「オブジェクト・サブメニュー」をクリックして、「オブジェクトの作成」を選択します。
特定のスキーマの既存の表から表を作成するには、図3-15に示すように、「ナビゲータ」タブで表オブジェクトを右クリックし、「テンプレートとして使用」を選択します。
特定のスキーマの表を編集するには、「ナビゲータ」タブで表オブジェクトを右クリックし、「編集」を選択します。
表のプロパティはいくつかのペインにグループ分けされています。
既存の表の編集では、任意の順序でペインにアクセスできます。表の作成を終了する前に「作成」をクリックした場合、表名を右クリックして「編集」を選択し、表の作成を続行します。
ノート:
パーティション表の編集はお薦めしません。表がパーティション化されているかどうかを識別するには、表名を右クリックして「編集」を選択します。表がパーティション化されている場合は、警告メッセージが表示されます。スキーマ: 表を作成するデータベース・スキーマ。デフォルトでは、既存のスキーマまたはログインしているスキーマに新しい表が作成されます。
名前: 表の名前。
ダイアログ内の各ペインについては、次の各項で説明します。
関連トピック
3.4.1.1 「列」ペイン
表の各列のプロパティを指定します。
「一般」タブ
表で使用可能な列をリストします。
列を追加するには、「列の追加」(+)をクリックします。下の表に新しい行が追加されます。行を選択し、列の詳細を入力します。
列を削除するには、行を選択して「列の削除」(-)をクリックします。表内で列を上下に移動するには、その列を選択して、上下の矢印アイコンを使用します。
-
名前: 列の名前。
-
データ型: 列のデータ型。
-
デフォルト: 値が指定されていない場合、行の挿入時に列に挿入されるデフォルト値。
-
NULLのデフォルト: Oracle Database 12c以降のリリースに適用できます。このオプションを選択すると、表に行が挿入されてその列に指定した値がNULLの場合、デフォルト値が列に挿入されます。
-
式: 列の値を計算する式。
-
コメント: 列についての説明コメント(オプション)。このフィールドを使用して、属性の説明を指定します。
この表の各項目は、次のとおりです。
-
PK: このオプションを選択すると、列が主キーになります。
-
ID列: このオプションを選択すると、列がID列になります。これは、Oracle Database 12c以降のリリースにのみ適用できます。詳細は、「「ID列」タブ」を参照してください。
「制約」タブ
列の「NOT NULL」および「CHECK制約」を表示します。チェック制約は、列の値が、指定された条件を満たすことを必要とします。
-
NOT NULL制約: 名前: NOT NULL制約の名前。
-
NOT NULL制約: NOT NULL: このオプションを選択すると、列にはデータが含まれている必要があります。行を挿入するときに、この列に値を指定することも、明示的なNULL値を指定することもできません。このオプションを選択しない場合、列にデータを含めることも含めないことも可能です。主キー列にNULLは指定できません。
-
CHECK制約: 名前: チェック制約定義の名前。
-
CHECK制約: 制約: チェック制約を満たす列に対して満たす必要がある条件。有効なCHECK句を使用できます(CHECKキーワードは不要)。たとえば、RATINGという数値列の値が1から10の範囲内でなければならないことを示すには、rating >=1 and rating <= 10と指定します。
-
有効: このオプションを選択すると、列にデータを入力または更新するときに制約がチェックされます。
-
遅延可能: このオプションを選択すると、トランザクションの終了まで制約の妥当性チェックを遅らせることができます。
-
初期即時: このオプションを選択すると、列に対してデータを追加、更新または削除するたびに制約がチェックされます。
-
検証: このオプションを選択すると、既存のデータが制約に適合するかどうかがチェックされます。
「ID列」タブ
Oracle Database 12c以降のリリースに適用できます。「ID列」タブには、ID列のプロパティがリストされます。このタブは、「一般」タブの列に対して「ID列」チェック・ボックスが選択された後に初めて使用可能になります。ID列は、表の行を識別するために使用できる自動増分列です。1つの表に指定できるのは1つのID列のみです。
-
生成: 「常時」は、INSERTまたはUPDATE文のID列に値を明示的に含めることができないことを意味します。「デフォルト」の場合、デフォルトでは、値が明示的に指定されていない場合はID列の値が自動的に生成され、「NULLのデフォルト」はNULL値が指定されている場合にのみ列の値が生成されることを意味します。
-
開始: 順序の開始値。
-
増分: 順序内の連続する番号間の間隔。
-
最小値: 順序の下限値。デフォルトは、昇順では1、降順では-(10^26)です。
-
最大値: 順序の上限値。デフォルトは、昇順では10^27、降順では-1です。
-
「キャッシュ」および「キャッシュ・サイズ」: 「キャッシュ」を選択すると、順序値がキャッシュに事前に割り当てられ、アプリケーションのパフォーマンスが向上します。「キャッシュ・サイズ」には、キャッシュに事前割当てする順序値の数を指定します。「キャッシュなし」では、順序値がキャッシュに事前割当てされません。
-
サイクル: 順序が昇順では最大値、降順では最小値に達した時点で最初に戻り、番号が再利用されるようにするかどうかを指定します。値の循環を有効にしない場合、順序が最大値または最小値に達した時点で、それ以上の値は生成できません。
-
順序: 要求された順序で順序番号を生成するかどうかを指定します。順序なしを指定する場合、順序番号が要求順になるかどうかは保証されません。
3.4.1.2 「主キー」ペイン
表の主キーを指定します。
主キーは、表の各行を一意に識別する列または列セットです。「一般」タブの列に対して「主キー」チェック・ボックスが選択されている場合、対応するフィールドが「主キー」ペインに自動的に移入されます。必要に応じてプロパティを変更できます。
主キーには索引が自動的に作成されます。
-
名前: 主キー定義に関連付ける制約の名前。
-
有効: このオプションを選択すると、主キー制約が適用されます。主キー列(または列セット)にはNULLではない一意のデータが必要です。
-
索引: 主キーが参照する索引の名前。
-
表領域: 索引に関連付けられた表領域の名前。
-
使用可能な列: 主キー定義に追加できる列のリスト。必要に応じて、主キーに複数の属性を選択できます。
-
選択済の列: 主キー定義に含まれている列のリスト。
主キー定義に列を追加するには、「使用可能な列」で列を選択して「追加」(>)アイコンをクリックします。主キー定義から列を削除するには、「選択した列」で列を選択して「削除」(<)アイコンをクリックします。使用可能リストと選択済リストの間ですべての列を移動するには、「すべて追加」(>>)アイコンまたは「すべて削除」(<<)アイコンを使用します。主キー定義内で列を上下に移動するには、「選択済の列」でその列を選択して矢印ボタンを使用します。
3.4.1.3 「一意キー」ペイン
表に1つ以上の一意制約を指定します。
一意制約では、一意のデータ値が必要な列または列セットを指定します。各データ値はNULLではなく、列の他の値とは異なっている必要があります。
一意制約を追加するには、「追加」ボタンをクリックします。削除するには、その一意制約を選択して「削除」ボタンをクリックします。
-
名前: 一意制約の名前。
-
有効: このオプションを選択すると、一意制約が適用されます。
-
依存: このオプションを選択すると、NOVALIDATEモードの制約が問合せリライト時に考慮されます。
-
遅延可能: このオプションを選択すると、後続のトランザクションでSET CONSTRAINT(S)文を使用してトランザクションの終了まで制約チェックを遅延できます。
-
初期即時: このオプションを選択すると、後続の各SQL文の終了時に制約がチェックされます。
-
検証: このオプションを選択すると、既存のデータが制約に適合するかどうかがチェックされます。
-
索引: 一意キーが参照する索引の名前。
-
表領域: 索引に関連付けられた表領域の名前。
-
使用可能な列: 一意制約定義に追加できる列のリスト。
-
選択済の列: 一意制約定義に含まれている列のリスト。
一意制約定義に列を追加するには、「使用可能な列」で列を選択して「追加」(>)アイコンをクリックします。一意制約定義から列を削除するには、「選択した列」で列を選択して「削除」(<)アイコンをクリックします。使用可能リストと選択済リストの間ですべての列を移動するには、「すべて追加」(>>)アイコンまたは「すべて削除」(<<)アイコンを使用します。一意制約定義内で列を上下に移動するには、「選択済の列」でその列を選択して矢印ボタンを使用します。
3.4.1.4 「索引」ペイン
表に対して定義されている索引がリストされます。
索引を追加するには、「索引の追加」(+)をクリックします。削除するには、その索引を選択して「索引の削除」(-)をクリックします。
-
名前: 索引の名前。
-
タイプ:: Oracle索引のタイプ。
「一意でない」
は、索引に同一の値を複数含められることを意味します。「一意」
は、重複する値が許可されないことを意味します。「ビットマップ」
では、キー値に関連付けられたROWIDがビットマップとして格納されます。 -
表領域: 索引の表領域の名前。
-
式: 列の式とは、列、定数、SQLファンクションおよびユーザー定義ファンクションから構築した式です。列の式を指定すると、ファンクションベースの索引を作成できます。
-
使用可能な列および選択した列: 索引に対して選択した列。列を選択するには、「使用可能な列」ボックスの列をクリックしてから選択した列の追加アイコンをクリックして、「選択した列」ボックスに移動します。
3.4.1.5 「外部キー」ペイン
表に1つ以上の外部キーを指定します。
外部キーは列(ローカル列)を指定し、その列のデータ値は、別の表の主キーまたは一意制約の値と一致します。
-
名前: 外部キー定義の名前。
-
有効: このオプションを選択すると、外部キーが適用されます。
-
依存、遅延可能、初期即時、検証: 「一意キー」ペインのこれらのフィールドの説明を参照してください。
-
参照先の制約: スキーマ: この外部キーで参照する主キーまたは一意制約を持つ表が含まれているスキーマの名前。
-
参照先の制約: 表: この外部キーで参照する主キーまたは一意制約を持つ表の名前。
-
参照先の制約: 制約: この外部キーで参照する主キーまたは一意制約の名前。
-
参照先の制約: 削除時: 参照先の表の行が削除され、その値を含む行がこの外部キーを含む表内に存在する場合に自動的に行われるアクション。
「アクションなし」
(ダイアグラムでは斜め線で表示)はこれらの行に対してアクションを実行しません。「カスケード」
(「X」で表示)はこれらの行を削除します。「NULLを設定」
(小さな円で表示)は、NULL値が設定可能な行のすべての列にNULLを設定します。 -
アソシエーション: ローカル列: 外部キー定義に含まれている、現在選択している(ローカル)表の列のリスト。外部キー定義の各参照先の列に、編集済の表の列の名前を選択します。
-
アソシエーション: 参照先の列: ローカル列ごとに、その値と一致する値が必要な他の(外部の)表の列が示されます。
3.4.1.6 「表制約」ペイン
表に1つ以上のチェック制約を指定します。
チェック制約では、表への行の挿入時、または既存の行の変更時に満たす必要がある条件を指定します。
-
名前: チェック制約定義の名前。
-
チェック条件: 行がチェック制約を満たすために行に対して満たす必要がある条件。有効なCHECK句を使用できます(CHECKキーワードは不要)。たとえば、RATINGという数値列の値が1から10の範囲内でなければならないことを示すには、rating >=1 and rating <= 10と指定します。
-
有効: このオプションを選択すると、チェック制約が適用されます。
3.4.1.8 「記憶域」ペイン
表の記憶域オプションを指定できます。
表または索引を作成/編集すると、デフォルトの記憶域オプションをオーバーライドできます。
-
組織: 表の格納および編成が、(索引)付きで行われるのか、索引なし(ヒープ)で行われるのか、外部表(外部)として行われるのかを指定します。
-
表領域: 表または索引の表領域の名前。
-
ロギング: ONは、表の作成および表に対する後続のINSERT操作がREDOログ・ファイルに記録されることを意味します。「オフ」の場合、これらの操作はREDOログ・ファイルに記録されません。
-
行のアーカイブ: 「はい」を指定すると、データベース内のアーカイブが有効になり、表内の行を不可視としてマークすることでアーカイブできます。
3.4.1.9 「外部表プロパティ」ペイン
外部表のオプションを指定します。
外部表は読取り専用の表であり、これらのメタデータはデータベースに格納されますが、データはデータベースの外部に格納されます。
外部表
-
アクセス・ドライバ・タイプ: 外部表の型を指定します。
-
ORACLE_LOADER: テキスト・データ・ファイルからデータを抽出します。これは、外部表から内部表にデータをロードするデフォルトのアクセス・ドライバです。
-
ORACLE_DATAPUMP: バイナリ・ダンプ・ファイルからデータを抽出します。このアクセス・ドライバは、ロードとアンロードの両方を実行できます。
-
ORACLE_BIGDATA: Oracle Big Data Applianceからデータを抽出します。
-
ORACLE_HDFS: Hadoop分散ファイル・システム(HDFS)に格納されたデータを抽出します。
-
ORACLE_HIVE: Apache HIVEに格納されたデータを抽出します。
-
-
デフォルト・ディレクトリ: 明示的にディレクトリ・オブジェクトに名前を付けないすべての入出力ファイルに対して、使用するデフォルトのディレクトリを指定します。位置はディレクトリ・パスではなく、ディレクトリ・オブジェクトで指定されます。
-
アクセス・パラメータ: 外部表で使用する特定のアクセス・ドライバのパラメータに値を割り当てます。アクセス・パラメータはオプションです。
-
OPAQUE_FORMAT_SPEC: opaque_format_specは、ORACLE_LOADER、ORACLE_DATAPUMP、ORACLE_HDFSおよびORACLE_HIVEアクセス・ドライバのすべてのアクセス・パラメータを指定します。アクセス・パラメータの詳細は、『Oracle Databaseユーティリティ』を参照してください。opaque_format_specで指定するフィールド名は、表定義の列と一致している必要があります。それ以外の場合は、無視されます。
-
USING CLOB: 副問合せを介してパラメータおよびその値を導出できます。副問合せには、集合演算子またはORDER BY句を含めません。CLOBデータ型の1つの項目を含む単一行を戻します。
-
-
制限の拒否: 外部データの問合せ中、Oracle Databaseエラーが戻され問合せが中断されるまでに許可する変換エラーの数。
-
プロジェクト列: アクセス・ドライバが、後続の問合せで外部表の行を検証する方法を指定します。
-
ALL: 選択した列に関係なくすべての列値が処理され、完全に有効な列エントリを持つ行のみが検証されます。データ型の変換エラーなど、列値でエラーが発生した場合は、その列が問合せの選択リストで参照されていなくても、行は拒否されます。
-
REFERENCED: 問合せの選択リストの列のみが処理されます。
「ALL」設定では一貫性のある結果セットが得られます。「REFERENCED」設定では、後続の問合せで参照される列に応じて、戻される行の数が異なる場合がありますが、「ALL」設定より高速です。後続の問合せで外部表のすべての列が選択されている場合、2つの設定の動作は同じになります。
-
-
場所: 外部表のデータ・ファイルを指定します。「追加」(+)アイコンを使用して、各場所の仕様を追加します。
-
ORACLE_LOADERおよびORACLE_DATAPUMPの場合、ファイルの名前は
directory:file
という形式になります。directoryの部分はオプションです。この部分を指定しないと、デフォルトのディレクトリがファイルのディレクトリとして使用されます。ORACLE_LOADERアクセス・ドライバを使用している場合は、ファイル名にワイルドカードを使用できます。アスタリスク(*)は複数文字を表し、疑問符(?)は1文字を表します。 -
ORACLE_HDFSの場合、LOCATION句は、ディレクトリまたはファイルのUniform Resource Identifier (URI)のリストです。URIに関連付けられたディレクトリ・オブジェクトはありません。
-
ORACLE_HIVEの場合、LOCATIONは使用されません。かわりに、Hadoop HCatalog表を読み取ってデータ・ソースの場所(ファイルや別のデータベース)に関する情報を取得します。
-
不透明なフォーマット仕様
ORACLE_LOADER、ORACLE_DATAPUMP、ORACLE_HDFSおよびORACLE_HIVEアクセス・ドライバのすべてのアクセス・パラメータを指定します。
たとえば:
RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
TERRITORY AMERICA
BADFILE log_file_dir:'ext_1v3.bad'
LOGFILE log_file_dir:'ext_1v3.log'
FIELDS TERMINATED BY "|" OPTIONALLY ENCLOSED BY '^' LDRTRIM
( PROD_ID,
CUST_ID ,
TIME_ID DATE(10) "YYYY-MM-DD",
CHANNEL_ID ,
PROMO_ID ,
QUANTITY_SOLD ,
AMOUNT_SOLD ,
UNIT_COST ,
UNIT_PRICE
)
完全な文は次のとおりです。
CREATE TABLE SH.SALES_TRANSACTIONS_EXT
(
PROD_ID NUMBER ,
CUST_ID NUMBER ,
TIME_ID DATE ,
CHANNEL_ID NUMBER ,
PROMO_ID NUMBER ,
QUANTITY_SOLD NUMBER ,
AMOUNT_SOLD NUMBER (10,2) ,
UNIT_COST NUMBER (10,2) ,
UNIT_PRICE NUMBER (10,2)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY DATA_FILE_DIR
ACCESS PARAMETERS
(
RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
TERRITORY AMERICA
BADFILE log_file_dir:'ext_1v3.bad'
LOGFILE log_file_dir:'ext_1v3.log'
FIELDS TERMINATED BY "|" OPTIONALLY ENCLOSED BY '^' LDRTRIM
( PROD_ID ,
CUST_ID ,
TIME_ID DATE(10) "YYYY-MM-DD",
CHANNEL_ID ,
PROMO_ID ,
QUANTITY_SOLD ,
AMOUNT_SOLD ,
UNIT_COST ,
UNIT_PRICE
)
)
LOCATION ( "DATA_FILE_DIR":'sale1v3.dat')
)
REJECT LIMIT 100
;
CLOB副問合せ
問合せを入力するか、コピーして貼り付けます。
ノート:
外部表フィールドの詳細は、Oracle DatabaseユーティリティおよびOracle Database SQL言語リファレンスを参照してください
3.4.1.10 「マテリアライズド・ビュー」ペイン
マテリアライズド・ビューのオプションを指定します。
問合せ: ビュー定義の問合せ部分のSQLコードが含まれます。問合せを入力するか、コピーして貼り付けます。
一般
-
事前作成表: 「はい」の場合、既存の表が事前に初期化されたマテリアライズド・ビューとして登録されます。このオプションは、データ・ウェアハウス環境での大規模なマテリアライズド・ビューの登録に特に役立ちます。表は、作成されるマテリアライズド・ビューと同じ名前を持ち、同じスキーマ内に存在する必要があります。また、副問合せのマテリアライズ化を反映している必要があります。
-
精度の低下: 「はい」を指定すると、表またはマテリアライズド・ビューの列の精度が副問合せで戻される精度と正確に一致しない場合に精度の低下が許可されます。「いいえ」の場合、表またはマテリアライズド・ビューの列の精度は、副問合せによって戻される精度と正確に一致する必要があります。そうしないと、作成操作が失敗します。
-
更新対象: 副問合せ、主キー、オブジェクトまたはROWIDマテリアライズド・ビューを更新できるようにするには、「はい」を選択します。アドバンスト・レプリケーションと組み合せて使用した場合、更新はマスターにも影響します。
-
リアルタイムMV: 「はい」を選択すると、リアルタイムのマテリアライズド・ビューまたは通常のビューが作成されます。リアルタイムのマテリアライズド・ビューでは、データ変更によりマテリアライズド・ビューがその実表と同期していない場合も、ユーザーの問合せに対して最新のデータを提供します。マテリアライズド・ビューを変更するかわりに、オプティマイザはマテリアライズド・ビューの既存の行とログ・ファイル(マテリアライズド・ビュー・ログまたはダイレクト・ローダー・ログ)に記録された変更を結合する問合せを記述します。これは、問合せ時計算と呼ばれます。
-
問合せリライト:: 「有効化」を選択した場合、マテリアライズド・ビューを問合せリライトに使用できます。クエリー・リライトは、マスター表に関して記述されたユーザー要求を、1つ以上のマテリアライズド・ビューを含む意味的に同等の要求に変換します。
-
ビルド: マテリアライズド・ビューへの移入のタイミングを指定します。「即時」を選択すると、すぐにマテリアライズド・ビューに移入されます。「遅延」を選択すると、次回のリフレッシュ操作でマテリアライズド・ビューに移入されます。「遅延」を指定した場合、最初の(遅延)リフレッシュは常に完全リフレッシュである必要があります。リフレッシュが行われるまで、マテリアライズド・ビューの値は古く使用不可の状態であるため、クエリー・リライトには使用できません。
-
索引の使用: 「はい」の場合、デフォルト索引が作成されて使用され、マテリアライズド・ビューの増分(高速)リフレッシュの速度が向上します。いいえの場合、このデフォルト索引は作成されません。(たとえば、今は索引を作成せず、後でこのような索引を明示的に作成することもできます。)
-
索引表領域: マテリアライズド・ビューを作成する表領域を指定します。表領域を選択しない場合、マテリアライズド・ビューは、そのビューが含まれているスキーマのデフォルトの表領域に作成されます。
-
キャッシュ: 「はい」の場合、全表スキャンの実行時、この表に取得されたブロックは、バッファ・キャッシュで最低使用頻度(LRU)リストの最高使用頻度側に配置されます。この設定は小さい参照表に役立ちます。「いいえ」の場合、ブロックは、LRUリストの最低使用頻度側に配置されます。
リフレッシュ句
-
リフレッシュ: リフレッシュ操作を有効にするには、「はい」を選択します。
-
リフレッシュ・タイプ: 実行するリフレッシュ操作の方法。次のいずれかになります。
-
完全リフレッシュ: 高速リフレッシュが可能な場合でも、マテリアライズド・ビューの定義問合せを実行します。
-
高速リフレッシュ: マスター表に対して行われた変更に応じてリフレッシュを実行する、増分リフレッシュ方法を使用します。従来型DML変更の場合、変更は、マスター表に関連付けられたマテリアライズド・ビュー・ログに格納されます。ダイレクト・パス・インサート操作の変更は、ダイレクト・ローダー・ログに格納されます。
-
強制リフレッシュ: 可能な場合は高速リフレッシュを実行し、そうでない場合は完全リフレッシュを実行します。
-
-
アクション: 実行するリフレッシュ操作のタイプ。次のいずれかになります。
-
要求時: いずれかのDBMS_MVIEWリフレッシュ・プロシージャのコール時にリフレッシュを実行します。
-
コミット時: マテリアライズド・ビューのマスター表で行われたトランザクションがデータベースでコミットされるたびに、高速リフレッシュを実行します。データベースはコミット・プロセスの一部としてリフレッシュ操作を実行するため、コミットの完了にかかる時間が長くなる可能性があります。
-
指定: 「開始」および「次」フィールドに指定した内容に従って、リフレッシュ操作を実行します。
-
-
開始日: 最初の自動リフレッシュ操作の開始日時。将来の日時である必要があります。
-
次回日付: 次回の自動リフレッシュ操作の時間。「開始」および「次」に指定した時間の間隔が、それ以降の自動リフレッシュ操作の間隔になります。値を指定しない場合、リフレッシュ操作は「開始」に指定した時間に1回のみ行われます。
-
次で: マテリアライズド・ビューのタイプを決定するリフレッシュ・タイプ。次のいずれかになります。
-
主キー: 主キー・マテリアライズド・ビューを作成します。この場合、マテリアライズド・ビューでの高速リフレッシュの実行性に影響することなく、マテリアライズド・ビューのマスター表を再編成できます。
-
行ID: ROWIDマテリアライズド・ビューを作成します。このタイプのビューは、マスター表のすべての主キー列がマテリアライズド・ビューに含まれていない場合に役立ちます。
-
-
デフォルトの記憶域: 「はい」の場合、DEFAULTでは使用するロールバック・セグメントがOracle Databaseで自動的に選択されることを指定します。DEFAULTを指定する場合、rollback_segmentは指定できません。DEFAULTは、マテリアライズド・ビューを(作成ではなく)変更する場合に有効です。
-
記憶域のタイプ: MASTERを使用すると、個々のマテリアライズド・ビュー用のリモート・マスター・サイトで使用されるリモート・ロールバック・セグメントを指定します。LOCALを使用すると、マテリアライズド・ビューが含まれているローカル・リフレッシュ・グループで使用されるリモート・ロールバック・セグメントを指定できます。これはデフォルトです。
-
ロールバック・セグメント: ロールバック・セグメントの名前を入力します。
-
制約の使用: このオプションを選択すると、リフレッシュ操作中により多くのリライト・オプションを使用できるため、リフレッシュをより効率的に実行できるようになります。このオプションの動作は、「強制」と「信頼」のどちらを選択するかによって異なります。
-
強制: リフレッシュ操作中、必須の制約のみを使用します。
-
信頼: データベース管理者は信頼できると宣言しているが、データベースでは検証されていないディメンションおよび制約の情報を使用できるようになります。ディメンションおよび制約の情報が有効であると、パフォーマンスが向上する場合があります。ただし、この情報が無効であると、正常な状態が戻されても、リフレッシュ・プロシージャによってマテリアライズド・ビューが破損する場合があります。
-
3.4.2 「索引プロパティ」ダイアログ
索引を作成または編集する場合、「索引のプロパティ」ダイアログ・ボックスを表示します。
選択したスキーマの索引を作成するには、「SQL」の「ナビゲータ」タブで、オブジェクト・タイプ・ドロップダウン・リストから「索引」を選択し、「オブジェクト・サブメニュー」をクリックして、「オブジェクトの作成」を選択します。
選択したスキーマの索引を編集するには、「ナビゲータ」タブで表オブジェクトを右クリックして、「編集」を選択します。
「定義」ペイン
-
スキーマ: 索引に関連付けられた表を所有するデータベース・スキーマ。
-
表: 索引に関連付けられた表の名前。
-
スキーマ: 索引を作成するデータベース。
-
表領域: 索引の表領域。
-
名前: 索引の名前。
-
タイプ:: Oracle索引のタイプ。
-
「一意でない」は、索引に複数の同一値を含めることができることを意味します。
-
「一意」は、重複値が許可されないことを意味します。
-
「ビットマップ」は、キー値に関連付けられているROWIDをビットマップとして格納します。
-
-
式: 列の名前または列の式。列の式とは、列、定数、SQLファンクションおよびユーザー定義ファンクションから構築した式です。列の式を指定すると、ファンクションベースの索引を作成できます。
-
使用可能な列: 表で使用可能な列。
-
選択した列: 索引に選択された列。「選択した列の追加」をクリックして、列を「使用可能な列」リストから移動します。
-
順序: 「ASC」では昇順索引(索引値を昇順でソート)、「DESC」では降順索引(索引値を降順でソート)になります。
「DDL」ペイン
索引の作成または編集時に生成されるSQL文を確認および保存できます。変更が必要な場合は「定義」ペインに戻って変更します。
-
新しい索引の場合、「CREATE」をクリックして生成されたDDL文を表示します。
-
索引のプロパティを編集する場合、「UPDATE」をクリックして、生成されたALTER文を表示します。新しい索引の場合、「UPDATE」タブは使用できません。
終了したら、「適用」をクリックします。
「出力」ペイン
DDLコマンドの結果を表示します。エラーがある場合は、「定義」ペインに移動してエラーを修正し、コマンドを再度実行してください。テキスト・ファイルに保存したり、出力をクリアできます。
3.4.3 「順序のプロパティ」ダイアログ
順序を作成または編集する際に、「順序のプロパティ」ダイアログが表示されます。
選択したスキーマの順序を作成するには、「SQL」の「ナビゲータ」タブで、オブジェクト・タイプ・ドロップダウン・リストから「順序」を選択し、「オブジェクト・サブメニュー」をクリックして、「オブジェクトの作成」を選択します。
選択したスキーマの順序を編集するには、「ナビゲータ」タブで順序オブジェクトを右クリックして、「編集」を選択します。
順序とは、複数のユーザーが一意の整数を生成できるオブジェクトです。順序を使用すると、主キー値を自動的に生成できます。
「プロパティ」ペイン
-
スキーマ: 順序を作成するデータベース・スキーマ。
-
名前: 順序の名前。
-
開始: 順序の開始値。
-
増分: 順序内の連続する番号間の間隔。
-
最小値: 順序の下限値。デフォルトは、昇順では1、降順では-(10^26)です。
-
最大値: 順序の上限値。デフォルトは、昇順では10^27、降順では-1です。
-
「キャッシュ」および「キャッシュ・サイズ」:
「キャッシュ」
を選択すると、順序値がキャッシュに事前に割り当てられ、アプリケーションのパフォーマンスが向上します。「キャッシュ・サイズ」には、キャッシュに事前割当てする順序値の数を指定します。「キャッシュなし」
では、順序値がキャッシュに事前割当てされません。 -
サイクル: 順序が昇順では最大値、降順では最小値に達した時点で最初に戻り、番号が再利用されるようにするかどうかを指定します。値の循環を有効にしない場合、順序が最大値または最小値に達した時点で、それ以上の値は生成できません。
-
順序: 要求された順序で順序番号を生成するかどうかを指定します。順序なしを指定する場合、順序番号が要求順になるかどうかは保証されません。
「DDL」ペイン
順序の作成または編集時に生成されるSQL文を確認および保存できます。変更が必要な場合は「プロパティ」ペインに戻って変更します。
-
新しい順序の場合、「CREATE」をクリックして生成されたDDL文を表示します。
-
順序を編集する場合、「UPDATE」をクリックして、生成されたALTER文を表示します。新しい順序の場合、「UPDATE」タブは使用できません。
終了したら、「適用」をクリックします。
「出力」ペイン
DDLコマンドの結果を表示します。エラーがある場合は、「プロパティ」ペインに移動してエラーを修正し、コマンドを再度実行してください。テキスト・ファイルに保存するか、出力をクリアします。
3.4.4 「ビューのプロパティ」ダイアログ
ビューを作成または編集する場合、「ビューのプロパティ」ダイアログ・ボックスを表示します。
「ビューのプロパティ」ダイアログは、「SQL」または「Data Modeler」の「ナビゲータ」タブから開くことができます。
選択したスキーマのビューを作成するには、「SQL」の「ナビゲータ」タブで、オブジェクト・タイプ・ドロップダウン・リストから「ビュー」を選択し、「オブジェクト・サブメニュー」をクリックして、「オブジェクトの作成」を選択します。
選択したスキーマの既存のテンプレートからビューを作成するには、「ナビゲータ」タブで、作成元のビューを選択し、右クリックして「テンプレートとして使用」を選択します。
選択したスキーマのビューを編集するには、「ナビゲータ」ペインでビュー・オブジェクトを右クリックして、「編集」を選択します。
スキーマ: ビューを作成するデータベース・スキーマ。
名前: ビューの名前。
ダイアログ内の各ペインについては、次の各項で説明します。
「SQL問合せ」ペイン
必要な情報の取得に必要な構文とともにSELECTおよびFROMキーワードを使用し、ビューのSQL問合せを入力またはコピーして貼り付けます。問合せの後にセミコロンは必要ありません。
「列」ペイン
このペインの列に自動的に移入するには、「列のリフレッシュ」をクリックします。必要な行を選択し、「ヘッダー別名」および「コメント」フィールドで変更を加えることで、列を編集できます。
「記憶域」ペイン
-
強制的に作成: 「はい」を選択すると、ビューの実表または参照するオブジェクト型が存在しているか、またはそのビューを含むスキーマの所有者が、それらの表やオブジェクト型に対する権限を持っているかにかかわらず、ビューを作成できます。SELECT、INSERT、UPDATEまたはDELETE文をビューに対して発行する場合、これらの条件を満たしている必要があります。ビュー定義が制約を含む場合、実表または参照するオブジェクト型が存在しないと、CREATE VIEW ... FORCEは正常に実行されません。また、ビュー定義で存在しない制約が指定される場合も、CREATE VIEW ... FORCEは正常に実行されません。
-
問合せ制限: 「読取り専用」では、ビューで基礎となる表のデータの追加、削除または変更を行うことはできません。「チェック・オプション」では、このビューに含まれていない行を生成する基礎となる表への変更を禁止します。
必要に応じて、「主キー」、「一意キー」、「外部キー」および「コメント」ペインを使用して、プロパティを追加または編集します。
「DDL」ペイン
指定した入力に基づいて、DDL文が生成されます。SQL文を確認して保存できます。変更が必要な場合は該当するペインに戻って変更します。
-
新しいビューの場合、「CREATE」をクリックして生成されたDDL文を表示します。
-
ビューを編集する場合、「UPDATE」をクリックして、生成されたALTER文を表示します。新しいビューの場合、「UPDATE」タブは使用できません。
終了したら、「適用」をクリックします。
「出力」ペイン
DDLコマンドの結果を表示します。エラーがある場合は、それぞれのペインに移動してエラーを修正し、コマンドを再度実行してください。テキスト・ファイルに保存したり、出力をクリアできます。
3.4.5 「シノニムのプロパティ」ダイアログ
「シノニムのプロパティ」ダイアログは、シノニムを作成するときに表示します。
選択したスキーマのシノニムを作成するには、次の2つの方法があります。
-
「SQL」の「ナビゲータ」タブで、シノニムを作成するオブジェクトを右クリックし、「シノニムの追加」を選択します。この場合、「プロパティ」ペインで編集できるフィールドは、「パブリック」と「シノニム名」のみです。残りのフィールドの値は、選択したオブジェクトによって事前に決定されます。
-
「SQL」の「ナビゲータ」タブで、ドロップダウン・リストからオブジェクト・タイプに「シノニム」または「パブリック・シノニム」を選択します。オブジェクト・サブメニュー
をクリックし、「オブジェクトの作成」を選択します。「プロパティ」ダイアログのすべてのフィールドは編集可能です。
ダイアログ内の各ペインについては、次の各項で説明します。
「プロパティ」ペイン
-
パブリック: このオプションを選択すると、すべてのユーザーがシノニムを使用できます。ただし、シノニムを使用するには、基礎となるオブジェクトに対する適切な権限が必要です。このオプションを選択しない場合、シノニムはプライベート・シノニムになり、そのスキーマ内でのみ使用できます。
-
シノニム・スキーマ: シノニムを作成するデータベース・スキーマ。
-
シノニム名: シノニムの名前。プライベート・シノニムはそのスキーマ内で一意である必要があります。パブリック・シノニムは、データベース内で一意である必要があります。
-
オブジェクト型: このシノニムで参照するオブジェクトのタイプを指定します。
-
オブジェクト・スキーマ: このシノニムで参照するオブジェクトまたは名前が含まれているスキーマ。
-
DBフィルタ: 「オブジェクト型」およびオブジェクト・スキーマの選択後、選択したタイプのオブジェクトのリストが非常に長いことがあります。オブジェクト名をフィルタするには、検索エントリを入力して「リフレッシュ」
をクリックします。「オブジェクト名」フィールドには、ドロップダウン・リストの適切なオブジェクト名が自動入力されます。
-
オブジェクト名: このシノニムで参照するオブジェクトの名前を選択します。
-
データベース・リンク: データベース・リンクを完全に入力するか、データベース・リンクの一部を入力すると、スキーマ・オブジェクトが格納されているリモート・データベース上のオブジェクトのシノニムを作成できます。「データベース・リンク」を指定してスキーマを省略すると、シノニムはデータベース・リンクで指定されたスキーマのオブジェクトを参照します。リモート・データベースのオブジェクトが含まれているスキーマを指定することをお薦めします。「データベース・リンク」を省略した場合、オブジェクトがローカル・データベース上にあるものとみなされます。
「DDL」ペイン
指定した入力に基づいて、DDL文が生成されます。SQL文を確認して保存できます。変更が必要な場合は該当するペインに戻って変更します。
-
新しいビューの場合、「CREATE」をクリックして生成されたDDL文を表示します。
-
ビューを編集する場合、「UPDATE」をクリックして、生成されたALTER文を表示します。新しいビューの場合、「UPDATE」タブは使用できません。
終了したら、「適用」をクリックします。
「出力」ペイン
DDLコマンドの結果を表示します。エラーがある場合は、それぞれのペインに移動してエラーを修正し、コマンドを再度実行してください。テキスト・ファイルに保存したり、出力をクリアできます。
3.4.6 「マテリアライズド・ビュー・ログ・プロパティ・ダイアログ」
「マテリアライズド・ビュー・ログ・プロパティ・ダイアログ」は、マテリアライズド・ビュー・ログを作成または編集するときに表示されます。マテリアライズド・ビュー・ログは、マテリアライズド・ビューのマスター表に関連付けられた表です。
選択したスキーマのマテリアライズド・ビュー・ログを作成するには、「SQL」の「ナビゲータ」タブで、オブジェクト・タイプ・ドロップダウン・リストから「マテリアライズド・ビュー・ログ」を選択し、「オブジェクト・サブメニュー」をクリックして、「オブジェクトの作成」を選択します。
編集するには、「ナビゲータ」ペインでマテリアライズド・ビュー・ログ・オブジェクトを右クリックし、「編集」を選択します。
スキーマ: マテリアライズド・ビュー・ログを作成するデータベース・スキーマ。
表: このマテリアライズド・ビュー・ログに関連付けられる、マテリアライズド・ビューのマスター表の名前。
「プロパティ」タブ
-
行IDのログ: 「はい」は、変更されたすべての行のROWIDをマテリアライズド・ビュー・ログに記録する必要があることを示します。「いいえ」は、変更されたすべての行のROWIDをマテリアライズド・ビュー・ログに記録する必要がないことを示します。
-
主キーのログ: 「はい」を選択すると、変更されたすべての行の主キーがマテリアライズド・ビュー・ログに記録されます。「いいえ」を選択すると、記録されません。
-
新しい値: 「はい」を指定すると、更新DML操作の古い値と新しい値の両方がマテリアライズド・ビュー・ログに保存されます。「いいえ」を指定すると、新しい値はマテリアライズド・ビュー・ログに記録されません。このログが単一表のマテリアライズド集計ビューを持つ表のログであり、マテリアライズド・ビューで高速リフレッシュを可能にする場合は、「はい」を指定する必要があります。
-
オブジェクトIDログ: オブジェクト表のみのログの場合: 「はい」を指定すると、変更されたすべての行のシステム生成またはユーザー定義のオブジェクト識別子が、マテリアライズド・ビュー・ログに記録されます。「いいえ」を指定すると、変更されたすべての行のシステム生成またはユーザー定義のオブジェクト識別子は、マテリアライズド・ビュー・ログに記録されません。
-
キャッシュ: 頻繁にアクセスするデータの場合、「CACHE」を指定すると、全表スキャンの実行時、このログに取得されたブロックは、バッファ・キャッシュで最低使用頻度リストの最高使用頻度側に配置されます。この属性は、小規模な参照表で有効です。NOCACHEは、ブロックをLRUリストの最低使用頻度側に入れることを指定します。
-
パラレル: 「はい」の場合、マテリアライズド・ビュー・ログでパラレル操作がサポートされます。
-
順序のログ: 「はい」を指定すると、追加の順序情報を提供する順序値がマテリアライズド・ビュー・ログに記録されます。「いいえ」を指定すると、追加の順序情報を提供する順序値はマテリアライズド・ビュー・ログに記録されません。更新後に高速リフレッシュをサポートするには順序番号が必要になる場合があります。
-
コミットSCN: このオプションを有効にすると、タイムスタンプではなくコミットSCNデータを使用するようにデータベースに指示が出されます。
-
使用可能な列および選択済の列: マテリアライズド・ビュー・ログに記録する、追加の列(副問合せマテリアライズド・ビューで参照される主キー以外の列)。1つ以上のフィルタ列を選択するには、矢印ボタンを使用して列を「使用可能」から「選択済」に移動します。
「記憶域」タブ
-
表領域: マテリアライズド・ビュー・ログを作成する表領域
-
ロギング: マテリアライズド・ビュー・ログのロギング特性を設定します。「はい」または「いいえ」を指定します。
-
バッファ・モード: KEEPを選択すると、ブロックがセグメントからKEEPバッファ・プールへ移されます。RECYCLEを選択すると、ブロックがセグメントからRECYCLEプールへ移されます。デフォルトのバッファ・プールを指定する場合は、DEFAULTを選択します。
-
空き率: データベース・オブジェクトの各データ・ブロック内で、オブジェクトの行を将来更新するために確保しておく領域の割合を表す整数値を指定します。PCTFREEの値は、0から99の値にする必要があります。
-
使用率: 使用済領域のうち、データベース・オブジェクトのデータ・ブロックごとに確保される最小限の割合を表す整数値を指定します。PCTUSEDは0から99までの正の整数で指定し、デフォルト値は40です。
-
INITRANS: データベース・オブジェクトに割り当てられた各データ・ブロックに割り当てられる、同時実行トランザクション・エントリの初期数を指定します。この値には1から255までの範囲の値を指定でき、デフォルト値は1です。
-
空きリスト: セグメントを手動で領域管理する表領域の場合、表領域およびロールバック・セグメント以外のオブジェクトに対して、表、パーティション、クラスタまたは索引の各空きリスト・グループの空きリスト数を指定します。このパラメータの最小値(デフォルト)は1です。この場合、空きリスト・グループごとに1つの空きリストが含まれます。
-
空きリスト・グループ: セグメントを手動で領域管理する表領域の場合、作成するデータベース・オブジェクトに対する空きリスト・グループ数を指定します。
-
初期エクステント: オブジェクトの第1エクステントのサイズを指定します。
-
次エクステント: オブジェクトに割り当てる次のエクステント・サイズをバイト単位で指定します。
-
増加率: ローカル管理表領域では、初期セグメント・サイズを決定するためにセグメント作成時にPCTINCREASEの値が使用され、その後の領域割当て時にはこのパラメータは無視されます。
-
最小エクステント: ローカル管理表領域では、初期セグメント・サイズを決定するために、MINEXTENTSの値がPCTINCREASE、INITIALおよびNEXTの値とともに使用されます。
-
最大エクステント: この記憶域パラメータは、ディクショナリ管理表領域のオブジェクトに対してのみ有効です。第1エクステントを含めて、Oracleがオブジェクトに割り当てることができるエクステントの総数を指定します。
-
「無制限」: 必要に応じて自動的にエクステントを割り当てる場合は、このオプションを選択します。断片化を最小限に抑えるため、この設定をお薦めします。
「パージ」タブ
-
タイプ: IMMEDIATE SYNCHRONOUSを指定すると、マテリアライズド・ビュー・ログは、リフレッシュの直後に消去されます。これはデフォルトです。IMMEDIATE ASYNCHRONOUSを指定すると、マテリアライズド・ビュー・ログは、リフレッシュ操作後に、別のOracleスケジューラ・ジョブで消去されます。
-
遅延、開始、次、繰返し間隔: マテリアライズド・ビューのリフレッシュとは別個のスケジュールされたパージを設定します。CREATEまたはALTER MATERIALIZED VIEW LOG文の実行時に開始されます。
「リフレッシュ」タブ
-
タイプ: 同期リフレッシュを指定すると、同期リフレッシュに使用できるステージング・ログが作成されます。作成するステージング・ログの名前を指定します。このステージング・ログは、マスター表が存在するスキーマ内に作成されます。「高速リフレッシュ」を指定すると、高速リフレッシュに使用可能なマテリアライズド・ビュー・ログが作成されます。このマテリアライズド・ビュー・ログは、マスター表が存在するスキーマ内に作成されます。これはデフォルトです。
「DDL」ペイン
指定した入力に基づいて、DDL文が生成されます。SQL文を確認して保存できます。変更が必要な場合は該当するペインに戻って変更します。
-
新しいマテリアライズド・ビューの場合、「CREATE」をクリックして生成されたDDL文を表示します。
-
マテリアライズド・ビュー・ログを編集する場合、「UPDATE」をクリックして、生成されたALTER文を表示します。新しいマテリアライズド・ビュー・ログの場合、「UPDATE」タブは使用できません。
終了したら、「適用」をクリックします。
「出力」ペイン
DDLコマンドの結果を表示します。エラーがある場合は、それぞれのペインに移動してエラーを修正し、コマンドを再度実行してください。テキスト・ファイルに保存したり、出力をクリアできます。
3.4.7 暗黙外部キー
暗黙外部キーとは、複数の表の間に存在するがデータベースに定義されていない依存関係です。一般的にデータ・ウェアハウス環境では外部キーを作成しません。ただし、プレゼンテーションまたはレポート作成の場合はこれらの依存関係を表示することが必要になります。
スター・スキーマ内のオブジェクトの暗黙外部キーは、定義するか、データ・ディクショナリで検出することにより表示できます。暗黙外部キーは複数のソースを持つことができます。
暗黙外部キーの定義
暗黙外部キーは次の2つの方法で定義できます。
-
暗黙外部キー・ダイアログを使用する
-
ダイアグラムで矢印を参照先オブジェクトにドラッグする
暗黙外部キー・ダイアログを使用する
暗黙外部キーは、Data Modelerの「暗黙外部キー」ダイアログを使用して定義できます。
-
Data Modelerダイアグラムで、オブジェクト(表またはビュー)を右クリックし、「暗黙外部キー」を選択します。
図3-17 オブジェクトの暗黙外部キーの選択
暗黙外部キー・ダイアログが表示されます。
-
「暗黙外部キー」ダイアログで、「+」をクリックしてグリッドにエントリを追加します。
-
グリッドのエントリを選択して、次のフィールドに値を入力します。
-
参照しているオブジェクト: ソース・オブジェクトに対する依存性を持つ、ダイアグラム内のオブジェクト。
-
ローカル列: ソース・オブジェクト内の列の名前。
-
参照先の列: ターゲット・オブジェクト内の列の名前。
-
検出ソース: 自動的に事前に入力され、暗黙外部キーが定義されているか、またはデータ・ディクショナリで検出されたかどうかが表示されます。
-
-
「OK」をクリックします。暗黙外部キーの依存関係が、ダイアグラム上に点線で表示されます。
図3-18 2つのオブジェクト間の点線
ダイアグラムで矢印を参照先オブジェクトにドラッグする
暗黙外部キーは次の方法で定義することもできます。
-
ダイアグラムでソース・オブジェクトを選択します。
-
青いインジケータの付いた小さい曲線の矢印をクリックして、参照先オブジェクトにドラッグします。依存関係がダイアグラム上に点線で表示されます。
-
ソース・オブジェクトを右クリックし、暗黙外部キー・ダイアログに列名を入力します。
データ・ディクショナリでの暗黙外部キーの検出
データ・ディクショナリで複数のタイプの定義を検索すると、スター・スキーマを検出できます。
「ナビゲータ」タブで、オブジェクト(表またはビュー)を右クリックし、オブジェクトをスター・スキーマとしてダイアグラムに追加を選択します。オブジェクトはファクト表である必要があります。データ・ディクショナリで、オブジェクトに関連する次のような結合および依存関係が検索されます。
-
選択した表から他の表に対して定義されている外部キー。暗黙外部キーが後で同じ列に対して検出された場合、それらはダイアグラムに表示されません。
-
ビットマップ結合索引、集計を含むマテリアライズド・ビューおよび属性クラスタリングの定義に使用されている結合。
-
ファクト表のディメンション定義および列名の一致に基づく依存関係。
-
分析ビュー、OLAPキューブおよびディメンションのファクトおよびディメンションの定義。