情報カタログに記述データを入力する最も簡単な方法は、すでにある組織の情報の記述を使うことです。多くのデータベースやデスクトップのアプリケーションには、役に立つ記述データがすでに入っており、それらを情報カタログに転送することができます。
情報カタログ・マネージャー・タグ言語を使用して、次のことができます。
さらに、記述データを抽出すれば、情報カタログの更新や作り直しが簡単になります。
ASCII テキスト・ファイルのインポートとエクスポートが可能なワード処理プログラムを使用することで、タグ言語ファイルを編集できます。
情報カタログ・マネージャーには、さまざまなソースから記述データを抽出できる一組のプログラムが付いています。情報カタログ・マネージャーを最初にインストールするとき、または任意の時点でこれらの抽出プログラムをインストールできます。情報カタログ・マネージャー (Windows 版) は、\SQLLIB\SAMPLES\DGEXTxxx サブディレクトリーにそれらを置きます。
抽出プログラムを使うには、それらが実行される特定の操作環境についてよく知っていなければなりません。必要とする特定の抽出プログラムの実行については、付録 A, 情報カタログ・マネージャー抽出プログラムを参照してください。
既存のデータ・カタログに対し情報カタログ・マネージャーが抽出プログラムを提供していない場合、そこからデータをコピーしたければ、抽出プログラムを作成する必要があります。この抽出プログラムでは、記述データを情報カタログ・マネージャー・タグ言語に変換しなければなりません。そうすることで、その記述データをオブジェクト・タイプおよびオブジェクトとして情報カタログ・マネージャーに直接インポートすることができます。
すでにあるデータの形式がデフォルトの入力形式です。抽出プログラムは、出力としてタグ言語ファイルを生成しなければなりません。ただし、抽出プログラムが生成しなければならないタグ言語の出力は、情報源のどの特性を含めるかによって決まります。
この出力タグ言語ファイルには、次のタグの一部または全部を入れることができます。
情報カタログ・マネージャー・タグ言語の詳細については、 付録 D, タグ言語と付録 E, タグ言語ファイルの使い方を参照してください。
1 つまたは複数のディスケットにタグ言語ファイルを保管する場合は、ユーザーの抽出プログラムは :DISKCNTL. タグを、タグ言語ファイルの先頭に置いて、情報カタログ・マネージャーが何枚のディスケットがユーザーのファイルを含んでいるかを知ることができるようにします。
たとえば、最初のディスケットに次のように指定します。
:DISKCNTL.SEQUENCE(1, +)
:DISKCNTL. タグが、各ディスケットのファイルの最初のタグでなければなりません。
情報カタログ・マネージャーでは、記述データはオブジェクトの特性として保管されます。オブジェクト・タイプは、それぞれのオブジェクトが持つ一組の特性を記述します。一組の未定義の特性を含む記述データを抽出する場合、抽出プログラムはオブジェクト・タイプを作成するタグ言語を生成しなければなりません。
たとえば、あるデータベース・カタログに、そのデータベースにある表がいくつか記述されており、
次の特性を情報カタログに保管したいとします。
これらの特性を持つオブジェクト・タイプを作り出すには、抽出プログラムが作成するタグ言語に、図 11 に示すようなタグが含まれていなければなりません。
図 11. オブジェクト・タイプを作成するために抽出プログラムから出力されたタグ言語
:ACTION.OBJTYPE(ADD) :OBJECT.TYPE(MYTABLE) CATEGORY(GROUPING) EXTNAME(The tables on my data source) :PROPERTY.EXTNAME(Data source name) DT(C) DL(8) SHRTNAME(DSNAME) UUISEQ(2) NULLS(N) :PROPERTY.EXTNAME(Name of the table) DT(C) DL(10) SHRTNAME(TABNAME) UUISEQ(1) NULLS(N) :PROPERTY.EXTNAME(Description of table) DT(V) DL(80) SHRTNAME(TABDESC) NULLS(Y) :PROPERTY.EXTNAME(Owner of table) DT(V) DL(8) SHRTNAME(TABOWNER) NULLS(Y) |
新しいオブジェクト・タイプを生成する場合、UUISEQ オプションを持つ特性のうち、少なくとも 1 つは 1 の値を指定しなければなりません。
UUISEQ オプションが 2、3、4、または 5 の値である追加特性を 4 つまで指定できます。 UUISEQ は、UUI における特性の位置を指定します。これにより、オブジェクトは情報カタログに対して固有に識別されます。
データベース・カタログに、情報カタログに保管したい 3 つの表の記述データがあるとします。抽出プログラムは、データベース・カタログからこれら 3 つの記述データを読み取ることができます。また、タグ言語ファイルを書いて、オブジェクト・タイプ MYTABLE を持つ 3 つのオブジェクトを生成することもできます。
ソース名 | 表名 | 表の説明 | 所有者 |
---|---|---|---|
MYDATA | EMPLOYEE | 従業員の個人情報 | LONGO |
MYDATA | SALES | 2000 年の売上高のデータ | VALDEZ |
MYDATA | CUSTOMER | 顧客の情報通知 | MARSH |
抽出プログラムは、図 12 に示すように、タグを作り出さなければなりません。これらのタグは、タグ言語の中で、オブジェクト・タイプを定義するタグの後に挿入しなければなりません。
図 12. オブジェクト・タイプ MYTABLE のためのタグ言語出力
:ACTION.OBJINST(ADD) :OBJECT.TYPE(MYTABLE) :INSTANCE.NAME(Personnel information) DSNAME(MYDATA) TABNAME(EMPLOYEE) TABDESC(Personnel information about company employees) TABOWNER(LONGO) :INSTANCE.NAME(Annual sales information) DSNAME(MYDATA) TABNAME(SALES) TABDESC(Data about 1997 sales-to-date) TABOWNER(VALDEZ) :INSTANCE.NAME(Customer shipping information) DSNAME(MYDATA) TABNAME(CUSTOMER) TABDESC(Shipping information about customers) TABOWNER(MARSH) |
既存のオブジェクト・タイプ定義の再利用: 情報カタログ・マネージャーに付属のオブジェクト・タイプ定義を生成するために使用されるタグ言語を、独自の抽出プログラムにコピーまたは組み込むことができます。タグ言語は DB2 ユニバーサル・データベースをインストールしたドライブの SQLLIB\DGWIN\TYPES ディレクトリーにあります。データウェアハウスセンターに組み込まれているその他のメタデータ・テンプレートについては、データウェアハウスセンター アプリケーション統合の手引き を参照してください。
情報カタログをリフレッシュするために記述データを抽出する際に、抽出プログラムを何度も使用することがあります。この場合、オブジェクト・タイプやオブジェクトを組み合わせることにより、タグ言語ファイルをインポートするたびに新しいオブジェクトを追加しなくても済むようにすることが大切です。
2 つの情報カタログに同じオブジェクト・タイプがある場合、まず、そのオブジェクト・タイプを組み合わせなければ、オブジェクトを組み合わせることはできません。それらの情報カタログに同じオブジェクト・タイプがあるかどうかが確かでない場合でも、オブジェクト・タイプを組み合わせるべきです。
たとえば、「表」オブジェクト・タイプを持つある情報カタログの内容 (ソース) を、やはり「表」オブジェクト・タイプを持つ別の情報カタログ (ターゲット) へインポートしたいとします。それらのオブジェクト・タイプが同じ特性を持っているかどうかは確かではないとします。オブジェクトを組み合わせるには、それらのオブジェクト・タイプの定義が同じでなければなりません。オブジェクト・タイプが同じ特性であれば、問題なく組み合わせることができます。そうでない場合には、UUI 特性が同じでなければなりません。さらに、ソースの情報カタログにあるオブジェクト・タイプのすべての特性は、ターゲットの情報カタログにあるオブジェクト・タイプの特性と一致しなければなりません。
ソースの情報カタログにあるオブジェクト・タイプの方がターゲットの情報カタログにあるオブジェクト・タイプよりも多くの特性を持っている場合には、 2 つを組み合わせる前にターゲットの情報カタログにあるオブジェクト・タイプを更新することができます。
オブジェクト・タイプおよびオブジェクトを組み合わせるには、抽出プログラムでタグを作成しなければなりません。 図 13 は、これを示しています。組み合わせの処理において、情報カタログ・マネージャーは、オブジェクト・タイプの外部名またはそのアイコンは更新しません。
図 13. オブジェクト・タイプを組み合わせるためのタグ言語出力
:ACTION.OBJTYPE(MERGE) :OBJECT.TYPE(short_name_of_object_type) CATEGORY(category_of_object type) EXTNAME(extended_name_of_object_type) ICOFILE(OS/2_icon_file_name) ICWFILE(Windows_icon_file_name) :PROPERTY.SHRTNAME(short_name) DT(data_type) DL(size) UUISEQ(position_in_UUI) NULLS(y_or_n) EXTNAME(extended_name) |
制限
プログラム・オブジェクト・タイプまたはコメント・オブジェクト・タイプを組み合わせることはできません。
オブジェクトを組み合わせるには、 図 14 に示すタグをユーザーの抽出プログラムで作成しなければなりません。
:ACTION.OBJINST(MERGE) :OBJECT.TYPE(short_name_of_object_type) :INSTANCE.NAME(extended_name_of_object) UUI_short_name(value_for_property) . . short_name(value_for_property) . . |
情報カタログ・マネージャーはタグ言語ファイルをインポートするとき、タグ言語ファイルに定義した記述データを情報カタログ・データベースに保管します。しかし、情報カタログ・マネージャーは、 タグ言語ファイルの終わりに達するまで、データベースに対しこれらの追加を自動的にはコミットしません。情報カタログ・マネージャーは、チェックポイント・タグ (:COMMIT.) を探します。このタグは、データベースへコミット・コールを出すように指示します。タグ言語ファイルが長い場合には、抽出プログラムで、 :COMMIT. タグをタグ言語ファイルの中に一定の間隔で入れてください。それぞれのチェックポイント・タグには、タグ言語ファイル中で固有な識別子が必要です。
たとえば、抽出プログラムに :COMMIT. タグを、 :ACTION. タグを完全に指定した後に (アクションに対し指定が必要なすべての情報の後に)、含めたい場合があります。プログラムは、オブジェクト・タイプやオブジェクトを作成するタグをすべて作成したあとで、 :COMMIT. タグをタグ言語ファイルに入れることができます。
情報カタログ・マネージャーがタグ言語ファイルの一部をインポートできなかった場合には、ファイルの残りを正常なチェックポイントからインポートする必要があります。情報カタログ・マネージャーヘ、データベースに対し最後のチェックポイントの時点までロールバックします。このファイルを再びインポートしようとすると、情報カタログ・マネージャーは、最後にコミットしたチェックポイントの ID に一致するチェックポイントから開始します。たとえば、タグ言語ファイルで、オブジェクト・タイプを作成するタグの後ろに、プログラムで次のチェックポイントを入れることができます。
:COMMIT.CHKPID(objtype1)
抽出プログラムが特性の値を生成するとき、情報カタログ・マネージャーは前のブランクを取り除きません。たとえば、8 バイト以下に定義された特性に対し、プログラムが TABNAME (EMPLOYEE) ではなく TABNAME ( EMPLOYEE) を生成すると、情報カタログ・マネージャーは、エラー・メッセージを戻します。これは、値の長さが 10 バイトで、オブジェクト・タイプ定義で TABNAME 特性に定義した 8 バイトではないからです。
抽出プログラムが、括弧を含む値を持つタグ言語を生成しなければならない場合には、これらの括弧を単一引用符で囲みます。そうしないと、括弧は区切り文字と見なされます。たとえば、値が電話番号 (03) 5555-1234 だとすると、抽出プログラムは、この値を PHONENUM'('03')' 5555-1234 と表さなければなりません。
情報カタログ・マネージャーはタグ言語ファイルをインポートするとき、 16 進値で X'20' より小さい文字はすべて無視します。記述データに含めることができるのは、英数字かタイム・スタンプだけです。