データ・メディエーター・サービスのメタデータ
データ・メディエーター・サービス (DMS) は、バックエンド・データベースへ接続するサービス・データ・オブジェクト (SDO) コンポーネントです。 これは、バックエンド固有のメタデータにより作成されます。メタデータは、バックエンドに対して使用される照会と同様に、DMS によって作成される DataGraph の構造を定義します。
メタデータは以下のコンポーネントで構成されます。
- 表
- これはターゲット・データベース内のテーブルを表し、以下の項目で構成されています。
- 名前
- これはデータベース・テーブルの名前です。 表はまた、プロパティー名を持っていて、この名前を使用してこのテーブルに対応する DataObject の名前を指定します。 デフォルトでは、プロパティー名はテーブル名と同じです。
- 列
- データベースから戻るデータベース・テーブル列のサブセット 列は JDBC タイプに対応するタイプを持っていて、ヌル・エントリーを禁止することが可能です。 列は、データベース内の名前に対応する名前と、DataObject 内の列名を識別するオプションのプロパティー名を持っています。 デフォルトでは、プロパティー名はデータベース内の列名と同じです。
- 1 次キー
- テーブル内の行を一意的に識別するために使用される列 (複数の場合
もあり)。
注: キーは複数の列から構成されている場合があります。 以下の例は、複合 1 次キーの作成を図示しています。
テーブルがこのキーと関連していて、 子テーブルである場合、同じメソッドを使用してこの座標テーブルをポイントする外部キーを作成します。Key pk = MetadataFactory.eINSTANCE.createKey(); pk.getColumns().add(xColumn); pk.getColumns().add(yColumn); coordinateTable.setPrimaryKey(pk);
- 外部キー
- テーブルをメタデータ内の他のテーブルと関連付けるために使用され
る列 (複数の場合もあり)。
複合 1 次キーと外部キーの間に、想定された定位置マッピングがあります。
例えば、親テーブルがそれぞれのタイプ (整数、ストリング) で (x,y)
のような 1 次キーを持っている場合、ポインティング外部キーもどれでも同
じくそれぞれのタイプ (整数、ストリング) で (x,y) であることが予想されます。
注: キーは複数の列から構成されている場合があります。 以下の例は、複合外部キーの作成を図示しています。
テーブルがこのキーと関連していて、 子テーブルである場合、同じメソッドを使用してこの座標テーブルをポイントする外部キーを作成します。Key fk = MetadataFactory.eINSTANCE.createKey(); fk.getColumns().add(xColumn); fk.getColumns().add(yColumn); coordinateTable.getForeignKeys().add(fk);
- フィルター
- 後で入力するパラメーターとともに、またはパラメーターなしで与えられ る Structured Query Language (SQL) WHERE 文節述部。 これは DataGraph SELECT ステートメント WHERE 文節に追加されます。 どんな方法でも解析されたり解釈されたりしません。現状のまま使用されます。 後で入力するパラメーターとともに与えられた場合は、これらのパラメーターは DataGraph を入手したときに JDBC DMS 内に渡される引数になります。 フィルターは生成された照会のみで使用されます。 提供された照会が与えられた場合は、メタデータ・フィルターは無視されます。
- 関係
- 親テーブルの 1 次キーおよび子テーブルの外部キーを介して 2 つのテ
ーブルを関係付けます。
関係は以下の項目から構成されています。
- 名前
- これはその関係に与えられた名前で、通常 2 つのテーブルの関係の 仕方に関わっています。 Customers が親テーブルで、Orders が子テーブルである場 合、その関係のデフォルト名は Customers_Orders です。
- 対向名
- これは、子 DataObject から親 DataObject へナビゲートするために使用される名前です。
- 親キー
- 親テーブルの 1 次キー。
- 子キー
- 親キーをポイントする子テーブルの外部キー。
- 排他的
- デフォルトでは Relationship により、生成された照会は、関係内で 起動された 2 つのテーブル上の inner join 操作を使用します。 すなわち、子を持つ親エントリーのみを戻します。すなわち、子エントリーはそれらをポイントしています。 Exclusive 属性の値が false に設定されると、照会は代わりに left outer join 操作を使用して、子がないものでも、すべての親エントリーを戻します。
- 配列
- テーブルの配列に使用された列。 昇順または降順のどちらかが可能。 指定されると、生成された照会が ORDER BY 文節を含むようにさせます。