(57)【要約】【課題】データベースシステムにおいて生成子の利用に伴う負荷を低減すること。【解決手段】端末装置１からのデータベースへの処理要求を受け付けるＦＥＳ２と、ＦＥＳ２からの指示に従い、収容する記憶装置５内のデータベースへのアクセスを制御するＢＥＳ４と、が用いられるデータベース管理システムによるデータベース管理方法であって、ＦＥＳ２は、端末装置１から受信した生成子定義文で指定されている生成子が使用されるデータベースのデータ特定情報を読み取り、そのデータ特定情報のデータを格納する記憶装置が収容されるＢＥＳ４を、生成子の配置先として決定する。【選択図】  図１
2010134519.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが操作する端末装置からのデータベースへの処理要求を受け付けるデータベース受付装置と、前記データベース受付装置からの指示に従い、収容する記憶装置内のデータベースへのアクセスを制御するデータベース管理装置と、が用いられるデータベース管理システムによるデータベース管理方法であって、
前記データベース受付装置の制御部は、
前記端末装置からのデータベースへの処理要求として、前記データベースのデータとして記録される連番を生成するための生成子を配置する生成子定義文を受信すると、
前記受信した生成子定義文で指定されている前記生成子が使用されるデータベースのデータ特定情報を読み取り、そのデータ特定情報のデータを格納する記憶装置が収容される前記データベース管理装置を、前記生成子の配置先として決定し、
前記生成子の配置先として決定した前記データベース管理装置に対して、受信した前記生成子定義文で指定される前記生成子を、前記生成子の配置先として決定した前記データベース管理装置が収容する記憶装置内に配置するように指示することを特徴とする
データベース管理方法。
【請求項２】
前記データベース受付装置の制御部は、前記生成子の配置先として決定する処理において、前記生成子定義文で指定されている前記生成子の配置先に該当する前記データベース管理装置の候補が複数存在するときには、それらの候補のうちの前記生成子が使用されるデータベースを最も多く収容する前記データベース受付装置の候補を、前記生成子の配置先として決定することを特徴とする
請求項１に記載のデータベース管理方法。
【請求項３】
ユーザが操作する端末装置からのデータベースへの処理要求を受け付ける前記データベース受付装置と、前記データベース受付装置からの指示に従い、収容する記憶装置内のデータベースへのアクセスを制御するデータベース管理装置と、が用いられるデータベース管理システムによるデータベース管理方法であって、
前記データベース受付装置の制御部は、
前記端末装置からのデータベースへの処理要求として、前記データベースのデータとして記録される連番を生成するための生成子を配置する生成子定義文を受信すると、
前記データベースへの操作を時刻に対応づけて記録されている記憶装置内の前記データベース管理装置ごとの更新ログを参照し、データベースのデータ作成操作が行われた更新ログの内、最新時刻のデータ作成操作を指示した前記データベース管理装置を、前記生成子の配置先として決定し、
前記生成子の配置先として決定した前記データベース管理装置に対して、受信した前記生成子定義文で指定される前記生成子を、前記生成子の配置先として決定した前記データベース管理装置が収容する記憶装置内に配置するように指示することを特徴とする
データベース管理方法。
【請求項４】
前記データベース管理装置の制御部は、前記データベース受付装置からの指示により作成された前記生成子について、前記自装置および前記他装置の前記データベース管理装置からの使用履歴を記憶部に記憶し、前記自装置の使用履歴よりも所定の前記他装置の使用履歴が多いときには、前記自装置に配置された前記生成子を、所定の前記他装置へ再配置することを特徴とする
請求項１ないし請求項３のいずれか１項に記載のデータベース管理方法。
【請求項５】
前記データベース受付装置と、前記データベース管理装置と、を同一の筐体に収容することを特徴とする
請求項１ないし請求項４のいずれか１項に記載のデータベース管理方法。
【請求項６】
請求項１ないし請求項５のいずれか１項に記載のデータベース管理方法を、前記データベース管理システムに用いられる各装置に実行させるための、データベース管理プログラム。
【請求項７】
ユーザが操作する端末装置からのデータベースへの処理要求を受け付けるデータベース受付装置と、前記データベース受付装置からの指示に従い、収容する記憶装置内のデータベースへのアクセスを制御するデータベース管理装置と、が用いられるデータベース管理システムにおける前記データベース受付装置であって、
前記データベース受付装置の制御部は、
前記端末装置からのデータベースへの処理要求として、前記データベースのデータとして記録される連番を生成するための生成子を配置する生成子定義文を受信すると、
前記受信した生成子定義文で指定されている前記生成子が使用されるデータベースのデータ特定情報を読み取り、そのデータ特定情報のデータを格納する記憶装置が収容される前記データベース管理装置を、前記生成子の配置先として決定し、
前記生成子の配置先として決定した前記データベース管理装置に対して、受信した前記生成子定義文で指定される前記生成子を、前記生成子の配置先として決定した前記データベース管理装置が収容する記憶装置内に配置するように指示することを特徴とする
データベース受付装置。
【請求項８】
前記データベース受付装置の制御部は、前記生成子の配置先として決定する処理において、前記生成子定義文で指定されている前記生成子の配置先に該当する前記データベース管理装置の候補が複数存在するときには、それらの候補のうちの前記生成子が使用されるデータベースを最も多く収容する前記データベース受付装置の候補を、前記生成子の配置先として決定することを特徴とする
請求項７に記載のデータベース受付装置。
【請求項９】
ユーザが操作する端末装置からのデータベースへの処理要求を受け付けるデータベース受付装置と、前記データベース受付装置からの指示に従い、収容する記憶装置内のデータベースへのアクセスを制御するデータベース管理装置とが用いられるデータベース管理システムにおける前記データベース受付装置であって、
前記データベース受付装置の制御部は、
前記端末装置からのデータベースへの処理要求として、前記データベースのデータとして記録される連番を生成するための生成子を配置する生成子定義文を受信すると、
前記データベースへの操作を時刻に対応づけて記録されている記憶装置内の前記データベース管理装置ごとの更新ログを参照し、データベースのデータ作成操作が行われた更新ログの内、最新時刻のデータ作成操作を指示した前記データベース管理装置を、前記生成子の配置先として決定し、
前記生成子の配置先として決定した前記データベース管理装置に対して、受信した前記生成子定義文で指定される前記生成子を、前記生成子の配置先として決定した前記データベース管理装置が収容する記憶装置内に配置するように指示することを特徴とする
データベース受付装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理方法、データベース管理プログラム、および、データベース受付装置に関するものである。
【背景技術】
【０００２】
情報化社会の発展に伴い、多くの企業がデータベースシステムを利用している。データベースシステムは、データベースのデータに対する問い合わせに応えるシステムである。データに対する問い合わせを記述する問い合わせ言語としては、ＳＱＬがよく利用される。
【０００３】
データベースのデータとして、社員番号や注文の受付番号などのデータは、通番として番号を付加することで、取り扱いが容易になる場合がある。通番を生成する機能を、システムの開発者が開発するのではなく、データベースシステムに持たせることによって、システムの開発スピードを上げることができ、企業の競争力を向上させることができる。
【０００４】
非特許文献１には、データベースシステムが通番を生成するための機能として、「シーケンス生成子」（以下、生成子とする）が記載されている。生成子は、ＳＱＬ文中で使用されるごとに加算される現在値である。例えば、非特許文献１に記載されている文法では、次のようなＳＱＬ文によって、生成子の定義処理（生成子定義文）と問い合わせ処理（生成子使用文）を行う。
【０００５】
生成子定義文は、例えば、以下の文が挙げられる。この文は、開始値「０」から始まって増分「１」ずつ増加する現在値を生成する生成子「ＳＥＱ」を定義する。
create sequence SEQ start with 0 increment by 1
【０００６】
生成子使用文は、例えば、以下の文が挙げられる。この文は、「next value for SEQ」命令で生成子「ＳＥＱ」を使用する。その結果、生成子「ＳＥＱ」の現在値が返却された後、その現在値に増分「１」が加算される。つまり、この文は、「ＳＥＱ」の現在値を表「TAB」に挿入する旨の命令文である。
insert into TAB values （next value for SEQ）
【０００７】
非特許文献２には、複数サーバ構成の無共有型（シェアードナッシング）のＤＢＭＳ（database management system）が記載されている。そして、非特許文献２には、データベースを処理するための複数のサーバを、並列に構成することによって、多量のデータを扱うことが記載されている。
【０００８】
並列データベースシステムにおいて生成子を実現するためには、現在値を特定のサーバに格納して、生成子を使用するサーバは、現在値を格納しているサーバを参照する方法が考えられる。そのためには、生成子を含む問い合わせ処理を、複数のサーバで実行する場合に、各サーバ間で生成する値に重複や順序の逆転などが発生しないように管理する機構が求められる。
【０００９】
並列データベースシステムにおいて、生成子を記述した問い合わせ処理を実行する場合に、生成子の現在値を取得するためのサーバ間の通信や現在値に対する排他処理を実行するために、処理時間が長くなる。
そこで、特許文献１では、各サーバが使用する生成子の現在値の範囲を事前に割り当てることによって、排他処理にかかる時間を短縮した。
【特許文献１】米国特許第７０８９３５６号明細書
【非特許文献１】土田正士、小寺考著「ＳＱＬ２００３ハンドブック」ソフト・リサーチ・センター、2004年12月25日、Ｐ．１１５−１２７
【非特許文献２】Parallel Database Systems :The Future of High Performance Database Systems（David DeWitt and Jim Gray, COMMUNICATIONS OF THE ACM, Vol.35, No.6, 1992, P.85-P.98）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
複数サーバ構成のデータベースシステムにおいては、生成子が複数のサーバ間で共用されるため、サーバ間の通信処理が頻繁に発生し、データベースシステムに対するオーバーヘッドとなっていた。このオーバーヘッドの要因の１つは、生成子の配置先として適切なサーバに選択されていないことにある。
【００１１】
例えば、第１サーバと第２サーバとで１つの生成子を共用する場合を考える。第１サーバ側に生成子を配置したものの、第１サーバよりも第２サーバのほうがその生成子の利用頻度が高いときには、第２サーバから第１サーバへの生成子のアクセスに伴う通信処理が頻繁に発生してしまう。この場合は、生成子の配置先としては、第２サーバのほうが適切である。
【００１２】
そこで、本発明は、前記した問題を解決し、データベースシステムにおいて生成子の利用に伴う負荷を低減することを、主な目的とする。
【課題を解決するための手段】
【００１３】
前記課題を解決するために、本発明は、端末装置からのデータベースへの処理要求を受け付けるデータベース受付装置と、前記データベース受付装置からの指示に従い、収容する記憶装置内のデータベースへのアクセスを制御するデータベース管理装置と、が用いられるデータベース管理システムによるデータベース管理方法であって、
前記データベース受付装置の制御部が、
前記端末装置からのデータベースへの処理要求として、前記データベースのデータとして記録される連番を生成するための生成子を配置する生成子定義文を受信すると、
前記受信した生成子定義文で指定されている前記生成子が使用されるデータベースのデータ特定情報を読み取り、そのデータ特定情報のデータを格納する記憶装置が収容される前記データベース管理装置を、前記生成子の配置先として決定し、
前記生成子の配置先として決定した前記データベース管理装置に対して、受信した前記生成子定義文で指定される前記生成子を、前記生成子の配置先として決定した前記データベース管理装置が収容する記憶装置内に配置するように指示することを特徴とする。
その他の手段は、後記する。
【発明の効果】
【００１４】
本発明によれば、データベースシステムにおいて生成子の利用に伴う負荷を低減することができる。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明が適用されるデータベースシステムの一実施形態について、図面を参照して詳細に説明する。
【００１６】
図１は、データベースシステムを示す構成図である。データベースシステムは、端末装置１と、ＦＥＳ（Front End Server）２と、ＤＳ（Dictionary Server）３と、ＢＥＳ（Back End Server）４と、がネットワーク９で接続されて構成される。
ネットワーク９では、データベースシステムの各装置のネットワークインタフェース（ＦＥＳ２のインタフェース９１ａ、ＢＥＳ４のインタフェース９１ｂなど）を介して、データの通信が行われる。
【００１７】
端末装置１は、ＦＥＳ２に対して、データベースへのアクセス要求を送信するために用いられる装置である。この端末装置１は、ユーザによって操作される。データベースへのアクセス要求は、例えば、ＳＱＬの文法に従って記述される。
【００１８】
ＦＥＳ２は、インタフェース９１ａと、プロセッサ９２ａと、メモリ９３ａと、を備えるコンピュータである。
ＦＥＳ２は、端末装置１から受け付けたデータベースへのアクセス要求を、そのデータベースを収容するＢＥＳ４に対して割り振るデータベース受付装置である。
【００１９】
ＤＳ３は、データベースの生成子に関する情報を生成子定義テーブル３２に格納し、生成子定義管理部３１が管理する。さらに、ＤＳ３は、データベースの利用者に関する情報や、表に関する情報など、他の情報を管理してもよい。
【００２０】
ＢＥＳ４は、インタフェース９１ｂと、プロセッサ９２ｂと、メモリ９３ｂと、を備えるコンピュータである。
ＢＥＳ４は、ＦＥＳ２から受け付けたデータベースへのアクセス要求をもとに、収容する記憶装置５のデータベースのアクセスを制御するデータベース管理装置である。ＢＥＳ４と記憶装置５とは、無共有型（シェアードナッシング）で接続されている。例えば、ＢＥＳ４ａは記憶装置５ａと接続され、ＢＥＳ４ｂは記憶装置５ｂと接続される。つまり、記憶装置５は、１台のＢＥＳ４に対して専用的に収容されることで、アクセス先が１台のＢＥＳ４に特定される。
【００２１】
以上説明した図１の各装置について、装置構成および装置の台数は、あくまで一例であり、図１の構成に限定されない。例えば、図１では、ＦＥＳ２とＢＥＳ４とを別々の筐体に収容しているが、ＦＥＳ２とＢＥＳ４とを同じ１つの筐体に収容してもよい。
【００２２】
本実施形態の特徴の１つは、ＦＥＳ２が複数のＢＥＳ４の中から、処理効率の優れるＢＥＳ４を選択し、その選択したＢＥＳ４に対して生成子の配置を要求する点である。
そのため、ＦＥＳ２は、端末装置１から新しく生成子を定義する旨の生成子定義文を受信すると、その生成子が使用される可能性の高いデータベースを管理するＢＥＳ４を選択し、そのＢＥＳ４に対して生成子を配置する。
さらに、ＦＥＳ２は、生成子の配置先をＤＳ３に登録するとともに、生成子の使用状況により、適宜生成子の再配置を実施する。
【００２３】
図２は、データベースシステムの各装置の処理部を示す構成図である。
【００２４】
ＦＥＳ２のメモリ９３ａには、表定義管理部２１と、表定義テーブル２２と、更新ログ統合テーブル２３と、生成子配置部２４と、表データ処理要求部２５と、更新ログ統合部２６と、が格納されている。なお、メモリ９３ａに格納されている各処理部は、プロセッサ９２により実行されるプログラムである。
ＢＥＳ４のメモリ９３ｂには、生成子管理部４１と、表データ処理部４２と、更新ログ管理部４３と、が格納されている。なお、メモリ９３ｂに格納されている各処理部は、プロセッサ９２により実行されるプログラムである。
【００２５】
表定義管理部２１は、表定義テーブル２２のデータ内容を管理する。
生成子配置部２４は、生成子管理部４１に対して、生成子の初回配置処理および再配置処理を要求する。ここで、生成子配置部２４は、複数のＢＥＳ４から配置先のＢＥＳ４を選択する。生成子管理部４１は、生成子情報テーブル５１に格納されている生成子へのアクセスを実施する。
【００２６】
表データ処理要求部２５は、表定義テーブル２２に登録されている表データ５２のリストを参照し、処理対象の表データ５２を管理するＢＥＳ４の表データ処理部４２に対して、データアクセスを要求する。表データ処理部４２は、表データ処理要求部２５からの要求を受け、表データ５２にデータアクセスする。
【００２７】
更新ログ統合部２６は、ＢＥＳ４ごとに管理されている更新ログテーブル５３を統合して、更新ログ統合テーブル２３を作成する。更新ログ管理部４３は、表データ５２への更新（操作）のログを、更新ログテーブル５３に格納する。
【００２８】
図３は、表定義テーブル２２と、その表定義テーブル２２で定義されている表の表データ５２を示す構成図である。表定義テーブル２２は、表ごとにその表名称と、その表を管理する表管理ＢＥＳと、その表の作成時刻と、を対応づけて管理する。
【００２９】
例えば、表名称「T2」の表データ５２は、ＢＥＳ４ｂによって、作成時刻「10:00:00」に作成された表である。表の作成には、例えば、ＳＱＬ文「create table」が使用される。以下のＳＱＬ文は、列「C1」を整数型として、列「C2」を１６文字の文字列として、表「T2」を作成する要求である。
create table T2(C1 int, C2 char(16))
ＢＥＳ４ｂは、このＳＱＬ文に従い、表データ５２の作成を、自装置が収容する記憶装置５ｂに指示するとともに、ＦＥＳ２の表定義テーブル２２に対して、新たに作成する表名称「T2」の表に関する情報の登録を指示する。
【００３０】
表名称「T2」の表データ５２は、列「C1」と、列「C2」と、を対応づけて構成される。この表データ５２は、記憶装置５が、ＢＥＳ４ｂからの指示に従い、作成する。なお、この表データ５２は、データベースの内容を示すものなので、ユーザが「create table」文で自由に定義できる。
【００３１】
図４は、ＢＥＳ４ごとの更新ログテーブル５３の一例を示す構成図である。更新ログテーブル５３は、表データ５２への操作が行われるたびに、その操作が行われた時刻と、その操作内容と、を対応づけて管理する。更新ログテーブル５３は、記憶装置５に記憶されており、その記憶装置５を収容するＢＥＳ４が制御する操作の分だけ、更新ログ管理部４３によって記録される。
【００３２】
図５は、更新ログ統合テーブル２３の一例を示す構成図である。図５の更新ログ統合テーブル２３は、図４の２つの更新ログテーブル５３を１つに統合した内容である。
更新ログ統合テーブル２３は、更新ログテーブル５３が記録する情報に加え、その情報がどのＢＥＳ４からのものかを示す「ＢＥＳ」列が追加されている。
ＦＥＳ２の更新ログ統合部２６は、各ＢＥＳ４の更新ログ管理部４３に対して、更新ログテーブル５３の通知を要求し、それぞれ通知された更新ログテーブル５３を、更新ログ統合テーブル２３として統合する。
【００３３】
図６は、生成子定義テーブル３２を示す構成図である。
生成子定義テーブル３２は、各ＢＥＳ４にそれぞれ配置されている生成子に関する情報をリストとして記憶する。
生成子定義テーブル３２は、生成子ごとに、その生成子名称と、生成子配置先ＢＥＳと、生成子の開始値と、生成子の増分と、を対応づけて管理する。なお、生成子名称と、生成子の開始値と、生成子の増分とは、生成子定義文に記載される情報である。
【００３４】
図７は、ＢＥＳ４ごとの生成子情報テーブル５１の一例を示す構成図である。
生成子情報テーブル５１は、生成子について、その生成子名称と、その生成子の現在値と、その生成子の使用回数と、を対応づけて管理する。
生成子の現在値は、生成子の初回配置時に生成子定義テーブル３２の「生成子の開始値」から始まり、使用されるたびに「生成子の増分」ずつ加算される。
生成子の使用回数は、生成子の初回配置時に「０」から始まり、使用されるたびに「１」ずつ加算される。
【００３５】
図８は、生成子定義文の処理の概要を示すフローチャートである。
【００３６】
Ｓ１０１において、ＦＥＳ２は、端末装置１から、生成子定義文を受信する。
Ｓ１０２において、ＦＥＳ２は、Ｓ１０１の生成子定義文に生成子を使用する表情報が指定されているか否かを判定し、判定条件を満たすときにはＳ１０３へ、満たさないときにはＳ１０４へ、処理を進める。
Ｓ１０３において、ＦＥＳ２は、生成子定義文で指定されている表情報の表データ５２を管理する表管理ＢＥＳを、表定義テーブル２２から検索して、生成子配置先ＢＥＳとする。
Ｓ１０４において、ＦＥＳ２は、表データ５２の生成（create table）を最も最近の時刻に実行したＢＥＳを、更新ログ統合テーブル２３から検索して、生成子配置先ＢＥＳとする。
【００３７】
Ｓ１０５において、ＦＥＳ２は、Ｓ１０３またはＳ１０４で特定した生成子配置先ＢＥＳに対して、生成子の配置を要求する。
Ｓ１０６において、Ｓ１０５の配置要求を受けたＢＥＳ４は、収容する記憶装置５に対して、生成子の配置を実施する。
Ｓ１０７において、Ｓ１０６を実行したＢＥＳ４は、Ｓ１０６で配置された生成子に関する情報を、ＤＳ３の生成子定義テーブル３２に対して登録する。
【００３８】
図９は、生成子定義文の処理（図８）の詳細を、例を元に説明する説明図である。以下の図９の説明において、適宜図８の処理ステップを引用する。
【００３９】
ＦＥＳ２は、端末装置１から、例えば、以下に示す生成子定義文を受信する（Ｓ１０１）。
create sequence MOUSE start with 10 increment by 2
ＦＥＳ２の生成子配置部２４は、この生成子定義文に対して構文解析を行うことで、この生成子定義文が、生成子名称「MOUSE」について、開始値「１０」および増分「２」として定義する旨を取得する。
【００４０】
ＦＥＳ２の生成子配置部２４は、生成子名称「MOUSE」の生成子配置先ＢＥＳを、以下の２つの手法の内、いずれかの手法を用いて決定する（Ｓ１０２）。
【００４１】
第１の手法は、明示的な決定方法である。以下に示す生成子定義文は、「using by T2」の記述がある。
create sequence MOUSE start with 10 increment by 2 using by T2
このように、ユーザ（端末装置１）から定義する生成子を使用する表情報「T2」が明示的に指定されているときには、その表情報「T2」をもとに、生成子配置先ＢＥＳを決定する。具体的には、表定義管理部２１は、指定された表情報「T2」を検索キーとして、表定義テーブル２２から該当するレコードを検索し、その結果として、表管理ＢＥＳである「ＢＥＳ４ｂ」を得る。この検索された「ＢＥＳ４ｂ」を、生成子配置先ＢＥＳとして決定する（Ｓ１０３）。
なお、指定された表情報が複数存在するときには、表管理ＢＥＳの候補も複数存在する場合がある。そのときには、表管理ＢＥＳの候補のうち、指定された表情報が示す表データ５２を最も多く収容するＢＥＳ４を、生成子配置先ＢＥＳとする。
【００４２】
第２の手法は、暗黙的な決定方法である。以下に示す生成子定義文は、「using by」の記述がない。
create sequence MOUSE start with 10 increment by 2
このように、ユーザ（端末装置１）から定義する生成子を使用する表情報が明示的に指定されていないときには、生成子が使用される表データ５２を、既に定義された表データ５２から予測して選択する方法がある。予測方法の一例として、生成子配置部２４は、更新ログ統合テーブル２３から、操作＝「create table」に該当するレコードを検索し、その検索結果から、「時刻」が最も遅い（最も新しい）操作「create table」で生成された表データ５２を、生成子が使用される表データ５２として予測する。この予測により、時刻「10:00:05」に実行された「create table(T2)」が該当するので、その操作を行ったＢＥＳ４ｂを、生成子配置先ＢＥＳとする（Ｓ１０４）。
【００４３】
このように、暗黙的な決定方法では、生成子の作成処理と、表データ５２の作成処理とを関連づけて、生成子配置先ＢＥＳを決定する。生成子が生成する値は、表に格納する目的で用いることが一般的である。そのため、生成子と、その生成子の値を格納する表は、セットで設計し、隣接して定義を行うと考えることができるためである。
【００４４】
生成子配置部２４は、第１または第２の手法によって決定された生成子配置先ＢＥＳ（ＢＥＳ４ｂ）に対して、生成子定義文の情報のうち、少なくとも生成子名称「MOUSE」と、開始値である現在値「10」とを送信し、生成子「MOUSE」の配置を要求する（Ｓ１０５）。
【００４５】
配置要求を受けたＢＥＳ４ｂの生成子管理部４１は、配置要求を含む生成子定義メッセージを、収容する記憶装置５ｂに送信する（Ｓ１０６）。記憶装置５ｂは、配置要求に従い、生成子情報テーブル５１に対して、生成子名称「MOUSE」、現在値「１０」、および、使用回数「０」を対応づけるレコードを新たに作成する。
【００４６】
生成子配置部２４は、さらに、配置した生成子「MOUSE」に関する情報を、ＤＳ３の生成子定義テーブル３２に登録する。具体的には、生成子配置部２４は、生成子定義文の構文解析結果と、その生成子定義文の生成子配置先ＢＥＳとを含む生成子登録メッセージをＤＳ３に送信する（Ｓ１０７）。  ＤＳ３の生成子定義管理部３１は、生成子登録メッセージを受信すると、その内容を生成子定義テーブル３２に登録する。
【００４７】
図１０は、生成子使用文の処理の概要を示すフローチャートである。
【００４８】
Ｓ２０１において、ＦＥＳ２は、端末装置１から、生成子使用文を受信する。
Ｓ２０２において、ＦＥＳ２は、生成子使用文で指定される表データ５２の「表管理ＢＥＳ」を、表定義管理部２１から取得する。
Ｓ２０３において、ＦＥＳ２は、生成子使用文で指定される生成子の「生成子配置先ＢＥＳ」を、ＤＳ３の生成子定義管理部３１から取得する。
【００４９】
Ｓ２０４において、ＦＥＳ２は、表管理ＢＥＳに対して、受信した生成子使用文の情報と、その生成子配置先ＢＥＳの情報とを、送信する。
【００５０】
Ｓ２０５において、Ｓ２０４で送信された情報を受信したＢＥＳ４は、受信した生成子配置先ＢＥＳが自装置か否かを判定し、判定条件を満たすときにはＳ２０６へ、満たさないときにはＳ２０７へ、処理を進める。
Ｓ２０６において、生成子配置先ＢＥＳ４は、自装置が収容する記憶装置５に配置されている生成子を使用することにより、生成子の現在値を取得するとともに、その現在値を加算する。
Ｓ２０７において、表管理ＢＥＳ４は、生成子配置先ＢＥＳ４に対して、生成子配置先ＢＥＳ４が収容する記憶装置５に配置されている生成子の使用を依頼することにより、生成子の現在値を取得するとともに、その現在値を加算する。
Ｓ２０８において、表管理ＢＥＳ４は、Ｓ２０６またはＳ２０７で取得した生成子の現在値をもとに、自装置が収容する記憶装置５に格納されている表データ５２にアクセスする。
Ｓ２０９において、表管理ＢＥＳ４は、Ｓ２０８のアクセス結果を、自装置の更新ログテーブル５３へと反映する。
【００５１】
図１１は、生成子使用文の処理（図１０）の詳細を、例を元に説明する説明図である。以下の図１１の説明において、適宜図１０の処理ステップを引用する。
【００５２】
ＦＥＳ２は、端末装置１から、以下に示す生成子使用文を受信する（Ｓ２０１）。
insert into T2 values(next value for MOUSE, ‘GRAPE’)
ＦＥＳ２の表データ処理要求部２５は、この生成子使用文に対して構文解析を行うことで、この生成子使用文が、表データ５２「T2」の列「C1」に生成子「MOUSE」の現在値を書き込み、対応する列「C2」に値「GRAPE」を書き込む旨のアクセス要求である旨を取得する。
【００５３】
表データ処理要求部２５は、生成子使用文で指定される表データ５２「T2」をキーとして、表定義管理部２１に対して、問い合わせを行う。表定義管理部２１は、問い合わせを受け、表定義テーブル２２から表名称「T2」に該当するレコードを検索し、そのレコードの「表管理ＢＥＳ」である「ＢＥＳ４ｂ」を表データ処理要求部２５に返答する（Ｓ２０２）。
【００５４】
表データ処理要求部２５は、生成子使用文の生成子「MOUSE」をキーとして、ＤＳ３の生成子定義管理部３１に問い合わせを行う。生成子定義管理部３１は、問い合わせを受信すると、生成子定義テーブル３２から生成子名称「MOUSE」に該当するレコードを検索し、そのレコードの生成子配置先ＢＥＳ「ＢＥＳ４ｂ」を表データ処理要求部２５に返答する（Ｓ２０３）。
【００５５】
表データ処理要求部２５は、「表管理ＢＥＳ」であるＢＥＳ４ｂ（表データ処理部４２）に対して、受信した生成子使用文と、その生成子使用文で指定された生成子の生成子配置先ＢＥＳ「ＢＥＳ４ｂ」とを、送信する（Ｓ２０４）。
【００５６】
ＢＥＳ４ｂの表データ処理部４２は、受信した生成子使用文で指定された生成子の生成子配置先ＢＥＳが、自装置と一致するか否かを判定する（Ｓ２０５）。今回は、自装置と一致するため、表データ処理部４２は、自装置の生成子管理部４１に対して、生成子使用文で指定される生成子名称「MOUSE」の使用を依頼する。
このように、「表管理ＢＥＳ」と、「生成子配置先ＢＥＳ」とが、同じＢＥＳの場合、他のＢＥＳ４への通信が発生しないため、処理時間を短縮することができる。
【００５７】
ＢＥＳ４ｂの生成子管理部４１は、表データ処理部４２からの依頼を受け、生成子使用文で指定される生成子名称「MOUSE」を含めた生成子使用メッセージを、収容する記憶装置５ｂに送信する。
記憶装置５ｂは、生成子使用メッセージを受信すると、以下の（１）〜（３）の処理を順に実行する（Ｓ２０６）。
（１）生成子名称「MOUSE」の現在値「１４」を生成子情報テーブル５１から読み取り、生成子使用メッセージの送信元（生成子管理部４１）に返却する。
（２）生成子名称「MOUSE」の現在値「１４」に対して、生成子情報テーブル５１に格納されている増分「２」を加えることで、現在値を「１６」に更新する。
（３）生成子名称「MOUSE」の「使用回数」に「１」を加算する。
【００５８】
表データ処理部４２は、生成子管理部４１が返却を受けた生成子名称「MOUSE」の現在値「１４」を、生成子使用文の構文解析結果へと代入することで、表データ５２「T2」の列「C1」に「１４」を書き込み、対応する列「C2」に値「GRAPE」を書き込む旨のデータアクセスメッセージを作成する。生成子管理部４１は、作成したデータアクセスメッセージを、返答された「表管理ＢＥＳ」が示す「ＢＥＳ４ｂ」へ送信する。
【００５９】
データアクセスメッセージを受信したＢＥＳ４ｂの表データ処理部４２は、収容する記憶装置５の表データ５２「T2」に対して、列「C1,C2」のデータ書き込みを要求する。記憶装置５は、その要求に従い、新たなレコード「C1=14，C2=GRAPE」を書き込む（Ｓ２０８）。
そして、表データ５２の更新操作が行われたので、更新ログ管理部４３は、更新ログテーブル５３に対して、データアクセスメッセージが示す操作内容と、その発生時刻とを対応づけて格納する（Ｓ２０９）。
【００６０】
図１２は、生成子配置部２４が実行する、生成子の再配置処理を示すフローチャートである。このフローチャートは、図８，９で説明した生成子の定義（初回配置）処理が行われた後、その生成子を再配置するために実行される。
【００６１】
Ｓ３０１において、生成子配置部２４は、ＤＳ３の生成子定義テーブル３２から、生成子を１つずつ順に選択するループを開始する。
Ｓ３０２において、生成子配置部２４は、ループで選択されている生成子について、生成子情報テーブル５１の「使用回数」をＢＥＳごとに集計することで、ＢＥＳごとの使用割合を求める。この使用割合は、（所定ＢＥＳの使用回数）／（全ＢＥＳの使用回数の総和）で計算される。つまり、生成子情報テーブル５１の「使用回数」には、使用回数の総和だけでなく、その内訳としてＢＥＳごとの使用回数があらかじめ記録されている。
【００６２】
Ｓ３０３において、生成子配置部２４は、Ｓ３０２で求めたＢＥＳごとの使用割合について、生成子配置先ＢＥＳの使用割合よりも大きい使用割合となるＢＥＳが存在するか否かを判定し、判定条件を満たすときにはＳ３０４へ、満たさないときにはＳ３０５へ、処理を進める。
Ｓ３０４において、生成子配置部２４は、ループで選択されている生成子について、使用割合が最大となるＢＥＳを、生成子の移動先として提案する旨の確認メッセージ（後記する図１３参照）を表示装置に表示する。
Ｓ３０５において、生成子配置部２４は、生成子の移動を行う旨の入力を受け付けたか否かを判定し、判定条件を満たすときにはＳ３０６へ、満たさないときにはＳ３０９へ、処理を進める。
【００６３】
Ｓ３０６において、生成子配置部２４は、生成子をＳ３０４で提案した移動先へと移動する。
具体的には、移動元の（今まで生成子配置先ＢＥＳであった）生成子配置部２４は、移動先の（新たに生成子配置先ＢＥＳとなる）生成子配置部２４に対して、自装置の生成子情報テーブル５１に記載されている移動対象の生成子に関する情報（生成子名称、現在値、使用回数）を通知した後、その移動対象の生成子に関する情報を、自装置の生成子情報テーブル５１から削除する。
そして、移動先の生成子配置部２４は、移動元から通知を受けた移動対象の生成子に関する情報（生成子名称、現在値、使用回数）を、自装置の生成子情報テーブル５１に新規追加する。
さらに、移動先の生成子配置部２４は、ＤＳ３の生成子定義管理部３１に対して、移動対象の生成子に関する生成子定義テーブル３２の「生成子配置先ＢＥＳ」を、移動元から移動先へと変更するように要求する。
【００６４】
Ｓ３０７において、生成子配置部２４は、Ｓ３０１からの生成子を１つずつ順に選択するループを終了する。
【００６５】
図１３は、図１２のＳ３０４で表示される確認メッセージを示す画面図である。確認メッセージには、Ｓ３０２で求めたＢＥＳごとの使用割合が表形式で表示されるとともに、使用割合が最大となるＢＥＳ４ａが、生成子の移動先として表示されている。この確認メッセージの下部に表示されている「yes」ボタンをクリックすると、図１２のＳ３０６へ処理が進む。
【００６６】
以上説明したように、本実施形態では、新たな生成子の配置先をその生成子が使用される表データ５２と同じ記憶装置５になるように決定する（図８のＳ１０３，Ｓ１０４）。これにより、配置された生成子の使用時に、ＢＥＳ４間での生成子の問い合わせ（図１０のＳ２０７）の発生を抑制し、収容する記憶装置５に対するローカルアクセス（図１０のＳ２０６）の頻度を上げることができ、問い合わせのオーバーヘッドを削減することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の一実施形態に関するデータベースシステムを示す構成図である。
【図２】本発明の一実施形態に関するデータベースシステムの各装置の処理部を示す構成図である。
【図３】本発明の一実施形態に関する表定義テーブルと、その表定義テーブルで定義されている表の表データを示す構成図である。
【図４】本発明の一実施形態に関するＢＥＳごとの更新ログテーブルの一例を示す構成図である。
【図５】本発明の一実施形態に関する更新ログ統合テーブルの一例を示す構成図である。
【図６】本発明の一実施形態に関する生成子定義テーブルを示す構成図である。
【図７】本発明の一実施形態に関するＢＥＳごとの生成子情報テーブルの一例を示す構成図である。
【図８】本発明の一実施形態に関する生成子定義文の処理の概要を示すフローチャートである。
【図９】本発明の一実施形態に関する生成子定義文の処理の詳細を示す説明図である。
【図１０】本発明の一実施形態に関する生成子使用文の処理の概要を示すフローチャートである。
【図１１】本発明の一実施形態に関する生成子使用文の処理の詳細を示す説明図である。
【図１２】本発明の一実施形態に関する生成子の再配置処理を示すフローチャートである。
【図１３】本発明の一実施形態に関する確認メッセージを示す画面図である。
【符号の説明】
【００６８】
１      端末装置
２      ＦＥＳ
３      ＤＳ
４      ＢＥＳ
９      ネットワーク
２１    表定義管理部
２２    表定義テーブル
２３    更新ログ統合テーブル
２４    生成子配置部
２５    表データ処理要求部
２６    更新ログ統合部
３１    生成子定義管理部
３２    生成子定義テーブル
４１    生成子管理部
４２    表データ処理部
４３    更新ログ管理部
５１    生成子情報テーブル
５２    表データ
５３    更新ログテーブル
９１    インタフェース
９２    プロセッサ
９３    メモリ
【図１】
2010134519.tif 000003
【図２】
2010134519.tif 000004
【図３】
2010134519.tif 000005
【図４】
2010134519.tif 000006
【図５】
2010134519.tif 000007
【図６】
2010134519.tif 000008
【図７】
2010134519.tif 000009
【図８】
2010134519.tif 000010
【図９】
2010134519.tif 000011
【図１０】
2010134519.tif 000012
【図１１】
2010134519.tif 000013
【図１２】
2010134519.tif 000014
【図１３】
2010134519.tif 000015