(57)【要約】  データベースから異なるタイプの複数の関連したオブジェクトのメタデータを抽出するための方法は、異種のオブジェクトタイプを、異なるタイプのデータベースオブジェクトの集合として定義するステップを含む。特定の異種のオブジェクトを取出せという要求があると、異種のオブジェクトのメンバオブジェクトが、特定の異種のオブジェクトを再作成するための有効な順序等の、異種のオブジェクトのタイプの定義に基づいた特定の順序で、特定の異種のオブジェクトから取出される。取出されるメンバオブジェクトの組は、少なくとも１つの指定されたフィルタに従って限定することができ、このフィルタ自体は、取出されるメンバオブジェクトのタイプに従って第２のフィルタに変換され得る。このような変換されたフィルタは、特定の異種のオブジェクトタイプの要求において指定されたフィルタから値を継承することができ、またはいくつかのデータタイプの固定値を有することができる。抽出されたメタデータは、特定の異種のオブジェクトを再作成するように書式設定することができる。
2005512235.tif 000002
【特許請求の範囲】
【請求項１】
データベースから異なるタイプの複数の関連したオブジェクトのメタデータを抽出するための方法であって、
異種のオブジェクトタイプを、異なるタイプのデータベースオブジェクトの集合として定義するステップと、
特定の異種のオブジェクトを取出せという要求があると、異種のオブジェクトのタイプの定義に基づいた特定の順序で、前記特定の異種のオブジェクトからメンバオブジェクトを取出すステップとを含む、メタデータを抽出するための方法。
【請求項２】
前記特定の順序は、前記特定の異種のオブジェクトを再作成するために有効な順序である、請求項１に記載の方法。
【請求項３】
異種のオブジェクトタイプは、テーブルエクスポートタイプである、請求項１に記載の方法。
【請求項４】
異種のオブジェクトタイプは、データベースエクスポートタイプである、請求項１に記載の方法。
【請求項５】
異種のオブジェクトタイプは、スキーマエクスポートタイプである、請求項１に記載の方法。
【請求項６】
異種のオブジェクトタイプは、テーブルスペースエクスポートタイプである、請求項１に記載の方法。
【請求項７】
異種のオブジェクトタイプは、別の異種のオブジェクトタイプを含む、請求項１に記載の方法。
【請求項８】
少なくとも１つの指定されたフィルタに従って、取出されるメンバオブジェクトの組を限定するステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記少なくとも１つの指定されたフィルタは、取出されるメンバオブジェクトのタイプに従って、第２のフィルタに変換される、請求項８に記載の方法。
【請求項１０】
第１のテーブルにおいて、異種のオブジェクトタイプを指定するステップと、
第２のテーブルにおいて、所与の異種のオブジェクトタイプのメンバタイプが戻される前記特定の順序を定義するステップと、
取出コマンドが出ると、前記第２のテーブルで定義された前記特定の順序に従ってメンバオブジェクトを取出すステップとをさらに含む、請求項１に記載の方法。
【請求項１１】
第３のテーブルにおいて、特定の異種のオブジェクトタイプに適用することのできるフィルタを指定するステップをさらに含む、請求項１０に記載の方法。
【請求項１２】
第４のテーブルにおいて、個々のメンバオブジェクトタイプのフィルタ変換を指定するステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
変換されたフィルタは、前記特定の異種のオブジェクトタイプのために指定されたフィルタからフィルタ値を継承する、請求項１２に記載の方法。
【請求項１４】
前記第４のテーブルにおいて定義されたフィルタは、固定のテキスト値を有する、請求
項１２に記載の方法。
【請求項１５】
第４のテーブルにおいて定義されたフィルタは、固定のブール値を有する、請求項１２に記載の方法。
【請求項１６】
前記メタデータをマークアップ言語形式に戻すステップをさらに含む、請求項１に記載の方法。
【請求項１７】
前記マークアップ言語形式はXMLである、請求項１６に記載の方法。
【請求項１８】
前記マークアップ言語形式のデータを、前記特定の異種のオブジェクトを再作成するために書式設定されたステートメントに変換するステップをさらに含む、請求項１６に記載の方法。
【請求項１９】
リレーショナルデータベースからオブジェクトメタデータを取出すための方法であって、
前記データベース内の論理ユニットのためのメタデータを求める一度の要求を受けるステップを含み、前記論理ユニットは異なるタイプの複数のオブジェクトを含み、前記方法はさらに、
要求された前記メタデータを抽出するステップと、
前記論理ユニットを再作成することのできる順序に抽出された前記メタデータを戻すステップとを含む、オブジェクトメタデータを取出すための方法。
【請求項２０】
前記論理ユニットは、テーブルおよびその従属オブジェクトを含む、請求項１９に記載の方法。
【請求項２１】
従属オブジェクトは制約条件である、請求項２０に記載の方法。
【請求項２２】
従属オブジェクトはインデックスである、請求項２０に記載の方法。
【請求項２３】
従属オブジェクトは認可である。請求項２０に記載の方法。
【請求項２４】
前記論理ユニットは、スキーマにおけるすべてのオブジェクトを含む、請求項１９に記載の方法。
【請求項２５】
前記論理ユニットは、前記データベースにおけるすべてのオブジェクトを含む、請求項１９に記載の方法。
【請求項２６】
抽出された前記メタデータを用いて、別のデータベースでオブジェクトの前記論理ユニットを再作成するステップをさらに含む、請求項１９に記載の方法。
【請求項２７】
前記要求は、少なくとも１つの異種のオブジェクトタイプのフィルタを指定し、前記方法は、
前記少なくとも１つの異種のオブジェクトタイプのフィルタに基づいて、抽出されるオブジェクトを限定するステップをさらに含む、請求項１９に記載の方法。
【請求項２８】
前記異種のオブジェクトタイプのフィルタを、メンバオブジェクトタイプのメンバオブジェクトフィルタに変換するステップと、
前記メンバオブジェクトフィルタに基づいて、前記メンバオブジェクトタイプのメンバオブジェクトを限定するステップとをさらに含む、請求項２７に記載の方法。
【請求項２９】
前記メンバオブジェクトのフィルタ値は、前記異種のオブジェクトタイプのフィルタから継承される、請求項２８に記載の方法。
【請求項３０】
前記メンバオブジェクトのフィルタ値を固定値として指定するステップをさらに含む、請求項２８に記載の方法。
【請求項３１】
前記固定値はブール値である、請求項３０に記載の方法。
【請求項３２】
前記固定値はテキスト値である、請求項３０に記載の方法。
【請求項３３】
前記一度の要求は、一度のOPENコマンド、一度のCLOSEコマンド、および少なくとも一度のFETCHコマンドを含む、請求項１９に記載の方法。
【請求項３４】
異なるタイプの複数の関連したオブジェクトが定義されるデータベース管理システムであって、
プロセッサと、
前記プロセッサと通信する記憶システムとを含み、前記記憶システムは、
少なくとも１つの異種のオブジェクトタイプを、異なるタイプのメンバデータベースオブジェクトの集合として定義し、
前記少なくとも１つの異種のオブジェクトタイプのメンバオブジェクトタイプを、指定された順序で取出すための順序を指定する、データベース管理システム。
【請求項３５】
指定された前記順序は、特定の異種のオブジェクトを再作成するのに有効な順序である、請求項３４に記載のデータベース管理システム。
【請求項３６】
異種のオブジェクトタイプは、テーブルエクスポートタイプである、請求項３４に記載のデータベース管理システム。
【請求項３７】
異種のオブジェクトタイプは、データベースエクスポートタイプである、請求項３４に記載のデータベース管理システム。
【請求項３８】
異種のオブジェクトタイプは、スキーマエクスポートタイプである、請求項３４に記載のデータベース管理システム。
【請求項３９】
異種のオブジェクトタイプは、テーブルスペースエクスポートタイプである、請求項３４に記載のデータベース管理システム。
【請求項４０】
異種のオブジェクトタイプは、別の異種のオブジェクトタイプを含む、請求項３４に記載のデータベース管理システム。
【請求項４１】
異種のオブジェクトタイプと関連した前記フィルタをさらに含み、取出される前記異種のオブジェクトタイプのメンバオブジェクトの組は、前記フィルタに従って限定される、請求項３４に記載のデータベース管理システム。
【請求項４２】
取出されるメンバオブジェクトのタイプに従って、少なくとも１つの指定されたフィルタを第２のフィルタに変換するフィルタ変換装置をさらに含む、請求項４１に記載のデータベース管理システム。
【請求項４３】
異種のオブジェクトタイプを指定する第１のテーブルと、
所与の異種のオブジェクトタイプのメンバタイプが戻される前記順序を指定する第２のテーブルとをさらに含む、請求項３４に記載のデータベース管理システム。
【請求項４４】
前記特定の異種のオブジェクトタイプに適用することのできるフィルタを指定する第３のテーブルをさらに含む、請求項４３に記載のデータベース管理システム。
【請求項４５】
個々のメンバオブジェクトタイプのフィルタを変換する第４のテーブルをさらに含む、請求項４４に記載のデータベース管理システム。
【請求項４６】
変換されたフィルタは、前記特定の異種のオブジェクトタイプのために指定されたフィルタからフィルタ値を継承する、請求項４５に記載のデータベース管理システム。
【請求項４７】
前記第４のテーブルで定義されたフィルタは、固定のテキスト値を有する、請求項４５に記載のデータベース管理システム。
【請求項４８】
前記第４のテーブルで定義されたフィルタは、固定のブール値を有する、請求項４５に記載のデータベース管理システム。
【請求項４９】
前記メタデータは、マークアップ言語形式に戻されるステップをさらに含む、請求項３４に記載のデータベース管理システム。
【請求項５０】
前記書式設定されたマークアップ言語はXMLである、請求項４９に記載のデータベース管理システム。
【請求項５１】
前記マークアップ言語形式のデータを、前記特定の異種のオブジェクトを再作成するために書式設定されたステートメントに変換する変換装置をさらに含む、請求項４９に記載のデータベース管理システム。
【請求項５２】
取出すデータを記憶するためのデータベース管理システムであって、
前記データベース内の論理ユニットのためのメタデータを求める一度の要求を受けるインターフェイスを含み、前記論理ユニットは異なるタイプの複数のオブジェクトを含み、前記データベース管理システムはさらに、
要求された前記メタデータを抽出する抽出器と、
抽出された前記メタデータを書式設定し、かつ指定された順序に戻すフォーマッタとを含む、データベース管理システム。
【請求項５３】
指定された前記順序は、前記論理ユニットを再作成することのできる順序である、請求項５２に記載のデータベース管理システム。
【請求項５４】
前記論理ユニットは、テーブルおよびその従属オブジェクトを含む、請求項５２に記載のデータベース管理システム。
【請求項５５】
従属オブジェクトは制約条件である、請求項５４のデータベース管理システム。
【請求項５６】
従属オブジェクトはインデックスである、請求項５４に記載のデータベース管理システム。
【請求項５７】
従属オブジェクトは認可である、請求項５４に記載のデータベース管理システム。
【請求項５８】
前記論理ユニットは、スキーマにおけるすべてのオブジェクトを含む、請求項５２に記
載のデータベース管理システム。
【請求項５９】
前記論理ユニットは、前記データベースにおけるすべてのオブジェクトを含む、請求項５２に記載のデータベース管理システム。
【請求項６０】
抽出された前記メタデータは、別のデータベースでオブジェクトの論理ユニットを再作成するために使用される、請求項５２に記載のデータベース管理システム。
【請求項６１】
前記抽出器は、前記要求において指定された異種のオブジェクトタイプのフィルタに基づくオブジェクトに限定される、請求項５２に記載のデータベース管理システム。
【請求項６２】
前記異種のオブジェクトタイプのフィルタを、メンバオブジェクトタイプと関連したメンバオブジェクトフィルタに変換するフィルタ変換器をさらに含み、前記抽出器は、前記メンバオブジェクトフィルタに基づく前記メンバオブジェクトタイプのメンバオブジェクトに限定される、請求項６１に記載のデータベース管理システム。
【請求項６３】
前記メンバオブジェクトのフィルタ値は、前記異種のオブジェクトタイプのフィルタから継承される、請求項６２に記載のデータベース管理システム。
【請求項６４】
前記メンバオブジェクトのフィルタ値は、固定値として指定される、請求項６２に記載のデータベース管理システム。
【請求項６５】
前記固定値はブール値である、請求項６４に記載のデータベース管理システム。
【請求項６６】
前記固定値はテキスト値である、請求項６４に記載のデータベース管理システム。
【請求項６７】
前記一度の要求は、一度のOPENコマンド、一度のCLOSEコマンド、および少なくとも一度のFETCHコマンドを含む、請求項５２に記載のデータベース管理システム。
【請求項６８】
データベースから異なるタイプの複数の関連したオブジェクトのメタデータを抽出するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、プログラムコードを含むコンピュータ読取可能コードを有するコンピュータ使用可能媒体を含み、
異種のオブジェクトタイプを、異なるタイプのデータベースオブジェクトの集合として定義し、
特定の異種のオブジェクトを取出せという要求があると、前記異種のオブジェクトのタイプの前記定義に基づいた特定の順序で、前記特定の異種のオブジェクトからメンバオブジェクトを取出す、メタデータを抽出するためのコンピュータプログラム製品。
【請求項６９】
リレーショナルデータベースからオブジェクトメタデータを取出すためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、コンピュータ読取可能コードを有し、プログラムコードを含むコンピュータ使用可能媒体を含み、
前記データベース内の論理ユニットのためのメタデータを求める一度の要求を受け、前記論理ユニットは異なるタイプの複数のオブジェクトを含み、前記コンピュータプログラム製品はさらに、
要求された前記メタデータを抽出し、
抽出された前記メタデータを、前記論理ユニットを再作成することのできる順序に戻す、オブジェクトメタデータを取出すためのコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
典型的なリレーショナルデータベースの論理構造は、その辞書オブジェクトによって決定される。これらのオブジェクトは、複数のオブジェクトタイプ、たとえばテーブルスペース、ユーザ、テーブル、ビュー、シーケンス、記憶手順等からなる可能性がある。
【背景技術】
【０００２】
オラクル９ｉ（Oracle 9i）で導入されたオラクルメタデータAPI（Oracle Metadata API）は、特定のオブジェクトタイプの１つ以上のオブジェクトのメタデータを抽出するための中心的機能を果たす。９ｉ実装は、「開く」−「取出す」−「閉じる」（OPEN-FETCH-CLOSE）プログラミングモデルを使用する。すなわち、ユーザは、特定のオブジェクトタイプのために「開く」を発し、次にそのタイプのオブジェクトを繰返して「取出し」て、完了すると、ユーザはオブジェクトタイプのコンテキストを「閉じる」。ユーザは、取出されるオブジェクトの組を限定する１つ以上のフィルタを指定することができる。オラクル９ｉ実装は、特定のオブジェクトタイプ内のオブジェクトを取出すための効果的かつ柔軟な機構を提供する。
【０００３】
このAPIは、２０００年９月２８日出願の、米国出願連続番号第０９／６７２，９１４号の「データベースシステムにおける辞書メタデータの集約および処理（“Aggregating and manipulating dictionary metadata in a database system”）」に記載されており、その教示全体が完全に引用により援用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
概要
多くの場合、ユーザは、論理ユニットを構成する一方で、異なるオブジェクトタイプに属する論理的な組のオブジェクトのメタデータを抽出することを望むかもしれない。この例は、（１）テーブルおよびその従属オブジェクトのすべて（制約条件、インデックス、認可等）、（２）スキーマにおけるすべてのオブジェクト（テーブル、ビュー、タイプ、手順等）、（３）データベースにおけるすべてのオブジェクト（テーブルスペース、ユーザ、ロールバックセグメント等、ならびにスキーマおよびその内容）である。
【０００５】
さらに、ユーザは、この抽出されたメタデータを取り出し、それを用いて別のデータベースに論理的な組のオブジェクトを再作成することを望むかもしれない。しかしながら、オブジェクトの組を再作成するには、それらは、たとえばインデックスの前にテーブルといった特定の順序で作成されなければならない。あいにく、作成順序は明らかでないことが多い。
【０００６】
先行の解決法において、ユーザは、論理的な組を構成するオブジェクトのカスタムコードカプセル化知識およびオブジェクトの作成順序を書込まなければならなかった。オラクルエクスポートユーティリティ（Oracle Export utility）は、１つのこのようなカスタムプログラムである。このようなカスタムプログラムは、通常その特定の目的に沿ってうまく設計されているが、新しい用途に適合させることが難しい可能性がある。
【課題を解決するための手段】
【０００７】
このシステムは、「異種のオブジェクトタイプ」、すなわち異なるオブジェクトタイプであるにもかかわらず論理ユニットを構成するオブジェクトの集合を用いて、米国出願連
続番号第０９／６７２，９１４号に記載されたオラクルメタデータAPIを向上させることができる。このプログラミングモデルは、オラクル９ｉで使用されたのと同じOPEN−FETCH−CLOSEモデルとすることができる。違いは、（１）ユーザが、OPENステートメントにおいて、異種のオブジェクトタイプの名前を指定する、（２）取出されたオブジェクトは異なる異種のオブジェクトタイプに属する、（３）オブジェクトは有効な作成順序で戻される、という点である。
【０００８】
このシステムの特定の実施例は、データベースから異なるタイプの複数の関連したオブジェクトのメタデータを抽出するための方法である。この方法は、異種のオブジェクトタイプを、異なるタイプのデータベースオブジェクトの集合として定義するステップを含むことができる。特定の異種のオブジェクトを取出せという要求があると、異種のオブジェクトのメンバオブジェクトを、特定の異種のオブジェクトから取出すことができる。メンバオブジェクトを、特定の異種のオブジェクトを再作成するのに有効な順序等の、異種のオブジェクトのタイプの定義に基づいた特定の順序に戻すことができる。
【０００９】
例示の異種のオブジェクトタイプは、テーブルエクスポート、データベースエクスポート、スキーマエクスポートおよびテーブルスペースエクスポートである。メンバオブジェクトは、同種のオブジェクトタイプであるかもしれず、または他の異種のオブジェクトタイプであるかもしれない。
【００１０】
取出されるメンバオブジェクトの組は、少なくとも１つの指定されたフィルタに従って限定することができ、このフィルタ自体は、取出されるメンバオブジェクトのタイプに従って第２のフィルタに変換され得る。
【００１１】
特定の実施例において、第１のテーブルは、オブジェクトタイプが異種のものであるか、または同種のものであるかを指定することができる。第２のテーブルは、次に、所与の異種のオブジェクトタイプのメンバタイプが戻されることになる特定の順序を定義することができる。取出コマンドが出されると、メンバオブジェクトを第２のテーブルで定義された特定の順序に従って取出すことができる。第３のテーブルは、特定の異種のオブジェクトタイプに適用することのできるフィルタを指定することができ、第４のテーブルは、個々のメンバオブジェクトタイプのフィルタの変換を指定することができる。このような変換されたフィルタは、特定の異種のオブジェクトタイプの要求において指定されたフィルタから値を継承することができる。代わりに、フィルタは、テキスト、ブール、数値、日付等といったいくつかのデータタイプの固定値を有することができる。
【００１２】
より特定的には、抽出されたメタデータは、XML等のマークアップ言語を用いて書式設定することができる。このマークアップ言語形式のデータは、特定の異種のオブジェクトを再作成するように書式設定されたステートメントに変換することができる。
【００１３】
このシステムにおいて、データベース内の論理ユニットのためのメタデータを一度要求するだけで、オブジェクトメタデータをリレーショナルデータベースから抽出することができ、この論理ユニットは、複数の異なるタイプのオブジェクトを含む。次に、要求されたメタデータを抽出して、それを、論理ユニットをこのまたは別のデータベースで再作成することのできる順序に戻すことができる。一度の要求で複数の取出しが行なわれ得るが、１つのみのオブジェクトタイプ（すなわち特定の異種のオブジェクトタイプ）が開かれ、かつユーザは、メンバオブジェクトのすべてを抽出するのに内部従属性を意識する必要がないという点で、一度の要求であるといえる。
【００１４】
論理ユニットは、たとえば、テーブルおよびその従属オブジェクトを含み得、この従属オブジェクトは、たとえば制約条件、インデックスおよび／または認可であるが、これら
に限定されない。他の論理ユニットは、スキーマおよびデータベースを含み得るが、これらに限定されない。
【発明を実施するための最良の形態】
【００１５】
異種のオブジェクトタイプを有するデータベースシステムの、先述のおよび他の目的、特徴ならびに利点は、添付の図面において示されたような、以下の特定の実施例のより特定的な説明から明らかであり、この添付の図面において、同じ参照符号はそれぞれの図を通して同じ部分を示している。
【００１６】
詳細な説明
本発明は、米国出願Ｓ／Ｎ０９／６７２，９１４によって先に記載されたメタデータAPIに異種のタイプを追加する。
【００１７】
特定の異種のオブジェクトタイプは、辞書またはシステム、テーブルに行を挿入することによって追加される。１つのテーブル（metaview＄）は、すべてのオブジェクトタイプの名前を含み、これは、そのタイプが同種であるかまたは異種であるかを示すフラグを有する。別のテーブル（metascript＄）は、異種のタイプおよびその順序に属するメンバタイプを定義する。FETCH機能を実現するコードは、オブジェクトタイプが同種であるかどうかを判定し、そうであればそれは通常の処理を行ない、またはオブジェクトタイプが異種であるかどうかを判定し、そうであればそれ自身に各々のメンバタイプを再帰的に要求する。
【００１８】
異種のオブジェクトタイプは、再帰的に入れ子にすることができる、すなわち１つの異種のタイプは、別の異種のタイプのメンバとすることができる。異種のオブジェクトタイプに関して、ユーザは、取出されるオブジェクトの組を限定する、異種のオブジェクトタイプへのフィルタを指定することができる。これらのフィルタは、メンバタイプへのフィルタに変換される。この変換は、別の辞書テーブル（metascriptfilter＄）において指定される。
【００１９】
例
以下の例は、どのようにしてメタデータAPI（dbms_metadata）が異種のオブジェクト、すなわち異なるオブジェクトタイプからなるにもかかわらず、論理ユニットを構成する命令されたオブジェクトの組を取出すかを示している。この例において、異種のオブジェクトは、テーブルおよびそのインデックスからなるタイプTABLE_EXPORTからなる。
【００２０】
最初に、以下のスクリプトを実行して、スキーマ“SCOTT”において、２つの列“empno”および“empname”を有する“EMPLOYEE”という名前のテーブルを作成すると想定する。２つのインデックス、すなわち“EMP_IND1”および“EMP_IND2”がテーブルで作成される。スキーマとの関連が前提とされる。
【００２１】
テーブルEMPLOYEE(を作成する
empno    number,
empname  varchar2(30));
EMPLOYEE(empno)にインデックスEMP_IND1を作成する;
EMPLOYEE(empname)にインデックスEMP_IND2を作成する;
図１は、結果としてもたらされるオブジェクトおよびその関係を示すスキーマ図である。タイプTABLE_EXPORTの異種のオブジェクト２０は、テーブル“EMPLOYEE”１２を含み、このテーブルは２つの列empno１８およびempname１９、ならびに各々の列に２つのインデックス１４，１６を有する。
【００２２】
ここで、一度のOPEN、一度以上のFETCH、ならびに一度のCLOSEコマンドを含む一度の要求によって、テーブル１２およびその２つのインデックス１４，１６を含む異種のTABLE_EXPORTオブジェクト２０を取出す。異種のオブジェクト２０のメンバ１２，１４，１６は、有効な作成順序に戻される。すなわち、テーブル１２が最初に戻される。なぜなら、それはインデックス１４，１６の前に作成されなければならないからである。以下は、本発明を用いて異種のオブジェクトを抽出する例示のスクリプトである。Put_clob()は、clobの内容（太文字のオブジェクト）をプリントアウトすることのできるいくつかの単一の機能を表わしている。
【００２３】
【表１】
2005512235.tif 000003
【００２４】
各々のdbms_metadataコールは、米国出願Ｓ／Ｎ０９／６７２，９１４に記載されている。その出願で開示されるように、コールは同種のオブジェクトのみに適用される。このシステムは、dbms_metadataインターフェイスを拡張して、DATABASE_EXPORT, SCHEMA_EXPORT, TABLE_EXPORTおよびTABLESPACE_EXPORT等の異種のオブジェクトタイプを含むようにする。
【００２５】
OPENコール、dbms_metadata.open()は、異種のクラス、この場合、メタデータが要求されているTABLE_EXPORTを与える。ハンドルｈは、メタデータが要求されているオブジェクトの組の、後に続く動作のすべてにおいて使用されるように戻される。
【００２６】
第１のFILTERコール、dbms_metadata.set_filter()は、探索を“EMPLOYEE”と名前がつけられたテーブルに限定するが、一方で第２のFILTERコールは、探索を“SCOTT”と名前
がつけられたスキーマに限定する。
【００２７】
dbms_metadata.add_transform()のコールによって、通常XMLに書式設定されるFETCHコマンドの出力（以下を参照）は、DDLに変換される。この結果は、次に、別のデータベースで異種のオブジェクト２０を再作成するのに直接使用することができる。
【００２８】
LOOPおよびEND LOOP行で囲まれたループ内で、一時的な太文字のオブジェクト（clob）が作成される。FETCHコール、dbms_metadata.fetch_clob()は、メンバオブジェクトをclobとして指定された異種のオブジェクトから戻す。このようなオブジェクトすべてが既に戻されていれば、NULLは戻され、ループが終了される。
【００２９】
そうでなければ、この例の目的のために、オブジェクトが示される（put_clob()）。次に、一時的なclobが解放される。ループは、異なるメンバオブジェクトを戻すたびに、すべてのメンバが取出されるまで繰返される。
【００３０】
最後に、CLOSEコール、dbms_metadata.close()が行なわれて、要求を終了する。
【００３１】
上記のスクリプトを実行することによって以下の出力がもたらされ、ここでSCOTTとは、テーブルおよびインデックスが属するスキーマの名前のことである。
【００３２】
【表２】
2005512235.tif 000004
【００３３】
この結果は、３つの「作成（CREATE）」ステートメントを含み、１つはテーブル用であり、１つは各々のインデックス用である。
【００３４】
図２から５は、異種のオブジェクトタイプをサポートするのに用いられるテーブルの概略図である。図２および３のテーブルは、先行技術において定義されているが、さらに、異種のオブジェクトタイプをサポートするために用いられる。図４および５のテーブルは新しいものである。
【００３５】
図２は、metaview＄テーブル３０における４つのエントリ３１から３４を示しており、これは米国出願Ｓ／Ｎ０９／６７２，９１４に記載されている。このテーブルは、すべてのオブジェクトタイプの名前を含んでいる。本発明の実施例において、プロパティフィールド４３で新しい値、たとえば２が定義されて、行が異種のオブジェクトタイプを識別していることを示す。ここで、行３１から３４の各々のプロパティフィールド４３における値２の存在は、タイプフィールド４１で識別されたタイプ、すなわちDATABASE_EXPORT, SCHEMA_EXPORT, TABLESSPACE_EXPORTおよびTABLE_EXPORTそれぞれが、異種のオブジェクトタイプであることを示している。
【００３６】
米国出願Ｓ／Ｎ０９／６７２，９１４に記載された他のフィールド４２，４４から４９は、このシステムに関して特に関係がないため、さらに説明はされない。
【００３７】
図３は、このシステムの実施例を実現するのに用いられるmetafilter＄テーブル５０を示している。このテーブルも、米国出願Ｓ／Ｎ０９／６７２，９１４に記載されている。取出しを特定の論理ユニットに制限するために、フィルタが指定される。metafilter＄テーブル５０は、各々のオブジェクトタイプに有効なフィルタの組を定義する。フィルタフィールド５３は、フィルタの名前を与え、一方でタイプフィールド５４は、名前が付けられたフィルタが有効となるタイプの名前を保持する。たとえば、ここで行５１および５２は、“NAME”および“SCHEMA”が、異種のタイプTABLE_EXPORTに適用することのできる有効なフィルタであることをそれぞれ示している。
【００３８】
図４は、このシステムの実施例を実現するのに用いられる新しいテーブル、metascript＄テーブル６０を示している。metascript＄テーブル６０は、所与の異種のオブジェクトタイプのメンバタイプ、および異なるメンバタイプが取出される順序を示している。
【００３９】
各々の異種のタイプにつき、各々のメンバタイプには１つの行がある。ptypeフィールド６４は、特定の行が対応する、異種のタイプの名前を保持する。seq♯フィールド６５はシーケンス番号である。ltypeフィールド６６はリーフまたはメンバオブジェクト名を保持する。リーフまたはメンバオブジェクトは開かれ、seq♯フィールド６５で示されたシーケンスで取出される。
【００４０】
モデルフィールド６７はモデルプロパティを識別する。このフィールド６７は、特にこのシステムには関係がないため、さらに説明はされない。
【００４１】
いくつかの行６１から６３が例示の目的のために示される。各々の行のseq♯フィールド６５における対応するシーケンス番号は、異種のオブジェクトのタイプTABLE_EXPORTについて、タイプTABLEのオブジェクトが最初に取出され（行６１，seq♯＝１０）、その後にOBJECT_GRANTオブジェクトが続き（行６２，seq♯＝２０）、最後にこの例では、すべてのINDEXオブジェクトが取出される（行６３，seq♯＝３０）ことを示している。もちろん、実際のデータベースにおいて、行はランダムシーケンスとすることができ、そのためにシーケンス番号フィールド６５が必要である。
【００４２】
図５は、metascriptfilter＄テーブル７０を示しており、これはまた、このシステムの実施例を実現するのに作成された新しいテーブルである。metascriptfilter＄テーブル７０は、FILTERステートメントにおいて与えられ、かつフィールド５３に整合されたフィルタを、metafilter＄テーブル５０から各々のメンバオブジェクトタイプのフィルタ名に変換する。
【００４３】
metascriptfilter＄テーブル７０における各々の行は、ユーザによって与えられたフィ
ルタ名をタイプ特定のフィルタに変換する。たとえば、NAMEフィルタを、上記プログラムにおける行等のコールを通して、異種のオブジェクトタイプTABLE_EXPORTのために指定することができる。
【００４４】
dbms_metadata.set_filter(h,'NAME','EMPLOYEE')
異種のオブジェクトタイプのNAMEフィルタは、EMPLOYEEに設定されて、NAME=EMPLOYEEのオブジェクトのみが選択されるようにする。
【００４５】
図５の例示のmetascriptfilter＄テーブル７０は、それぞれseq♯＝１０の行７１および７２に対応しているTABLE_EXPORTオブジェクトのNAMEおよびSCHEMAフィルタを、TABLEオブジェクトのNAMEおよびSCHEMAフィルタに変換する。
【００４６】
同様に、行７３および７４は、NAMEおよびSCHEMAフィルタを、OBJECT_GRANTオブジェクト（seq♯＝２０）のために、BASE_OBJECT_NAMEおよびBASE_OBJECT_SCHEMAに変換し、行７５および７６（seq♯＝３０）は、NAMEおよびSCHEMAフィルタを、INDEXオブジェクトのために、BASE_OBJECT_NAMEおよびBASE_OBJECT_SCHEMAに変換する。
【００４７】
与えられた例において、メンバオブジェクトのすべては、その値がTABLE_EXPORTオブジェクトのNAMEおよびSCHEMAフィルタに対応するフィルタを有する。しかしながら、固定のテキストまたはブール（たとえばTRUEもしくはFALSE）値を、フィルタのために指定することができる。
【００４８】
予め定められたまたは固定の値のフィルタにつき、フィルタ値は、テキスト値のvcvalフィールド８４またはブール値のbval８５フィールドに記憶される。一方で、スクリプトに渡されたフィルタから値が継承される場合には、フィルタ名はpfilterフィールド８３に記憶される。
【００４９】
metascriptfilter＄テーブル７０は、追加のフィールドを加えることによって、容易に拡張されて、数字、日付等といった追加のデータタイプの固定値のフィルタをサポートすることができる。
【００５０】
行のseq♯フィールド８１は、シーケンス番号を含み、metascript＄テーブル（図４）のseq♯フィールド６５に対応する。フィルタフィールド８２は、値が固定されていない場合はフィルタ名を含む。pfilderフィールド８３は親フィルタ名を含む。最後に、モデルフィールド８６は、このシステムに特に関係がないため、さらに説明はされない。
【００５１】
このシステムの一実施例において、再帰的なOPENコールが行なわれ、オブジェクトタイプをmetascript＄テーブルに従った順序で指定する。各々のOPENコールの後で、metascriptfilter＄テーブルがチェックされ、SET_FILTERが適切なフィルタ名および値で実行される。
【００５２】
したがって、示した例において、NAME=EMPLOYEEの第１のTABLEオブジェクトが取出され、その後にBASE_OBJECT_NAME=EMPLOYEEのOBJECT_GRANTSオブジェクトが続き、次にBASE_OBJECT_NAME=EMPLOYEEのINDEXオブジェクト等が続く。
【００５３】
APIによって、ユーザは特定のメンバタイプのフィルタを指定することができる。たとえば、DATABASE_EXPORT異種タイプからオブジェクトを取出すときに、ユーザはSYSTEMテーブルスペースをフィルタにかけて除去したいかもしれない。（すべてのデータベースは、自動的にSYSTEMテーブルスペースを有しているため、それを目的のデータベース上で再作成する必要はない）。これを行なうために、ユーザは、TABLESPACEオブジェクトのみに
適用されるNAME_EXPRフィルタを指定し得、これはたとえば、「名前が'SYSTEM’ではない、いかなるテーブルスペースも含む」ことを意味する。
【００５４】
h:=dbms_metadata.open('DATABASE_EXPORT');
dbms_metadata.set_filter(h,'NAME_EXPR','!="SYSTEM"','TABLESPACE');
図６は、このシステムの実施例の典型的な構成のブロック図であるが、当業者は、本発明の範囲内に含まれる他の構成も可能であることを理解するであろう。
【００５５】
ここで、メタデータアプリケーションプログラムインターフェイス（API）１００は、ユーザまたはアプリケーションから、異種のオブジェクトタイプの要求１０２を受ける。このような要求は、OPENおよびCLOSEコマンド、ならびに一度以上のSET_FILTERおよびFETCHコマンドを含むが、これらに限定されない。このコマンドは、メタデータ抽出器１０４に渡され、このメタデータ抽出器は、要求された異種のオブジェクトタイプのメンバオブジェクトタイプの取出しを、metaview＄テーブル３０およびmetascript＄テーブル６０に従って命令された順序に編成する。
【００５６】
フィルタ変換装置１０６は、要求１０２で指名された異種のオブジェクトタイプのフィルタを、先述のmetafilter＄テーブル５０およびmetascriptfilter＄テーブル７０に従って、各々のオブジェクトタイプのメンバオブジェクトフィルタに変換する。
【００５７】
メタデータ抽出器１０４は次に、１つ以上の論理ユニット２０から、すなわち要求１０２におけるユーザ／アプリケーションによって与えられた、異種のオブジェクトタイプおよびフィルタにしたがって、メンバオブジェクトを抽出する、すなわち取出す。
【００５８】
このシステムの一実施例において、メタデータはXML文書として抽出される。フォーマッタまたはフォーマット変換装置１０８は、XML文書を要求１０２に従ってDDL等の他のフォーマットに書式設定する。
【００５９】
最後に、API１００は、この書式設定されたデータ１１０をユーザ／アプリケーションに戻す。
【００６０】
このシステムは、異種の集合におけるオブジェクトを抽出するための上位のインターフェイスをユーザに与える。ユーザは、どのオブジェクトが集合またはその作成順序に属するのかを知る必要はない。
【００６１】
フィルタリング能力によって、ユーザは取出されたオブジェクトの組をカスタマイズする際に、高度の柔軟性を得ることができる。
【００６２】
異種のタイプの定義は、辞書テーブルにおける行からなるため、新しい異種のオブジェクトタイプを定義し、維持することが容易である。オラクルのエクスポートユーティリティ等のカスタムプログラムにおいて、たとえば、新しい異種のオブジェクトタイプを追加するには、拡張プログラミングが必要である。
【００６３】
このシステムは、現在のエクスポートユーティリティからの進展を表わしており、この現在のエクスポートユーティリティは、異種の集合のためのメタデータを取出すが、次にメタデータを、所有権を主張できるフォーマットのファイルに不透明に書込むものである。対照的に、このシステムでは、メタデータをいかなるデータベースユーザにとっても、透過的に入手可能とすることができる。
【００６４】
特殊化した異種の集合、たとえば移送可能なテーブルスペースおよびオブジェクトのア
プリケーション特定の部分集合への要求が高まっている。このシステムによって、新たな異種の集合を定義し維持するのが容易になる。
【００６５】
当業者は、「異種のオブジェクトタイプを有するデータベースシステム」に含まれる方法が、コンピュータ使用可能媒体を含むコンピュータプログラム製品に組込まれ得ることを認識すべきである。たとえば、このようなコンピュータ使用可能媒体は、ソリッドステート（solid state）メモリデバイス、ハードドライブデバイス、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたはコンピュータディスケット等の、記憶されたコンピュータ読み取り可能プログラムコードセグメントを有する、読み取り可能メモリデバイスを含むことができる。コンピュータ読取可能媒体はまた、光学式、配線式もしくはワイヤレスのいずれかで、プログラムコードセグメントをデジタルもしくはアナログデータ信号として運ぶ、バスもしくは通信リンク等の通信または伝送媒体を含むことができる。
【００６６】
このシステムは、特定の実施例を参照して特に示され、記載されてきたが、当業者は、別掲の特許請求の範囲に含まれる発明の範囲から逸脱することなく、形態および詳細におけるさまざまな変更がなされ得ることを理解するであろう。たとえば、本発明の方法は、さまざまな環境に適用することができ、記載された環境に限定されない。
【図面の簡単な説明】
【００６７】
【図１】このシステムの例において作成されたオブジェクトおよびその関係を示すスキーマ図である。
【図２】同種のオブジェクトタイプをサポートする他に、このシステムの異種のオブジェクトタイプをサポートするmetaview＄テーブルを示す概略図である。
【図３】同種のオブジェクトタイプをサポートする他に、このシステムの異種のオブジェクトタイプをサポートするmetafilter＄テーブルを示す概略図である。
【図４】このシステムの異種のオブジェクトタイプをサポートするのに用いられるmetascript＄テーブルを示す概略図である。
【図５】このシステムの異種のオブジェクトタイプをサポートするのに用いられるmetascriptfilter＄テーブルを示す概略図である。
【図６】このシステムの実施例の典型的な構成を示すブロック図である。
【図１】
2005512235.tif 000005
【図２】
2005512235.tif 000006
【図３】
2005512235.tif 000007
【図４】
2005512235.tif 000008
【図５】
2005512235.tif 000009
【図６】
2005512235.tif 000010
【国際調査報告】
2005512235.tif 000011
2005512235.tif 000012
2005512235.tif 000013