(57)【要約】【課題】リレーショナルデータベースに対する検索要求の手続きをオブジェクト指向プログラム言語を用いて記述可能とするデータベース検索支援システムを提供する。【解決手段】データベース検索支援システム１００は、アプリケーションシステム１０のシステム管理体系ごとにクラスを擬似的に提供し、あたかもアプリケーションシステム１０のシステム管理体系で構築されるデータ群を操作対象とする検索メソッドが定義された機能オブジェクトのように動作するものである。検索要求のためのメッセージが送信されると、そのメッセージで指定された検索条件を検索条件解析部１０４で解析し、ＳＱＬ言語変換部１０５で当該解析結果に基づく検索条件文を作成する。そして、検索実行部１０６が、その検索条件文を用いたＲＤＢＭＳ２０に対する問い合わせを実行する。【選択図】    図１
2004348570.tif 000002
【特許請求の範囲】
【請求項１】
リレーショナルデータベースに対する検索要求の手続きをオブジェクト指向プログラム言語を用いて記述可能とするためのデータベース検索支援システムであって、
前記リレーショナルデータベースを利用するアプリケーションシステムのデータ管理体系ごとに、そのデータ管理体系で構築されるデータ群を操作対象とする検索メソッドが定義されたオブジェクトを生成するクラスを擬似的に提供するプログラムインタフェース手段と、
前記リレーショナルデータベースの表構造を取得するスキーマ取得手段と、
前記プログラムインタフェース手段により提供されたクラスが生成したオブジェクトに対して検索要求のためのメッセージが前記アプリケーションシステムから送信された場合に、前記スキーマ取得手段により取得された前記リレーショナルデータベースの表構造に基づき、その検索要求に対応する検索条件文を作成するＳＱＬ言語変換手段と、
前記ＳＱＬ言語変換手段により作成された検索条件文を用いて前記リレーショナルデータベースに対する問い合わせを実行し、その検索結果を前記アプリケーションシステムに返却する検索実行手段と
を具備することを特徴とするデータベース検索支援システム。
【請求項２】
機密チェックの判断基準を前記データ管理体系ごとに管理するアクセス権限管理手段をさらに具備し、
前記ＳＱＬ言語変換手段は、前記アクセス権限管理手段により管理された判断基準に基づくアクセス権限レベルチェックを含む検索条件文を作成することを特徴とする請求項１記載のデータベース検索支援システム。
【請求項３】
前記メッセージは、属性、比較演算子および比較値からなる列検索条件を検索条件として指定可能であり、
前記メッセージで指定された検索条件の内容を解析する検索条件解析手段をさらに具備し、
前記ＳＱＬ言語変換手段は、前記検索条件解析手段の解析結果に基づき、前記検索条件文を作成することを特徴とする請求項１または２記載のデータベース検索支援システム。
【請求項４】
前記メッセージは、さらに複数の前記列検索条件を論理演算子で任意に組み合わせた検索条件を指定可能であることを特徴とする請求項３記載のデータベース検索支援システム。
【請求項５】
前記メッセージは、さらに複数の前記検索条件を論理演算子で任意に組み合わせた新たな検索条件を指定可能であることを特徴とする請求項４記載のデータベース検索支援システム。
【請求項６】
前記検索条件解析手段は、前記列検索条件の比較値として検索結果が格納されていた場合、その検索結果を基にした検索の実行が指示されたものと解析することを特徴とする請求項３、４または５記載のデータベース検索支援システム。
【請求項７】
リレーショナルデータベースに対する検索要求の手続きをオブジェクト指向プログラム言語を用いて記述可能とするためのデータベース検索支援方法であって、
前記リレーショナルデータベースを利用するアプリケーションシステムのデータ管理体系ごとに、そのデータ管理体系で構築されるデータ群を操作対象とする検索メソッドが定義されたオブジェクトを生成するクラスを擬似的に提供し、
前記リレーショナルデータベースの表構造を取得し、
前記提供したクラスが生成したオブジェクトに対して検索要求のためのメッセージが送信された場合に、前記取得した前記リレーショナルデータベースの表構造に基づき、その検索要求に対応する検索条件文を作成し、
前記作成した検索条件文を用いて前記リレーショナルデータベースに対する問い合わせを実行し、その検索結果を前記アプリケーションシステムに返却する
ことを特徴とするデータベース検索支援方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、データベース検索技術に係り、特に、データベース構造やデータベース検索言語に関する知識の乏しいユーザであっても、データベースに対する検索要求の手続きを容易にプログラミング可能とするデータベース検索支援システムおよびデータベース検索支援方法に関する。
【０００２】
【従来の技術】
情報化社会と称される今日では、データを効率的に蓄積し、かつ、その蓄積したデータを効率的に検索することが強く求められる。このようなことから、従来より、様々なデータベースモデルが開発されるに至っている。そして、その中の一つとして、リレーショナルデータベースが存在する。
【０００３】
リレーショナルデータベースは、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）と称されるデータベース検索言語で検索条件文を作成し、この検索条件文を使ってデータベースに対する問い合わせを行うことにより、所望のデータが検索できるようになっている。また、このＳＱＬは、プログラム中に埋め込むことも可能であるため、リレーショナルデータベースを利用したアプリケーションシステムも広く普及している。
【０００４】
【発明が解決しようとする課題】
ところで、このリレーショナルデータベースを利用したアプリケーションシステムを構築する場合、そのアプリケーションシステムのデータ管理体系とリレーショナルデータベース内部のデータ構造とは必ずしも一致するものではない。そして、不一致の場合には、そのデータベース構造の理解とＳＱＬに関する高度な知識とが必要となる。
【０００５】
実際、アプリケーションシステムのデータ管理体系とリレーショナルデータベース内部のデータ構造とが一致する場合の方が希であるため、結局、リレーショナルデータベースの検索を実行するプログラムを作成するには、データベース構造やＳＱＬに関する高度な知識が不可欠であるというのが現状であった。
【０００６】
この発明は、このような事情を考慮してなされたものであり、リレーショナルデータベースに対する検索要求の手続きをオブジェクト指向プログラム言語を用いて記述可能とするデータベース検索支援システムおよびデータベース検索支援方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
前述の目的を達成するために、この発明は、リレーショナルデータベースに対する検索要求の手続きをオブジェクト指向プログラム言語を用いて記述可能とするためのデータベース検索支援システムであって、前記リレーショナルデータベースを利用するアプリケーションシステムのデータ管理体系ごとに、そのデータ管理体系で構築されるデータ群を操作対象とする検索メソッドが定義されたオブジェクトを生成するクラスを擬似的に提供するプログラムインタフェース手段と、前記リレーショナルデータベースの表構造を取得するスキーマ取得手段と、前記プログラムインタフェース手段により提供されたクラスが生成したオブジェクトに対して検索要求のためのメッセージが送信された場合に、前記スキーマ取得手段により取得された前記リレーショナルデータベースの表構造に基づき、その検索要求に対応する検索条件文を作成するＳＱＬ言語変換手段と、前記ＳＱＬ言語変換手段により作成された検索条件文を用いて前記リレーショナルデータベースに対する問い合わせを実行し、その検索結果を前記アプリケーションシステムに返却する検索実行手段とを具備することを特徴とする。
【０００８】
この発明のデータベース検索支援システムは、アプリケーションシステムとリレーショナルデータベースマネジメントシステムとの間に介在し、各アプリケーションシステムのデータ管理体系ごとに、そのデータ管理体系で構築されるデータ群を操作対象とする検索メソッドを提供し、また、各アプリケーションシステムによる当該検索メソッドの実行を検索条件文に変換して、リレーショナルデータベースに対する問い合わせを代行する。
【０００９】
これにより、各アプリケーションシステムのデータ管理体系を知るのみで、実際のデータベース構造やデータベース検索言語に関する高度な知識を持ち合わせていなくとも、データベースに対する検索要求の手続きを容易にプログラミングすることが可能となる。
【００１０】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。
図１は、この発明の実施形態に係るデータベース検索支援システムの機能ブロックを示す図である。
【００１１】
このデータベース検索支援システム１００は、例えばクライアントサーバシステムのサーバコンピュータ上などで動作するものであり、図１に示すように、アプリケーションシステム１０とリレーショナルデータベースマネジメントシステム（ＲＤＢＭＳ）２０との間に介在して設けられる。なお、データベース検索支援システム１００が動作するコンピュータと、アプリケーションシステム１０が動作するコンピュータおよびＲＤＢＭＳ２０が動作するコンピュータとは、すべてが同一であっても良いし、一部またはすべてが異なっていても良い。
【００１２】
このデータベース検索支援システム１００は、ＲＤＢＭＳ２０が管理するデータベース２１の実際のデータ構造を意識することなく、アプリケーションシステム１０が各々のデータ管理体系に沿ってデータ検索を行うことを可能とするために設けられるものである。より具体的には、ＲＤＢＭＳ２０に対する検索要求の手続きをオブジェクト指向プログラム言語を用いてアプリケーションシステム１０をプログラミングできるようにするものであり、図２に示すように、このデータベース検索支援システム１００は、アプリケーションシステム１０のシステム管理体系ごとにクラスを擬似的に提供し、アプリケーションシステム１０には、このクラスにより生成されるオブジェクトに検索要求（メソッド実行）を行わせるようにする。つまり、このデータベース検索支援システム１００は、アプリケーションシステム１０からは１つの機能オブジェクトとして見えるように動作するものであり、あたかもアプリケーションシステム１０のシステム管理体系で構築されるデータ群を操作対象とする検索メソッドが定義された機能オブジェクトのように見せ掛けるための仕組みをもつ。
【００１３】
そして、これらを実現するために、このデータベース検索支援システム１００は、アプリケーション構造管理部１０１、スキーマ管理部１０２、アクセス権限管理部１０３、検索条件解析部１０４、ＳＱＬ言語変換部１０５および検索実行部１０６の各処理部を有している。なお、これらの各処理部は、当該データベース検索支援システム１００が動作するコンピュータのメモリに格納されてＣＰＵにより実行されるプログラムで構成される。
【００１４】
アプリケーションシステム１０は、それぞれ独自のグラフィカルユーザインタフェース（ＧＵＩ）１１を備えるのが一般的であり、このＧＵＩ１１を介して利用者からの入力を受け付ける。ここでは、アプリケーションシステム１０は、例えば書籍や車、不動産物件など、特定の分野の商品を検索するためのシステムであるものと想定する。また、検索対象の商品に関するデータは、ＲＤＢＭＳ２０が管理するデータベース２１に格納されているものとする。そして、ＧＵＩ１１を介して利用者からキーワードや検索開始指示などの入力を受け付けたアプリケーションシステム１０は、機能オブジェクトであるデータベース検索支援システム１００に対して検索要求のためのメッセージを送信する。
【００１５】
一方、データベース検索支援システム１００では、このアプリケーションシステム１０から送信されたメッセージをアプリケーション構造管理部１０１によって受信する。各アプリケーションプログラム１０に対するクラスの提供は、このアプリケーション構造管理部１０１によるプログラム間インタフェース制御により実現されるものであり、アプリケーション構造管理部１０１は、各アプリケーションシステム１０がどの属性（表中の列項目）を使用するのかを事前の設定により得て管理し、このメッセージに対応する問い合わせを代行するためにはデータベース２１のどのデータにアクセスすべきかを判別する。スキーマ管理部１０２は、ＲＤＢＭＳ２０が管理するデータベース２１のデータ構造を定義したデータ（スキーマ）をデータベース２１から得て管理しており、アプリケーション構造管理部１０１は、このスキーマ管理部１０２が管理するスキーマを参照し、アクセス対象のデータを特定する。この結果は、アプリケーション構造管理部１０１からＳＱＬ言語変換部１５に通知される。
【００１６】
アプリケーション構造管理部１０１によって受信されるメッセージには、アプリケーションシステム１０の利用者のアクセス権限が内包され、また、検索条件を指定することが可能である。そして、このアクセス権限はアクセス権限管理部１０３に、検索条件は検索条件解析部１０４にそれぞれ転送される。
【００１７】
アクセス権限管理部１０３は、各アプリケーションシステム１０がどのような機密チェックの判断基準を採用するのかを管理しており、その判断基準に基づくアクセス権限レベルチェックを含むＳＱＬ文を作成するようにＳＱＬ言語変換部１０５に指示する。例えば、アプリケーションシステム１０の利用者に与えられたレベルよりも高い機密レベルのデータの参照を禁止するといった判断基準などを管理することができる。つまり、各アプリケーションシステム１０が採用する機密チェックの判断基準をデータベース検索支援システム１００内に隠蔽することを実現している。
【００１８】
一方、検索条件解析部１０４は、アプリケーション構造管理部１０１から転送された検索条件を解析し、その解析結果に基づくＳＱＬ文を作成するようにＳＱＬ言語変換部１０５に指示するものであるが、この検索条件解析部１０４による検索条件の解析については後述する。
【００１９】
ＳＱＬ言語変換部１０５は、アプリケーション構造管理部１０１からの通知、アクセス権限管理部１０３および検索条件解析部１０４からの指示に基づき、アプリケーションシステム１０の検索要求をＳＱＬ文に変換する。そして、検索実行部１０６は、ＳＱＬ言語変換部１０５により作成されたＳＱＬ文を用いてＲＤＢＭＳ２０に対する問い合わせを行い、その検索結果をアプリケーション構造管理部１０１を介してアプリケーションシステム１０に返却する。
【００２０】
ここで、図３を参照して、“ＩＤ”、“ＮＡＭＥ”、“ＡＤＤＲ”の３つの属性を使用するアプリケーションシステム１０に対してクラス（Ｎ）を提供する場合を考える。また、このアプリケーションシステム１０では、アプリケーションシステム１０の利用者に与えられたレベルよりも高い機密レベルのデータの参照を禁止するといった機密チェックの判断基準が採用されるものとする。
【００２１】
一方、ＲＤＢＭＳ２０が管理するデータベース２１は、これらの属性値を表Ａおよび表Ｂの２つの表で保持し、かつ、この表Ａと表Ｂとは、属性“ＩＤ”で繋がりをもつものとする。
【００２２】
このような状況において、レベル３の権原レベルが与えられた利用者の“ＨＡＮＡ”が、“クラス（Ｎ）．検索（）”を実行すると、データベース検索支援システム１００では、次のＳＱＬ文によるＲＤＢＭＳ２０に対する問い合わせを実行する。なお、“検索（）”は、検索条件を指定しない、つまり全件検索の実行を示している。
【００２３】
2004348570.tif 000003
これにより、実際のデータベースの表構造や表同士の繋がりをデータベース検索支援システム１００内に隠蔽することが実現される。また、前述のように、アプリケーションシステム１０が採用する機密チェックの判断基準もこのデータベース検索支援システム１００内に隠蔽されている。したがって、アプリケーションシステム１０のプログラミング時には、これらを意識する必要が全くない。
【００２４】
次に、データベース検索支援システム１００の検索条件解析部１０４が実行する検索条件の解析について説明する。
【００２５】
前述したように、アプリケーションシステム１０が検索要求のためにデータベース検索支援システム１００に送信するメッセージには、検索条件を指定することが可能である。この検索条件は、図４に示すように、列名（属性）、比較演算子、比較値からなる１つの列を検索対象とする列検索条件を最小単位のオブジェクト（列条件オブジェクト）に見立て、図５に示すように、このオブジェクトを必要な数だけ論理演算子（「かつ（ＡＮＤ）」／「または（ＯＲ）」）で任意に組み合わせたものを検索条件オブジェクトとしてメッセージにセットする。なお、この検索条件オブジェクトは、必ずしも複数の列条件オブジェクトの組み合わせで構成しなければならないものではなく、１つの列条件オブジェクトのみでも良いのは言うまでもない。
【００２６】
図６には、２つの列条件オブジェクトを組み合わせて１つの検索条件オブジェクトを完成させる一例が示されている。
【００２７】
図６に示す検索条件オブジェクトは、２つの列条件オブジェクトの組み合わせによって構成されており、１つ目の列条件オブジェクトは、属性“ＩＤ”、比較演算子“＜”、比較値“２００”からなり、２つ目の列条件オブジェクトは、属性“ＡＤＤＲ”、比較演算子“＝”、比較値“ＴＯＫＹＯ”からなる。また、この２つの列条件オブジェクトは、演算子“ＯＲ”で組み合わせられている。そして、図３に示したクラス（Ｎ）がメッセージの送信先である場合、この検索条件オブジェクトを指定する検索は、例えば“クラス（Ｎ）．検索（検索条件オブジェクト）”として実行されることになる。
【００２８】
検索条件オブジェクトが２つ以上の列条件オブジェクトの組み合わせで構成されている場合、検索条件解析部１０４は、まず、この検索条件オブジェクトを列条件オブジェクトに細分化する。次に、検索条件解析部１０４は、この細分化した列条件オブジェクトのうち、同じ属性の列条件オブジェクト同士を統合し、論理の再構築を実行する。そして、このように組み立てた論理を解析結果としてＳＱＬ言語変換部１０５に引き渡す。一方、この論理を受け取ったＳＱＬ言語変換部１０５は、次のようなＳＱＬ文を作成することになる。
【００２９】
2004348570.tif 000004
なお、図６の例では、同じ属性の列条件オブジェクトが複数存在しないが、例えば３つ目の列条件オブジェクトとして、属性“ＩＤ”、比較演算子“＞”、比較値“５００”からなるものが存在した場合には、
2004348570.tif 000005
のように統合されることになる。
【００３０】
このように、オブジェクト指向的な部品と部品との組み合わせによって、検索条件を構成することを可能とすることにより、ＲＤＢＭＳ２０固有の検索式を知らなくとも、ＲＤＢＭＳ２０に対する検索要求の手続きをアプリケーションシステム１０中に記述することが可能となる。
【００３１】
また、この検索条件解析部１０４の解析機能を備えることによって、図７に示すように、複数の検索条件を論理演算子で結合し、より複雑な新たな検索条件を作成することも可能となる。この場合も、検索条件解析部１０４は、列条件オブジェクトへの細分化、同一属性の列条件オブジェクト同士の統合および論理の再構築を実行すれば良い。
【００３２】
さらに、このデータベース検索支援システム１００では、アプリケーションシステム１０が、最初に得られた検索結果の内容を破棄することなく、つまりその検索結果をベースにしつつ新たな検索条件を指定することを可能とする。
【００３３】
このために、検索条件解析部１０４は、図８に示すように、列条件オブジェクトの比較値として検索メソッドが直接セットされている場合（その旨を知らせるスイッチが付加されている場合）、または検索結果オブジェクトがセットされている場合、その検索結果を基にした検索の実行が指示されたものと解析する。
【００３４】
図９は、図３に示した検索で得た結果を基にして新たな検索条件を指定して検索要求を行う場合の一例を示す図であり、この列条件オブジェクトの比較値として検索メソッドがセットされていると、検索条件解析部１０４は、副問い合わせの検索条件文を作成する旨をＳＱＬ言語変換部１０５に指示し、その結果、次のようなＳＱＬ文が作成されることになる。
【００３５】
2004348570.tif 000006
また、この列条件オブジェクトの比較値として検索結果オブジェクトがセットされていると、検索条件解析部１０４は、その検索結果オブジェクトの内容に基づく列挙型問い合わせの検索条件文を作成する旨をＳＱＬ言語変換部１０５に指示し、その結果、次のようなＳＱＬ文が作成されることになる。
【００３６】
2004348570.tif 000007
これにより、複雑な副問い合わせ構文などを意識する必要なしに、ＳＱＬ言語での副問い合わせなどが実現されることになる。
【００３７】
図１０は、このデータベース検索支援システム１００の主要な動作手順を示すフローチャートである。
【００３８】
アプリケーションシステム１０から検索要求のためのメッセージが送信されると、アプリケーション構造管理部１０１は、その検索要求の対象となるデータを判別する（ステップＡ１）。また、検索条件解析部１０４は、そのメッセージで指定された検索条件オブジェクトを列条件オブジェクトに細分化する（ステップＡ２）。次に、検索条件解析部１０４は、その細分化した列条件オブジェクトのうち、同じ属性の列条件オブジェクト同士を統合し（ステップＡ３）、論理の再構築を実行する（ステップＡ４）。
【００３９】
ＳＱＬ言語変換部１０５は、アプリケーション構造管理部１０１からの通知に基づき、列名を実テーブルの列名に変換する等の処理を行うことにより、検索条件解析部１０４が再構築した論理からＳＱＬ文を作成する（ステップＡ５）。そして、検索実行部１０６は、このＳＱＬ言語変換部１０５で作成されたＳＱＬ文を用いて、ＲＤＢＭＳ２０に対する問い合わせを実行する（ステップＡ６）。
【００４０】
これにより、各々のデータ管理体系を知るのみで、実際のデータベース構造やデータベース検索言語に関する高度な知識を持ち合わせていなくとも、データベースに対する検索要求の手続きを容易にアプリケーションシステム１０内に記述することが可能となる。
【００４１】
また、このデータベース検索支援システム１００は、ＳＱＬ言語変換部１０５の置き換えのみで、Ａ社製のＲＤＢＭＳ２０対応版、Ｂ社製のＲＤＢＭＳ２０の対応版、Ｃ社製のＲＤＢＭＳ２０の対応版など、複数のＲＤＭＢＭＳ２０に対応することが可能である。
【００４２】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００４３】
【発明の効果】
以上説明したように、この発明によれば、リレーショナルデータベースに対する検索要求の手続きをオブジェクト指向プログラム言語を用いて記述可能とするデータベース検索支援システムおよびデータベース検索支援方法を提供することができる。
【図面の簡単な説明】
【図１】この発明の実施形態に係るデータベース検索支援システムの機能ブロックを示す図
【図２】同実施形態のデータベース検索支援システムがアプリケーションシステム向けに提供するプログラムインタフェースを説明するための概念図
【図３】同実施形態のデータベース検索支援システムを介在させた場合のＲＤＢＭＳの検索原理を説明するための概念図
【図４】同実施形態のデータベース検索支援システムで指定される列条件オブジェクトを示す図
【図５】図４に示した列条件オブジェクトを論理演算子で任意に組み合わせて構成される検索条件オブジェクトを示す図
【図６】２つの列条件オブジェクトを組み合わせて１つの検索条件オブジェクトを完成させる一例を示す図
【図７】図５に示した検索条件オブジェクトを論理演算子で任意に組み合わせて新たに構成される検索条件オブジェクトを示す図
【図８】最初に得られた検索結果の内容を破棄することなく、つまりその検索結果をベースにしつつ新たな検索条件を指定する例を説明するための図
【図９】図３に示した検索で得た結果を基にして新たな検索条件を指定して検索要求を行う場合の一例を示す図
【図１０】同実施形態のデータベース検索支援システムの主要な動作手順を示すフローチャート
【符号の説明】
１０…アプリケーションシステム、１１…グラフィカルユーザインタフェース（ＧＵＩ）、２０…リレーショナルデータベースマネジメントシステム（ＲＤＢＭＳ）、２１…データベース、１００…データベース検索支援システム、１０１…アプリケーション構造管理部、１０２…スキーマ管理部、１０３…アクセス権限管理部、１０４…検索条件解析部、１０５…ＳＱＬ言語変換部、１０６…検索実行部。
【図１】
2004348570.tif 000008
【図２】
2004348570.tif 000009
【図３】
2004348570.tif 000010
【図４】
2004348570.tif 000011
【図５】
2004348570.tif 000012
【図６】
2004348570.tif 000013
【図７】
2004348570.tif 000014
【図８】
2004348570.tif 000015
【図９】
2004348570.tif 000016
【図１０】
2004348570.tif 000017