(57)【要約】【課題】スキーマ情報へのアクセスの十分な高速化を実現する。【解決手段】データベース６に記憶している実データを管理するスキーマ情報の参照装置において、データベース６からスキーマ情報を読み込むスキーマ情報の読み込み手段２と、スキーマ情報の読み込み手段２で読み込まれたスキーマ情報を保持するスキーマ情報の保持手段３と、データベース６を参照してデータベース６のスキーマ情報とスキーマ情報の保持手段３で保持されているスキーマ情報とを比較してスキーマ情報相互が異なる場合に差分データを作成するためのスキーマ情報の差分チェック手段４と、スキーマ情報の保持手段３で保持されているスキーマ情報を格納するスキーマ情報格納ファイル５とを備える。【選択図】　　図１
2004030179.tif 000002
【特許請求の範囲】
【請求項１】
データベースに記憶している実データを管理するスキーマ情報の参照装置において、
前記データベースからスキーマ情報を読み込む手段と、
前記読み込まれたスキーマ情報を保持する手段と、
前記データベースを参照して当該データベースのスキーマ情報と前記保持されているスキーマ情報とを比較してスキーマ情報相互が異なる場合に差分データを作成する手段とを備えることを特徴とするスキーマ情報の参照装置。
【請求項２】
さらに、前記保持する手段で保持されているスキーマ情報が格納される格納ファイルを備えることを特徴とする請求項１記載のスキーマ情報の参照装置。
【請求項３】
前記作成する手段で作成した差分データに基づいて前記保持する手段で保持されているスキーマ情報を更新する手段を備えることを特徴とする請求項１又は２記載のスキーマ情報の参照装置。
【請求項４】
さらに、前記データベースのスキーマ情報と前記保持されているスキーマ情報とが異なる場合に構造化照会言語の整合がとれているかどうかを判別し、整合がとれてない場合に装置本体の利用者にそのことを示す情報を報知する手段を備えることを特徴とする請求項１から３のいずれか１項記載のスキーマ情報の参照装置。
【請求項５】
さらに、前記差分データを装置本体の利用者に報知する手段を備えることを特徴とする請求項１から４のいずれか１項記載のスキーマ情報の参照装置。
【請求項６】
前記保持する手段又は前記格納ファイルに複数の利用者がそれぞれ異なる指示入力手段からアクセスできるようにしていることを特徴とする請求項１から５のいずれか１項記載のスキーマ情報の参照装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキーマ情報の参照装置に関し、特に、データベースと接続していない状態でもスキーマ情報を参照するスキーマ情報の参照装置に関する。
【０００２】
【従来の技術】
従来、データベースのスキーマ情報の内、表や列などの情報をアイコンとして画面に表示し、これらのアイコンをマウスでクリックした契機でデータベースから、その表の属性や、配下の列に関する情報を毎回取得する手法がある。
【０００３】
ここで、特開平４−２１６１４７号公報には、データベースのスキーマ情報をローカルシステムに保持する方式が記載されている。この公報は、スキーマ構造とプログラムとを独立化させることを前提としているため、スキーマ構造を意識する必要があるスキーマのＧＵＩ（Ｇｒａｐｈｉｃａｌ　Ｕｓｅｒ　Ｉｎｔｅｒｆａｃｅ）表示機能や構造化照会言語（Ｓｔｒｕｃｔｕｒｅｄ　Ｑｕｅｒｙ　Ｌａｎｇｕａｇｅ：ＳＱＬ）文の作成を支援するシステムには適合しない。
【０００４】
さらに、特開平７−２１０４３５号公報には、スキーマ更新前後の実体データを効率良くアクセスできるとともに、スキーマが入れ子に構成された場合でも適宜データの変換を高速に実施できるデータベース管理装置を提供ために、更新後のスキーマと更新前のスキーマとを版情報を用いて相互に関連づけて管理し、その版情報に基づいて更新後のスキーマに対応する実体データを作成し、その実体データと更新前のスキーマに対応する実体データとを関連づけるデータベース管理装置が記載されている。
【０００５】
【発明が解決しようとする課題】
しかし、従来の技術は、データベースのスキーマ情報が更新されたときに、更新背後のスキーマ情報の差分データを作成していなかったため、スキーマ情報へのアクセスの高速化が十分になされていない場合があった。
【０００６】
また、従来の技術は、スキーマ情報が変更された場合にＳＱＬの編集作業する手段もないため、ＳＱＬ文を発行するプログラムの開発などには適用できないという問題があった。同様に、スキーマ情報をグラフィカルに画面表示するようなシステムにおいても、適用できないという問題があった。
【０００７】
さらに、従来の技術は、スキーマ構造とプログラムとを独立化させていることにより、スキーマ情報の更新による影響を利用者が認識できず、スキーマ情報の更新自体が不正な場合にも評価を実施するまで問題を検出できないという問題があった。
【０００８】
そこで、本発明は、スキーマ情報へのアクセスの高速化が十分になされるようにすることを課題とする。
【０００９】
また、本発明は、スキーマ情報の構成要素をオブジェクトとして保持することでスキーマ情報をＧＵＩで表示するシステムとの適合性を向上させ、かつ、スキーマが変更された場合に画面表示やＳＱＬへの影響を容易に検出できるようにすることを課題とする。
【００１０】
【課題を解決するための手段】
上記課題を解決するために、本発明は、データベースに記憶している実データを管理するスキーマ情報の参照装置において、前記データベースからスキーマ情報を読み込む手段と、前記読み込まれたスキーマ情報を保持する手段と、前記データベースを参照して当該データベースのスキーマ情報と前記保持されているスキーマ情報とを比較してスキーマ情報相互が異なる場合に差分データを作成する手段とを備える。
【００１１】
また、スキーマ情報を保持する手段においては、スキーマ情報の各要素をそれぞれオブジェクトとして保持することにより、各要素のオブジェクトに差分情報や既に定義済みのＳＱＬ文で利用されているか否か等の情報を持たせることができる。これにより、各要素のオブジェクト自体がデータベースの差分発生により他の定義情報にどのような影響があるのかを認識することができる。そのため、定義済みのＳＱＬ文への影響を容易に、かつ、高速に検出することができる。
【００１２】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。
【００１３】
（実施形態１）
［構成の説明］
図１は、本発明の実施形態１のスキーマ情報参照装置の模式的な構成を示すブロック図である。
【００１４】
図１には、以下説明するキーボード１と、スキーマ情報の読み込み手段２と、スキーマ情報の保持手段３と、スキーマ情報の差分チェック手段４と、スキーマ情報格納ファイル５と、データベース６とを示している。
【００１５】
キーボード１は、利用者がスキーマ情報などの指示を入力するものである。
【００１６】
スキーマ情報の読み込み手段２は、キーボード１から入力された指示応じてデータベース６のスキーマ情報を読み込むものである。なお、図１には、一台のキーボードを図示しているが、複数のキーボードからスキーマ情報の読み込み手段２と、スキーマ情報の保持手段３と、スキーマ情報の差分チェック手段４とへそれぞれアクセスできるようにしてもよい。
【００１７】
スキーマ情報の保持手段３は、スキーマ情報の読み込み手段２によって読み込まれたスキーマ情報を記憶しておきキーボード１から入力された指示に応じて記憶しているスキーマ情報をスキーマ情報格納ファイル５に格納するものである。
【００１８】
スキーマ情報の差分チェック手段４は、スキーマ情報格納ファイル５に格納されているスキーマ情報とデータベース６のスキーマ情報との差分の有無をチェックするものである。
【００１９】
スキーマ情報格納ファイル５は、スキーマ情報の保持手段３からのスキーマ情報を格納しておくものである。
【００２０】
データベース６は、実データ及びこの実データを管理するスキーマ、副スキーマ、記憶スキーマの３層で定義される情報等を記憶するものである。
【００２１】
［動作の説明］
まず、図１に示すスキーマ情報参照装置の動作の概略について説明する。
【００２２】
利用者がキーボード１からスキーマ情報の参照するように指示を入力すると、この指示がスキーマ情報の読み込み手段２へ出力される。
【００２３】
スキーマ情報の読み込み手段２は、キーボード１からの指示に応じて、任意のデータベース６に接続を行い、スキーマ情報などのデータを取得し、スキーマ情報の保持手段３へ通知する。
【００２４】
スキーマ情報の保持手段３は、スキーマ情報の読み込み手段２からの通知を表、列等の構成要素単位にオブジェクト化して内蔵するメモリ上に保持しておき、キーボード１からの指示により任意の契機で保持している情報をスキーマ情報格納ファイル５にオブジェクトのシリアライズを行うことで保存する。
【００２５】
スキーマ情報の差分チェック手段４は、キーボード１からの指示により、スキーマ情報格納ファイル５が保持している情報とデータベース６の保持している情報との差分の有無をチェックし、チェックの結果差分があれば、メモリ上の各オブジェクトに情報を反映（更新）した後、スキーマ情報格納ファイル５に差分情報を反映（更新）する。
【００２６】
つぎに、図１に示すスキーマ情報参照装置の具体的な動作について説明する。
【００２７】
図２は、図１のスキーマ情報格納ファイル５にスキーマ情報を格納するまでの手順を示すフローチャートである。
【００２８】
まず、利用者によってキーボード１からデータベース６へのアクセス情報（データベースの識別情報、ユーザアカウント）が入力されると（ステップＡ１）、このアクセス情報に応じてスキーマ情報の読み込み手段２は、データベース６のスキーマ情報を読み込む（ステップＡ２）。
【００２９】
スキーマ情報の読み込み手段２によって、読み込まれたデータベースのスキーマ情報はスキーマ情報の保持手段３へ通知される。
【００３０】
スキーマ情報の保持手段３は、通知された情報をメモリ上に各要素をオブジェクトとして展開する。この後、任意の契機でキーボード１から保存を指示されると、スキーマ情報の保持手段３はメモリ上のオブジェクトをスキーマ情報格納ファイル５にシリアライズして保存する（ステップＡ３）。
【００３１】
図３は、図１のスキーマ情報格納ファイル５にスキーマ情報を格納してからの手順を示すフローチャートである。
【００３２】
キーボード１からの入力に応じて、スキーマ情報の差分チェック手段４は、スキーマ情報の読み込み手段２で先に読み込まれている情報を、データベース６から読み込む（ステップＢ１）。
【００３３】
ＳＱＬ定義システムの起動直後などは、メモリ上にスキーマ情報が存在しないため、スキーマ情報の保持手段３が、内蔵するメモリ上にスキーマ情報（データベース情報）が存在するかどうかをチェックする（ステップＢ２）。
【００３４】
メモリ上にスキーマ情報が存在しない場合は、スキーマ情報の保持手段３が、スキーマ情報格納ファイル５から情報を読み込んでメモリ上に展開する（ステップＢ３）。
【００３５】
一方、メモリ上にスキーマ情報が存在する場合や、スキーマ情報格納ファイル５から情報の読み込みを終えると、スキーマ情報の差分チェック手段４は、スキーマ情報の保持手段３が保持する情報とデータベース６から読み込んだ情報との比較を行う（ステップＢ４）。
【００３６】
比較した結果から、データベース６のスキーマ情報に差分があるかどうかをチェックし（ステップＢ５）、差分がある場合は、スキーマ情報の保持手段３に差分情報を通知し、スキーマ情報の保持手段３が保持する情報に反映する。
【００３７】
このとき、スキーマ情報がどのように変更されたかはスキーマ情報の各構成要素に対応するオブジェクトに保持させる（ステップＢ６）。
【００３８】
なお、表や列が削除された場合にも削除されたことを記憶し、対応するオブジェクトは、解放しない。スキーマ情報の差分情報を画面表示やＳＱＬ等に反映して差分情報が不要になったときにオブジェクトの解放を行うことができるものとする。
【００３９】
一方、差分がある場合は、スキーマ情報の保持手段３が保持する情報に反映することなく、図３に示す処理を終了する。
【００４０】
図４は、図１のデータベース６のスキーマ情報を更新前後の様子を示す図である。
【００４１】
図４を用いて、データベース６のスキーマ情報が変更される際の動作について説明する。
【００４２】
まず、データベース６に、オーナＸのスキーマ情報として、表Ａ及び表Ｂ…が記憶されており、表Ａには列Ａ−１、Ａ−２、Ａ−３が含まれ、表Ｂには列Ｂ−１、Ｂ−２が含まれていたとする。
【００４３】
この状態で、利用者によってキーボード１からデータベース６のアクセス情報として、データベース６のオーナにオーナＸが入力されると、このアクセス情報に応じてスキーマ情報の読み込み手段２は、データベース６からオーナＸが所有する表Ａ及び、表Ａに含まれる列Ａ−１、Ａ−２、Ａ−３の名前、及び、データ型やサイズ、表Ｂに含まれる列Ｂ−１、Ｂ−２、Ｂ−３の名前、及び、データ型やサイズなどの属性を読み込む。
【００４４】
スキーマ情報の読み込み手段２によって、読み込まれたデータベースのスキーマ情報はスキーマ情報の保持手段３へ通知される。
【００４５】
スキーマ情報の保持手段３により、通知された情報の各要素をオブジェクト化してメモリ上に保持する。キーボード１からの指示によりスキーマ情報の保持手段３は、メモリ上に保持しているオブジェクトをシリアライズしてスキーマ情報格納ファイル５に格納する。
【００４６】
その後、図４に示すようにデータベース６のオーナＸのスキーマ情報が、表Ａに含まれる列Ａ−１、Ａ−２、表Ｂに含まれる列Ｂ−１、Ｂ−２、Ｂ−３…のように変更され、それから、キーボード１からスキーマ情報の差分チェック手段４に差分をチェックするように指示すると、スキーマ情報の差分チェック手段４は、スキーマ情報格納ファイル５から読み込んだ情報とデータベース６におけるオーナＸの所有する資源について差分のチェックを行う。
【００４７】
その結果、表Ａから列Ａ−３が削除されたことと、表Ｂに列Ｂ−３が追加されたことが検出されるので、表Ａと表Ｂとに対応するオブジェクトに列の変更が発生したことを記憶させるとともに、列Ｂ−３に対応するオブジェクトを生成する。
【００４８】
変更後の各オブジェクトをシリアライズしてスキーマ情報格納ファイル５へ反映した後、差分情報を利用者に通知するために画面表示を行う。
【００４９】
（実施形態２）
［構成の説明］
図５は、本発明の実施形態２のスキーマ情報参照装置の模式的な構成を示すブロック図である。
【００５０】
図５には、図１に示した各部に加えて、定義済みのＳＱＬの定義情報中に変更されたスキーマに対応するオブジェクトが含まれている場合にＳＱＬの整合性をチェックし、ＳＱＬの整合性が失われている場合は、画面に情報を表示して利用者に通知するＳＱＬの整合性チェック手段７を示している。
【００５１】
［動作の説明］
図６は、図５のスキーマ情報格納ファイル５にスキーマ情報を格納してからの手順を示すフローチャートである。
【００５２】
なお、図５のスキーマ情報格納ファイル５にスキーマ情報を格納するまでの手順は図２と同様である。
【００５３】
まず、図３で説明したのと同様に、スキーマ情報の読み込み、メモリ上にデータベース情報が存在するかどうかの判別、スキーマ情報格納ファイル５からの情報の読み込み、スキーマ情報の差分チェック、差分の有無の判別、差分の保持しているデータへの反映を行う（ステップＤ１〜Ｄ６）。
【００５４】
さらに、スキーマ情報の差分チェック手段４は、差分情報をＳＱＬの整合性チェック手段７にも通知する。ＳＱＬの整合性チェック手段７は、ＳＱＬで使用している表に対応するオブジェクトが削除されたり、ＳＱＬで使用している列に対応するオブジェクトの属性が変更されたなどの変更がないかといったようなＳＱＬの整合性をチェックし（ステップＤ７）、チェック結果に基づいて、整合性が失われているＳＱＬが存在するかどうかを判別する（ステップＤ８）。
【００５５】
判別の結果、整合性を失ったＳＱＬが存在する場合は、それらの情報を図示しない画面に表示する（ステップＤ９）。一方、整合性を失ったＳＱＬが存在しない場合は、それらの情報を画面に表示することなく、図６に示す処理を終了する。
【００５６】
つぎに、図４を用いて、図５のデータベース６のスキーマ情報が変更される際の動作について説明する。
【００５７】
まず、データベース６に、オーナＸのスキーマ情報として、表Ａ及び表Ｂ…が記憶されており、表Ａには列Ａ−１、Ａ−２、Ａ−３が含まれ、表Ｂには列Ｂ−１、Ｂ−２が含まれていたとする。
【００５８】
この状態で、利用者によってキーボード１からデータベース６のアクセス情報として、データベース６のオーナにオーナＸが入力されると、このアクセス情報に応じてスキーマ情報の読み込み手段２は、データベース６からオーナＸが所有する表Ａ及び、表Ａに含まれる列Ａ−１、Ａ−２、Ａ−３の名前、及び、データ型やサイズ、表Ｂに含まれる列Ｂ−１、Ｂ−２、Ｂ−３の名前、及び、データ型やサイズなどの属性を読み込む。
【００５９】
スキーマ情報の読み込み手段２によって、読み込まれたデータベースのスキーマ情報はスキーマ情報の保持手段３へ通知される。
【００６０】
スキーマ情報の保持手段３により、通知された情報を表や列等の単位でオブジェクト化し、名前やデータ型、サイズなどはオブジェクトのプロパティとしてメモリ上に保持する。キーボード１からの指示によりスキーマ情報の保持手段３は、メモリ上に保持している情報をスキーマ情報格納ファイル５にシリアライズして格納する。
【００６１】
その後、図４に示すようにデータベース６のオーナＸのスキーマ情報が、表Ａに含まれる列Ａ−１、Ａ−２、表Ｂに含まれる列Ｂ−１、Ｂ−２、Ｂ−３…のように変更され、それから、キーボード１からスキーマ情報の差分チェック手段４に差分をチェックするように指示すると、スキーマ情報の差分チェック手段４は、スキーマ情報格納ファイル５から読み込んだ情報とデータベース６におけるオーナＸの所有する資源について差分のチェックを行う。
【００６２】
その結果、表Ａから列Ａ−３が削除されたことと、表Ｂに列Ｂ−３が追加されたことが検出されるので、それらの情報をメモリ上に保持しているスキーマ情報格納ファイル５から読み込んだ情報に反映する。
【００６３】
その後、スキーマ情報の差分チェック手段４は、ＳＱＬの整合性チェック手段７に差分情報を通知する。ＳＱＬの整合性チェック手段７は、表Ａの列Ａ−３が削除されたことにより整合性を失うＳＱＬの定義を検索し、さらに、表Ｂに新規に列が追加されたことにより整合性を失うＳＱＬの定義を検索する。整合性を失うＳＱＬの定義を検出した場合は、影響を受けるＳＱＬの定義に関する情報を画面に表示する。
【００６４】
【発明の効果】
以上、説明したように、本発明によると、データベースのスキーマ情報が更新されたときに、更新背後のスキーマ情報の差分データを作成しているので、スキーマ情報へのアクセスの高速化が十分に図ることができる。
【００６５】
また、本発明によると、例えばデータベースのスキーマ情報を参照しながら、ＳＱＬ文を定義する開発支援システムにおいて、スキーマの各要素（表、列など）に対応したオブジェクトをＧＵＩ上のアイコンと関連づけることにより、アイコンをマウスでクリックしたときに対応する必要な情報に簡単にアクセスすることが可能となる。このため、開発支援システムの開発を容易にすることができる。
【００６６】
さらに、本発明によると、スキーマの差分情報およびスキーマの差分による不整合が発生したＳＱＬ文をグラフィカルに表示可能であるため、利用者は影響範囲を容易に認識可能であり、データベースのスキーマ更新自体が誤っていた場合には、その誤りを認識することができる。
【図面の簡単な説明】
【図１】本発明の実施形態１のスキーマ情報参照装置の模式的な構成を示すブロック図である。
【図２】図１のスキーマ情報格納ファイル５にスキーマ情報を格納するまでの手順を示すフローチャートである。
【図３】図１のスキーマ情報格納ファイル５にスキーマ情報を格納してからの手順を示すフローチャートである。
【図４】図１のデータベース６のスキーマ情報を更新前後の様子を示す図である。
【図５】本発明の実施形態２のスキーマ情報参照装置の模式的な構成を示すブロック図である。
【図６】図５のスキーマ情報格納ファイル５にスキーマ情報を格納してからの手順を示すフローチャートである。
【符号の説明】
１　キーボード
２　スキーマ情報の読み込み手段
３　スキーマ情報の保持手段
４　スキーマ情報の差分チェック手段
５　スキーマ情報格納ファイル
６　データベース
７　ＳＱＬの整合性チェック手段
【図１】
2004030179.tif 000003
【図２】
2004030179.tif 000004
【図３】
2004030179.tif 000005
【図４】
2004030179.tif 000006
【図５】
2004030179.tif 000007
【図６】
2004030179.tif 000008