(57)【特許請求の範囲】
【請求項１】
データベースシステムへの問い合わせ文にメソッドへの呼び出しを記述することが可能であるデータベース管理システムへのメソッドの実行を含む問い合わせ処理において、メソッドの実行結果を保存する保存領域を設け、１又は複数の問い合わせ処理に対して同一のメソッドを同一値のパラメータ群に対し複数回実行する場合であって、インデックスを利用する場合には、データベース中のインデックスを利用することで得られるメソッドの実行結果を、またインデックスを利用せずメソッドを実行する場合には、最初のメソッドの実行結果を、前記保存領域に保存し、二度目以降のメソッド実行時には検索条件に指定されたキー情報によって前記保存領域中のメソッドの実行結果が使用可能か否か判断し、使用可能な実行結果についてはメソッド自体を実行することなくメソッドの実行結果とすること
を特徴とするメソッド実行方法。
【請求項２】
データベースシステムへの問い合わせ文にメソッドへの呼び出しを記述することが可能であるデータベース管理システムへのメソッドの実行を含む問い合わせ処理において、メソッドの実行結果を保存する保存領域を設け、１又は複数の問い合わせ処理に対して同一のメソッドを同一値のパラメータ群に対し複数回実行する場合であって、インデックスを利用する場合には、データベース中のインデックスを利用することで得られるメソッドの実行結果を、またインデックスを利用せずメソッドを実行する場合には、最初のメソッドの実行結果を、前記保存領域に保存するステップと、
二度目以降のメソッド実行時には検索条件に指定されたキー情報によって前記保存領域中のメソッドの実行結果が使用可能か否か判断し、使用可能な実行結果についてはメソッド自体を実行することなくメソッドの実行結果とするステップと、
をコンピュータに実行させることを特徴とするメソッド実行プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メソッド、すなわちデータベースインタフェース中にユーザが作成したプログラムを関数として記述し、データベースアクセス処理中に前記関数を実行することにより、データの編集、加工等のようにデータをユーザの求める形式に変換する方法であるメソッドを実行するメソッド実行方法およびメソッド実行プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来のデータベース管理システムにおいてもアクセスしたデータに対して、ユーザが作成したプログラムを起動するメソッドをデータベース管理システムが実行する機能は提供されていた。
【０００３】
従来のデータベース管理システムではメソッドの実行結果は一時的なものであり、実行結果はデータベース管理システム内で評価されたり、アプリケーション側へ返却されたりすることにより、データベース管理システム内からは失われていた。
【０００４】
図３、図４は、以下に示す。一問い合わせ処理中に、同一メソッドを同じ条件で複数回実行するような問い合わせ処理において、従来のデータベース管理システムでのメソッドの実行結果の扱いを示すものである。
【０００５】
図３にて、１０はアプリケーションを示し、２０はデータベース管理システムを示し、３０はインデックスを示し、４０は’ｐｈｏｔｏ’  テーブルを示し、４１は検索条件に合致するレコードを示し、４４はメソッドを示し、４５はメソッドの実行結果を示している。
【０００６】
また、図４にて、１０はアプリケーションを示し、２０はデータベース管理システムを示し、４０は’ｐｈｏｔｏ’  テーブルを示し、４４はメソッドを示し、４５はメソッドの実行結果を示している。
【０００７】
同一メソッドを同じ条件で複数回実行する問い合わせをＳＱＬで記述すると以下のようになる。
【０００８】
ｓｅｌｅｃｔ  ｘ．ｔｉｔｌｅ，ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）
ｆｒｏｍ  ｐｈｏｔｏ  ｘ
ｗｈｅｒｅ  ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）  ＞＝  ８０；
この問い合わせ文は’ｐｈｏｔｏ’  テーブル４０の中に格納されているデータに対してアクセスし、検索条件として与えたｏｂｊｅｃｔとの類似度をユーザ定義メソッド’ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）’の実行により、求め、その結果が８０以上となるデータについて、そのタイトルと類似度を返却するものである。
【０００９】
問い合わせの実行に際しては、
（１）ｗｈｅｒｅ  句の実行による検索条件との比較、条件に合致するレコードの取り出し、
（２）ｓｅｌｅｃｔ句の実行による、指定されたデータの取り出し
という処理が行われる。
【００１０】
ｗｈｅｒｅ  句の実行に際して、インデックスを利用する場合と全件検索を行う場合がある。インデックスを使用する場合には、インデックスを辿ることにより、ｗｈｅｒｅ  句で指定されたメソッドを実行し、ｗｈｅｒｅ  句の検索条件に合致するレコード群を得る。続いて、ｓｅｌｅｃｔ句の実行の際には、ｗｈｅｒｅ  句で算出したメソッドの結果は失われているため、ｓｅｌｅｃｔ句で指定されたメソッドを実行し、問い合わせの結果とする。
【００１１】
全件検索の場合には、１レコード毎にｗｈｅｒｅ  句の検索条件の評価、ｓｅｌｅｃｔ句の実行が可能であるため、１レコード毎にてｗｈｅｒｅ  句で実行したメソッドの実行結果を使用し、ｓｅｌｅｃｔ句のメソッドの実行結果とすることが可能である。そのため、メソッドの問い合わせ処理における実行回数を１回に抑えられる。
【００１２】
しかし、
ｓｅｌｅｃｔ  ｘ．ｔｉｔｌｅ，ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）
ｆｒｏｍ  ｐｈｏｔｏ  ｘ
ｗｈｅｒｅ  ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）  ＞＝  ８０；
ｓｅｌｅｃｔ  ｘ．ｔｉｔｌｅ，ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）
ｆｒｏｍ  ｐｈｏｔｏ  ｘ
ｗｈｅｒｅ  ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）  ＜＝  ２０；
というように検索条件に指定されたキーが異なる複数の問い合わせを実行する場合には一開目の問い合わせの実行で実行したメソッドの実行結果はデータベース管理システム内から失われているため、再度、メソッドをすべてのレコードに対して実行しなくてはならない。
【００１３】
【発明が解決しようとする課題】
上述したように、従来技術では、一問い合わせ処理中に、同一メソッドが同じ条件で複数回実行されるような問い合わせ処理に対して、また、検索条件に指定されたキーが異なる同一条件で実行するメソッドを含む複数の問い合わせ処理に対して、メソッドの実行要求が発生する度にメソッドを実行し、計算結果を算出していたため、メソッドの実行回数が増加し、ユーザからの問い合わせ処理が劣化するという問題があった。
【００１４】
本発明は、上記に鑑みてなされたもので、その目的とするところは、メソッドの実行結果をデータベース管理システム内で管理し、問い合わせに対する処理速度の向上を実現し得るメソッド実行方法およびメソッド実行プログラムを記録した記録媒体を提供することにある。
【００１５】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の本発明は、データベースシステムへの問い合わせ文にメソッドへの呼び出しを記述することが可能であるデータベース管理システムへのメソッドの実行を含む問い合わせ処理において、メソッドの実行結果を保存する保存領域を設け、１又は複数の問い合わせ処理に対して同一のメソッドを同一値のパラメータ群に対し複数回実行する場合であって、インデックスを利用する場合には、データベース中のインデックスを利用することで得られるメソッドの実行結果を、またインデックスを利用せずメソッドを実行する場合には、最初のメソッドの実行結果を、前記保存領域に保存し、二度目以降のメソッド実行時には検索条件に指定されたキー情報によって前記保存領域中のメソッドの実行結果が使用可能か否か判断し、使用可能な実行結果についてはメソッド自体を実行することなくメソッドの実行結果とすることを要旨とする。
【００１６】
請求項１記載の本発明にあっては、データベースシステムへの問い合わせ文にメソッドへの呼び出しを記述することが可能であるデータベース管理システムへのメソッドの実行を含む問い合わせ処理において、メソッドの実行結果を保存する保存領域を設け、１又は複数の問い合わせ処理に対して同一のメソッドを同一値のパラメータ群に対し複数回実行する場合であって、インデックスを利用する場合には、データベース中のインデックスを利用することで得られるメソッドの実行結果を保存領域に保存し、またインデックスを利用せずメソッドを実行する場合には、最初のメソッドの実行結果を保存領域に保存し、二度目以降のメソッド実行時には検索条件に指定されたキー情報によって前記保存領域中のメソッドの実行結果が使用可能か否か判断し、使用可能な実行結果についてはメソッド自体を実行することなくメソッドの実行結果とするため、メソッドの実行回数を削減し、アプリケーションからのデータベースアクセス処理速度を向上することができる。
【００１７】
また、請求項２記載の本発明は、データベースシステムへの問い合わせ文にメソッドへの呼び出しを記述することが可能であるデータベース管理システムへのメソッドの実行を含む問い合わせ処理において、メソッドの実行結果を保存する保存領域を設け、１又は複数の問い合わせ処理に対して同一のメソッドを同一値のパラメータ群に対し複数回実行する場合であって、インデックスを利用する場合には、データベース中のインデックスを利用することで得られるメソッドの実行結果を、またインデックスを利用せずメソッドを実行する場合には、最初のメソッドの実行結果を、前記保存領域に保存するステップと、二度目以降のメソッド実行時には検索条件に指定されたキー情報によって前記保存領域中のメソッドの実行結果が使用可能か否か判断し、使用可能な実行結果についてはメソッド自体を実行することなくメソッドの実行結果とするステップと、をコンピュータに実行させることを特徴とするメソッド実行プログラムを記録媒体に記録することを要旨とする。
【００１８】
請求項２記載の本発明にあっては、データベースシステムへの問い合わせ文にメソッドへの呼び出しを記述することが可能であるデータベース管理システムへのメソッドの実行を含む問い合わせ処理において、メソッドの実行結果を保存する保存領域を設け、１又は複数の問い合わせ処理に対して同一のメソッドを同一値のパラメータ群に対し複数回実行する場合であって、インデックスを利用する場合には、データベース中のインデックスを利用することで得られるメソッドの実行結果を保存領域に保存し、またインデックスを利用せずメソッドを実行する場合には、最初のメソッドの実行結果を保存領域に保存し、二度目以降のメソッド実行時には検索条件に指定されたキー情報によって前記保存領域中のメソッドの実行結果が使用可能か否か判断し、使用可能な実行結果についてはメソッド自体を実行することなくメソッドの実行結果とするメソッド実行プログラムを記録媒体に記録するため、該記録媒体を用いて、その流通性を高めることができる。
【００１９】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明する。図１は、本発明の一実施形態に係るメソッド実行方法におけるインデックスを使用したデータアクセスおよびメソッド実行を示す説明図であり、また図２は、本発明の他の実施形態に係るメソッド実行方法におけるインデックスを使用しないデータアクセスおよびメソッドの実行を示す説明図である。
【００２０】
図１において、１０はアプリケーションを示し、２０はデータベース管理システムを示し、３０はインデックスを示し、４０は’ｐｈｏｔｏ’  テーブルを示し、４１は検索条件に合致するレコードを示し、４２はメソッド実行結果保存領域を示している。
【００２１】
図２において、１０はアプリケーションを示し、２０はデータベース管理システムを示し、４０は’ｐｈｏｔｏ’  テーブルを示し、４２はメソッド実行結果保存領域を示し、４４はメソッドを示し、４５はメソッドの実行結果を示している。
【００２２】
図１、図２において、同一のメソッドを同じ条件で複数回実行する問い合わせをＳＱＬで表すと以下のようになる。
【００２３】
ｓｅｌｅｃｔ  ｘ．ｔｉｔｌｅ，ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）
ｆｒｏｍ  ｐｈｏｔｏ  ｘ
ｗｈｅｒｅ  ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）  ＞＝  ８０；
この問い合わせ文は’ｐｈｏｔｏ’  テーブル４０の中に格納されているデータに対してアクセスし、検索条件として与えたｏｂｊｅｃｔとの類似度をユーザ定義メソッド’ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）’の実行により求め、その結果が８０以上となるデータについて、そのタイトルとどの程度似ているかを示す類似度を返却するものである。
【００２４】
問い合わせの実行に際しては、
（１）ｗｈｅｒｅ  句の実行による検索条件との比較、条件に合致するレコードの取り出し、
（２）ｓｅｌｅｃｔ句の実行による、指定されたデータの取り出し
という処理が行われる。
【００２５】
ｗｈｅｒｅ  句の実行に際して、インデックスを利用する場合と全件検索を行う場合がある。
【００２６】
図１はインデックスを使用したデータアクセスを示している。図１において、インデックス３０を経由してデータをアクセスする際に、インデックス３０を辿ることにより、メソッド’ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）’の計算が実行される。このとき得られたメソッドの結果をメソッド実行結果保存領域４２に格納する。
【００２７】
ｓｅｌｅｃｔ句に指定されたメソッド’ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）’の実行に際しては、実際にユーザ定義メソッドを実行することなく、この保存された値を利用することにより、ｓｅｌｅｃｔ句の実行結果とすることができる。
【００２８】
図２はインデックスを使用せず、データを一件ずつ、評価する場合を示している。図２では、テーブル４０からデータを一件ずつ取り出し、このデータに対しメソッドを起動することにより、ｗｈｅｒｅ  句の評価を行う。この時のメソッドの実行結果はメソッド実行結果保存領域４２に保存する。
【００２９】
次に、ｓｅｌｅｃｔ句を実行する。ｓｅｌｅｃｔ句ではｗｈｅｒｅ  句の結果に対して、ｔｉｔｌｅ  とメソッド’ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）’を返却する。このメソッドの値は、先にｗｈｅｒｅ  句の実行の際に算出し、保存領域４２に保存してあった値を使用し、このＳＱＬの結果とする。
【００３０】
下記に示すような複数の問い合わせの場合にも一件目の問い合わせを実行する際にメソッドの実行結果を保存領域４２に保存してあるため、二件目の問い合わせの実行時には、検索条件で指定されたキー情報によって、保存されているメソッドの実行結果が使用可能かどうか判断し、使用可能となる一件目の問い合わせ処理で求めたメソッドの実行結果を利用することにより、二件目以降の問い合わせ処理の実行結果とすることができる。
【００３１】
ｓｅｌｅｃｔ  ｘ．ｔｉｔｌｅ，ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）
ｆｒｏｍ  ｐｈｏｔｏ  ｘ
ｗｈｅｒｅ  ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）  ＞＝  ８０；
ｓｅｌｅｃｔ  ｘ．ｔｉｔｌｅ，ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）
ｆｒｏｍ  ｐｈｏｔｏ  ｘ
ｗｈｅｒｅ  ｘ．ｓｉｍｉｌａｒｉｔｙ（ｏｂｊｅｃｔ）  ＜＝  ２０；
上述したように、メソッドの実行結果を保存領域に保存することにより、メソッドの実行回数を削減し、問い合わせ処理の実行速度を向上することができる。
【００３２】
【発明の効果】
以上説明したように、本発明によれば、複数のメソッドの実行を必要とするデータへの問い合わせ処理において一度実行したメソッドの実行結果を保存領域に保存することにより、二度目以降のメソッドの実行時に保存領域内に保存された実行結果を利用することができるので、メソッドの実行回数を削減でき、問い合わせ処理の実行速度を向上することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るメソッド実行方法におけるインデックスを使用したデータアクセスおよびメソッド実行を示す説明図である。
【図２】本発明の他の実施形態に係るメソッド実行方法におけるインデックスを使用しないデータアクセスおよびメソッドの実行を示す説明図である。
【図３】従来のメソッド実行方法におけるインデックスを使用したデータアクセスおよびメソッド実行を示す説明図である。
【図４】従来のメソッド実行方法におけるインデックスを使用しないデータアクセスおよびメソッドの実行を示す説明図である。
【符号の説明】
１０  アプリケーション
２０  データベース管理システム
３０  インデックス
４０  ’ｐｈｏｔｏ’  テーブル
４１  検索条件に合致するレコード
４２  メソッド実行結果の保存領域
４４  メソッド
４５  メソッドの実行結果
【図１】
0003563600.tif 000002
【図２】
0003563600.tif 000003
【図３】
0003563600.tif 000004
【図４】
0003563600.tif 000005