ヘッダーをスキップ
Oracle® Fusion Middleware Oracle JDeveloperユーザーズ・ガイド
11gリリース2(11.1.2.3.0)
B66717-03
  目次へ移動
目次

前
 
次
 

27 Oracle JDeveloperでのデータベースの設計

この章では、データベース接続内でのデータベース・オブジェクトの使用方法について説明します。また、JDeveloper内のオフライン・データベースを使用し、スクリプト・データベース接続に生成可能なオフライン・データベース・オブジェクトを作成および編集する方法についても説明します。

この章では、次の項目について説明します。

27.1 Oracle JDeveloperでのデータベースの設計について

JDeveloperを使用して、次の作業を実行できます。

27.2 データベース・オブジェクトの作成、編集および削除

データベース・オブジェクトおよびオフライン・データベース定義を作成したり、これらのオブジェクトを編集したり、これらのオブジェクトを削除またはデータベース接続から削除できます。

27.2.1 オフライン・データベース定義の使用

この項では、データベース・スキーマのコンテキスト外での表、ビューおよび制約などのデータベース・オブジェクトの作業方法について説明します。オフライン・データベースはJDeveloperのテクノロジの1つで、稼働中のデータベース接続でのデータベース・オブジェクト作成および編集に使用されるものと同じエディタを使用して、プロジェクト内で.xmlファイルとして保存されたデータベース・オブジェクト定義を作成および編集できます。

新しいオフライン・データベース・オブジェクトを作成するか、または稼働中のデータベースへの接続からインポートできます。作業の終了後、オンライン・データベース・スキーマでデータベース定義を作成および更新するために使用可能なDDLを生成できます。

JDeveloperオフライン・データベースでは、次のオブジェクト・タイプをサポートします。

  • 機能

  • 索引

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

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

  • パッケージ

  • プロシージャ

  • 順序

  • シノニム

  • 表領域

  • トリガー

  • データ型

  • ビュー

これらのオブジェクト・タイプに対するOracle Databaseのサポートの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

オフライン・データベース定義の使用

JDeveloperでオフライン・データベース定義を使用する場合、XMLファイルとして格納されているが、稼働中のデータベース接続内のオブジェクトのモデルを提供するオブジェクトを使用します。稼働中のデータベース接続にオフライン・データベース定義を生成することにより、データベース・オブジェクトを作成、変更または削除できます。

JDeveloperには、データベースのコンテキスト外で表や制約などのデータベース・オブジェクトを作成および編集する必要がある場合に使用できるツールがあります。次に例を示します。

  • 新しい表およびビューを作成したり、データベースに情報を生成できます。

  • 新しい表およびビューを作成したり、データベースに情報を生成し、これを編集して後でデータベース接続上で実行できます。

  • データベース・スキーマから表およびビューをインポートして変更を行った後、その変更内容を同じデータベース・スキーマ、新しいデータベース・スキーマ、またはファイルに反映して、後日データベースに対して実行することもできます。JDeveloperでは、データベースへのコミット前に変更を手動で調整できます。

  • JDeveloperのモデル作成ツールを使用して、オフライン・データベース・オブジェクトをダイアグラム上に視覚的に表示できます。データベースのモデル化の詳細は、第23.5項「データベース・ダイアグラム」を参照してください。

オフライン・データベース・ファイルのパスの設定方法

プロジェクト設定を構成して、プロジェクトから使用する、オフライン・データベース・オブジェクトのルート位置を指定できます。データベース・パスはデフォルトで構成されるため、次の場合のみモデル・パスの変更が必要になります。

  • 他のプロジェクトに格納されているオフライン・データベース・オブジェクトを含める場合

  • 別の場所に新しいオフライン・データベース・オブジェクト・ファイルを格納する場合

プロジェクトのデータベース・パスにファイル・システム上のパスを追加すると、オフライン・データベース・オブジェクトを複数のプロジェクト間で共有できます。データベース・パスにファイル・システム上のパスが入力された順序は、オフライン・データベース・オブジェクトを検索するディレクトリの順番を示します。データベース・パスの最初の場所は、新しいオフライン・データベース・オブジェクト・ファイルが格納される場所です。

データベース・オブジェクトをモデリングしている場合、モデル・パス(「プロジェクト・プロパティ」ダイアログの「モデラー」プリファレンス・ページにあります)を使用して、ダイアグラムのファイルの場所を指定します。


注意:

プロジェクトに別のデータベース・パスを追加する場合は、続行する前に作業を保存してください。データベース・パスを変更すると、プロジェクトはオフライン・データベース・オブジェクト定義を再ロードします。そのため、表、ビュー、スキーマの変更や新しいオブジェクトなど、未保存の作業は失われる可能性があります。


すべての新規プロジェクトに使用されるデータベース・オブジェクト用としてデフォルトのルート・ディレクトリを設定できます。

新規プロジェクト用のデータベース・オブジェクトにデフォルトのルート・ディレクトリを設定するには、次のようにします。

  1. 「アプリケーション」→「デフォルト・プロジェクト・プロパティ」を選択します。

  2. 「プロジェクト」→「ソースパス」→「オフライン・データベース」を選択してルート・ディレクトリを入力します。

既存のプロジェクトのデータベース・パスを変更できます。

既存のプロジェクトのデータベース・パスを設定するには、次のようにします。

  1. プロジェクトを右クリックして、「プロジェクト・プロパティ」を選択します。

  2. 「プロジェクト」→「ソースパス」→「オフライン・データベース」を選択して、プロジェクトのオフライン・データベース・オブジェクトのファイル・システムのロケーションを入力します。セミコロン(;)を使用して複数のファイル・システム・ロケーションを区切ります。

  3. 「対象」および「除外」タブを使用すると、サブフォルダを選択して追加および除外できます。詳細は、[F1]を押すか、ダイアログ内で「ヘルプ」をクリックしてください。

27.2.1.1 オフライン・データベース

JDeveloperでは、パッケージと同様の方法でコンテナとして動作するオフライン・データベースのコンテキストでオフライン・データベース定義が使用されます。アプリケーション・ナビゲータでは、図27-1のように、オフライン・データベースは「オフライン・データベース・ソース」ノードの下に表示されます。

図27-1 アプリケーション・ナビゲータに表示されたオフライン・データベース

アプリケーション・ナビゲータに表示されたオフライン・データベース

この場合、Javaクラスとデータベース・ダイアグラムが「アプリケーション・ソース」ノードの下のパッケージ「project1」で作成されていて、オフライン・データベース定義がオフライン・データベース・ソース・ノードの下にある「DATABASE1」というオフライン・スキーマでいくつか作成されています。

オフライン・データベースを作成する場合、オフライン・データベースに必要なデータベース・エミュレーションを選択します。

27.2.1.2 オフライン・データベース・エミュレーションの構成

オフライン・データベースがエミュレートするデータベースのタイプを指定できます。これにより、プロジェクトでサポートされるデータ型が決まります。

使用可能なOracle Databaseのオプションは、次のとおりです。

  • Oracle11gデータベース・リリース1

  • MySQL Database Server 4.1.x

  • MySQL Database Server 5.x

  • Oracle11gデータベース・リリース2(デフォルト)

  • Oracle Database 10gリリース1

  • Oracle Database 10gリリース2

  • Oracle Database 10g Express Editionリリース2

  • Oracle Database 11g Express Editionリリース2

  • Oracle Database Lite 10gリリース1

  • Oracle Database Lite 10gリリース3

  • Oracle 8i Serverリリース3

  • Oracle 9i Databaseリリース2

  • TimesTen Database Server 11g

  • TimesTen Database Server 6.0

  • TimesTen Database Server 7.0

Oracle以外のデータベースで使用可能なオプションは次のとおりです。

  • Apache Derby 10.5

  • DB2 Universal Database 8.1

  • DB2 Universal Database 9.5

  • 汎用JDBCデータベース

  • Informix Dynamic Server 10.0

  • Informix Dynamic Server 11.5

  • Microsoft SQL Server 2005

  • Microsoft SQL Server 2008

  • SQLite Database 3.6

  • Sybase Adaptive Server Enterprise 12.5

  • Sybase Adaptive Server Enterprise 15

27.2.1.3 オフライン・データベースの作成方法

オフライン・データベースは、オフライン・スキーマおよびオフライン・データベース・オブジェクト定義が含まれるアプリケーション・ナビゲータ内のノードです。

オフライン・データベースを作成するには、次のようにします。

  1. ナビゲータで、作業するプロジェクトを特定します。

  2. プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

  3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択し、「オフライン・データベース」を選択します。

  4. 「オフライン・データベースの作成」ダイアログで、オフライン・データベースの名前を入力し、エミュレートするデータベース・タイプを選択します。

    詳細を参照するには、「オフライン・データベースの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

27.2.1.4 オフライン・スキーマ

JDeveloperでは、オフライン・データベースのコンテキストでオフライン・データベース定義が使用されます。オフライン・データベースでは、スキーマは、稼働中のデータベース接続内のスキーマに相当します。アプリケーション・ナビゲータでは、オフライン・スキーマは、図27-2のように「オフライン・データベース・ソース」ノードの下に表示されます。

図27-2 アプリケーション・ナビゲータに表示されたオフライン・スキーマ

アプリケーション・ナビゲータに表示されたオフライン・スキーマ

この場合、Javaクラスとデータベース・ダイアグラムが「アプリケーション・ソース」ノードの下のパッケージ「project1」で作成されていて、オフライン・データベース定義が、「オフライン・データベース・ソース」ノードの下にある「DATABASE1」というオフライン・データベースに含まれる「MYSCHEMA」というスキーマでいくつか作成されています。

27.2.1.5 オフライン・スキーマの作成方法

オフライン・スキーマを作成するには、次のようにします。

  1. ナビゲータで、作業するプロジェクトを特定します。

  2. プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

  3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択し、「スキーマ」を選択します。

  4. 「オフライン・データベース」ダイアログで、スキーマを作成するオフライン・データベースを選択します。

  5. 「スキーマの作成」ダイアログで、オフライン・スキーマの名前を入力します。詳細を参照するには、「スキーマの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

アプリケーション・ナビゲータで、オフライン・データベースを右クリックし、「新規スキーマ」を選択します。

27.2.1.6 オフライン・データベース・オブジェクトの作成方法

オフライン・データベース・オブジェクトは、「新規ギャラリ」から作成したり、アプリケーション・ナビゲータのオフライン・データベースまたはオフライン・スキーマのポップアップ・メニューから作成できます。このプロセスは、オフライン・データベースのオブジェクト・タイプに関係なく、ほぼ同じです。

表について

使用可能な表のタイプは、次のとおりです。

  • 標準。これは、パーティション化可能な標準のデータベース表です。パーティション表は、より小さく管理しやすいようにパーティションと呼ばれる断片に分けられた表です。パーティション表にアクセスするために、SQL問合せおよびDML文を変更する必要はありません。ただし、パーティションを定義すると、DDL文は表や索引全体ではなく、個々のパーティションにアクセスして操作するようになります。また、パーティション化はアプリケーションに対して完全に透過的です。

  • 外部。外部表は読取り専用の表であり、これらのメタデータはデータベースに格納されますが、データはデータベースの外部に格納されます。特に重要な機能として、外部表では、最初にデータベースにデータをロードしなくても、データを問い合せることができます。

  • 索引構成。索引構成表は、主キーに基づいて構築された索引に行(主キー列値とキー以外の列値の両方)が保持される表です。索引構成表を使用すると、Oracle Databaseで索引構造を表として格納できます。索引構成表は、主キーベースのアクセスおよび操作に最適です。

  • 一時。一時表の定義は通常の表の定義と同じように保持されますが、一時表の表セグメントとすべてのデータは、トランザクションまたはセッションの持続期間中のみ保持され、表はデータベースに永久には格納されません。一時表は、パーティション化または索引構成化できません。


注意:

オフライン・スキーマのリレーショナル表定義を作成して使用することはできますが、オブジェクト・リレーショナル表定義を作成して使用することはできません。


パーティションについて

表、索引またはマテリアライズド・ビューをパーティション化できます。パーティション表またはパーティション・マテリアライズド・ビューは、より小さく管理しやすいようにパーティションと呼ばれる断片に分けられた表またはマテリアライズド・ビューです。パーティション表にアクセスするために、SQL問合せおよびDML文を変更する必要はありません。ただし、パーティションを定義すると、DDL文は表や索引全体ではなく、個々のパーティションにアクセスして操作するようになります。また、パーティション化はアプリケーションに対して完全に透過的です。

一時表はパーティション化できません。

パーティション索引は、表の索引列に表示されるそれぞれの値のエントリが含まれるパーティションによって構成されています。

パーティションには、次の3つのタイプがあります。

  • RANGE。列リストの値の範囲で表をパーティション化します。索引構成表の場合、これは表の主キー列のサブセットである必要があります。

  • HASH。ハッシュ・メソッドを使用して表をパーティション化します。列の値にパーティション化キーとして指定されたハッシュ・ファンクションを使用して、行がパーティションに割り当てられます。

  • LIST。列のリテラル値のリストで表をパーティション化します。これは、個々の行が固有のパーティションにマップする方法に関する制御に便利です。

表または索引上にRANGEパーティションがある場合、HASHまたはLISTによって表または索引をさらにサブパーティション化できます。コンポジット・パーティション化は、データをサブパーティションにさらに分割するために2つのパーティション化方法を組み合せた方法です。

サブパーティションを明示的に定義しないパーティションで使用されるサブパーティション・テンプレートを定義できます。


注意:

数量別にハッシュ・パーティションを使用するOracle Database内の表または索引は、個別ハッシュ・パーティションを持つものとしてJDeveloperに表示されます。「表の作成」、「表の編集」、「マテリアライズド・ビューの作成」、またはマテリアライズド・ビューの編集ダイアログを使用して個別パーティションを手動で指定することも、個別パーティションを数量別に定義して自動的に処理されるようにすることもできます。いずれの方法を選択してパーティションを定義するとしても、JDeveloperでデータベース表またはマテリアライズド・ビューを編集する場合、これらは個別パーティションとして表示されます。


索引について

表の列に索引を作成すると、問合せを高速化できます。索引を使用すると、表の行全体のわずかな部分を戻す操作でのデータ・アクセスが、より高速になります。通常、次のいずれかの場合、列に索引を作成できます。

  • 列を頻繁に問い合せる場合

  • 列に参照整合性制約がある場合。

  • 列に一意キー整合性制約がある場合。

索引はどの列にも作成できますが、列が前述のような状況で使用されていない場合は、索引を作成してもパフォーマンスは改善されず、リソースが無駄に占有されます。データベースでは整合性制約を使用した列に索引を作成しますが、このような列には索引を明示的に作成することをお薦めします。SQLワークシートの実行計画を使用すると、特定の問合せ文に対する理論的な実行計画を示すことができます。

索引には、索引が非一意、一意、またはビットマップである標準索引や、ドメイン索引があります。

非一意標準索引の場合、索引には複数の同一値を含めることができます。一意標準索引の場合、重複値は許可されません。列内の値が一意である場合は、一意標準索引を使用します。ビットマップ標準索引の場合、キー値に関連付けられたROWIDがビットマップとして格納されます。多数の同時システムによってデータが頻繁には更新されないシステムや、値の範囲が狭いシステムの場合、これらが役に立ちます。

ドメイン索引は、アプリケーション固有のドメイン内のデータに各索引が付けられる、ユーザー定義索引です。これらは、ユーザー定義の索引タイプ別に提供される索引ロジックを使用して構築されます。索引タイプを使用すると、特定の演算子の述部に合うデータに効率よくアクセスできます。通常、ユーザー定義の索引タイプは、SpatialオプションなどのOracleオプションの一部です。

ユーザー定義のデータ型の使用

JDeveloperでは、オブジェクト型やコレクション型などの独自のデータ型を定義できます。

オブジェクト型は、発注書など、アプリケーション・プログラムで処理する実社会のエンティティを抽象化したものです。1つのオブジェクト型は、次の3種類のコンポーネントを持つスキーマ・オブジェクトです。

  • 名前。スキーマ内でオブジェクト型を一意に識別します。

  • 属性。実社会のエンティティの構造と状態をモデリングします。属性は、ビルトイン型または他のユーザー定義型です。

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

オブジェクト型はテンプレートです。テンプレートにあわせて構造化されたデータ・ユニットをオブジェクトと呼びます。

JDeveloperでは、オブジェクト型仕様、またはオブジェクト型仕様および本体を作成できます。

新規オブジェクト型仕様を作成する場合、これは次のようになります。

TYPE TYPE1 AS OBJECT (a null );

オブジェクト型本体を作成する場合、これは次のようになります。

CREATE TYPE TYPE1 AS VARRAY(1) OF null;
/

コレクション型は異なります。各コレクション型では、すべて同一のデータ型を持つ不定の数の要素で構成されるデータ・ユニットを記述します。コレクション型は、配列型と表タイプです。

配列型と表タイプはスキーマ・オブジェクトです。対応するデータ・ユニットはVARRAYとネストした表です。混同するおそれがなければ、通常はコレクション型をVARRAYおよびネストした表と呼びます。

コレクション型はコンストラクタ・メソッドを持ちます。コンストラクタ・メソッド名は型の名前で、引数は新規コレクションの要素をカンマで区切ったリストです。コンストラクタ・メソッドは関数です。これにより、新規コレクションがその値として戻されます。

型名とそれに続く空の丸カッコで構成される式は、その型を持つ空のコレクションを作成するためのコンストラクタ・メソッドのコールを表します。空のコレクションは、NULLのコレクションとは異なります。

JDeveloperでは、配列型と表タイプを作成できます。

配列型は次のようになります。

TYPE TYPE1 AS VARRAY(1) OF null;

表タイプは次のようになります。

TYPE TYPE1 AS TABLE OF null; 

注意:

プロジェクトがOracle Database以外のデータベース・エミュレーション用として構成されている場合にデータ型を使用するには、エミュレートするデータベースが型作成をサポートしている必要があります。


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

マテリアライズド・ビューは、問合せの結果が含まれるデータベース・オブジェクトです。問合せでFROM句を使用すると、表、ビューおよびその他のマテリアライズド・ビューの名前を指定できます。稼働中のデータベース接続内のマテリアライズド・ビュー、およびJDeveloperのオフライン・データベース内のオフライン・マテリアライズド・ビューをモデル化、作成および編集できます。

Oracle DatabaseからJDeveloperプロジェクトにマテリアライズド・ビューをインポートする場合:

  • データベース上のマテリアライズド・ビューにWITHOUT REDUCED PRECISIONが指定されている場合、マテリアライズド・ビューがJDeveloperにインポートされると、精度の低下が採用され、「マテリアライズド・ビュー・ログの編集」ダイアログの「プロパティ」ページの「精度の低下」オプションが選択されます。マテリアライズド・ビューで精度が低下しないことが重要である場合は、ダイアログで「精度の低下なし」を選択します。

  • データベース上のマテリアライズド・ビューにUSING ROLLBACK SEGMENTおよびUSING TRUSTED CONSTRAINTSが指定されている場合、マテリアライズド・ビューがJDeveloperにインポートされると、「マテリアライズド・ビュー・ログの編集」ダイアログの「プロパティ」ページでロールバック・セグメントが選択されず、制約が「強制」として表示されます。必要に応じて、「マテリアライズド・ビュー・ログの編集」ダイアログのオプションを変更します。

日付値と時間値の検証

データベースにオフライン表定義または表を作成して日時のデフォルト値を使用すると、JDeveloperではこれらの値が検証されます。日付の場合は、次の値を使用できます。

  • Oracle日付関数

  • 引用符で囲んだ書式DD-MON-RRの文字列。各項目の意味は次のとおりです。

    • 月にはフルスペルの表記を使用できます。

    • 年は省略せずに表記できます(2011など)。

    • セパレータ(-)は省略できます。また、英数字以外を空白と組み合せて使用することもできます。

タイムスタンプには、書式DD-MON-RR HH.MI.SSXFF AM TZRの文字列を引用符で囲んで使用できます。各項目の意味は次のとおりです。

  • 月にはフルスペルの表記を使用できます。

  • 年は省略せずに表記できます(2011など)。

  • 時間と分は必須です。

  • 秒、ミリ秒、AM/PMおよびタイム・ゾーンはオプションです。

  • セパレータ(-)は省略できます。また、英数字以外を空白と組み合せて使用することもできます。

データベースから表をインポートするときに、日付値と時間値が前述のルールに従って検証されます。検証が原因でOracle Databaseから表をインポートできない場合は、検証機能をオフにできます。

日付と時間の検証をオフするには、次のようにします。

  1. 「ツール」→「プリファレンス」→「データベース接続」を選択します。

  2. 「日付と時間のデフォルト値を検証」の選択を解除します。

オフライン・タイプ定義を作成するには、次のようにします。

  1. アプリケーション・ナビゲータで、作業するワークスペースおよびプロジェクトを開きます。

  2. プロジェクトまたはその中の任意の項目、あるいはオフライン・スキーマまたはその中の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

  3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

  4. 「タイプ」を選択して、「オフライン・タイプの作成」ダイアログを起動します。

  5. パラメータを入力し、型を定義するオプションを選択します。

    詳細を参照するには、「オフライン・タイプの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

アプリケーション・ナビゲータで、オフライン・スキーマを右クリックして「新規データベース・オブジェクト」を選択し、「新規タイプ」を選択します。

ユーザー定義タイプを編集するには、アプリケーション・ナビゲータでそのタイプをダブルクリックします。このタイプが含まれるSQLがソース・エディタで開きます。

オフライン・データベース・オブジェクト定義を作成するには、次のようにします。


注意:

オフライン・スキーマのリレーショナル表定義を作成して使用することはできますが、オブジェクト・リレーショナル表定義を作成して使用することはできません。


  1. アプリケーション・ナビゲータで、プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

  2. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

  3. 作成するオフライン・データベース・オブジェクトを選択し、「作成」ダイアログまたはウィザードを起動します。

    詳細を参照するには、「オフライン・タイプの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

アプリケーション・ナビゲータで、オフライン・スキーマを右クリックして「新規データベース・オブジェクト」を選択し、作成するオブジェクトを選択します。

オフライン・データベース定義を削除するには、次のようにします。

  1. アプリケーション・ナビゲータで、オフライン・オブジェクトを含むプロジェクト、オフライン・データベースおよびオフライン・スキーマを開きます。オフライン・オブジェクトを右クリックして「削除」を選択します。

  2. オフライン・オブジェクトを右クリックして「削除」を選択します。

    または、オフライン表を右クリックして「ファイル」→「削除」を選択します。


    注意:

    オフライン表に依存性がある場合、「削除の確認」ダイアログに警告が表示され、使用方法を確認できます。それでもオフライン表を削除することを選択する場合、オブジェクトも削除されることを示す警告がカスケード削除の確認ダイアログに表示されます。


27.2.1.7 データベース・オブジェクトに基づいたオフライン・データベース定義のインポート方法

データベース・スキーマからデータベース・ダイアグラムに表、ビュー、シノニム、マテリアライズド・ビュー、および順序をドラッグすると、オフライン・データベース・オブジェクトとしてアクセスできるようになります。

オフライン・オブジェクトとしてデータベース・オブジェクトを使用する別の方法では、データベースからオフライン・データベースにこれらをインポートします。

データベース・ダイアグラムにオブジェクトをドラッグするには、次のようにします。

  1. 新規データベース・ダイアグラムを作成します。

    または、既存のダイアグラムを開きます。

  2. データベース接続を選択します。次のどちらかに移動します。

    • 「表示」→「データベース」→「データベース・ナビゲータ」

    • アプリケーション・ナビゲータの「アプリケーション・リソース」

    「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

  3. 接続で、スキーマを開いて目的のノード(「表」「ビュー」「マテリアライズド・ビュー」「順序」または「シノニム」)を開きます。

  4. モデリングするオブジェクトを選択してデータベース・ダイアグラムにドラッグします。この操作により、「場所の指定」ダイアログが開きます。「オブジェクトをプロジェクトにコピー」が選択されていることを確認して「OK」をクリックします。これで、オブジェクトがダイアグラムに表示され、アプリケーション・ナビゲータにリストされます。

[Ctrl]キーを押しながら複数のオブジェクトを選択することで、データベース・ダイアグラム上に同じタイプのオブジェクトを2つ以上ドラッグできます。


注意:

同じオブジェクトを複数回インポートすると、警告メッセージが表示されます。「プロジェクトにコピー」を使用している場合、続行することを選択すると、既存のオブジェクトを置換または削除できます。データベース・オブジェクトをダイアグラムにドラッグし、続行することを選択すると、新規オブジェクトによって既存のオブジェクトが上書きされます。


データベース・オブジェクトおよびオフライン・データベース定義をプロジェクトにコピーする方法

データベース・オブジェクトをデータベース・スキーマからオフライン・データベースにコピーできます。これにより、オフライン・データベース・オブジェクトとして使用できるようになります。また、オフライン・データベース・オブジェクトをプロジェクトにコピーすることもできます。

別のデータベース・バージョンをエミュレートするオフライン・データベースにデータベース・オブジェクトをコピーしようとすると、続行方法に関するガイダンスを示すエラー・メッセージが表示されます。通常、オフライン・データベースでは同じデータベース・エミュレーションがソース・データベースとして使用されるようにすることをお薦めします。

ウィザードのフィルタを適用して、興味があるオブジェクトのみを表示できます。スキーマ内に多くのオブジェクトがある場合、自動問合せを停止すると、フィルタ文字を入力するたびにウィザードがリフレッシュすることはありません。

フィルタを適用して、インポートに使用可能として表示されるオブジェクトを選択できます。「オブジェクト・ピッカー」ページ(ウィザードのステップ3)では、次の操作が可能です。

  • 「名前フィルタ」に文字を入力して、使用可能なオブジェクトのリストを名前でフィルタします。「名前フィルタ」では大文字と小文字が区別されます。

  • 多数のオブジェクトが存在する場合、自動問合せをオフにし、使用するフィルタを入力した後に「問合せ」をクリックします。

データベース・オブジェクトをインポートする手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、使用するプロジェクトを選択します。

  2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

  3. 「カテゴリ」ツリーで「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

  4. 「項目」リストで、「データベース・オブジェクトをプロジェクトにコピー」をダブルクリックし、データベース・オブジェクトをプロジェクトにコピー・ウィザードを起動します。

    詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

27.2.1.8 オフライン表と外部キー

稼働中のデータベース・スキーマからJDeveloperに表をインポートする場合、外部キーについての情報は必ずしも利用できるとはかぎりません。以降の各項では、外部キー情報の処理方法をケース別に説明します。

外部キーの両端の表をインポート

これが最も単純なケースです。JDeveloperが、外部キーをその間に持つ複数の表をインポートする場合、その外部キーに関する情報もインポートされます。これにより外部キーは、データベース・ダイアグラムおよび「オフライン表の編集」ダイアログの制約情報ページに正しく表示されます。

表での作業を終了した後、その変更内容を直接データベースに反映できます。

外部キーの一端の表をインポート

JDeveloperが外部キーを持つ表をインポートする場合で、キーの他端にある表はインポートしない場合、検証されていない外部キー参照(名前ベースの外部キーと呼ばれます)が使用されます。外部キーは、所有する表の制約コンパートメントに表示されますが、データベース・ダイアグラム上のアソシエーション線としては表示されません。表ダイアログでは、外部キーは破損として表示されます。名前ベースの外部キーは検証されませんが、DDLは正しいため、変更はデータベースに直接生成できます。

ベスト・プラクティス

前述の情報から、新しいデータベース・スキーマの基本として機能する表をインポートしている場合、使用しない表に対する外部キーについて注意する必要がないことがわかります。安全に変更し、オンライン表を新しいスキーマに生成できます。

しかし、表をインポートして希望する変更を行い、同じデータベース・スキーマに変更を反映する場合には、次のいずれかを実行する必要があります。

  • 表を変更するかどうかにかかわらず、外部キー関係を持つすべての表をインポートします。したがって、外部キーについての正しい情報をSQLファイルまたはデータベースに直接生成できます。データベース・オブジェクトをプロジェクトにコピー・ウィザードの「操作の選択」ページを使用すると、依存性をインポートできます。

  • 変更する表のみをインポートし、名前ベースの外部キーに依存して情報を保持します。

27.2.1.9 オフライン・データベース・オブジェクトのリフレッシュ方法

インポートしたオフライン・オブジェクトをインポート元のデータベース接続からリフレッシュできます。オブジェクトを再インポートすると、そのオフライン・オブジェクトに対して行った変更は失われることに注意してください。


注意:

JDeveloperでオフライン・オブジェクトとして作成した後、データベースに生成したオブジェクトはリフレッシュできません。データベースのオブジェクトに変更を加え、その変更をオフライン・オブジェクトに反映する場合、データベースからオブジェクトをインポートして、「ターゲット・スキーマの選択」ページの「既存のオブジェクトを自動的に置換え」を選択するか、またはウィザードの最後の「上書きの確認」メッセージで「はい」を選択することで、オフライン・オブジェクトを上書きする必要があります。


データベースからオブジェクトを再インポートするには、次のようにします。

  1. アプリケーション・ナビゲータでオフライン・オブジェクトを右クリックし、データベース接続から「リフレッシュ」を選択します。

  2. 「オフライン・オブジェクトの上書きの確認」ダイアログが表示された時点で、オブジェクトを再インポートすることを確認して「はい」をクリックします。それ以外の場合は、「いいえ」をクリックします。これには数秒かかることがあります。

27.2.1.10 テンプレートからのオブジェクトの作成方法

オフライン・データベース・オブジェクトはテンプレートに基づいて作成できます。たとえば、作成したすべての表に対して記憶域オプションのデフォルト・セットを使用します。作成したすべての表に対してユーザー・プロパティ値のデフォルト・セットを使用します。作成したすべての表に対して列のデフォルト・セットを使用します。テンプレート表では、デフォルトの主キー、列順序およびトリガーを作成できます。

テンプレートを使用して新規オブジェクトを作成する場合、テンプレートに設定されているプロパティが新規オブジェクトにコピーされ、その結果として作成ダイアログのオプションが事前移入されます。所有されたオブジェクトのネームスペースが親オブジェクトでない場合、名前は、親オブジェクト内のみでなく、スキーマ内で一意である必要があります。たとえば、索引名および制約名は、所有する表、マテリアライズド・ビューまたはビュー内のみでなく、スキーマ内で一意である必要があります。

オフライン・テンプレートの作成方法

オフライン・データベース・オブジェクトをテンプレートから作成できます。

オフライン・データベースのデフォルト・テンプレートを作成するには、次のようにします。

  1. 新規オフライン・データベースを作成します。

  2. 「オフライン・データベースの作成」ダイアログで、「デフォルト・テンプレートの初期化」を選択します。「OK」をクリックすると、TEMPLATE_objectという名前のデフォルトのテンプレート・オブジェクトとともに、オフライン・データベースが作成されます。テンプレート・データベース・オブジェクトを編集するには、目的のオブジェクトをクリックして「プロパティ」を選択します。これにより、オブジェクトの編集ダイアログが開きます。

新規オフライン・データベースのデフォルト・テンプレートを編集するには、次のようにします。

  1. 新規オフライン・データベースを作成する場合、「オフライン・データベースの作成」ダイアログで「デフォルト・テンプレートの編集」を選択します。

  2. 「OK」をクリックすると、「デフォルト・テンプレート」ダイアログが開き、オブジェクト・タイプごとにデフォルト・テンプレートを編集できます。詳細を参照するには、「デフォルト・テンプレート」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

既存のオフライン・データベースのデフォルト・テンプレートを編集するには、次のようにします。

  1. アプリケーション・ナビゲータで、オフライン・データベースを右クリックし、「プロパティ」を選択します。

  2. ダイアログの「デフォルト・テンプレート」ページにナビゲートすると、オブジェクト・タイプごとにデフォルト・テンプレートを編集できます。詳細は、「オフライン・データベースの編集」ダイアログ内で[F1]を押すか「ヘルプ」をクリックしてください。

テンプレートからのオフライン・データベース・オブジェクトの作成方法

テンプレートから作成するオフライン・データベース・オブジェクトは、アプリケーション・ナビゲータ内のオフライン・データベース・オブジェクトとして、またはデータベース・ダイアグラムでモデル化されたオフライン・データベース・オブジェクトとして作成できます。

テンプレートに基づいてオフライン・データベース・オブジェクトを作成する前に、テンプレートを最初に作成する必要があります。

テンプレートに基づいてオフライン・データベース・オブジェクトを作成するには、次のようにします。

  1. ナビゲータで、プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

  2. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

  3. 「データベース・オブジェクトをテンプレートから」を選択し、「テンプレート・オブジェクトの選択」ダイアログを起動します。詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

  4. テンプレートから作成するオブジェクト・タイプを選択します。「OK」をクリックすると、テンプレートの値が事前入力された状態で「オブジェクトの作成」ダイアログが開きます。詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

    「OK」をクリックすると、アプリケーション・ナビゲータでオブジェクトが作成され、オフライン・データベースおよびオフライン・スキーマの下にリストされます。

「テンプレート・オブジェクトの選択」ダイアログは、アプリケーション・ナビゲータのオフライン・データベースのポップアップ・メニュー(またはその下の任意のノード)から開くこともできます。

テンプレートに基づいてオフライン・データベース・オブジェクトを簡単に作成するには、次のようにします。

  1. アプリケーション・ナビゲータでオフライン・データベース・ノード(またはその下の任意のノード)を右クリックし、「新規データベース・オブジェクト」→「テンプレートから」を選択します。

別のオフライン・データベース・オブジェクトに基づいてオフライン・データベース・オブジェクトを簡単に作成するには、次のようにします。

  1. アプリケーション・ナビゲータで、新規オブジェクトのベースとなるオフライン・データベース・オブジェクトを右クリックし、「テンプレートとして使用」を選択します。

  2. オブジェクトのタイプに応じた「編集」ダイアログが、ソース・オブジェクトのプロパティが事前入力された状態で開きます。

27.2.1.11 ユーザー・プロパティ・ライブラリの使用

ユーザー定義のプロパティをデータベース・オブジェクトに追加できます。データベース・オブジェクトのインスタンスとして、これらのユーザー定義のプロパティに特定の値を割り当てることができます。

オフライン・データベースに定義に定義可能なプロパティを制限するライブラリを使用できます。たとえば、すべての表に特定のタイプの列を使用する必要がある、特定の値のみが使用可能である、またはプロパティが必須である、などの制限を設定できます。

ユーザー・プロパティ・ライブラリは、オフライン・データベースのコンテキストで定義されます。最初に、使用するオフライン・データベース・オブジェクトのタイプについてユーザー・プロパティを定義する必要があります。これにより、ライブラリが定義されているオフライン・データベースにオフライン・データベース・オブジェクトを作成する際にライブラリを使用できるようになります。

ユーザー・プロパティ・ライブラリには、次に対して定義されたプロパティを含めることができます。

  • 表、列、制約、索引

  • 関数、パッケージ、プロシージャ

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

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

  • 順序

  • シノニム

  • 表領域

  • トリガー

  • タイプ

  • ビュー

27.2.1.11.1 ユーザー・プロパティ・ライブラリの作成および編集方法

ユーザー・プロパティ・ライブラリは、オフライン・データベースから独立していますが、オフライン・データベースの編集ダイアログを使用すると、これらに追加できます。

ユーザー・プロパティ・ライブラリを作成または使用するには、次のようにします。

  1. アプリケーション・ナビゲータで、プロジェクトを開き、オフライン・データベースを右クリックし、「プロパティ」を選択します。

  2. 「オフライン・データベースの編集」ダイアログで、「ユーザー・プロパティ・ライブラリ」を選択します。

  3. 次の操作を実行できます。

    • 新規ライブラリを作成します。この場合、ライブラリのファイル名および場所を入力します。

    • ファイル・システム内に存在するライブラリを追加します。この場合、ファイル・システム上のライブラリの場所まで移動します。

    • 既存のライブラリをリストから選択して編集します。

  4. 「ユーザー・プロパティ・ライブラリ・ファイルの編集」ダイアログでユーザー・プロパティの値を入力します。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

オフライン・データベース・オブジェクト・タイプに対してユーザー・プロパティ・ライブラリを作成した後、これを使用して、オブジェクトのこのインスタンスに固有のユーザー・プロパティ値を格納できます。

データベース・オブジェクトを検証するためにユーザー定義のプロパティ値の検証を実行するには、独自の検証コードを作成します。これは、このユーザー・ガイドの範囲外の拡張手順です。詳細は、『Oracle Fusion Middleware Oracle Extension SDK Java APIリファレンス』UserPropertyValidationManagerに関する項を参照してください。Extension SDKの使用の詳細は、Oracle Fusion Middleware Oracle JDeveloper Extensions開発者ガイドを参照してください。

27.2.1.11.2 ユーザー・プロパティ・ライブラリの使用方法

データベース・オブジェクトに対してユーザー・プロパティを使用します

オフライン・データベース・オブジェクトでユーザー・プロパティを使用する前に、使用するオフライン・データベースに対して1つ以上のユーザー・プロパティ・ライブラリを定義する必要があります。

オフライン・データベース・オブジェクトでユーザー・プロパティを使用するには、次のようにします。

  1. オフライン・データベース・オブジェクトを作成します。

  2. オフライン・データベース・オブジェクト・ダイアログの「ユーザー・プロパティ」ページまたはタブにナビゲートし、ユーザー・プロパティの値を入力します。

27.2.1.12 データベースに対するオフライン・データベース・オブジェクトの生成方法

オフライン・データベース・オブジェクトからSQLを生成ウィザードを使用すると、作成または編集したオフライン・オブジェクトを使用してデータベース・スキーマを更新する方法を選択できます。次の操作を実行できます。

  • データベースにオブジェクトを作成または置換します。

    SQLファイルの生成を選択した場合は、CREATE文とDROP文が含まれます。

  • オフライン・データベース・オブジェクトに対して行った変更を使用して、既存のデータベース・スキーマ・オブジェクトを更新します。JDeveloperは、最初にデータベース・スキーマ内のオブジェクトに対するオフライン・データベース定義を調整して、必要な変更を認識します。手動調整を実行して一部の変更のみを選択することを選択できます。

    SQLファイルの生成を選択した場合は、ALTER文が含まれます。

データベースに変更内容を生成するか、変更を調整するかのどちらを選択するにかかわらず、次の処理を選択できます。

  • 検証するSQLファイルを生成し、後でデータベースに対して実行

  • データベースを直接変更

  • データベースに変更を加え、同時にSQLファイルを生成

1つ以上のオフライン表を生成して最初にインポートしたデータベース接続に戻す場合、ナビゲータから直接行うこともできます。


注意:

外部キーを含む表を変更した場合は、データベースに変更を反映したときに、外部キーが削除されることがあります。


27.2.1.12.1 調整に関する問題

この項では、調整時に発生する可能性がある問題について説明します。

27.2.1.12.2 制約は変更不可

調整中に制約が作成または削除されることがあり、変更できなくなる場合があります。実行できるALTER TABLE制約は、ADD CONSTRAINTDROP CONSTRAINTADD COLUMNDROP COLUMNおよびWIDEN COLUMNのみです。

27.2.1.12.3 名前を変更した表は調整不可

インポート中またはオフラインで編集中の場合は、表の名前を変更できます。名前を変更した表をデータベースに戻すように調整すると、データベースには新しい名前の表のレコードが存在しないため、エラー・メッセージを受け取ります。

これを避けるには、データベースに名前を変更した表を作成します。これは調整、置換することはできません。

データベースに対するデータベース定義の生成方法

27.2.1.12.4 ファイルに対するデータベース定義の生成方法

オンライン・データベース・スキーマに対して実行できるCREATE文およびDROP文を含むSQLファイルを作成します。


注意:

外部キーを含む表を変更した場合は、データベースに変更を反映したときに、外部キーが削除されることがあります。

データベースに生成する情報を含むオフライン・データベース定義が1つ以上ある場合は、この方法を使用できます。ただし、1つ以上のオフライン・データベース定義を迅速に生成して、元のデータベース接続に戻す場合は、ナビゲータから行うことができます。

オフライン・データベース表のオフライン・バージョンがあると、JDeveloperではオフライン・データベース表の列を構成する情報が追跡されます。生成SQLスクリプトがSQLセッションで実行される場合や、他のユーザーがデータベースを更新する場合など、データベースがJDeveloper外部で更新されると、JDeveloperはオフライン・データベース表とデータベース内の表とのリンクを追跡できません。これを回避するには、データベースからオフライン・スキーマ・オブジェクトをリフレッシュする必要があります。


ファイルを作成するには、次のようにします。

  1. アプリケーション・ナビゲータで、アプリケーションおよびプロジェクトを開きます。

  2. オフライン・スキーマを右クリックして、「新規」を選択し、「新規」ギャラリを表示します。

  3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

  4. 「オフライン・データベース・オブジェクトから生成されたSQL」を選択して、「オフライン・データベース・オブジェクトからSQLを生成」ウィザードを起動します。

  5. ページで、生成済のファイルの詳細を指定して、「次へ」をクリックします。

  6. 「終了」ページで、「終了」をクリックしてファイルを作成します。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

ナビゲータで、1つ以上のオフライン・データベース定義を右クリックして、「生成」を選択します。または

データベース・ダイアグラムで、モデリングされたデータベース定義を1つ以上選択して右クリックし、「データベースとの同期化」→「生成」を選択します。

27.2.1.13 オフライン・データベース・オブジェクトの名前変更

JDeveloperでは、名前が変更されたオフライン・データベース・オブジェクト(表など)またはサブオブジェクト(列や制約など)を追跡する機能が制限されています。状況によっては、名前が変更されていないデータベース・オブジェクトが削除され、新しい名前を使用して新規データベース・オブジェクトが作成されます。この結果、データの損失に繋がる可能性があります。このような状況の発生を回避するために、このような可能性があることに注意する必要があります。

データベース接続に対してオフライン・データベース・オブジェクトが生成される場合、このような状況が発生する可能性があります。この場合、オフライン・データベース・オブジェクトまたはサブオブジェクト(列や索引など)の名前を変更してから、データベース接続に対して変更済のオフライン・データベース・オブジェクトを生成すると、データベースでは、元の名前のオブジェクトが削除され、新しい名前を使用した新規オブジェクトが作成されます。

データの損失に繋がるもう1つの状況としては、オブジェクトがデータベース接続からインポートされた後に、オフライン・データベース・サブオブジェクトの名前が変更される場合があります。この場合、データベース接続に対する生成を初めて行う際に、データベース・サブオブジェクトが正しく更新されます。ただし、データベース接続に対する2回目の生成を行おうとすると、元の名前のサブオブジェクトが削除され、新しい名前の新規データベース・サブオブジェクトが作成されます。このような結果になるのは、「プロジェクトにコピー」では、オンライン・サブオブジェクトに対する内部参照内の元の名前が使用されるためです。

27.2.1.14 オフライン・データベース・レポートの使用

JDeveloperでは、オフライン・データベースとそのオブジェクトに関する多くのレポートを使用できます。また、オフライン・データベース・オブジェクト用として独自のユーザー定義レポートを作成することもできます。

27.2.1.14.1 オフライン・データベース・レポート

JDeveloperには一連の事前作成レポート定義が用意されていますが、独自のレポート定義を定義することもできます。

事前作成レポートを直接使用してオフライン・データベースに関する情報を提供することも、これらのレポートを変更して特定の要件に合うレポートを作成することもできます。

事前作成レポートを作成した後、レポートに対する問合せを構成するSQLを調べて、必要に応じてこれを変更できます。また、レポートの実行時に呼び出されるレポート問合せにパラメータを設定することもできます。

27.2.1.14.2 事前作成レポートの使用方法

事前作成レポートを使用すると、オフライン・データベースに対する次の問合せを提供する有用なレポートを簡単に入手できます。

  • OBJECT_COUNT: オブジェクト・タイプごとにスキーマ・オブジェクトの数をリストします。

  • OBJECT_LIST: オフライン・データベースのすべてのスキーマ・オブジェクトをリストします。

  • TABLE_COLUMNS: すべての表を列情報とともにリストします。

  • TABLE_COLUMN_COUNT: すべての表を列数とともにリストします。

  • TABLE_NO_PKS: 主キーが定義されていないすべての表を表示します。

事前作成レポート・ウィザードを実行すると、選択した各事前作成レポートの個別ファイルが指定した場所に生成され、このファイルが「リソース」の下のアプリケーション・ナビゲータにリストされます。

事前作成レポートの1つに対する問合せを調べるには、新規オフライン・データベース・レポート定義を作成し、この基準をこの事前作成レポートに設定します。また、事前作成レポートに基づいて新規レポートを作成することもできます。


注意:

現在プロジェクトの外部にある場所を指定する場合、レポートは生成されますが、これらはアプリケーション・ナビゲータにリストされません。これらのファイルの名前はpre-built-report.reportになり、これらはXMLファイルとして構成されます。


事前定義レポートの使用方法:

  1. アプリケーション・ナビゲータで、アプリケーションおよびプロジェクトを開きます。

  2. オフライン・データベースを右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

  3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

  4. 「事前作成レポート」を選択し、事前作成レポート・ウィザードを起動します。

  5. 生成するレポートを選択し、必要に応じて「次へ」をクリックし、レポートを実行するオフライン・データベースを変更します。

  6. 「終了」をクリックします。選択したレポートがオフライン・データベース・ノードの下のアプリケーション・ナビゲータにリストされます。

事前定義レポートを編集するには、次のようにします。

  1. アプリケーション・ナビゲータで、アプリケーション、プロジェクトおよびオフライン・データベースを開きます。

  2. レポートを右クリックして「プロパティ」を選択し、「レポートの編集」ダイアログを開きます。ここで、プロパティを調べて変更できます。

  3. 「レポート定義」ページで、レポートの名前を変更します。必要に応じて、他の詳細を変更します。たとえば、レポートを実行するオフライン・データベースを変更できます。

  4. レポートのSQL問合せを変更するには、「問合せ定義」ページでSQLを変更するか、「問合せ定義」ノードを開き、SQL問合せを宣言して定義します。「問合せ定義」ページの「構文チェック」ボタンを使用すると、SQL解析を確認できます。

  5. 問合せにパラメータを追加するには、「レポート・パラメータ」ページを使用します。

  6. レポートが公開される書式を変更するには、「レポートの公開」ページを使用します。

事前作成レポートを実行するには、次のようにします。

  • アプリケーション・ナビゲータで、レポートを右クリックし、「実行」を選択します。指定したオフライン・データベースに対してレポートが実行されます。結果は、「レポート・ログ」ウィンドウ(デフォルト)に表示されるか、「レポートの編集」ダイアログの「レポートの公開」ページで選択した場所および書式で表示されます。

27.2.1.14.3 レポート定義の定義方法

独自のレポート定義を定義できます。問合せを最初から定義することも、既存のレポートまたは事前作成レポートの1つを基準として新規レポート定義を定義することもできます。

レポート定義のみを作成するよう指定できます。または、レポート定義の実行時にカンマ区切りのファイルを作成したり、書式設定されたHTML文書を作成するよう指定できます。

HTML文書の生成を選択する場合、必要に応じて、CSSファイルが使用されるよう指定したり、HTML文書の本体を書式設定するデフォルトのボイラープレート・テキストを編集できます。

レポートを作成するには、次のようにします。

  1. アプリケーション・ナビゲータで、アプリケーションおよびプロジェクトを開きます。

  2. オフライン・データベースを右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

  3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

  4. 「レポート」を選択し、レポートの作成ウィザードを起動します。

  5. レポートの名前を入力し、レポート詳細を事前作成レポートと既存のレポートのどちらかからコピーするか、または新規レポートを最初から作成するかを選択します。

  6. 「オフライン・データベース」ページでレポートを実行するオフライン・データベースを変更します。

  7. 「問合せ定義」ページでレポートに対するSQL問合せを作成または調査します。「問合せ定義」ノードの下のページを使用して、SQL問合せを宣言して作成できます。

  8. レポートでパラメータを使用するには、これらを「レポート・パラメータ」ページに入力します。

  9. 「終了」をクリックします。新規レポートがオフライン・データベース・ノードの下のアプリケーション・ナビゲータにリストされます。

レポートを実行するには、次の手順を実行します。

  • アプリケーション・ナビゲータで、レポートを右クリックし、「実行」を選択します。指定したオフライン・データベースに対してレポートが実行されます。結果は、「レポート・ログ」ウィンドウ(デフォルト)に表示されるか、「レポートの編集」ダイアログの「レポートの公開」ページで選択した場所および書式で表示されます。

27.2.1.14.4 HTMLレポートを使用したボイラープレート・テキストの使用方法

JDeveloperには、レポートの書式設定時に役に立つボイラープレート・コードが用意されており、これには3つの新規HTMLタグが含まれます。

  • <report/>: レポート出力を定義します。

  • <query/>: レポートの生成に使用される問合せのテキストを定義します。

  • <rows/>: レポートの行数です。

用意されているボイラープレート・コードは、次のとおりです。

例27-1 ユーザー定義レポートのボイラープレート・コード

<h1>Table Report</h1>
<p>Query used:</p>
<pre><query/></pre>
<p>The report output is:</p>
<report/>
<p>Report complete. <rows/> row(s) returned.</p>

「レポートの作成」または「レポートの編集」ダイアログでこれを編集すると、レポートをカスタマイズできます。

27.2.1.14.5 ユーザー定義レポートの編集方法

定義済レポートのプロパティを変更できます。

  • レポートの名前、またはレポートが格納されるディレクトリを変更します。

  • 使用するデータベース接続を変更します。

  • レポートに対する問合せを定義するためのパラメータを使用します。

  • レポートを公開する書式を選択します。

レポートを編集するには:

  1. アプリケーション・ナビゲータで、アプリケーション、プロジェクトおよびオフライン・データベースを開きます。

  2. レポートを右クリックして「プロパティ」を選択し、「レポートの編集」ダイアログを開きます。ここで、プロパティを調べて変更できます。

27.2.1.15 UMLモデルからの変換

UMLクラス・モデルからのオフライン・データベース・オブジェクト・ウィザードを使用して、UMLクラス・モデルをオフライン・データベース・モデルに変換できます。詳細は、第22.7.1項「UMLとオフライン・データベースの変換方法」を参照してください。

27.2.1.16 ソース・コントロール・システムのオフライン・データベース・オブジェクトの使用

JDeveloperは、チームでの開発のための機能を複数提供します。これには、バージョン・コントロール・ソフトウェア・システムなどがあります。詳細は、第6章「ソース・コントロールを使用したアプリケーションのバージョニング」を参照してください。

オフライン表定義は、ソース・コントロール・システムを使用してバージョン管理および共有できます。JDeveloperには、オフライン表定義を使用するために最適化された比較ツールが用意されています。

  • 任意のオフライン・データベース・オブジェクトを比較できます。前のバージョンと比較したり、完全バージョン履歴を取得し、任意の2つのバージョンを比較できます。

  • 名前変更およびオブジェクトのアイデンティティを追跡できます。

  • 一貫性を確認できます。次はその例です。

    • キー内で使用される列が削除されないようにします。

    • 存在しない列を使用する制約は追加されません。

    • 主キー列はオプションにできません。


    注意:

    たとえば、列に対する制約の依存性を確認するために、ソース・コントロール・システムを使用してオフライン・データベースのバージョンを比較することのみが可能ですが、オフライン・データベース・オブジェクトからSQLを生成ウィザードを使用して変更をデータベースにコミットする前に変更を手動で調整できます。詳細は、第27.2.1.12項「データベースに対するオフライン・データベース・オブジェクトの生成方法」を参照してください。


27.2.2 データベース・オブジェクトでの作業

データベース・ナビゲータでデータベース接続内のデータベース・オブジェクトを作成できます。

データベース・オブジェクトを作成するには、データベース接続が必要です。また、この接続の作成に使用するユーザー名は、適切な権限(CREATE、DROPなど)を付与されるか、接続作成権限を持つ管理者などのロールを付与されることにより、データベース・オブジェクトを作成するための権限を持つ必要があります。

Oracle Databaseオブジェクトの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

データベース・ナビゲータでデータベース・オブジェクトを作成するには、次のようにします。

  1. 必要な場合は、「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

  2. 「IDE接続」または「application」を開き、データベース接続を開きます。

  3. 作成するデータベース・オブジェクト・タイプのノードにナビゲートします。右クリックし、ポップアップ・メニューから「新規オブジェクト」を選択します。

    または、「ファイル」→「新規」をクリックして、「新規ギャラリ」を開きます。「新規ギャラリ」で、「データベース層」を開き、「データベース・オブジェクト」を選択します。作成するオフライン・データベース・オブジェクト・タイプを選択し、「作成」ダイアログまたはウィザードを起動します。

  4. 「オブジェクトの作成」ダイアログを完了します。

    詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

データベース・オブジェクトを編集するには、次のようにします。

  1. 必要な場合は、「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

  2. 「IDE接続」または「application」を開き、次にデータベース接続を開き、編集するノードおよびデータベース・オブジェクトにナビゲートします。

  3. 右クリックし、「編集」を選択し、「オブジェクトの編集」ダイアログを開きます。

    詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

データベース・オブジェクトを削除するには、次のようにします。

  1. 必要な場合は、「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

  2. 「IDE接続」または「application」を開き、次にデータベース接続を開き、削除するノードおよびデータベース・オブジェクトにナビゲートします。

  3. 右クリックし、「削除」を選択します。

27.2.3 データベース・レポートの使用

JDeveloperでは、データベースとそのオブジェクトに関する多くの事前定義レポートを使用できます。また、独自のユーザー定義データベース・レポートを作成できます。

データベースに最新情報を問い合せるデータベース・レポートは、データベース・レポート・ナビゲータから実行されます。詳細は、第25.3項「データベース・レポート・ナビゲータの使用」を参照してください。

27.3 オフライン・オブジェクトおよびデータベース・オブジェクトからのスクリプトの作成

データベース・オブジェクトおよびオフライン・データベース定義をSQLスクリプトに生成できます。また、表をOracle MetaBase (OMB)スクリプトに生成し、これらをOracle Warehouse Builderにインポートすることもできます。

27.3.1 SQLスクリプトの作成方法

SQLスクリプトは、アプリケーション・ナビゲータのオフライン・データベース定義から、またはデータベース・ナビゲータのデータベース・オブジェクトから作成できます。

アプリケーション・ナビゲータのオフライン・データベース定義から、またはデータベース・ナビゲータのデータベース・オブジェクトからSQLスクリプトを作成するには、次のようにします。

  1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択し、データベース接続およびスキーマを開き、スクリプトの作成元のデータベース・オブジェクトを右クリックします。

    または

    「表示」→「アプリケーション・ナビゲータ」を選択し、スクリプトの作成元のオフライン・データベース定義にナビゲートします。

  2. 「SQLスクリプトに生成」を選択します。

  3. 「操作の選択」ページで「データベース・オブジェクトからSQLを生成」ダイアログが開きます。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

  4. ダイアログを完了します。スクリプトが作成され、SQLワークシートに開かれます。

27.3.2 表からのOMBスクリプトの作成方法

アプリケーション・ナビゲータのオフライン表からOracle Warehouse Builder用のOracle MetaBase (OMB)スクリプトとして書式設定されたスクリプトを作成できます。

スクリプトのデフォルト名はomb_scriptn.tclです。このスクリプトは、現在プロジェクトに生成され、ナビゲータで生成元の表と同じオフライン・データベースの下に表示されます。

アプリケーション・ナビゲータで表からOMBスクリプトを作成するには、次のようにします。

  1. 「表示」→「アプリケーション・ナビゲータ」を選択し、スクリプトの作成元の1つ以上のオフライン表にナビゲートします。

  2. 「OMBスクリプトに生成」を選択します。スクリプトが作成され、ソース・エディタに開かれます。