(57)【要約】【課題】検索手続きを自動的に生成してデータベースに対する検索を支援すること。【解決手段】検索手続生成部４は、検索ＩＦ３を介してユーザから入力された条件エンティティ情報および対象エンティティ情報と、設備ＤＢメタデータ管理部２に予め保存されたエンティティ管理テーブルおよびリレーション管理テーブルとに基づき、条件・対象エンティティ間リレーション並びに循環リレーションを抽出し、それぞれ条件・対象エンティティ間リレーション管理テーブル並びに循環リレーション管理テーブルとして設備ＤＢメタデータ管理部２に保存し、前記入力情報および設備ＤＢメタデータ管理部２に保存された情報に基づき、検索手続きを生成して検索手続蓄積部５に蓄積し、該検索手続きに従って設備ＤＢ１に対して検索処理を実行し、検索結果を検索ＩＦ３を介してユーザに提示する。【選択図】図１
2008204332.tif 000002
【特許請求の範囲】
【請求項１】
データベースに対する検索を、入力装置、表示装置、記憶装置、演算処理装置を少なくとも備えたコンピュータを用いて支援する方法であって、
当該コンピュータの演算処理装置が、
入力装置を介してユーザから入力された検索条件となるエンティティである条件エンティティに関する情報および検索対象となるエンティティである対象エンティティに関する情報を受け付ける工程と、
前記条件エンティティに関する情報および対象エンティティに関する情報とともに、予め記憶装置に保存された、検索対象データベースを構成する各エンティティに関する情報や各リレーションに関する情報を表すデータベーススキーマ情報を含むデータベースメタデータに基づいて、条件エンティティおよび対象エンティティ間を関連付ける単一のリレーションまたは複数のリレーションの組み合わせからなる複合的なリレーションである条件・対象エンティティ間リレーションに関する情報を抽出し、記憶装置に登録する工程と、
前記条件エンティティに関する情報、対象エンティティに関する情報、データベースメタデータおよび条件・対象エンティティ間リレーションに関する情報に基づいて、検索手続きを生成し、記憶装置に蓄積する工程と、
記憶装置から検索手続きを読み出し、検索対象データベースに対して検索処理を実行してその結果を表示装置を介してユーザに提示する工程とを行う、
ことを特徴とするデータベース検索支援方法。
【請求項２】
請求項１に記載のデータベース検索支援方法において、
データベースメタデータとして各リレーションの多重度情報を含めるとともに、条件・対象エンティティ間リレーションが、特定のエンティティが有するリレーションであって自己を参照するように関連付けるリレーションである循環リレーション（該リレーションが単一のリレーションにより構成される場合はその多重度が１対１、１対多、多対１のものに限る。また、該リレーションが複数のリレーションを介して参照する場合は、多対１のリレーション、１対多のリレーションの順で経由するもの、および１対多のリレーション、多対１のリレーションの順で経由するものを除く。）を除いて複数存在する場合にそれを検出し、条件エンティティ、多対一のリレーション、一対多のリレーション、対象エンティティの順で経由するリレーションから構成される条件・対象エンティティ間リレーションを検索手続きの生成対象から除くことにより、条件エンティティのインスタンスに直接関連する対象エンティティのインスタンスのみを検索結果として出力する検索手続きを生成する、
ことを特徴とするデータベース検索支援方法。
【請求項３】
請求項１に記載のデータベース検索支援方法において、
データベースメタデータとして各リレーションの多重度情報を含めるとともに、条件・対象エンティティ間リレーション上に循環リレーションを有するエンティティが存在する場合にそれを検出し、該循環リレーションに沿って検索を繰り返す検索手続きを生成する、
ことを特徴とするデータベース検索支援方法。
【請求項４】
請求項１に記載のデータベース検索支援方法において、
データベースメタデータとして各リレーションの多重度情報、および各リレーションが上部エンティティから下部エンティティへと関連付けるリレーションか下部エンティティから上部エンティティへと関連付けるリレーションかを示すリレーションの方向についての情報を含めるとともに、条件・対象エンティティ間リレーション上に循環リレーションを有するエンティティが存在する場合にそれを検出し、ユーザから指定された上部方向への検索か下部方向への検索かを示す検索の方向に応じて、該循環リレーションに沿って検索を繰り返す検索手続きを生成する、
ことを特徴とするデータベース検索支援方法。
【請求項５】
請求項１に記載のデータベース検索支援方法において、
データベースメタデータとして各リレーションの多重度情報、および各リレーションが上部エンティティから下部エンティティへと関連付けるリレーションか下部エンティティから上部エンティティへと関連付けるリレーションかを示すリレーションの方向についての情報を含めるとともに、条件・対象エンティティ間リレーション上に循環リレーションを有するエンティティが存在する場合にそれを検出し、対象エンティティが、該循環リレーションを有するエンティティの上部方向に関連付けられるか下部方向に関連付けられるかによって定まる検索の方向に応じて、該循環リレーションに沿って検索を繰り返す検索手続きを生成する、
ことを特徴とするデータベース検索支援方法。
【請求項６】
請求項１に記載のデータベース検索支援方法において、
予め生成した機械可読な形式の検索手続きを該検索手続きの条件エンティティに関する情報および対象エンティティに関する情報と共に記憶装置に蓄積・管理するとともに、ユーザから入力された条件エンティティに関する情報および対象エンティティに関する情報に基づいて前記蓄積・管理された検索手続きを検索し、該当する検索手続きがあればそれを再利用して実行し、なければ新たに検索手続きを生成して実行する、
ことを特徴とするデータベース検索支援方法。
【請求項７】
請求項１に記載のデータベース検索支援方法において、
生成された検索手続きまたは予め記憶装置に蓄積され読み出された検索手続きをそのまま実行する、もしくは実行前に前記検索手続きをユーザに提示し、ユーザによる修正を受けた検索手続きを実行する、
ことを特徴とするデータベース検索支援方法。
【請求項８】
請求項１に記載のデータベース検索支援方法において、
条件エンティティに関する情報として、エンティティ名、該エンティティが有する少なくとも１つの属性名とその属性値の全てまたはその一部を用い、対象エンティティに関する情報として、エンティティ名、該エンティティが有する少なくとも１つの属性名の全てまたはその一部を用いるとともに、情報受け付け時に前記属性値の入力がない場合は、検索実行の際に該属性値の型に応じた入力形式にてユーザに該属性値の入力を求める、
ことを特徴とするデータベース検索支援方法。
【請求項９】
データベースに対する検索を支援する装置であって、
検索対象データベースを構成する各エンティティに関する情報および各リレーションに関する情報をそれぞれエンティティ管理テーブルおよびリレーション管理テーブルとして登録・保存するデータベースメタデータ管理部と、
ユーザからの検索条件となるエンティティである条件エンティティに関する情報および検索対象となるエンティティである対象エンティティに関する情報の入力や各種の操作を受け付けるとともに、該受け付けた入力情報や操作、あるいは各部における処理結果をユーザに提示する検索インターフェースと、
検索インターフェースを介してユーザから入力された条件エンティティに関する情報および対象エンティティに関する情報と、データベースメタデータ管理部に保存されたエンティティ管理テーブルおよびリレーション管理テーブルとに基づいて、条件エンティティおよび対象エンティティ間を関連付ける単一のリレーションまたは複数のリレーションの組み合わせからなる複合的なリレーションである条件・対象エンティティ間リレーションに関する情報および循環リレーションに関する情報を抽出し、それぞれ条件・対象エンティティ間リレーション管理テーブルおよび循環リレーション管理テーブルとしてデータベースメタデータ管理部に登録するとともに、前記条件エンティティに関する情報および対象エンティティに関する情報と、データベースメタデータ管理部に保存されたエンティティ管理テーブル、リレーション管理テーブル、条件・対象エンティティ間リレーション管理テーブルおよび循環リレーション管理テーブルとに基づいて、検索手続きを生成する検索手続生成部と、
検索手続生成部にて生成された検索手続きを蓄積する検索手続蓄積部と、
検索手続蓄積部から検索手続きを読み出し、検索対象データベースに対して検索処理を実行してその結果を検索インタフェースを介してユーザに提示する検索手続実行部とを備えた、
ことを特徴とするデータベース検索支援装置。
【請求項１０】
コンピュータを、請求項９に記載の装置を構成する各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース（ＤＢ）検索技術に係り、特にＤＢ構造やＤＢ操作言語に関する知識の乏しいユーザであっても、ＤＢに対する検索要求の手続きを容易に生成し、実行可能とする技術に関する。
【背景技術】
【０００２】
ネットワーク設備の構築や保守等を効率的に行うためには、オペレータ等が必要なときに必要な設備情報を簡単に取得できる仕組みが重要となる。しかし現状では、業務支援システム（ＯｐＳ）によって検索条件が限られており、様々な状況に応じて発生する新たな検索ニーズに柔軟に対応することが困難である。また新たなニーズに対応してシステムを変更しようとしても、オペレータ側ではＤＢ操作言語やＤＢスキーマ等の知識が必要なことから困難であり、開発者側では手間や開発コストの面から容易でなかった。そこで、例えば特許文献１で述べられているような、ＤＢ検索における、利用者が指定した検索項目の関連情報が検索結果として簡便に得られるようにする方法等、を用いることが考えられた。
【特許文献１】特許第３６０１４５６号公報「データベース検索における検索項目補完方法及び装置及びデータベース検索における検索項目補完プログラム及びデータベース検索における検索項目補完プログラムを格納した記憶媒体」
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、ネットワーク設備管理情報においては、
・システム（ここではネットワーク設備）を構成する要素またはその概念であるエンティティ同士の間でリレーションが複数定義されており、検索要求の手続き（以下、検索手続き）を一意に生成することが困難、
・エンティティによっては、自己に循環するリレーションが定義されている場合があり、複雑な検索手続きが必要、
等の課題があり、上記特許文献１に述べられる方法等ではこれらの解決は困難であった。
【０００４】
本発明は、エンティティ間でリレーションが複数定義されているような場合や、自己に循環するリレーションが定義されていて複雑な検索手続きが必要な場合であっても、検索手続きを一意かつ容易に生成することができるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明（請求項１）は、データベースに対する検索を、入力装置、表示装置、記憶装置、演算処理装置を少なくとも備えたコンピュータを用いて支援する方法であって、当該コンピュータの演算処理装置が、入力装置を介してユーザから入力された検索条件となるエンティティである条件エンティティに関する情報および検索対象となるエンティティである対象エンティティに関する情報を受け付ける工程と、前記条件エンティティに関する情報および対象エンティティに関する情報とともに、予め記憶装置に保存された、検索対象データベースを構成する各エンティティに関する情報や各リレーションに関する情報を表すデータベーススキーマ情報を含むデータベースメタデータに基づいて、条件エンティティおよび対象エンティティ間を関連付ける単一のリレーションまたは複数のリレーションの組み合わせからなる複合的なリレーションである条件・対象エンティティ間リレーションに関する情報を抽出し、記憶装置に登録する工程と、前記条件エンティティに関する情報、対象エンティティに関する情報、データベースメタデータおよび条件・対象エンティティ間リレーションに関する情報に基づいて、検索手続きを生成し、記憶装置に蓄積する工程と、記憶装置から検索手続きを読み出し、検索対象データベースに対して検索処理を実行してその結果を表示装置を介してユーザに提示する工程とを行う、ことを特徴とする。
【０００６】
また本発明（請求項２）は、請求項１に記載のデータベース検索支援方法において、データベースメタデータとして各リレーションの多重度情報を含めるとともに、条件・対象エンティティ間リレーションが、特定のエンティティが有するリレーションであって自己を参照するように関連付けるリレーションである循環リレーション（該リレーションが単一のリレーションにより構成される場合はその多重度が１対１、１対多、多対１のものに限る。また、該リレーションが複数のリレーションを介して参照する場合は、多対１のリレーション、１対多のリレーションの順で経由するもの、および１対多のリレーション、多対１のリレーションの順で経由するものを除く。）を除いて複数存在する場合にそれを検出し、条件エンティティ、多対一のリレーション、一対多のリレーション、対象エンティティの順で経由するリレーションから構成される条件・対象エンティティ間リレーションを検索手続きの生成対象から除くことにより、条件エンティティのインスタンスに直接関連する対象エンティティのインスタンスのみを検索結果として出力する検索手続きを生成する、ことを特徴とする。
【０００７】
また本発明（請求項３）は、請求項１に記載のデータベース検索支援方法において、データベースメタデータとして各リレーションの多重度情報を含めるとともに、条件・対象エンティティ間リレーション上に循環リレーションを有するエンティティが存在する場合にそれを検出し、該循環リレーションに沿って検索を繰り返す検索手続きを生成する、ことを特徴とする。
【０００８】
また本発明（請求項４）は、請求項１に記載のデータベース検索支援方法において、データベースメタデータとして各リレーションの多重度情報、および各リレーションが上部エンティティから下部エンティティへと関連付けるリレーションか下部エンティティから上部エンティティへと関連付けるリレーションかを示すリレーションの方向についての情報を含めるとともに、条件・対象エンティティ間リレーション上に循環リレーションを有するエンティティが存在する場合にそれを検出し、ユーザから指定された上部方向への検索か下部方向への検索かを示す検索の方向に応じて、該循環リレーションに沿って検索を繰り返す検索手続きを生成する、ことを特徴とする。
【０００９】
また本発明（請求項５）は、請求項１に記載のデータベース検索支援方法において、データベースメタデータとして各リレーションの多重度情報、および各リレーションが上部エンティティから下部エンティティへと関連付けるリレーションか下部エンティティから上部エンティティへと関連付けるリレーションかを示すリレーションの方向についての情報を含めるとともに、条件・対象エンティティ間リレーション上に循環リレーションを有するエンティティが存在する場合にそれを検出し、対象エンティティが、該循環リレーションを有するエンティティの上部方向に関連付けられるか下部方向に関連付けられるかによって定まる検索の方向に応じて、該循環リレーションに沿って検索を繰り返す検索手続きを生成する、ことを特徴とする。
【００１０】
また本発明（請求項６）は、請求項１に記載のデータベース検索支援方法において、予め生成した機械可読な形式の検索手続きを該検索手続きの条件エンティティに関する情報および対象エンティティに関する情報と共に記憶装置に蓄積・管理するとともに、ユーザから入力された条件エンティティに関する情報および対象エンティティに関する情報に基づいて前記蓄積・管理された検索手続きを検索し、該当する検索手続きがあればそれを再利用して実行し、なければ新たに検索手続きを生成して実行する、ことを特徴とする。
【００１１】
また本発明（請求項７）は、請求項１に記載のデータベース検索支援方法において、生成された検索手続きまたは予め記憶装置に蓄積され読み出された検索手続きをそのまま実行する、もしくは実行前に前記検索手続きをユーザに提示し、ユーザによる修正を受けた検索手続きを実行する、ことを特徴とする。
【００１２】
また本発明（請求項８）は、請求項１に記載のデータベース検索支援方法において、条件エンティティに関する情報として、エンティティ名、該エンティティが有する少なくとも１つの属性名とその属性値の全てまたはその一部を用い、対象エンティティに関する情報として、エンティティ名、該エンティティが有する少なくとも１つの属性名の全てまたはその一部を用いるとともに、情報受け付け時に前記属性値の入力がない場合は、検索実行の際に該属性値の型に応じた入力形式にてユーザに該属性値の入力を求める、ことを特徴とする。
【００１３】
また本発明（請求項９）は、データベースに対する検索を支援する装置であって、検索対象データベースを構成する各エンティティに関する情報および各リレーションに関する情報をそれぞれエンティティ管理テーブルおよびリレーション管理テーブルとして登録・保存するデータベースメタデータ管理部と、ユーザからの検索条件となるエンティティである条件エンティティに関する情報および検索対象となるエンティティである対象エンティティに関する情報の入力や各種の操作を受け付けるとともに、該受け付けた入力情報や操作、あるいは各部における処理結果をユーザに提示する検索インターフェースと、検索インターフェースを介してユーザから入力された条件エンティティに関する情報および対象エンティティに関する情報と、データベースメタデータ管理部に保存されたエンティティ管理テーブルおよびリレーション管理テーブルとに基づいて、条件エンティティおよび対象エンティティ間を関連付ける単一のリレーションまたは複数のリレーションの組み合わせからなる複合的なリレーションである条件・対象エンティティ間リレーションに関する情報および循環リレーションに関する情報を抽出し、それぞれ条件・対象エンティティ間リレーション管理テーブルおよび循環リレーション管理テーブルとしてデータベースメタデータ管理部に登録するとともに、前記条件エンティティに関する情報および対象エンティティに関する情報と、データベースメタデータ管理部に保存されたエンティティ管理テーブル、リレーション管理テーブル、条件・対象エンティティ間リレーション管理テーブルおよび循環リレーション管理テーブルとに基づいて、検索手続きを生成する検索手続生成部と、検索手続生成部にて生成された検索手続きを蓄積する検索手続蓄積部と、検索手続蓄積部から検索手続きを読み出し、検索対象データベースに対して検索処理を実行してその結果を検索インタフェースを介してユーザに提示する検索手続実行部とを備えた、ことを特徴とする。
【００１４】
なお、本発明（請求項１０）は、コンピュータを、請求項９に記載の装置を構成する各手段として機能させるためのプログラムである。
【００１５】
これらの方法、装置およびプログラムにより、前記従来技術における課題を解決することが可能となる。
【発明の効果】
【００１６】
本発明によれば、エンティティ間でリレーションが複数定義されているような場合や、自己に循環するリレーションが定義されていて複雑な検索手続きが必要な場合であっても、検索手続きを一意かつ容易に生成することができる。
【発明を実施するための最良の形態】
【００１７】
図１は本発明の実施の形態の一例にかかるデータベース検索支援装置を示すもので、図中、１は設備データベース（設備ＤＢ）、２は設備データベースメタデータ管理部（設備ＤＢメタデータ管理部）、３は検索インターフェース（検索ＩＦ）、４は検索手続生成部、５は検索手続蓄積部、６は検索手続実行部である。
【００１８】
設備ＤＢ１は、検索対象となるデータベース、ここではネットワーク設備情報を管理するリレーショナルデータベースである。
【００１９】
設備ＤＢメタデータ管理部２は、設備ＤＢ１を構成する各エンティティに関する情報および各リレーションに関する情報をそれぞれエンティティ管理テーブルおよびリレーション管理テーブルとして登録・保存する。また、設備ＤＢメタデータ管理部２は、検索手続生成部４にて生成される条件・対象エンティティ間リレーション管理テーブル、循環リレーション管理テーブルおよび検索手続管理テーブルを登録・保存する。
【００２０】
検索ＩＦ３は、オペレータ（ユーザ）からの入力情報、即ち検索条件となるエンティティである条件エンティティに関する情報および検索対象となるエンティティである対象エンティティに関する情報や各種の操作を受け付けるとともに、該受け付けた入力情報や操作、あるいは各部における処理結果をユーザに提示（表示）する。
【００２１】
検索手続生成部４は、検索ＩＦ３を介してユーザから入力された条件エンティティに関する情報および対象エンティティに関する情報や設備ＤＢメタデータ管理部２に保存されたエンティティ管理テーブルおよびリレーション管理テーブルに基づいて、条件エンティティおよび対象エンティティ間を関連付ける単一のリレーションまたは複数のリレーションの組み合わせからなる複合的なリレーションである条件・対象エンティティ間リレーションに関する情報および循環リレーションに関する情報を抽出し、それぞれ条件・対象エンティティ間リレーション管理テーブルおよび循環リレーション管理テーブルとして設備ＤＢメタデータ管理部２に登録するとともに、前記条件エンティティに関する情報および対象エンティティに関する情報や設備ＤＢメタデータ管理部２に保存されたエンティティ管理テーブル、リレーション管理テーブル、条件・対象エンティティ間リレーション管理テーブルおよび循環リレーション管理テーブル（登録済みの検索手続管理テーブルがあればこれも含む）に基づいて、検索手続きに関する情報（検索手続き情報）を生成して検索手続蓄積部５に登録し、さらに当該検索手続き情報に関する検索手続管理テーブルを設備ＤＢメタデータ管理部２に登録する。
【００２２】
検索手続蓄積部５は、検索手続生成部４にて生成された検索手続き情報を登録・保存する。
【００２３】
検索手続実行部６は、検索手続蓄積部５から検索手続き情報を読み出し、設備ＤＢ１に対して検索処理を実行してその結果を検索ＩＦ３を介してユーザに提示する。
【００２４】
なお、前述した装置は、周知のコンピュータ上に実現することもでき、この際、前記設備ＤＢ１、設備ＤＢメタデータ管理部２、検索手続蓄積部５はコンピュータにおけるハードディスク等の記憶装置によって構成され、また、検索ＩＦ３はコンピュータにおけるキーボード、マウス等の入力装置および液晶ディスプレイ、ＣＲＴ等の表示装置によって構成され、また、検索手続生成部４、検索手続実行部６はコンピュータにおけるＣＰＵ、メモリ等とともに後述する図２、図５、図７にフローチャートで示すプログラムによって構成される。
【００２５】
次に、本発明によるデータベース検索方法の概要を、図１の装置構成図、図２のフローチャートを用いて説明する。
【００２６】
＜Ｓ１＞条件エンティティ情報・対象エンティティ情報受付
検索ＩＦ３は、ユーザからの入力情報、ここでは条件エンティティに関する情報および対象エンティティに関する情報を受け付け、図示しない記憶装置に一時保存する。ここで、条件エンティティに関する情報（条件エンティティ情報）としては、エンティティ名、該エンティティが有する少なくとも１つの属性名とその属性値の全てまたはその一部を入力することが考えられ、検索実行時に属性値を入力する場合は、ここでの属性値の入力は省略できるものとする。また、対象エンティティに関する情報（対象エンティティ情報）としては、エンティティ名、該エンティティが有する少なくとも１つの属性名の全てまたはその一部を入力することが考えられ、該エンティティの全ての属性値を対象とする場合は、属性名の入力を省略できるものとする。
【００２７】
＜Ｓ２＞条件・対象エンティティ間リレーションおよび循環リレーション抽出
検索手続生成部４は、検索ＩＦ３を介して入力された条件エンティティ情報および対象エンティティ情報と、設備ＤＢメタデータ管理部２に予め保存されたＤＢメタデータ、即ち設備ＤＢ１を構成する各エンティティに関する情報からなるエンティティ管理テーブルおよび各リレーションに関する情報からなるリレーション管理テーブルとに基づき、条件エンティティおよび対象エンティティ間を関連付ける単一のリレーションまたは複数のリレーションの組み合わせからなる複合的なリレーションである条件・対象エンティティ間リレーション、並びに該リレーション上のエンティティが有するリレーションであって自己を参照するように関連付けるリレーションである循環リレーション（該リレーションが単一のリレーションにより構成される場合はその多重度が１対１、１対多、多対１のものに限る。また、該リレーションが複数のリレーションを介して参照する場合は、多対１のリレーション、１対多のリレーションの順で経由するもの、および１対多のリレーション、多対１のリレーションの順で経由するものを除く。）を抽出し、それぞれ条件・対象エンティティ間リレーション管理テーブル、並びに循環リレーション管理テーブルとして設備ＤＢメタデータ管理部２に登録・保存する。条件・対象エンティティ間リレーションが複数抽出された場合は、検索手続生成部４が入出力エンティティ間リレーションを選別する。
【００２８】
＜Ｓ３＞検索手続き生成
検索手続生成部４は、前記入力された条件エンティティ情報および対象エンティティ情報と、設備ＤＢメタデータ管理部２に予め保存されたエンティティ管理テーブルおよびリレーション管理テーブルと、設備ＤＢメタデータ管理部２に前記保存された条件・対象エンティティ間リレーション管理テーブルおよび循環リレーション管理テーブルと（登録済みの検索手続管理テーブルがあればこれも含めて）に基づき、検索手続きに関する情報（検索手続き情報）を生成して検索手続蓄積部５に蓄積するとともに、当該検索手続き情報に関する検索手続管理テーブルを設備ＤＢメタデータ管理部２に登録・保存する。また、ユーザの要求に応じて、生成した検索手続き情報を検索ＩＦ３を介してユーザに提示し、修正を受け付けることも可能である。
【００２９】
＜Ｓ４＞検索手続き実行
検索手続実行部６は、検索手続蓄積部５から検索手続き情報を読み出し、該検索手続き情報に従って設備ＤＢ１に対して検索処理を実行し、検索結果を検索ＩＦ３を介してユーザに提示する。
【００３０】
なお、ユーザが条件エンティティ情報の入力に際して属性値の入力を省略した場合は、該値の入力をユーザに要求することも可能である。このとき、属性値の型に応じて入力形式を変更することも可能である。例えば、値の型が文字列であれば、ＯＲ形式での入力を可能とし、値の型が整数であれば、ＯＲ形式に加え、等号・不等号による範囲指定形式での入力を可能とすることができる。
【００３１】
図３に検索対象となる設備ＤＢの一例のデータ構成を、エンティティ・リレーションシップ図（ＥＲ図）により示す。ここでは架や架に収容される棚、棚に収容される心線（光ファイバ）、心線の末端に接続されるＯＮＵ（Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ  Ｕｎｉｔ）が定義されている。
【００３２】
また、図４に予め作成され、設備ＤＢメタデータ管理部２に保存された設備ＤＢ１に関する管理テーブルの一例を示す。エンティティ管理テーブルでは、各エンティティのエンティティＩＤやその属性に関する情報（属性名、属性型、属性種別）が管理される。また、リレーション管理テーブルでは、個々のリレーションのリレーションＩＤ（関連付けられる２つのエンティティをａ，ｂとした場合、「（Ｒ）（エンティティａのエンティティＩＤ）−（エンティティｂのエンティティＩＤ）」と表記（但し、実際には括弧“（”や“）”は記載しない。））やその属性に関する情報（エンティティａ多重度、エンティティｂ多重度、方向、エンティティａＩＤ、エンティティｂＩＤ、エンティティａ属性名、エンティティｂ属性名）が管理される。
【００３３】
ここで、リレーション管理テーブル（１）における属性「エンティティａ多重度」および「エンティティｂ多重度」は、各リレーションで関連付けられる２つのエンティティａ，ｂにおける多重度（“１”、“多”、等）を示す。例えば、リレーションＩＤ「Ｒ棚−架」のリレーションにおいてエンティティａに当たる「棚エンティティ」の多重度は「多」であり、エンティティｂに当たる「架エンティティ」の多重度は「１」である。また、属性「方向」は、エンティティａから見てエンティティｂが上部エンティティに当たるか下部エンティティに当たるかを示す。例えば、エンティティａに当たる「棚エンティティ」から見てエンティティｂに当たる「架エンティティ」は、自身を含むエンティティであるため上部エンティティに当たると定義し、またエンティティａに当たる「心線エンティティ」から見てそれが上部心線ＩＤによって参照するエンティティｂに当たる「心線エンティティ」は、自身の上流側に存在するエンティティであるため上部エンティティに当たると定義する。
【００３４】
またリレーション管理テーブル（２）における属性「エンティティａＩＤ」および「エンティティｂＩＤ」は、各リレーションで関連付けられる２つのエンティティａ，ｂにおけるエンティティＩＤを示し、また、属性「エンティティａ属性名」および「エンティティｂ属性名」は、各リレーションで関連付けられる２つのエンティティａ，ｂにおける参照先のエンティティのエンティティＩＤを示している。
【００３５】
なお、リレーション管理テーブル（１）における「方向」属性について、エンティティａから見てエンティティｂが“上部”と登録されている場合は、エンティティｂから見てエンティティａは“下部”であると認識され、前者が“下部”と登録されている場合は、後者は“上部”であると認識されるものとする。
【００３６】
図５は検索手続生成部４における条件・対象エンティティ間リレーションおよび循環リレーション抽出処理のフローチャートを、また、図６は検索手続生成部４における前記処理で生成され、設備ＤＢメタデータ管理部２に登録・保存される設備ＤＢ１に関する管理テーブルの一例を示すものである。
【００３７】
以下、これらを用いて検索手続生成部４における条件・対象エンティティ間リレーションおよび循環リレーション抽出処理について、具体例、ここでは図３の構造を有する設備ＤＢ１に対し、条件エンティティとして「棚エンティティ」を、対象エンティティとして「ＯＮＵエンティティ」を指定した場合を例に挙げて詳細に説明する。
【００３８】
＜Ｓ２１＞
まず、検索手続生成部４は、入力情報およびＤＢメタデータに基づき、条件・対象エンティティ間リレーションを抽出し、図６に示す条件・対象エンティティ間リレーション管理テーブル（１）（２）を設備ＤＢメタデータ管理部２に登録・保存する。なお、ここでは、特定のエンティティが有する循環リレーションは除くものとする。具体的には、心線エンティティが有する循環リレーションを除き、「棚→心線→ＯＮＵ」のリレーション（条件・対象エンティティ間リレーションＩＤ：Ｒ’棚−心線−ＯＮＵ）、および「棚→架→心線→ＯＮＵ」のリレーション（条件・対象エンティティ間リレーションＩＤ：Ｒ’棚−架−心線−ＯＮＵ）が抽出され、テーブル（１）にその条件エンティティ情報および対象エンティティ情報（条件エンティティＩＤおよび対象エンティティＩＤ）が、また、テーブル（２）にそれらを構成するリレーション情報（リレーションＩＤ）が登録される。
【００３９】
＜Ｓ２２＞
次に、検索手続生成部４は、設備ＤＢメタデータ管理部２に保存された、リレーション管理テーブルや条件・対象エンティティ間リレーション管理テーブルに基づき、条件・対象エンティティ間リレーション毎に、条件エンティティ→多対１のリレーション→１対多のリレーション→対象エンティティの順でリレーションを経由するか否かを判別し、該当するものを排除する。具体的には、「棚→架→心線→ＯＮＵ」のリレーション（リレーションＩＤ：Ｒ’棚−架−心線−ＯＮＵ）がこれに該当し、排除される。なお、条件エンティティと多対１のリレーションとの間、多対１のリレーションと１対多のリレーションとの間、１対多のリレーションと対象エンティティとの間に、他のエンティティやリレーションが介在する場合においても本条件を満たすものとし、該条件・対象エンティティ間リレーションは排除されるものとする。
【００４０】
＜Ｓ２３＞
次に、検索手続生成部４は、ＤＢメタデータに基づき、登録された条件・対象エンティティ間リレーション上のエンティティが有する循環リレーションを抽出し、図６に示す循環リレーション管理テーブル（１）（２）を設備ＤＢメタデータ管理部２に登録・保存する。具体的には、「心線エンティティ」が有する循環リレーション（循環リレーションＩＤ：Ｒ’心線−心線）が抽出され、テーブル（１）にそのリレーションを有するエンティティ情報（エンティティＩＤ）が、また、テーブル（２）にそれらを構成するリレーション情報（リレーションＩＤ）が登録される。
【００４１】
図７は検索手続生成部４における検索手続き生成処理のフローチャートを、また、図８は検索手続生成部４における前記処理で生成され、設備ＤＢメタデータ管理部２に登録・保存される検索手続き管理テーブルの一例を、さらにまた、図９は検索手続生成部４における前記処理で生成され、検索手続蓄積部に蓄積される検索手続きの一例を示すものである。
【００４２】
以下、これらを用いて検索手続生成部４における検索手続き生成処理について詳細に説明する。
【００４３】
＜Ｓ３１＞
まず、検索手続生成部４は、条件エンティティ情報および対象エンティティ情報に基づき、以前に生成され設備ＤＢメタデータ管理部２に保存された、検索手続きを管理する検索手続き管理テーブルを検索する。
【００４４】
＜Ｓ３２＞
次に、検索手続生成部４は、該当する検索手続きが検索手続き管理テーブル中に存在するか否かを判定し、存在すればＳ３３’で該当する手続きを読み出してＳ３４以降を実施し、存在しなければＳ３３以降を実施する。ここで、条件エンティティ情報および対象エンティティ情報とエンティティ名のみ合致し、属性名等が合致しない場合は、該当する検索手続きが存在しないものとして処理することも可能であるが、該当する検索手続きを読み出し、属性名等の修正を自動で行って利用することも可能である。なお、本動作は、図２のＳ１（条件・対象エンティティ情報受付）の後に行っても良い。
【００４５】
＜Ｓ３３＞
次に、検索手続生成部４は、検索手続きを生成する。このとき、条件・対象エンティティ間リレーション上にあって循環リレーションを有するエンティティで区切られる区間毎に、検索手続きを生成する。ここでは、条件エンティティである「棚エンティティ」から循環リレーションを有する「心線エンティティ」までの区間、および「心線エンティティ」から対象エンティティである「ＯＮＵエンティティ」までの区間で、検索手続きが生成される。
【００４６】
（１）「棚エンティティ」から「心線エンティティ」までの区間について
まず、下記の検索文テンプレートを基に、「棚エンティティ」から「心線エンティティ」まで、条件・対象エンティティ間リレーション上の各エンティティを順に辿り、各エンティティとの結合処理を実現する検索文を随時生成することにより、検索文を生成する。
【００４７】
ｓｅｌｅｃｔ  ？ａｔｔｒｉｂｕｔｅｓ  ｆｒｏｍ  ？ｔａｂｌｅｓ
ｗｈｅｒｅ  ？ｃｏｎｄｉｔｉｏｎｓ
即ち、結合を繰り返す毎に変数？ａｔｔｒｉｂｕｔｅｓに属性名を、変数？ｔａｂｌｅｓにエンティティ名を、変数？ｃｏｎｄｉｔｉｏｎｓに結合条件を追加していくことにより、検索文が生成され、これを実行する手続きがスクリプト形式等によって生成される。具体的には、図９におけるＳＱＬ文ｓｑｌ１が生成され、１．の手続きが生成される。ここで、図９は、条件エンティティ情報としてエンティティ名“棚”とエンティティ属性名“棚ＩＤ”のみが、また対象エンティティ情報としてエンティティ名“ＯＮＵ”とエンティティ属性名“ＯＮＵＩＤ”が入力された場合の例である。
【００４８】
次に、心線が有する循環リレーションにおける検索手続きを追加する。この場合も、上記テンプレートに基づき、循環リレーションを有するエンティティから循環リレーション上のエンティティを順に辿り、各エンティティとの結合処理を実現する検索文を随時生成し、最終的には自己結合を実現する検索文を生成し、それを繰返し実行する手続きがスクリプト形式等により生成される。具体的には、図９におけるＳＱＬ文ｓｑｌ２が生成され、２．３．４．５．の手続きが生成される。
【００４９】
なお、このとき、循環リレーションに対応する検索文を生成する際は、上部方向、下部方向の両方向への検索文を生成することが可能であるが、本例では、対象エンティティである「ＯＮＵエンティティ」が心線の下部方向に関連付けられているため（図４のリレーション管理テーブル（１）参照）、心線に対し下部方向に検索する手続きが生成される。なお、対象エンティティと循環リレーションを有するエンティティとの間のリレーションについて方向が未定義である（いずれの方向もあり得る）場合は、両方向について、あるいはユーザが指定した検索方向に応じて、図４のリレーション管理テーブル（１）の方向情報に基づき検索することも可能である。ここで、対象エンティティと循環リレーションを有するエンティティとを関連付けるリレーションが複数のリレーションから成る場合は、各々のリレーションの方向から全体の方向が導出される。例えば、全て上部方向のリレーションから成る場合は、全体として上部方向のリレーションと解される。
【００５０】
（２）「心線エンティティ」から「ＯＮＵエンティティ」までの区間について
（１）の場合と同様であるが、ここでは、終点の「ＯＮＵエンティティ」には循環リレーションが存在しないため、「心線エンティティ」から「ＯＮＵエンティティ」までの結合処理を実現する検索手続きのみが生成される。具体的にはＳＱＬ文ｓｑｌ３と６．７．の手続きが生成される。
【００５１】
＜Ｓ３４＞
次に、検索手続生成部４は、設備ＤＢメタデータ管理部２から読み出された検索手続き、あるいは前述した悟得して生成された検索手続きを、ユーザからの要求に応じて検索ＩＦ３を介して提示し、修正を受け付ける。
【００５２】
＜Ｓ３５＞
次に、検索手続生成部４は、生成・修正された検索手続きを検索手続蓄積部５に蓄積するとともに、当該検索手続きに関する情報、即ち手続きＩＤや条件、対象エンティティ情報等を検索手続き管理テーブルとして設備ＤＢメタデータ管理部２に登録・保存する。なお、循環リレーションにおける検索方向がいずれの方向もあり得る場合で、方向毎に手続きを管理する時は、前記テーブルにその方向情報を登録することも可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態の一例にかかるデータベース検索支援装置の構成図
【図２】本発明の実施の形態の一例にかかるデータベース検索支援方法のフローチャート
【図３】設備ＤＢの一例のデータ構成を示す説明図
【図４】予め作成された設備ＤＢに関する管理テーブルの一例を示す説明図
【図５】条件・対象エンティティ間リレーションおよび循環リレーション抽出処理のフローチャート
【図６】条件・対象エンティティ間リレーションおよび循環リレーション抽出処理で生成される設備ＤＢに関する管理テーブルの一例を示す説明図
【図７】検索手続き生成処理のフローチャート
【図８】検索手続き生成処理で生成される検索手続管理テーブルの一例を示す説明図
【図９】検索手続き生成処理で生成される検索手続きの一例を示す説明図
【符号の説明】
【００５４】
１：設備データベース（整備ＤＢ）、２：設備データベースメタデータ管理部（設備ＤＢメタデータ管理部）、３：検索インターフェース（検索ＩＦ）、４：検索手続生成部、５：検索手続蓄積部、６：検索手続実行部。
【図１】
2008204332.tif 000003
【図２】
2008204332.tif 000004
【図３】
2008204332.tif 000005
【図４】
2008204332.tif 000006
【図５】
2008204332.tif 000007
【図６】
2008204332.tif 000008
【図７】
2008204332.tif 000009
【図８】
2008204332.tif 000010
【図９】
2008204332.tif 000011