(57)【特許請求の範囲】
【請求項１】
データベースサーバに接続して、データベース処理要求を行うデータベースクライアントにおいて、
前記データベースサーバに登録できるデータ数の最大値である最大登録数を取得する最大登録数取得手段と、
前記データベースサーバに現在登録しているデータ数である現在登録数を、複数のデータベースクライアント毎に管理している登録数表から取得する現在登録数取得手段と、
前記データベースサーバが保持する前記登録数表の当該データベースクライアントに対応する現在登録数を更新する現在登録数更新手段と、
前記最大登録数取得手段により取得した前記最大登録数と、前記現在登録数取得手段により取得した、前記現在登録数更新手段により更新済みの各データベースクライアントの現在登録数の合計値を比較する比較手段と、
前記比較手段の比較結果に応じて、前記データベース処理要求を行う制御手段と
を有し、
前記データベース処理要求は、所定のデータ表に対して、データの登録処理を要求するものであり、
前記現在登録数更新手段は、前記登録数表の当該データベースクライアントに対応する現在登録数を、登録するデータ数に応じて更新し、
前記制御手段は、前記比較手段により前記合計値が前記最大登録数以下と判定された場合には、前記データベース処理要求を行い、前記合計値が前記最大登録数を超えると判定された場合には、前記データベース処理要求を中止する
ことを特徴とするデータベースクライアント。
【請求項２】
前記データベース処理要求は、所定のデータ表に対して、データの削除処理を要求するものであり、
前記現在登録数更新手段は、前記登録数表の当該データベースクライアントに対応する現在登録数を、削除するデータ数に応じて更新し、
前記制御手段は、前記データベース処理要求を行う
ことを特徴とする請求項１に記載のデータベースクライアント。
【請求項３】
データベースサーバに接続して、データベース処理要求を行うデータベースクライアントに搭載されるコンピュータを、
前記データベースサーバに登録できるデータ数の最大値である最大登録数を取得する最大登録数取得手段と、
前記データベースサーバに現在登録しているデータ数である現在登録数を、複数のデータベースクライアント毎に管理している登録数表から取得する現在登録数取得手段と、
前記データベースサーバが保持する前記登録数表の当該データベースクライアントに対応する現在登録数を更新する現在登録数更新手段と、
前記最大登録数取得手段により取得した前記最大登録数と、前記現在登録数取得手段により取得した、前記現在登録数更新手段により更新済みの各データベースクライアントの現在登録数の合計値を比較する比較手段と、
前記比較手段の比較結果に応じて、前記データベース処理要求を行う制御手段と
して機能させ、
前記データベース処理要求は、所定のデータ表に対して、データの登録処理を要求するものであり、
前記現在登録数更新手段は、前記登録数表の当該データベースクライアントに対応する現在登録数を、登録するデータ数に応じて更新し、
前記制御手段は、前記比較手段により前記合計値が前記最大登録数以下と判定された場合には、前記データベース処理要求を行い、前記合計値が前記最大登録数を超えると判定された場合には、前記データベース処理要求を中止する
ことを特徴とするデータベースクライアントプログラム。
【請求項４】
データベースサーバに接続して、データベース処理要求を行うデータベースクライアントに使用するデータベースクライアント制御方法おいて、
前記データベースクライアントが、最大登録数取得手段、現在登録数取得手段、現在登録数更新手段、比較手段、及び制御手段を有し、
前記最大登録数取得手段は、前記データベースサーバに登録できるデータ数の最大値である最大登録数を取得し、
前記現在登録数取得手段は、前記データベースサーバに現在登録しているデータ数である現在登録数を、複数のデータベースクライアント毎に管理している登録数表から取得し、
前記現在登録数更新手段は、前記データベースサーバが保持する前記登録数表の当該データベースクライアントに対応する現在登録数を更新し、
前記比較手段は、前記最大登録数取得手段により取得した前記最大登録数と、前記現在登録数取得手段により取得した、前記現在登録数更新手段により更新済みの各データベースクライアントの現在登録数の合計値を比較し、
前記制御手段は、前記比較手段の比較結果に応じて、前記データベース処理要求を行い、
前記データベース処理要求は、所定のデータ表に対して、データの登録処理を要求するものであり、
前記現在登録数更新手段は、前記登録数表の当該データベースクライアントに対応する現在登録数を、登録するデータ数に応じて更新し、
前記制御手段は、前記比較手段により前記合計値が前記最大登録数以下と判定された場合には、前記データベース処理要求を行い、前記合計値が前記最大登録数を超えると判定された場合には、前記データベース処理要求を中止する
ことを特徴とするデータベースクライアント制御方法。
【請求項５】
複数のデータベースクライアントと、前記データベースクライアントのそれぞれからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバとを備えるデータベースシステムにおいて、
前記データベースシステムの構成要素となる前記データベースクライアントとして、請求項１又は２に記載のデータベースクライアントを適用したことを特徴とするデータベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースクライアント、データベースクライアントプログラム、データベースクライアント制御方法及びデータベースシステムに関し、例えば、データベースに登録するデータ（レコード）数の上限を管理するデータベースシステムに適用し得る。
【背景技術】
【０００２】
一般に、データベースサーバ・クライアントシステム（以下、「ＤＢ−Ｓ／Ｃシステム」と呼ぶ）では、データベースクライアント（以下、「ＤＢクライアント」と呼ぶ）からデータベースサーバ（以下、「ＤＢサーバ」と呼ぶ）に対して接続セッションを生成し、データ登録要求や更新要求、すなわち、トランザクションを送信し、結果を受信する。
【０００３】
また、ＤＢ−Ｓ／Ｃシステムにおいて、ＤＢクライアントのアプリケーション(以下、「ＡＰＬ」とも呼ぶ)）は、ＤＢサーバが保持するリソースの上限値を超えないように、トランザクションを制御する必要がある。
【０００４】
例えば、図４で示すように、２台のＤＢクライアントと、データベースを保持するＤＢサーバから構成される従来のＤＢ−Ｓ／Ｃシステムにおいて、システムとしてデータベースに登録できるデータ（レコード）の最大数が１０００件となっている場合、各ＤＢクライアント（ＤＢクライアントＡＰＬ）は、自身の登録要求が閾値（リソースの上限値）である１０００件を超えないための制御が必要となる。
【０００５】
閾値となる最大登録数（１０００件）は、例えば、システム構築時に、データベース（登録最大数表）に登録される。なお、この最大登録数は、通常、値の変更はないものであり、各ＤＢクライアントＡＰＬは、このデータを参照するだけである。また、システムにおける現在の登録数（登録数表）は、各ＤＢクライアントＡＰＬによって、データ登録処理が実施される度に更新（データ登録時は＋１、データ削除時は、−１）されるものである。そして、登録数の更新と併せて、データ登録（データ表にレコードの追加）が実施される。
【０００６】
ところで、ＤＢ−Ｓ／Ｃシステムにおいて、複数台（図４では２台）のＤＢクライアントＡＰＬが、同時にデータ登録を実施する際、データの整合性を保つために排他制御が必要となる（例えば、特許文献１参照）。例えば、図４で示すように、あるＤＢクライアントＡＰＬは、登録数表のデータをロックし、他のＤＢクライアントＡＰＬのトランザクション処理を排除してから、データ登録を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１１−２７２５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ロックを受ける側のＤＢクライアントは、このロックがボトルネックとなり、ＤＢクライアントＡＰＬの登録処理性能が抑制されることになる。
【０００９】
つまり、ロックを受ける側のＤＢクライアントは、登録数のロックが解除されるまで、自身の登録処理が待たされることになる。これは、全ＤＢクライアントのデータ登録処理が、登録数というデータの更新に集中、競合することを意味し、ＤＢ−Ｓ／Ｃシステムとして十分な性能を発揮できているとは言い難いものであった。
【００１０】
そのため、他のデータベースクライアントに影響されること無く、データ登録等のデータベースに対する処理を実行できるデータベースクライアント、データベースクライアントプログラム、データベースクライアント制御方法及びデータベースシステムが望まれている。
【課題を解決するための手段】
【００１１】
第１の本発明は、データベースサーバに接続して、データベース処理要求を行うデータベースクライアントにおいて、（１）前記データベースサーバに登録できるデータ数の最大値である最大登録数を取得する最大登録数取得手段と、（２）前記データベースサーバに現在登録しているデータ数である現在登録数を、複数のデータベースクライアント毎に管理している登録数表から取得する現在登録数取得手段と、（３）前記データベースサーバが保持する前記登録数表の当該データベースクライアントに対応する現在登録数を更新する現在登録数更新手段と、（４）前記最大登録数取得手段により取得した前記最大登録数と、前記現在登録数取得手段により取得した、前記現在登録数更新手段により更新済みの各データベースクライアントの現在登録数の合計値を比較する比較手段と、（５）前記比較手段の比較結果に応じて、前記データベース処理要求を行う制御手段とを有し、（６）前記データベース処理要求は、所定のデータ表に対して、データの登録処理を要求するものであり、前記現在登録数更新手段は、前記登録数表の当該データベースクライアントに対応する現在登録数を、登録するデータ数に応じて更新し、前記制御手段は、前記比較手段により前記合計値が前記最大登録数以下と判定された場合には、前記データベース処理要求を行い、前記合計値が前記最大登録数を超えると判定された場合には、前記データベース処理要求を中止することを特徴とする。
【００１２】
第２の本発明のデータベースクライアントプログラムは、データベースサーバに接続して、データベース処理要求を行うデータベースクライアントに搭載されるコンピュータを、（１）前記データベースサーバに登録できるデータ数の最大値である最大登録数を取得する最大登録数取得手段と、（２）前記データベースサーバに現在登録しているデータ数である現在登録数を、複数のデータベースクライアント毎に管理している登録数表から取得する現在登録数取得手段と、（３）前記データベースサーバが保持する前記登録数表の当該データベースクライアントに対応する現在登録数を更新する現在登録数更新手段と、（４）前記最大登録数取得手段により取得した前記最大登録数と、前記現在登録数取得手段により取得した、前記現在登録数更新手段により更新済みの各データベースクライアントの現在登録数の合計値を比較する比較手段と、（５）前記比較手段の比較結果に応じて、前記データベース処理要求を行う制御手段として機能させ、（６）前記データベース処理要求は、所定のデータ表に対して、データの登録処理を要求するものであり、前記現在登録数更新手段は、前記登録数表の当該データベースクライアントに対応する現在登録数を、登録するデータ数に応じて更新し、前記制御手段は、前記比較手段により前記合計値が前記最大登録数以下と判定された場合には、前記データベース処理要求を行い、前記合計値が前記最大登録数を超えると判定された場合には、前記データベース処理要求を中止することを特徴とする。
【００１３】
第３の本発明は、データベースサーバに接続して、データベース処理要求を行うデータベースクライアントに使用するデータベースクライアント制御方法おいて、前記データベースクライアントが、最大登録数取得手段、現在登録数取得手段、現在登録数更新手段、比較手段、及び制御手段を有し、（１）前記最大登録数取得手段は、前記データベースサーバに登録できるデータ数の最大値である最大登録数を取得し、（２）前記現在登録数取得手段は、前記データベースサーバに現在登録しているデータ数である現在登録数を、複数のデータベースクライアント毎に管理している登録数表から取得し、（３）前記現在登録数更新手段は、前記データベースサーバが保持する前記登録数表の当該データベースクライアントに対応する現在登録数を更新し、（４）前記比較手段は、前記最大登録数取得手段により取得した前記最大登録数と、前記現在登録数取得手段により取得した、前記現在登録数更新手段により更新済みの各データベースクライアントの現在登録数の合計値を比較し、（５）前記制御手段は、前記比較手段の比較結果に応じて、前記データベース処理要求を行い、（６）前記データベース処理要求は、所定のデータ表に対して、データの登録処理を要求するものであり、前記現在登録数更新手段は、前記登録数表の当該データベースクライアントに対応する現在登録数を、登録するデータ数に応じて更新し、前記制御手段は、前記比較手段により前記合計値が前記最大登録数以下と判定された場合には、前記データベース処理要求を行い、前記合計値が前記最大登録数を超えると判定された場合には、前記データベース処理要求を中止することを特徴とする。
【００１４】
第４の本発明は、複数のデータベースクライアントと、前記データベースクライアントのそれぞれからのデータベース処理要求に応じたデータベース処理を実行するデータベースサーバとを備えるデータベースシステムにおいて、前記データベースシステムの構成要素となる前記データベースクライアントとして、第１の本発明のデータベースクライアントを適用したことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、他のデータベースクライアントに影響されること無く、データ登録等のデータベースに対する処理を実行できる。
【図面の簡単な説明】
【００１６】
【図１】実施形態のＤＢ−Ｓ／Ｃシステムの全体構成を示すブロック図である。
【図２】実施形態のデータベースに記憶されるデータベース表を示す説明図である。
【図３】実施形態のＤＢクライアントＡＰＬの特徴動作を示すフローチャートである。
【図４】従来のＤＢ−Ｓ／Ｃシステムの全体構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
（Ａ）主たる実施形態
以下、本発明によるデータベースクライアント、データベースクライアントプログラム、データベースクライアント制御方法及びデータベースシステムの一実施形態を、図面を参照しながら詳述する。
【００１８】
（Ａ−１）実施形態の構成
図１は、この実施形態のＤＢ−Ｓ／Ｃシステム１の全体構成を示すブロック図である。
【００１９】
ＤＢ−Ｓ／Ｃシステム１は、２台のＤＢクライアント１０（１０−１、１０−２）、及びＤＢサーバ２０を有している。また、ＤＢクライアント１０（１０−１、１０−２）、ＤＢサーバ２０は、それぞれネットワークＮに接続しているものとする。なお、以下では、ＤＢクライアントに共通する処理や構成を説明するときには、ＤＢクライアント１０と表現して説明する。
【００２０】
ＤＢ−Ｓ／Ｃシステム１は、ＤＢクライアント１０から、ＤＢサーバ２０にデータベースのデータ更新や登録などのトランザクションが与えられ、処理が行われる環境である。
【００２１】
ＤＢクライアント１０は、ＤＢサーバ２０にデータベースに係るトランザクションを与えるものである。なお、図１においては、ＤＢクライアント１０は２つとなっているが、その数は限定されないものである。ＤＢクライアント１０は、例えば、パソコン等の情報処理装置（１台に限定されず、複数台を分散処理し得るようにしたものであっても良い。）上に、クライアントプログラムをインストールすることにより、構築される。また、ＤＢクライアント１０は、ＤＢクライアントＡＰＬ１０Ａを有する。
【００２２】
ＤＢクライアントＡＰＬ１０Ａは、データベースに対する種々様々な処理（ＳＱＬの処理等）を実行するアプリケーションである。この実施形態のＤＢクライアントＡＰＬ１０Ａは、データベース２２に対して、データの登録又は削除を行う場合、後述する登録数表Ｔ２の自クライアントに該当する登録数を更新した後に、データベース２２に対する処理を行う。なお、このＤＢクライアントＡＰＬ１０Ａの詳しい動作については、後述する動作の項において明らかにする。
【００２３】
ＤＢサーバ２０は、ＤＢクライアント１０（ＤＢクライアントＡＰＬ１０Ａ）から与えられたトランザクションの処理を行うものであり、ＲＤＢＭＳ２１とデータベース２２を有している。
【００２４】
ＲＤＢＭＳ２１は、リレーショナルデータベース管理システムの機能を担っており、例えば、ＤＢクライアント１０から受けた取ったトランザクションの処理を行うものである。
【００２５】
データベース２２は、データ（レコード）の記憶部である。図２は、データベース２２に記憶されるデータベース表を示す説明図である。
【００２６】
図２（Ａ）における登録最大数表Ｔ１は、データベース２２（後述するデータ表Ｔ３）に登録できる最大データ数を定めるテーブルである。登録最大数表Ｔ１には、システム構築時に１件データが登録される。ＤＢクライアントＡＰＬ１０Ａは、このデータを参照することにより、データベース２２に登録できる上限を知ることができる。
【００２７】
図２（Ｂ）における登録数表Ｔ２は、ＤＢクライアント１０毎に、現在、データベース（データ表Ｔ３）に登録されているデータ数を示すテーブルである。登録数表Ｔ２は、各ＤＢクライアント１０を識別する「ＤＢクライアント」の項目と、各ＤＢクライアント１０が現在登録しているデータ数を示す「登録数」の項目を有する。ＤＢクライアントＡＰＬ１０Ａは、自身のＤＢクライアント１０に該当するデータの「登録数」を参照することにより、データベース２２に現在登録しているデータ数を知ることができる。
【００２８】
図３（Ｃ）におけるデータ表Ｔ３は、各ＤＢクライアントＡＰＬ１０Ａによって、所定のデータの登録や削除等が実施されるテーブルである。なお、図３（Ｃ）で示すデータ表Ｔ３の項目（項目Ｃ１〜Ｃ３）は、例示であって、項目の数はこれに限定されるものでは無い。また、この例では、説明を簡易とするために、データ表Ｔ３を一つ設ける例を示すが、複数保持しても良いことは言うまでも無い。登録最大数表Ｔ１の最大数は、データ表Ｔ３に登録できる閾値を示すことになる。
【００２９】
（Ａ−２）実施形態の動作
次に、以上のような構成を有するこの実施形態のＤＢ−Ｓ／Ｃシステム１の動作を説明する。以下では、ＤＢクライアント１０−１が、ＤＢサーバ２０（データベース２２）に対して、データを登録する場合を例に挙げて、説明を行う。なお、データを削除する場合も、基本的に、データを登録する場合と同様の処理を行うので、併せて適宜説明を行う。
【００３０】
図３は、実施形態のＤＢクライアントＡＰＬ１０Ａの特徴動作を示すフローチャートである。
【００３１】
ＤＢクライアントＡＰＬ１０Ａは、登録数表Ｔ２から「ＤＢクライアント」の項目が自身に該当するデータの「登録数」を更新（データ登録時は＋１、データ削除時は−１）する（Ｓ１０１）。例えば、ＤＢクライアントＡＰＬ１０Ａは、データの登録処理を行う場合、「ＤＢクライアント」の項目の値が、「ＤＢクライアント１０−１」であるデータの「登録数」の項目の値を現在の「４０１」から「４０２」へ更新する。なお、この段階では、まだ、データ表Ｔ３に実際にデータは登録されておらず、この登録数の更新処理は、これからデータを登録する予約的な意味合いである。
【００３２】
次に、ＤＢクライアントＡＰＬ１０Ａは、現在、データベース２２に登録されているデータ数を取得する（Ｓ１０２）。具体的に、ＤＢクライアントＡＰＬ１０Ａは、登録数表Ｔ２の全データの「登録数」の項目の値の合計値を求める。例えば、ＤＢクライアントＡＰＬ１０Ａは、登録数表Ｔ２から、「ＤＢクライアント」の項目が、「ＤＢクライアント１０−１」であるデータの「登録数」の項目の値「４０２」（この値は、ステップＳ１０１の処理により図２(Ｂ)で示す値より、「１」加算されている）と、「ＤＢクライアント１０−２」であるデータの「登録数」の項目の値「３０２」とを取得して、各クライアントの登録数を足した合計値（７０４）を求める。
【００３３】
次に、ＤＢクライアントＡＰＬ１０Ａは、データベース２２に登録できるデータ数の最大値である最大登録数と、先述のステップＳ１０２の処理により求めた現在の登録数との比較を行う（Ｓ１０３）。ＤＢクライアントＡＰＬ１０Ａは、現在の登録数が、最大登録数以下の場合には次のステップＳ１０４の処理を行い、最大登録数を超えている場合には、後述するステップＳ１０５の処理を行う。
【００３４】
なお、最大登録数とは、登録最大数表Ｔ１の最大登録数の項目に入力された値であって、図２(Ａ)では、「１０００」である。例えば、先述のステップＳ１０２で求めた登録数が７０４である場合、ＤＢクライアントＡＰＬ１０Ａは、現在の登録数が、最大登録数（１０００）以下であると判定して、次のステップＳ１０４の処理を実行する。
【００３５】
ＤＢクライアントＡＰＬ１０Ａは、データ表Ｔ３に対して、実際にデータを登録（又は削除）する処理をＤＢサーバ２０へ要求する（Ｓ１０４）。
【００３６】
また、ＤＢクライアントＡＰＬ１０Ａは、先述のステップＳ１０３の処理で、現在の登録数が、最大登録数を超えていると判定した場合には、登録エラー（登録数オーバー）と判断する（Ｓ１０５）。
【００３７】
そして、ＤＢクライアントＡＰＬ１０Ａは、登録数表Ｔ２から「ＤＢクライアント」の項目が自身に該当するデータの「登録数」を更新する（Ｓ１０６）。具体的に、ＤＢクライアントＡＰＬ１０Ａは、先述のステップＳ１０１で、「１」加算した登録数を「１」減算して、先述のステップＳ１０１の処理を実行する前の状態に戻す。
【００３８】
（Ａ−３）実施形態の効果
第１の実施形態によれば、各ＤＢクライアントＡＰＬ１０Ａは、登録数表Ｔ２の自身のクライアントに該当するデータの登録数を更新すれば、他のクライアントに影響を受けることなくデータの登録（又は削除）を行えることになった。つまり、従来各クライアントが共通に参照する登録数を管理するデータの排他制御が不要になったことにより、各ＤＢクライアント１０は、待ち時間を生じることなく、各々データの登録（又は削除）が可能となった。
【００３９】
（Ｂ）他の実施形態
上記の実施形態に加えて、さらに、以下に例示するような変形実施形態も挙げることができる。
【００４０】
（Ｂ−１）上記の実施形態では、ＤＢ−Ｓ／Ｃシステム１全体として、データベース２２に登録できる最大データ数を、最大登録数として設けていたが、変形例として、各ＤＢクライアントが、個別に登録できる最大のデータ数をＤＢクライアント毎に設けて、このＤＢクライアント毎の最大登録数と現在の自クライアントの登録数とを比較することにより、データの上限を管理する構成としても良い。
【００４１】
（Ｂ−２）上記の実施形態では、ＤＢクライアントＡＰＬ１０Ａは、データの登録又は削除する場合に、現在の登録数を求めて、最大登録数と比較する処理（Ｓ１０２、Ｓ１０３）を行っていたが、変形例として、データを削除する場合には、この処理を省略して、ステップＳ１０１の後に、ステップＳ１０４の処理を行う構成としても良い。
【００４２】
（Ｂ−３）上記の実施形態では、最大登録数は、登録最大数表Ｔ１として、データベース２２に記憶する形で管理していたが、変形例として、ＤＢサーバ２０が所定の形式のファイルで管理（保持）する構成としても良い。この場合、ＤＢクライアント１０は、ＤＢサーバ２０が管理しているファイルにアクセスすることにより、最大登録数を取得する。また、各ＤＢクライアント１０は、最大登録数を予め取得して内部のファイルに保持する構成としても良い。
【符号の説明】
【００４３】
１…ＤＢ−Ｓ／Ｃシステム、１０（１０−１、１０−２）…ＤＢクライアント、１０Ａ（１０Ａ−１、１０Ａ−２）…ＤＢクライアントＡＰＬ、２０…ＤＢサーバ、２１…ＲＤＢＭＳ、２２…データベース、Ｔ１…登録最大数表、Ｔ２…登録数表、Ｔ３…データ表。
【図１】
0006583076.tif 000002
【図２】
0006583076.tif 000003
【図３】
0006583076.tif 000004
【図４】
0006583076.tif 000005