(57)【要約】【課題】  複数人が同時に処理を行う場合であっても、データアクセスの競合、応答時間の遅延を生じることなく、安定した作業を行うことが可能なデータベース共有方法及び共有システムを提供する。【解決手段】  作業範囲を指定してマスタＤＢを参照した際（Ｓ１，Ｓ２）、作業範囲が予約中であれば、他で使用中の表示を行い（Ｓ４）、予約中でなければ予約テーブルに予約する（Ｓ５）と共に、指定範囲を作業ＤＢにコピーする（Ｓ６）。作業後（Ｓ７）、マスタＤＢの予約テーブルを参照し（Ｓ８）、マスタＤＢに該当範囲が存在する場合には、マスタＤＢに作業データをコピーする（Ｓ１３）と共に予約テーブルの予約解除を行う（Ｓ１４）。【選択図】  図３
2005284477.tif 000002
【特許請求の範囲】
【請求項１】
サーバコンピュータが管理するマスタデータベース内のマスタデータを複数のクライアントコンピュータで共有する方法であって、
クライアントコンピュータから作業範囲を指定する段階と、
マスタデータベース内の予約テーブルを参照して、前記指定された作業範囲が予約テーブルに存在するかどうかを確認する段階と、
前記作業範囲が前記予約テーブルに存在しない場合に、前記指定された作業範囲を前記予約テーブルに書き込む段階と、
前記クライアントコンピュータが管理する作業データベースに前記指定された作業範囲をマスターテーブルから複製して書き込む段階と、
前記作業データベース内において更新された作業テーブルを利用して前記マスタデータベース内のマスタテーブルの内容を更新する段階と、
を有することを特徴とするデータベース共有方法。
【請求項２】
マスタデータが記録されたマスタデータベースを管理するサーバコンピュータと、当該サーバコンピュータを経由してマスタデータベースにアクセス可能な複数のクライアントコンピュータで構成されるシステムであって、
前記マスタデータベースは前記マスタデータを、マスタデータ全体を管理するマスタテーブルと、予約状況を管理する予約テーブルを利用して管理するものであり、
前記サーバコンピュータは、前記クライアントコンピュータからの指定作業範囲に基づいて予約テーブルを参照することにより排他制御を行う機能と、前記指定作業範囲が前記予約テーブルに存在しない場合に新たな予約テーブルを作成する機能と、アクセスのあったクライアントコンピュータに前記作業テーブルを作成する機能と、前記クライアントコンピュータから送信されてきた作業テーブルに基づいてマスタテーブルの内容を更新する機能と、
を有することを特徴とするデータベース共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数人がデータベースを利用する際の競合、応答時間の遅延等を防止するための技術に関する。
【背景技術】
【０００２】
従来より、さまざまなデータベースが利用されており、複数人が利用する場合には、データの整合性が保たれるように排他制御が行われている。例えば、表形式データベースに対して複数の人が同時に作業を行う場合、データベース本体領域とは別にデータ操作領域を設ける。各作業者はデータ操作領域にデータを入力し、入力完了後、データベース本体へデータを移動させる処理が行われている（例えば、特許文献１参照）。
【特許文献１】特開２００３−２２８５０６号公報
【０００３】
しかしながら、上記従来の手法では、新規データの追加登録作業を行う場合には有効だと考えられるが、限られたデータ内容に対して複数の作業者が同時に更新を行う作業に対しては、データの整合性を確認するのが困難であるという問題がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記のような点に鑑み、本発明は、複数人が同時に処理を行う場合であっても、データアクセスの競合、応答時間の遅延を生じることなく、安定した作業を行うことが可能なデータベース共有方法及び共有システムを提供することを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明では、サーバコンピュータが管理するマスタデータベース内のマスタデータを複数のクライアントコンピュータで共有する方法として、クライアントコンピュータから作業範囲を指定する段階と、マスタデータベース内の予約テーブルを参照して、前記指定された作業範囲が予約テーブルに存在するかどうかを確認する段階と、前記作業範囲が前記予約テーブルに存在しない場合に、前記指定された作業範囲を前記予約テーブルに書き込む段階と、前記クライアントコンピュータが管理する作業データベースに前記指定された作業範囲をマスターテーブルから複製して書き込む段階と、前記作業データベース内において更新された作業テーブルを利用して前記マスタデータベース内のマスタテーブルの内容を更新する段階を実行するようにしたことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、複数のクライアントで共有されるマスタデータベース内に、マスタテーブル、予約テーブル、作業テーブルを用意し、クライアントからアクセスがあった際に予約テーブルを確認して、既に予約されている場合にはアクセスを拒否し、予約されていない場合には、予約テーブルを更新して作業テーブルをクライアントにコピーするようにし、クライアントではコピーした作業テーブルを利用して作業結果を更新し、更新した作業テーブルを利用してマスタデータベース内のマスタデータを更新するようにしたので、複数人が同時に処理を行う場合であっても、データアクセスの競合、応答時間の遅延を生じることなく、安定した作業を行うことが可能となるという効果を奏する。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。
（システム構成）
まず、本発明に係るデータベース共有システムについて説明する。図１は、本発明に係るデータベース共有システムの一実施形態を示す構成図である。図１において、１０はサーバＰＣ、２０はマスタＤＢ、３１〜３４はクライアントＰＣ、４１〜４４は作業ＤＢである。サーバＰＣ１０は、マスタＤＢ２０を管理すると共に、クライアントＰＣ３１〜３４からの要求に対して処理を行うサーバコンピュータである。サーバＰＣ１０には、本発明のデータベース共有方法をクライアントＰＣ３１〜３４と協働して実行するための専用のソフトウェアが搭載されている。マスタＤＢ２０は、全体で共有するマスタデータを記録したデータベースであり、マスタテーブル、予約テーブル、作業テーブルの３つのテーブルでマスタデータを管理している。クライアントＰＣ３１〜３４は、それぞれ作業ＤＢ４１〜４４を有して作業を行うためのクライアントコンピュータである。クライアントＰＣ３１〜３４には、本発明のデータベース共有方法をサーバＰＣ１０と協働して実行するための専用のソフトウェアが搭載されている。なお、クライアントコンピュータ３１〜３４はいずれも同様の機能を有しており、作業ＤＢ４１〜４４もいずれも同様の機能を有している。本実施形態では、図１に示したＰＣ環境において、複数人で共同してある作業を進める場合に、処理を行ったかどうかを正確に入力する場合を例にとって説明することとする。
【０００８】
ここで、各ＤＢが有するテーブルについて説明する。マスタＤＢ２０は、上述のように３つのテーブルでマスタデータを管理している。図２にマスタテーブルで管理されているマスタデータの一例を示す。マスタテーブルは、マスタＤＢ２０内の全マスタデータを管理するためのテーブルであり、図２の例では、１０００レコードが管理されている。図２に示すように、マスタテーブルは、通数連番、検査状況、検査日時、検査回数の項目で各レコードを管理している。「通数連番」は、マスタデータにおける各レコードを１から連続で付与した通し番号である。「検査状況」は、各レコードが検査の検査状況を示すものであり、本実施形態では、未検査、検査済み、エラーの３つの態様で記録される。なお、現実には、例えば、未検査を「０」、検査済みを「１」、エラーを「２」と定義して、「０」「１」「２」のいずれかの値が記録されることになる。「検査日時」は、検査を行った日時を示すものであり、本実施形態では、月・日・時・分の単位まで記録している。「検査回数」は、検査済みになった回数を示すものであり、未検査の場合は０回となるが、その他の場合は、再検査の回数により異なってくる。
【０００９】
（処理動作）
続いて、本発明に係るデータベース共有方法について説明する。図３は、本発明に係るデータベース共有方法の処理概要を示すフローチャートである。図１に示したクライアントＰＣおよび作業ＤＢは、いずれも同様の機能を有しているので、ここでは、クライアントＰＣ３１および作業ＤＢ４１を利用した場合を例にとって説明する。まず、クライアントＰＣ３１からサーバＰＣ１０にアクセスして、作業範囲を指定する（ステップＳ１）。具体的には、作業者がこれから作業を行おうとする通数連番の先頭と最後の番号を指定する。すると、サーバＰＣ１０がマスタＤＢ２０を参照して（ステップＳ２）、指定された作業範囲のレコードが予約中であるかどうかを確認する（ステップＳ３）。具体的には、マスタＤＢ２０内の予約テーブルにステップＳ１において指定された作業範囲に含まれるレコードが、予約テーブルに記録された開始通数連番と終端通数連番に含まれるかどうかを確認する。
【００１０】
ここで、予約テーブルについて説明しておく。図４に予約テーブルの一例を示す。予約テーブルは、マスタＤＢ２０内のマスタデータについての作業の予約状況を管理するためのテーブルである。図４に示すように、予約テーブルは、開始通数連番、終端通数連番、作業ＰＣ名、予約日時、予約状況の項目で各レコードの予約状況を管理している。「開始通数連番」と「終端通数連番」は、それぞれ予約されている作業範囲の先頭のレコード、最後のレコードの通数連番を示している。「作業ＰＣ名」は、上記「開始通数連番」と「終端通数連番」の範囲のレコードの作業予約をしているクライアントＰＣの名前を示すものである。「予約日時」は、上記予約した作業範囲のレコードに対して作業を開始する日時を示している。「予約状況」は、予約の状況を示すものである。なお、予約テーブルにおいて、「開始通数連番」と「終端通数連番」とは手入力されたものであるが、「作業ＰＣ名」、「予約日時」、「予約状況」は処理に応じて自動的に記録される。例えば、「作業ＰＣ名」については、サーバＰＣ１０がアクセス中のクライアントＰＣを認識しているので、そのクライアントＰＣの名前を記録する。また、「予約日時」については、予約処理を行う時点のサーバＰＣ１０のシステム時間を記録する。「予約状況」については、予約処理を行う時点に、デフォルトで「予約中」と記録する。
【００１１】
上記のような予約テーブルを確認した結果、指定された作業範囲が予約中である場合には、サーバＰＣ１０は、他のクライアントＰＣで処理中である旨のコメントを、クライアントＰＣ３１に表示させた（ステップＳ４）後、作業範囲の再指定を促す。一方、指定された作業範囲が予約中でない場合には、サーバＰＣ１０が、マスタＤＢ２０内の予約テーブルに予約を行う（ステップＳ５）。具体的には、ステップＳ１で指定された作業範囲の先頭の連数通番と、最後の連数通番を、「開始通数連番」、「終端通数連番」として記録し、クライアントＰＣ３１の名前を「作業ＰＣ名」として記録し、処理時のサーバＰＣ１０のシステム時間を「予約日時」として記録し、「予約状況」を予約中と設定する。すなわち、ステップＳ５において、図４に示したような予約テーブルが作成されることになる。ステップＳ５の処理に続いて、指定された作業範囲を作業ＤＢ４１にコピーする（ステップＳ６）。コピーされた作業範囲のレコードは作業テーブルにより管理されることになる。作業テーブルとは、マスタテーブルから作業範囲についてのレコードを抽出したものであり、形式としてはマスタテーブルと同じである。予約テーブルへの予約が行われたら、作業ＤＢ４１にコピーされた作業テーブルを利用して、作業を行うことになる（ステップＳ７）。作業は、検査対象物に印刷されているバーコードを読み込ませることにより行う。このバーコードには通数連番も記録されているため、読み込んだバーコードに記録されていた通数連番の「検査状況」「検査日時」「検査回数」の項目を更新する。「検査状況」については、正しく読み取れれば、検査済みと記録し、正しく読み取れなければエラーと記録する。「検査日時」については、バーコードによる読取時のクライアントＰＣのシステム時間を記録する。「検査回数」については、既に記録されている回数に１回分加算する処理を行う。このようにして、作業結果は、作業と並行して作業ＤＢ４１内の作業テーブルに記録されていく。
【００１２】
作業が終了したら、マスタＤＢ２０の内容を更新するため、クライアントＰＣ３１からサーバＰＣ１０を経由してマスタＤＢ２０を参照する（ステップＳ８）。具体的には、マスタＤＢ２０内の予約テーブルの参照要求をサーバＰＣ１０に対して行うことになる。すると、サーバーＰＣ１０は、予約テーブルの参照要求を行っているクライアントＰＣが予約テーブルに記録されている作業ＰＣであるかどうかを確認する（ステップＳ９）。具体的には、参照要求のあるクライアントＰＣの名前と、予約テーブルに記録されている作業ＰＣの名前が同一であるかどうかを照合する。同一でない場合は、更新の受け付けを禁止する（ステップＳ１０）。一方、ステップＳ９において両者が同一である場合には、マスタＤＢ２０に該当範囲が存在するかどうかを判断する（ステップＳ１１）。具体的には、マスタテーブルを参照し、更新内容であるクライアントＰＣからの作業テーブルに含まれる全通数連番が、マスタテーブルに存在するかどうかを判断する。判断の結果、該当範囲が存在しない場合は、再度処理し直すべきである旨をクライアントＰＣ３１に表示させる（ステップＳ１２）。一方、マスタＤＢ２０に該当範囲が存在した場合には、マスタＤＢ２０に作業テーブルの内容をコピーする。すなわち、作業テーブルの内容を反映させることにより、マスタテーブルの内容を更新することになる（ステップＳ１３）。マスタテーブルが更新されたら、サーバＰＣ１０は、予約テーブルの予約解除を行う（ステップＳ１４）。具体的には、予約テーブルの「予約状況」の項目の内容を検査済みと設定する。さらに、作業テーブルをマスタＤＢ２０から削除する処理を行う。
【図面の簡単な説明】
【００１３】
【図１】本発明に係るデータベース共有システムの一実施形態を示す構成図である。
【図２】マスタテーブルで管理されているマスタデータの一例を示す図である。
【図３】本発明に係るデータベース共有方法の処理概要を示すフローチャートである。
【図４】予約テーブルの一例を示す図である。
【符号の説明】
【００１４】
１０・・・サーバＰＣ（コンピュータ）
２０・・・マスタＤＢ（データベース）
３１〜３４・・・クライアントＰＣ（コンピュータ）
４１〜４４・・・作業ＤＢ（データベース）
【図１】
2005284477.tif 000003
【図２】
2005284477.tif 000004
【図３】
2005284477.tif 000005
【図４】
2005284477.tif 000006