(57)【特許請求の範囲】
【請求項１】
サーバからアクセスされデータを記憶蓄積し１つ以上の実表を含む関係データベースと、
前記実表の名前および項目名と関係づけた第１の仮想表の構成を定義し第１の仮想表（一意キーの表）を作成するストアドプロシージャと、前記ストアドプロシージャが未だ起動実行されていない場合あるいは前記ストアドプロシージャが既に起動実行され且つその後に前記関係データベースの更新がなされている場合に前記ストアドプロシージャを起動するストアドプロシージャ起動手段と、アプリケーションが定義した第２の仮想表の構成に前記第１の仮想表の名前および前記第１の仮想表を構成する項目名が指定されている場合には前記第１の仮想表の名前および前記第１の仮想表を構成する項目名に係わる処理に前記第１の仮想表（一意キーの表）を用いて前記関係データベースにアクセスする手段とを含み、アプリケーションから要求された処理に基づき前記関係データベースをアクセスし処理結果を前記アプリケーションに返す関係データベース管理システムを有するサーバと、
前記実表の名前および項目名ならびに前記ストアドプロシージャが定義する第１の仮想表の名前および第１の仮想表を構成する項目名と関係づけた第２の仮想表の構成を定義して前記関係データベースにアクセスする要求を前記関係データベース管理システムに発行し要求結果を前記関係データベース管理システムから受け取るアプリケーションを有するクライアントと、
を備えることを特徴とするデーターベースアクセス方式。
【請求項２】
関係データベース管理システムを含むサーバとアプリケーションを含むクライアントと関係データベースとを有するシステムのデーターベースにアクセスする方法であって、
前記関係データベース管理システムは、
前記関係データベースに含まれる実表の名前および項目名と関係づけた第１の仮想表の構成を定義するストアドプロシージャを登録し、
前記ストアドプロシージャを起動実行して第１の仮想表（一意キーの表）を作成し、
前記アプリケーションは、
前記関係データベースに含まれる実表の名前および項目名ならびに前記ストアドプロシージャが定義する第１の仮想表の名前および第１の仮想表を構成する項目名と関係づけた第２の仮想表の構成を定義して前記関係データベースにアクセスする要求を前記関係データベース管理システムに発行し、
前記関係データベース管理システムは、
前記アプリケーションから要求された処理に基づき前記関係データベースをアクセスし、
前記アプリケーションが定義した第２の仮想表の構成に前記第１の仮想表の名前および前記第１の仮想表を構成する項目名が指定されている場合には前記第１の仮想表の名前および前記第１の仮想表を構成する項目名に係わる処理に前記第１の仮想表（一意キーの表）を用いて前記関係データベースにアクセスし、
処理結果を前記アプリケーションに返し、
前記アプリケーションは、
要求結果を前記関係データベース管理システムから受け取る、
を特徴とするデーターベースアクセス方法。
【請求項３】
関係データベース管理システムが、
関係データベースに含まれる実表の名前および項目名と関係づけた第１の仮想表の構成を定義するストアドプロシージャを登録する処理と、
前記ストアドプロシージャを起動実行して第１の仮想表（一意キーの表）を作成する処理と、
アプリケーションが、
前記関係データベースに含まれる実表の名前および項目名ならびに前記ストアドプロシージャが定義する第１の仮想表の名前および第１の仮想表を構成する項目名と関係づけた第２の仮想表の構成を定義して前記関係データベースにアクセスする要求を前記関係データベース管理システムに発行する処理と、
前記関係データベース管理システムが、
前記アプリケーションから要求された処理に基づき前記関係データベースをアクセスする処理と、
前記アプリケーションが定義した第２の仮想表の構成に前記第１の仮想表の名前および前記第１の仮想表を構成する項目名が指定されている場合には前記第１の仮想表の名前および前記第１の仮想表を構成する項目名に係わる処理に前記第１の仮想表（一意キーの表）を用いて前記関係データベースにアクセスする処理と、
処理結果を前記アプリケーションに返す処理と、
前記アプリケーションが、
要求結果を前記関係データベース管理システムから受け取る処理と、
をコンピュータに実行させるためのプログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データーベース管理システムを用いてデータベースにアクセスするデーターベースアクセス方式，方法および記憶媒体に関し、特にデーターベース管理システムに登録したストアドプロシージャを用いてデータベースにアクセスするデーターベースアクセス方式，方法および記憶媒体に関する。
【０００２】
【従来の技術】
データーベース管理システムの一つである関係データベース管理システム（以下、ＲＤＢＭＳと略称する）では、関係データベース（以下、ＲＤＢと略称する）を表形式で管理している。表には、実際にデータが格納されている実表とデータは保存されず実行時に元になる実表のデータから生成される仮想表（ビューとも称す）がある。アプリケーションは表を参照するＳＱＬ言語を用いてＲＤＢＭＳを介してＲＤＢ上の必要なデータを取得する。
【０００３】
クライアント／サーバシステム（以下、Ｃ／Ｓシステムと略称する）においては、サーバにＲＤＢを接続してＲＤＢＭＳを備え、クライアント側に存在するアプリケーションがＳＱＬ言語を用いてＲＤＢＭＳに対してＲＤＢアクセス要求を行い、ＲＤＢＭＳからアクセス結果を貰う形態になっている。
【０００４】
すなわち、クライアントのアプリケーションが必要なデータを検索する場合、アプリケーションはＳＱＬ言語の書式にあわせた検索条件式をサーバのＲＤＢＭＳに発行し、ＲＤＢＭＳがＲＤＢのデータを検索して与えられた検索条件に合致するデータを選択し、クライアントのアプリケーションに検索結果を返す。このとき、ＲＤＢＭＳにおいて、検索用インデックスの作成などの高速アクセス技法が使用される。
【０００５】
しかし、ＲＤＢＭＳで作成されるインデックスがアプリケーションに最適な形で作成されるとは限らない。
【０００６】
例えば、図１０（ａ），（ｂ）に示すような実表Ａと実表Ｂから成るＲＤＢにおいて、商品ごとに最新の値段を求めるアプリケーションについて考えてみる。
【０００７】
アプリケーションは、以下の処理を行う。
（１）実表Ｂにおいて、同一商品番号の中で日付時刻が最新のものを含む行を選択する。
（２）実表Ａと上記（１）の結果を、それぞれの商品番号で関係づける。
（３）上記（２）の関係づけにより、商品番号と商品名称と値段から成る表を生成する。
（４）上記（３）の結果である表にアクセスして、商品番号と商品名称と値段のデータを取得する。
【０００８】
この場合、ＲＤＢＭＳにおいて日付時刻のインデックスは作成されるが、同一商品番号の中で日付時刻が最新のものに対するインデックスは作成されない。このため、アプリケーションは同一商品番号の中で日付時刻が最新のものを選択するための処理手続を、上記（１）において記述しなければならない。このように、ＲＤＢＭＳが作成するインデックスは個々のアプリケーションに最適なものではない。
【０００９】
また、上記のアプリケーション処理は各クライアントで実行されるので、各クライアントからの要求情報とサーバからの結果情報が、ネットワークを介してサーバとクライアント間で頻繁に行き交うことになる。
【００１０】
【発明が解決しようとする課題】
上述した従来の技術では、ＲＤＢＭＳで作成されるインデックスはデータ項目の単純なインデックスであり、アプリケーション側で特に必要とするデータがインデックス形式にならずアプリケーションの作成が煩雑になるという問題点がある。また、そのために、ＲＤＢＭＳとアプリケーションとの間のトラフィックが高まるという問題点もある。
【００１１】
本発明の目的は、ＲＤＢＭＳに登録されたストアドプロシージャを用いて、アプリケーションごとに必要なインデックスを作成し、アプリケーション作成を簡易化し、システム全体の性能を向上させる手段を提供することにある。
【００１２】
【課題を解決するための手段】
本願第１の発明のデーターベースアクセス方式は、サーバからアクセスされデータを記憶蓄積し１つ以上の実表を含む関係データベースと、前記実表の名前および項目名と関係づけた第１の仮想表の構成を定義し第１の仮想表（一意キーの表）を作成するストアドプロシージャと、前記ストアドプロシージャが未だ起動実行されていない場合あるいは前記ストアドプロシージャが既に起動実行され且つその後に前記関係データベースの更新がなされている場合に前記ストアドプロシージャを起動するストアドプロシージャ起動手段と、アプリケーションが定義した第２の仮想表の構成に前記第１の仮想表の名前および前記第１の仮想表を構成する項目名が指定されている場合には前記第１の仮想表の名前および前記第１の仮想表を構成する項目名に係わる処理に前記第１の仮想表（一意キーの表）を用いて前記関係データベースにアクセスする手段とを含み、アプリケーションから要求された処理に基づき前記関係データベースをアクセスし処理結果を前記アプリケーションに返す関係データベース管理システムを有するサーバと、前記実表の名前および項目名ならびに前記ストアドプロシージャが定義する第１の仮想表の名前および第１の仮想表を構成する項目名と関係づけた第２の仮想表の構成を定義して前記関係データベースにアクセスする要求を前記関係データベース管理システムに発行し要求結果を前記関係データベース管理システムから受け取るアプリケーションを有するクライアントと、を備える。
【００１３】
本願第２の発明のデーターベースアクセス方法は、関係データベース管理システムを含むサーバとアプリケーションを含むクライアントと関係データベースとを有するシステムのデーターベースにアクセスする方法であって、前記関係データベース管理システムは、前記関係データベースに含まれる実表の名前および項目名と関係づけた第１の仮想表の構成を定義するストアドプロシージャを登録し、前記ストアドプロシージャを起動実行して第１の仮想表（一意キーの表）を作成し、前記アプリケーションは、前記関係データベースに含まれる実表の名前および項目名ならびに前記ストアドプロシージャが定義する第１の仮想表の名前および第１の仮想表を構成する項目名と関係づけた第２の仮想表の構成を定義して前記関係データベースにアクセスする要求を前記関係データベース管理システムに発行し、前記関係データベース管理システムは、前記アプリケーションから要求された処理に基づき前記関係データベースをアクセスし、前記アプリケーションが定義した第２の仮想表の構成に前記第１の仮想表の名前および前記第１の仮想表を構成する項目名が指定されている場合には前記第１の仮想表の名前および前記第１の仮想表を構成する項目名に係わる処理に前記第１の仮想表（一意キーの表）を用いて前記関係データベースにアクセスし、処理結果を前記アプリケーションに返し、前記アプリケーションは、要求結果を前記関係データベース管理システムから受け取る、を特徴とする。
【００１４】
本願第３の発明の記録媒体は、関係データベース管理システムが、関係データベースに含まれる実表の名前および項目名と関係づけた第１の仮想表の構成を定義するストアドプロシージャを登録する処理と、前記ストアドプロシージャを起動実行して第１の仮想表（一意キーの表）を作成する処理と、アプリケーションが、前記関係データベースに含まれる実表の名前および項目名ならびに前記ストアドプロシージャが定義する第１の仮想表の名前および第１の仮想表を構成する項目名と関係づけた第２の仮想表の構成を定義して前記関係データベースにアクセスする要求を前記関係データベース管理システムに発行する処理と、前記関係データベース管理システムが、前記アプリケーションから要求された処理に基づき前記関係データベースをアクセスする処理と、前記アプリケーションが定義した第２の仮想表の構成に前記第１の仮想表の名前および前記第１の仮想表を構成する項目名が指定されている場合には前記第１の仮想表の名前および前記第１の仮想表を構成する項目名に係わる処理に前記第１の仮想表（一意キーの表）を用いて前記関係データベースにアクセスする処理と、処理結果を前記アプリケーションに返す処理と、前記アプリケーションが、要求結果を前記関係データベース管理システムから受け取る処理と、をコンピュータに実行させるためのプログラムを記録したことを特徴とする。
【００１９】
【発明の実施の形態】
本発明のデータベースアクセス方式について、図１を参照して説明する。
【００２０】
図１を参照すると、本発明のデータベースアクセス方式は、データベース４とデータベース管理システム５とストアドプロシージャ実行手段６とデータベースアクセス要求手段７から構成されている。
【００２１】
データベース４は、データを記憶蓄積するデータベースである。
【００２２】
データベース管理システム５は、データベース４を管理し、データベースアクセス要求手段７からの要求に基づきデータベース４にアクセスしてアクセス結果をデータベースアクセス要求手段７に返す。
【００２３】
ストアドプロシージャ実行手段６は、データベース管理システム５に登録されたストアドプロシージャを実行する。ストアドプロシージャは、データベースアクセス要求手段７が使用する一意キーの表（インデックス）を作成する処理を含んでいる。
【００２４】
データベースアクセス要求手段７は、ストアドプロシージャ実行手段６を実行させ実行結果を利用してデータベース４にアクセスすることをデータベース管理システム５に要求し要求結果をデータベース管理システム５から受け取る。
【００２５】
本発明の動作について説明する。なお、データベースアクセス要求手段７が利用するストアドプロシージャは、あらかじめ公知の方法で、データベース管理システム５に登録されているものとする。
【００２６】
まず、データベースアクセス要求手段７はストアドプロシージャが作成する一意キーの表（インデックス）を指定してデータベース４に対するアクセス要求をデータベース管理システム５に送る。
【００２７】
データベース管理システム５はストアドプロシージャ実行手段６を用いて指定されたストアドプロシージャを実行してデータベースアクセス要求手段７が使用する一意キーの表（インデックス）を作成した後に指定されたアクセス要求処理を行い、処理結果をデータベースアクセス要求手段７に返す。
【００２８】
データベースアクセス要求手段７はデータベース管理システム５から処理結果を受け取る。
【００２９】
このように、データベース管理システム５に登録されたストアドプロシージャにおいてデータベースアクセス要求手段７が使用する一意キーの表（インデックス）を作成することにより、データベースアクセス要求手段７は求めるデータを高速にデータベース４から取得することができる。
【００３０】
本発明のデータベースアクセス方式を適用した本発明の実施の形態について説明する。
【００３１】
本発明の第１の実施の形態について、図面を参照して詳細に説明する。第１の実施の形態は、２つの実表から成る商品の最新値段を管理しているＲＤＢを検索して商品の最新値段を取得して処理するシステムに関するものである。
【００３２】
図２は、第１の実施の形態の構成を示す図である。
【００３３】
図２を参照すると、第１の実施の形態は、サーバ１とクライアント２がネットワーク３で接続されている。サーバ１は、ＲＤＢ１１を接続し、ＲＤＢＭＳ１２を備えている。ＲＤＢＭＳ１２はストアドプロシージャ１３とストアドプロシージャ起動手段１４とを含む。クライアント２は、アプリケーション２１を含む。
【００３４】
ＲＤＢ１１は、データを記憶蓄積する関係データベースで、実表Ａ１１１と実表Ｂ１１２とから成っている。実表Ａ１１１は基本データであり、実表Ｂ１１２は基本データの履歴を保持するものである。
【００３５】
実表Ａ１１１は、ＲＤＢ１１を構成している表の一つである。実表Ａ１１１の構成を図３（ａ）に示す。実表Ａ１１１は商品番号と商品名称とから成り、各行は主キーである商品番号により一意に区別される。
【００３６】
実表Ｂ１１２は、ＲＤＢ１１を構成している表の一つである。実表Ｂ１１２の構成を図３（ｂ）に示す。実表Ｂ１１２は商品番号と日付時刻と値段とから成り、商品の最新の値段を示している。商品の値段が変更される度に、変更した日付時刻と新しい値段を示す行が登録される。商品番号は実表Ａ１１１の商品番号と対応しており、これにより実表Ａ１１１と実表Ｂ１１２が関係づけられる。日付時刻は値段が登録される日付と時刻であり、同一商品番号内での値段の登録順番を示すものである。日付時刻に替えて一連番号でもよい。商品番号と日付時刻を連結したもの（以下、「商品番号＋日付時刻」と記す）で各行を一意に区別する。
【００３７】
ＲＤＢＭＳ１２は、ＲＤＢ１１を管理しアクセスする。アプリケーション２１から発行された要求を処理し、発行された要求に対応する処理結果をアプリケーション２１に返す。
【００３８】
ストアドプロシージャ１３は、実表Ａ１１１と実表Ｂ１１２を基に仮想表Ａ１３１を定義生成してデータセットを選択作成する処理を行う。ストアドプロシージャ１３は、ストアドプロシージャ起動手段１４により起動される。仮想表Ａ１３１の名前は、ストアドプロシージャ１３をＲＤＢＭＳ１２に登録するときに決定される。アプリケーション２１はこの名前を指定することで、ストアドプロシージャ１３が生成した仮想表Ａ１３１を参照することができる。なお、ストアドプロシージャ１３をＲＤＢＭＳ１２に登録する方法については、公知の方法による。
【００３９】
仮想表Ａ１３１は、最新の履歴の一意キーから成る仮想表である。実表Ａ１１１と実表Ｂ１１２を基にストアドプロシージャ１３が定義生成し、実表Ａ１１１の商品番号とそれに対応する実表Ｂ１１２の商品番号内で最新（最大）の日付時刻とを組み合わせる選択条件が指定してある。仮想表Ａ１３１の構成を図３（ｃ）に示す。仮想表Ａ１３１は商品番号と日付時刻とから成り、商品番号は実表Ａ１１１のは商品番号に、日付時刻は実表Ｂ１１２の同一商品番号内の最新（最大）の日付時刻に、それぞれ対応している。仮想表Ａ１３１は、アプリケーション２１から見れば、常にＲＤＢ１１の最新状態を反映したインデックスの役目をしており、アプリケーション２１から参照される。
【００４０】
ストアドプロシージャ起動手段１４は、アプリケーション２１がストアドプロシージャ１３が生成する仮想表Ａ１３１を使用する要求をＲＤＢＭＳ１２に行った場合に、ストアドプロシージャ１３を起動する。指定されたストアドプロシージャ１３が既に起動実行されていて且つその後にＲＤＢ１１の更新がなされていない場合には、ストアドプロシージャ１３を起動しない。この場合、既に実行されたストアドプロシージャ１３の処理結果が使用される。
【００４１】
アプリケーション２１は、ＲＤＢ１１の最新データを取得するために、ストアドプロシージャ１３が定義生成する仮想表Ａ１３１と関係づけを行った仮想表Ｂ２１１を定義してアクセス要求をＲＤＢＭＳ１２に発行する。発行した要求に対応する処理結果がＲＤＢＭＳ１２から返され、取得したデータを基にデータ処理を行う。
【００４２】
仮想表Ｂ２１１は、仮想表Ａ１３１と実表Ａ１１１と実表Ｂ１１２を基にアプリケーション２１が定義生成する仮想表であり、アプリケーション２１が必要とするデータから成る。仮想表Ｂ２１１の構成を図３（ｄ）に示す。仮想表Ｂ２１１は商品番号と商品名称と値段とから成り、商品番号は仮想表Ａ１３１の商品番号に対応する実表Ａ１１１の商品番号に、商品名称は仮想表Ａ１３１の商品番号に対応する実表Ａ１１１の商品名称に、値段は仮想表Ａ１３１の「商品番号＋日付時刻」に対応する実表Ｂ１１２の値段に、それぞれ対応している。
【００４３】
本発明の第１の実施の形態の動作について、図１〜図５を参照して詳細に説明する。
【００４４】
図４は第１の実施の形態の動作を説明する図で、（ａ）は実表Ａ１１１の具体例を、（ｂ）は実表Ｂ１１２の具体例を、（ｃ）は仮想表Ａ１３１の具体例を、（ｄ）は仮想表Ｂ２１１の具体例を、示したものである。（ａ）と（ｂ）から、商品名称”あああ”の最新の値段は日付時刻”０５２６１８００”に設定された”１９０”であることがわかる。図５は第１の実施の形態の動作の流れを示す図である。
【００４５】
図５を参照すると、アプリケーション２１は、実表Ａ１１１の商品番号と仮想表Ａ１３１の商品番号とを関係づけ、実表Ｂ１１２の「商品番号＋日付時刻」と仮想表Ａ１３１の「商品番号＋日付時刻」とを関係づけ、商品番号と商品名称と値段とから成る仮想表Ｂ２１１を定義して、ＲＤＢ１１に対するアクセスをＲＤＢＭＳ１２に要求する（ステップＡ１１〜Ａ１２）。
【００４６】
ＲＤＢＭＳ１２は、アプリケーション２１からのＲＤＢ１１に対するアクセス要求を分析し（ステップＭ１１）、ストアドプロシージャ１３が定義生成する仮想表Ａ１３１が指定されているときは、ストアドプロシージャ１３の起動実行が必要であるか否かを判断し、ストアドプロシージャ１３の起動実行が必要であることを認識したときにストアドプロシージャ１３を起動する（ステップＭ１２〜Ｍ１４）。指定されたストアドプロシージャ１３が既に起動実行されていて且つその後にＲＤＢ１１の更新がなされていない場合には、ストアドプロシージャ１３を起動しない。この場合、既に実行されたストアドプロシージャ１３の処理結果が使用される。
【００４７】
起動されたストアドプロシージャ１３は以下の処理を実行する。
（１）実表Ｂ１１２の商品番号ごとに、同一商品番号内で日付時刻が最新のものを含む行を選択する（ステップＳ１１）。
（２）実表Ａ１１１の商品番号と上記（１）の結果の商品番号とを関係づける（ステップＳ１２）。
（３）実表Ａ１１１の商品番号と上記（１）の結果の日付時刻から成る仮想表Ａ１３１のデータセットを作成する（ステップＳ１３）。ストアドプロシージャ１３の出力結果を図４（ｃ）に示す。
【００４８】
続いて、ＲＤＢＭＳ１２は仮想表Ｂ２１１に基づく処理を行う（ステップＭ１５）。ＲＤＢＭＳ１２の処理結果を図４（ｄ）に示す。
【００４９】
その後、ＲＤＢＭＳ１２は処理結果をアプリケーション２１に返す（ステップＭ１６）。
【００５０】
アプリケーション２１は、ＲＤＢＭＳ１２から処理結果を受け取り、アプリケーション処理を行う（ステップＡ１３）。
【００５１】
このようにして、アプリケーション２１は、ストアドプロシージャ１３の出力結果である仮想表Ａ１３１をインデックス代わりに使用することにより、求めているＲＤＢ１１の最新のデータを高速に得ることができる。
【００５２】
次に、本発明の第２の実施の形態  について、図面を参照して詳細に説明する。第２の実施の形態は、３つの実表から成る製品の障害内容を管理しているＲＤＢを検索して製品の最新の障害内容を取得して処理するシステムに関するものである。
【００５３】
図６は、第２の実施の形態の構成を示す図である。
【００５４】
図６を参照すると、第２の実施の形態は、サーバ１とクライアント２がネットワーク３で接続され、サーバ１はＲＤＢ１５を接続しストアドプロシージャ１７とストアドプロシージャ起動手段１４とを含むＲＤＢＭＳ１６を備え、クライアント２はアプリケーション２２を備えて構成され、第１の実施の形態のＲＤＢ１１とＲＤＢＭＳ１２とストアドプロシージャ１３とアプリケーション２１とが、ＲＤＢ１５とＲＤＢＭＳ１６とストアドプロシージャ１７とアプリケーション２２とに置換されたものである。
【００５５】
ここでは、第１の実施の形態と異なるＲＤＢ１５とＲＤＢＭＳ１６とストアドプロシージャ１７とアプリケーション２２とについて説明する。
【００５６】
ＲＤＢ１５は、データを記憶蓄積する関係データベースで、実表Ａ１５１と実表Ｂ１５２と実表Ｃ１５３とから成っている。実表Ａ１５１は基本データであり、実表Ｂ１５２と実表Ｃ１５３は基本データの履歴を保持するものである。
【００５７】
実表Ａ１５１は、ＲＤＢ１５を構成している表の一つである。実表Ａ１５１の構成を図７（ａ）に示す。実表Ａ１５１は製品番号と製品名称とから成り、各行は主キーである製品番号により一意に区別される。
【００５８】
実表Ｂ１５２は、ＲＤＢ１５を構成している表の一つである。実表Ｂ１５２の構成を図７（ｂ）に示す。実表Ｂ１５２は製品番号と枝番Ａと受付番号と削除とから成る。製品番号は実表Ａ１５１の製品番号と対応しており、これにより実表Ｂ１５２と実表Ａ１５１が関係づけられる。枝番Ａは同一製品番号内での受付番号の順番を示すもので、一連番号でも日付時刻でもよい。「製品番号＋枝番Ａ」で各行を一意に区別する。受付番号は製品を通して採番される一連番号であり、製品の障害が受け付けられるごとに受付番号が登録される。障害の内容は実表Ｃ１５３に登録される。同一製品に対して新たな障害受付が有った場合には、枝番Ａを上げて新たな受付番号を登録する。削除は、受付番号が一旦受け付けられた後に削除されたか否かを示すもので、受付番号が削除された場合に”ＤＥＬ”と示される。
【００５９】
実表Ｃ１５３は、ＲＤＢ１５を構成している表の一つである。実表Ｃ１５３の構成を図７（ｃ）に示す。実表Ｃ１５３は製品番号と枝番Ａと枝番Ｂと障害内容とから成る。「製品番号＋枝番Ａ」は実表Ｂ１５２の「製品番号＋枝番Ａ」と対応しており、これにより実表Ｃ１５３と実表Ｂ１５２が関係づけられる。枝番Ｂは同一「製品番号＋枝番Ａ」内での障害内容の順番を示すもので、一連番号でも日付時刻でもよい。「製品番号＋枝番Ａ＋枝番Ｂ」で各行を一意に区別する。障害内容には、受付番号に対応した障害内容が登録される。受け付けた受付番号についての障害内容が更新される場合には、枝番Ｂを上げて更新された障害内容を登録し別のデータとして履歴管理を行う。
【００６０】
ＲＤＢＭＳ１６は、ＲＤＢ１５を管理しアクセスする。アプリケーション２２から発行された要求を処理し、発行された要求に対応する処理結果をアプリケーション２２に返す。
【００６１】
ストアドプロシージャ１７は、実表Ａ１５１と実表Ｂ１５２と実表Ｃ１５３とを基に仮想表Ａ１７１を定義生成してデータセットを選択作成する処理を行う。ストアドプロシージャ１７は、ストアドプロシージャ起動手段１４により起動される。仮想表Ａ１７１の名前は、ストアドプロシージャ１７をＲＤＢＭＳ１６に登録するときに決定される。アプリケーション２２はこの名前を指定することで、ストアドプロシージャ１７が生成した仮想表Ａ１７１を参照することができる。なお、ストアドプロシージャ１７をＲＤＢＭＳ１６に登録する方法については、公知の方法による。
【００６２】
仮想表Ａ１７１は、最新の履歴の一意キーから成る仮想表である。実表Ａ１５１と実表Ｂ１５２と実表Ｃ１５３とを基にストアドプロシージャ１７が定義生成し、実表Ａ１５１の製品番号，実表Ｂ１５２の同一製品番号内で最大の枝番Ａおよび実表Ｃ１５３の同一「製品番号＋枝番Ａ」内で最大の枝番Ｂとを組み合わせる選択条件を指定してある。仮想表Ａ１７１の構成を図７（ｃ）に示す。仮想表Ａ１７１は製品番号と枝番Ａと枝番Ｂとから成り、製品番号は実表Ａ１５１の製品番号に，枝番Ａは実表Ｂ１５２の同一製品番号内で最大の枝番Ａに、枝番Ｂは実表Ｃ１５３の同一「製品番号＋枝番Ａ」内で最大の枝番Ｂに、それぞれ対応している。仮想表Ａ１７１は、アプリケーション２２から見れば、常にＲＤＢ１５の最新状態を反映したインデックスの役目をしており、アプリケーション２２から参照される。
【００６３】
アプリケーション２２は、ＲＤＢ１５の最新データを取得するために、ストアドプロシージャ１７が定義生成する仮想表Ａ１７１と関係づけを行った仮想表Ｂ２２１を定義してアクセス要求をＲＤＢＭＳ１６に発行する。発行した要求に対応する処理結果がＲＤＢＭＳ１６から返され、取得したデータを基にデータ処理を行う。
【００６４】
仮想表Ｂ２２１は、仮想表Ａ１７１と実表Ａ１５１と実表Ｂ１５２と実表Ｃ１５３を基にアプリケーション２２が定義生成する仮想表であり、アプリケーション２２が必要とするデータから成る。仮想表Ｂ２２１の構成を図７（ｄ）に示す。仮想表Ｂ２２１は製品番号と製品名称と受付番号と障害内容とから成り、製品番号は仮想表Ａ１７１の製品番号に対応する実表Ａ１５１の製品番号に、製品名称は仮想表Ａ１７１の製品番号に対応する実表Ａ１５１の製品名称に、受付番号は仮想表Ａ１７１の「製品番号＋枝番Ａ」に対応する実表Ｂ１５２の受付番号に、障害内容は仮想表Ａ１７１の「製品番号＋枝番Ａ＋枝番Ｂ」に対応する実表Ｃ１５３の障害内容に、それぞれ対応している。
【００６５】
本発明の第２の実施の形態の動作について、図６〜図９を参照して詳細に説明する。
【００６６】
図８は第２の実施の形態の動作を説明する図で、（ａ）は実表Ａ１５１の具体例を、（ｂ）は実表Ｂ１５２の具体例を、（ｃ）は実表Ｃ１５３の具体例を、（ｄ）は仮想表Ａ１７１の具体例を、（ｅ）は仮想表Ｂ２２１の具体例を、示したものである。（ｂ）において、受付番号”００２”および”００３”は、一旦受け付けられたがその後削除されたので、削除に”ＤＥＬ”と示されている。図９は第２の実施の形態の動作の流れを示す図である。
【００６７】
図９を参照すると、アプリケーション２２は、実表Ａ１５１の製品番号と仮想表Ａ１７１の製品番号とを関係づけ、実表Ｂ１５２の「製品番号＋枝番Ａ」と仮想表Ａ１７１の「製品番号＋枝番Ａ」とを関係づけ、実表Ｃ１５３の「製品番号＋枝番Ａ＋枝番Ｂ」と仮想表Ａ１７１の「製品番号＋枝番Ａ＋枝番Ｂ」とを関係づけ、製品番号と製品名称と受付番号と障害内容とから成る仮想表Ｂ２２１を定義して、ＲＤＢ１５に対するアクセスをＲＤＢＭＳ１６に要求する（ステップＡ２１〜Ａ２２）。
【００６８】
ＲＤＢＭＳ１６は、アプリケーション２２からのＲＤＢ１５に対するアクセス要求を分析し（ステップＭ２１）、ストアドプロシージャ１７が定義生成する仮想表Ａ１７１が指定されているときは、ストアドプロシージャ１７の起動実行が必要であるか否かを判断し、ストアドプロシージャ１７の起動実行が必要であることを認識したときにストアドプロシージャ１７を起動する（ステップＭ２２〜Ｍ２４）。指定されたストアドプロシージャ１７が既に起動実行されていて且つその後にＲＤＢ１５の更新がなされていない場合には、ストアドプロシージャ１７を起動しない。この場合、既に実行されたストアドプロシージャ１７の処理結果が使用される。
【００６９】
起動されたストアドプロシージャ１７は以下の処理を実行する。
（１）実表Ｃ１５３の「製品番号＋枝番Ａ」ごとに、同一「製品番号＋枝番Ａ」内で枝番Ｂが最大のものを含む行を選択する（ステップＳ２１）。この例では、図８（ｃ）の右端に○印が付いている行が選択される。
（２）実表Ｂ１５２の「製品番号＋枝番Ａ」と上記（１）の結果の「製品番号＋枝番Ａ」とを関係づける（ステップＳ２２）。このとき、実表Ｂ１５２の削除に”ＤＥＬ”が設定されている実表Ｂ１５２の「製品番号＋枝番Ａ」は除く。この例では、受付番号”００２”および”００３”の行は削除に”ＤＥＬ”が設定されているので除かれ、関係づけられるのは、図８（ｂ）および（ｃ）の右端に◎印が付いている行である。
（３）実表Ａ１５１の製品番号と上記（２）の結果の枝番Ａと上記（２）の結果の枝番Ｂとから成る仮想表Ａ１７１のデータセットを作成する（ステップＳ２３）。ストアドプロシージャ１７の出力結果を図８（ｄ）に示す。
【００７０】
続いて、ＲＤＢＭＳ１６は仮想表Ｂ２２１に基づく処理を行う（ステップＭ２５）。ＲＤＢＭＳ１６の処理結果を図８（ｅ）に示す。
【００７１】
その後、ＲＤＢＭＳ１６は処理結果をアプリケーション２２に返す（ステップＭ２６）。
【００７２】
アプリケーション２２は、ＲＤＢＭＳ１６から処理結果を受け取り、アプリケーション処理を行う（ステップＡ２３）。
【００７３】
このようにして、アプリケーション２２は、ストアドプロシージャ１７の出力結果である仮想表Ａ１７１をインデックス代わりに使用することにより、求めているＲＤＢ１５の最新のデータを高速に得ることができる。すなわち、アプリケーション２２は複雑な処理をすることなく、製品番号に対する最新の受付番号と障害内容とを取得して、処理を行うことができる。
【００７４】
本発明による上述した実施の形態において、データベースアクセス方式の処理動作を実行するためのプログラム等を、データとして磁気ディスクや光ディスク等の記憶装置（図示せず）に記憶するようにし、記憶されたデータを読み出してデータベースアクセス方式を動作させるために用いる。このように、本発明によるデータベースアクセス方式を動作させるデータを記憶媒体に記憶させ、この記憶媒体をインストールすることによりデータベースアクセス方式の機能が実現できるようになる。
【００７５】
【発明の効果】
第１の効果は、必要なストアドプロシージャを参照するだけで、アプリケーションから常に最新のデータを高速に参照することができることである。その理由は、アプリケーション用のインデックスを生成する機能をストアドプロシージャの中に構成するような手段を設けたためである。
【００７６】
第２の効果は、クライアントの負荷が軽減され且つネットワークのトラフィックも減少することである。その理由は、ストアドプロシージャがサーバー側で実行されるので、アプリケーションから複雑なＳＱＬを発行する必要がなく、アプリケーションも一意キーの表を基にしたデータ操作処理を記述するだけで処理が構築でき、クライアントのアプリケーションとサーバのＲＤＢＭＳとの間に発生するやりとりも少なくて済むためである。
【００７７】
第３の効果は、データベースの障害時、アプリケーション用のインデックスのために物理的なインデックステーブルの再作成といった特別の復旧処置が要らないことである。その理由は、アプリケーション用のインデックスが仮想的なテーブルとしてストアドプロシージャを利用しているためである。
【図面の簡単な説明】
【図１】本発明を説明する図
【図２】第１の実施の形態の構成を示す図
【図３】第１の実施の形態における（ａ）実表Ａ（ｂ）実表Ｂ（ｃ）仮想表Ａ（ｄ）仮想表Ｂの構成を示す図
【図４】第１の実施の形態の動作を説明する（ａ）実表Ａ（ｂ）実表Ｂ（ｃ）仮想表Ａ（ｄ）仮想表Ｂの図
【図５】第１の実施の形態の動作の流れを示す図
【図６】第２の実施の形態の構成を示す図
【図７】第２の実施の形態における（ａ）実表Ａ（ｂ）実表Ｂ（ｃ）実表Ｃ（ｄ）仮想表Ａ（ｅ）仮想表Ｂの構成を示す図
【図８】第２の実施の形態の動作を説明する（ａ）実表Ａ（ｂ）実表Ｂ（ｃ）実表Ｃ（ｄ）仮想表Ａ（ｅ）仮想表Ｂの図
【図９】第２の実施の形態の動作の流れを示す図
【図１０】従来の動作を説明する（ａ）実表Ａ（ｂ）実表Ｂ（ｃ）結果の図
【符号の説明】
１    サーバ
２    クライアント
３    ネットワーク
４    データベース
５    データベース管理システム
６    ストアドプロシージャ実行手段
７    データベースアクセス要求手段
１１    ＲＤＢ
１２    ＲＤＢＭＳ
１３    ストアドプロシージャ
１４    ストアドプロシージャ起動手段
１５    ＲＤＢ
１６    ＲＤＢＭＳ
１７    ストアドプロシージャ
２１    アプリケーション
２２    アプリケーション
１１１    実表Ａ
１１２    実表Ｂ
１３１    仮想表Ａ
１５１    実表Ａ
１５２    実表Ｂ
１５３    実表Ｃ
１７１    仮想表Ａ
２１１    仮想表Ｂ
２２１    仮想表Ｂ
【図１】
0003626632.tif 000002
【図２】
0003626632.tif 000003
【図３】
0003626632.tif 000004
【図４】
0003626632.tif 000005
【図５】
0003626632.tif 000006
【図６】
0003626632.tif 000007
【図７】
0003626632.tif 000008
【図８】
0003626632.tif 000009
【図９】
0003626632.tif 000010
【図１０】
0003626632.tif 000011