(57)【要約】【課題】データベース中の各グループの範囲を記録しておくことで、効率良くデータ挿入を行うデータベースシステム、データ処理方法及びデータベースプログラムを提供する。【解決手段】明細表Ｈ１は、一以上の各項目のデータをレコードごとに格納するデータベースの表である。見出し表Ｈ０は、明細表Ｈ１に格納され所定のキー項目の値が共通するグループごとに順列した前記レコードについて、各グループごとのレコードの範囲を表す範囲データを保持する保持手段であり、明細表Ｈ１とは異なる第２の表となっている。追加部２は、データベースＤＢに新たなレコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理を、前記範囲データに基いて行う追加手段である。更新部３は、前記追加に基いて前記範囲データを更新する。【選択図】  図１
2004318342.tif 000002
【特許請求の範囲】
【請求項１】
一以上の各項目のデータをレコードごとにデータベースの表に格納するデータベースシステムにおいて、
所定の項目の値が共通するグループごとに順列した前記レコードについて、各グループごとのレコードの範囲を表す範囲データを保持する保持手段と、
前記データベースに新たなレコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理を、前記範囲データに基いて行う追加手段と、
前記追加に基いて前記範囲データを更新する更新手段と、
を備えたことを特徴とするデータベースシステム。
【請求項２】
前記範囲データは、各グループのレコード件数を含むことを特徴とする請求項１記載のデータベースシステム。
【請求項３】
前記範囲データは、各グループの開始レコード番号を含むことを特徴とする請求項１又は２記載のデータベースシステム。
【請求項４】
前記範囲データは、各グループの最終レコード番号を含むことを特徴とする請求項１から３のいずれかに記載のデータベースシステム。
【請求項５】
前記追加手段は、
前記保持手段から前記範囲データを取り出し、
その範囲データに基いて各グループを画面表示するとともに所望のグループの選択を受け付け、
選択されたグループの各レコードを画面表示するとともに前記新たなレコードの挿入位置の指定を受け付け、
前記新たなレコードについて、各項目のデータの入力を受け付けるとともに、指定された前記挿入位置に挿入することにより追加を行い、
前記更新手段は、前記追加に基いて前記範囲データの更新を行うことを特徴とする請求項１から４のいずれかに記載のデータベースシステム。
【請求項６】
前記追加手段は、
選択された前記グループの各レコードを、前記データベース中のレコード番号とは異なる所定のローカル位置番号で特定される所定の選択状態で、前記表示及び挿入位置の指定の対象とし、
前記挿入位置が指定されると、前記選択状態を解除するとともに、指定された挿入位置をローカル位置番号から前記データベース中のレコード番号に換算することにより新しいレコードの挿入を行うように構成されたことを特徴とする請求項５記載のデータベースシステム。
【請求項７】
前記保持手段は、前記範囲データを、所定の変数に保持することを特徴とする請求項１から６のいずれかに記載のデータベースシステム。
【請求項８】
前記保持手段は、前記範囲データを、前記表とは異なる第２の表に保持することを特徴とする請求項１から７のいずれかに記載のデータベースシステム。
【請求項９】
一以上の各項目のデータをレコードごとにデータベースの表に格納するデータ処理方法において、
所定の項目の値が共通するグループごとに順列した前記レコードについて、各グループごとのレコードの範囲を表す範囲データを保持する保持処理と、
前記データベースに新たなレコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理を、前記範囲データに基いて行う追加処理と、
前記追加に基いて前記範囲データを更新する更新処理と、
をコンピュータが行うことを特徴とするデータ処理方法。
【請求項１０】
前記範囲データは、各グループのレコード件数を含むことを特徴とする請求項９記載のデータ処理方法。
【請求項１１】
前記範囲データは、各グループの開始レコード番号を含むことを特徴とする請求項９又は１０記載のデータ処理方法。
【請求項１２】
前記範囲データは、各グループの最終レコード番号を含むことを特徴とする請求項９から１１のいずれかに記載のデータ処理方法。
【請求項１３】
前記追加処理は、
前記範囲データに基いて各グループを画面表示するとともに所望のグループの選択を受け付け、
選択されたグループの各レコードを画面表示するとともに前記新たなレコードの挿入位置の指定を受け付け、
前記新たなレコードについて、各項目のデータの入力を受け付けるとともに、指定された前記挿入位置に挿入することにより追加を行い、
前記更新処理は、前記追加に基いて前記範囲データの更新を行うことを特徴とする請求項９から１２のいずれかに記載のデータ処理方法。
【請求項１４】
前記追加処理は、
選択された前記グループの各レコードを、前記データベース中のレコード番号とは異なる所定のローカル位置番号で特定される所定の選択状態で、前記表示及び挿入位置の指定の対象とし、
前記挿入位置が指定されると、前記選択状態を解除するとともに、指定された挿入位置をローカル位置番号から前記データベース中のレコード番号に換算することにより新しいレコードの挿入を行うことを特徴とする請求項１３記載のデータ処理方法。
【請求項１５】
前記保持処理は、前記範囲データを、所定の変数に保持することを特徴とする請求項９から１４のいずれかに記載のデータ処理方法。
【請求項１６】
前記保持処理は、前記範囲データを、前記表とは異なる第２の表に保持することを特徴とする請求項９から１５のいずれかに記載のデータ処理方法。
【請求項１７】
コンピュータを制御することにより、一以上の各項目のデータをレコードごとにデータベースの表に格納させるデータベースプログラムにおいて、
そのプログラムは前記コンピュータに、
所定の項目の値が共通するグループごとに順列した前記レコードについて、各グループごとのレコードの範囲を表す範囲データを保持させ、
前記データベースに新たなレコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理を、前記範囲データに基いて行わせ、
前記追加に基いて前記範囲データを更新させることを特徴とするデータベースプログラム。
【請求項１８】
前記レコードの追加にあたり、前記プログラムは前記コンピュータに、
前記範囲データに基いて各グループを画面表示させるとともに所望のグループの選択を受け付けさせ、
選択されたグループの各レコードを画面表示させるとともに前記新たなレコードの挿入位置の指定を受け付けさせ、
前記新たなレコードについて、各項目のデータの入力を受け付けさせるとともに、指定された前記挿入位置に挿入させることにより追加を行わせ、
前記追加に基いて前記範囲データの更新を行わせることを特徴とする請求項１７記載のデータベースプログラム。
【請求項１９】
前記追加にあたり、前記プログラムは前記コンピュータに、
選択された前記グループの各レコードを、前記データベース中のレコード番号とは異なる所定のローカル位置番号で特定される所定の選択状態で、前記表示及び挿入位置の指定の対象とさせ、
前記挿入位置が指定されると、前記選択状態を解除させるとともに、指定された挿入位置をローカル位置番号から前記データベース中のレコード番号に換算させることにより新しいレコードの挿入を行わせることを特徴とする請求項１８記載のデータベースプログラム。
【請求項２０】
前記プログラムは前記コンピュータに、前記範囲データを、前記表とは異なる第２の表に保持させることを特徴とする請求項１７から１９のいずれかに記載のデータベースプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベース中の各グループの範囲を記録しておくことで、効率良くデータ挿入を行うデータベースシステム、データ処理方法及びデータベースプログラムに関する。
【０００２】
【従来の技術】
近年、ビジネスなどの情報処理分野で、リレーショナルデータベースが普及している（例えば、特許文献１参照）。リレーショナルデータベースは、例えば氏名、生年月日といったいくつかの情報項目を、レコード数分並べた「表」を単位としたデータベースで、いわゆる表計算ソフトによって実現される場合も含むものとする。このようなリレーショナルデータベースにおける「表」は、必要な場合に所望のキー項目でソートし直すことが可能であるが、利用目的に応じて処理によく使う項目はある程度決まってくるものであり、また、ソートの所要時間もレコード数に応じ増大する特徴がある。したがって、表中の行にあたるレコードは、利用目的に応じて、必要な項目の値が共通するグループの順に並べておくことが望ましい。
【０００３】
【特許文献１】
特開２００１−３３１３５３
【０００４】
【発明が解決しようとする課題】
この前提で新しいレコードの追加を考える場合、データ量が多いと時間がかかり迅速性に欠ける問題があった。すなわち、まず、通常の一般的なレコードの追加処理では、追加位置は表の最後となるので、追加されたレコードを、本来属すべきグループすなわち同じ項目値を持つレコード集団に移動させるには、必要なキー項目で表全体をソートし直す必要があり、データ量に応じソート時間がかかる問題があった。また、この場合、次に使うときに同様のソートを不要にするためには、ソートしたままの順序で別の表へ書き出し、元の表を削除して新しい方を読み込むことで表を書き換えるなどの作業も要し煩雑であった。
【０００５】
また、上記のようなソート処理を使わない手法としては、いったんグループごとに綺麗に並んだ状態を確保したら、その後はレコード追加をしかるべき挿入位置にだけ行う手法もある。すなわち、追加しようとする新たなデータの項目値をもとに、入力者が事前にカーソル操作で確認しながら、表中から属すべきグループと挿入位置を手作業で探し、レコード間に挿入することでレコードがきれいに並んだ状態を維持するものである。しかしながら、カーソルをスクロールさせながら肉眼で探すようなこの種の手作業は、速さと正確さに限界があるだけでなく、データ件数が多いほど長時間かかり、挿入位置を間違える可能性などの問題もあった。
【０００６】
これに対し、しかるべき挿入位置をコンピュータ処理で探させる手法もあるが、追加しようとする項目の値に一致するレコードを表中から探すには、実装システムの機能に応じて、「検索」や「選択」の処理を用いることになる。一般に、前者の「検索」処理は、先頭のレコードから一つずつ条件と一致するかどうか判別させる処理であるため、一致するレコードが表の下方にあり、レコード数が多い場合には時間がかかる問題があった。
【０００７】
また、後者の「選択」処理は、選択すべきグループを事前に条件指定させ、それに該当する各レコードの集団を画面に呼び出す処理で、そのように表示されたうち所望の個所に行すなわちレコードを登録することになる。しかし、「選択」は予めソートされたデータに対して行う方が速く、選択の前に結局ソート処理が必要になってやはり迅速性に欠ける問題があった。
【０００８】
また、選択状態で表示されたレコードから挿入位置を指定しても、その位置は選択されたグループ内や画面上のもので、データベースの表中の位置とは異なるため、選択状態ではそもそもレコード挿入ができないシステムもある。その場合、レコードの挿入による追加を行う段になれば結局、選択状態を解除せざるを得ず、選択状態での挿入位置をデータベース中で確認する二度手間も問題であった。
【０００９】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、その目的は、データベース中の各グループの範囲を記録しておくことで、効率良くデータ挿入を行うデータベースシステム、データ処理方法及びデータベースプログラムを提供することである。
【００１０】
【課題を解決するための手段】
上記の目的を達成するため、請求項１の発明は、一以上の各項目のデータをレコードごとにデータベースの表に格納するデータベースシステムにおいて、所定の項目の値が共通するグループごとに順列した前記レコードについて、各グループごとのレコードの範囲を表す範囲データを保持する保持手段と、前記データベースに新たなレコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理を、前記範囲データに基いて行う追加手段と、前記追加に基いて前記範囲データを更新する更新手段と、を備えたことを特徴とする。
【００１１】
請求項９の発明は、請求項１の発明を方法という見方から捉えたもので、一以上の各項目のデータをレコードごとにデータベースの表に格納するデータ処理方法において、所定の項目の値が共通するグループごとに順列した前記レコードについて、各グループごとのレコードの範囲を表す範囲データを保持する保持処理と、前記データベースに新たなレコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理を、前記範囲データに基いて行う追加処理と、前記追加に基いて前記範囲データを更新する更新処理と、をコンピュータが行うことを特徴とする。
【００１２】
請求項１７の発明は、請求項１，９の発明をコンピュータのプログラムという見方から捉えたもので、コンピュータを制御することにより、一以上の各項目のデータをレコードごとにデータベースの表に格納させるデータベースプログラムにおいて、そのプログラムは前記コンピュータに、所定の項目の値が共通するグループごとに順列した前記レコードについて、各グループごとのレコードの範囲を表す範囲データを保持させ、前記データベースに新たなレコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理を、前記範囲データに基いて行わせ、前記追加に基いて前記範囲データを更新させることを特徴とする。
【００１３】
これらの態様では、グループごとの行番号などレコードの範囲を範囲データとして保持及び更新するので、次のレコード追加時に、グループや挿入位置を画面表示してユーザに選択させるなどの処理を、範囲データを利用して迅速に行うことができ、処理が大幅に効率化される。
【００１４】
請求項２の発明は、請求項１記載のデータベースシステムにおいて、前記範囲データは、各グループのレコード件数を含むことを特徴とする。
【００１５】
請求項１０の発明は、請求項２の発明を方法という見方から捉えたもので、請求項９記載のデータ処理方法において、前記範囲データは、各グループのレコード件数を含むことを特徴とする。
【００１６】
これらの態様では、特に、各グループのレコード件数が範囲データから直接得られる利点がある。また、所望のグループについて、最初となる開始レコード番号は直前までのレコード件数の積算に１加えて容易に得られ、また、最後となる最終レコード番号もそのグループまでのレコード件数の積算により容易に特定できる。
【００１７】
請求項３の発明は、請求項１又は２記載のデータベースシステムにおいて、前記範囲データは、各グループの開始レコード番号を含むことを特徴とする。
【００１８】
請求項１１の発明は、請求項３の発明を方法という見方から捉えたもので、請求項９又は１０記載のデータ処理方法において、前記範囲データは、各グループの開始レコード番号を含むことを特徴とする。
【００１９】
これらの態様では、特に、各グループの最初となる開始レコード番号が範囲データから直接得られる利点がある。また、所望のグループについて、最後となる最終レコード番号は直後のグループの開始レコード番号から１減じて容易に得られ、また、レコード件数も直後のグループの開始レコード番号から該当グループの開始レコード番号を減じて容易に特定できる。
【００２０】
請求項４の発明は、請求項１から３のいずれかに記載のデータベースシステムにおいて、前記範囲データは、各グループの最終レコード番号を含むことを特徴とする。
【００２１】
請求項１２の発明は、請求項４の発明を方法という見方から捉えたもので、請求項９から１１のいずれかに記載のデータ処理方法において、前記範囲データは、各グループの最終レコード番号を含むことを特徴とする。
【００２２】
これらの態様では、特に、各グループの最後となる最終レコード番号が範囲データから直接得られる利点がある。また、所望のグループについて、開始レコード番号は直前のグループの最終レコード番号に１加えて容易に得られ、また、レコード件数も該当グループの最終レコード番号から直前のグループの最終レコード番号を減じて容易に特定できる。
【００２３】
請求項５の発明は、請求項１から４のいずれかに記載のデータベースシステムにおいて、前記追加手段は、前記保持手段から前記範囲データを取り出し、その範囲データに基いて各グループを画面表示するとともに所望のグループの選択を受け付け、選択されたグループの各レコードを画面表示するとともに前記新たなレコードの挿入位置の指定を受け付け、前記新たなレコードについて、各項目のデータの入力を受け付けるとともに、指定された前記挿入位置に挿入することにより追加を行い、前記更新手段は、前記追加に基いて前記範囲データの更新を行うことを特徴とする。
【００２４】
請求項１３の発明は、請求項５の発明を方法という見方から捉えたもので、請求項９から１２のいずれかに記載のデータ処理方法。において、前記追加処理は、前記範囲データに基いて各グループを画面表示するとともに所望のグループの選択を受け付け、選択されたグループの各レコードを画面表示するとともに前記新たなレコードの挿入位置の指定を受け付け、前記新たなレコードについて、各項目のデータの入力を受け付けるとともに、指定された前記挿入位置に挿入することにより追加を行い、前記更新処理は、前記追加に基いて前記範囲データの更新を行うことを特徴とする
【００２５】
請求項１８の発明は、請求項５，１３の発明をコンピュータのプログラムという見方から捉えたもので、請求項１７記載のデータベースプログラムにおいて、前記レコードの追加にあたり、前記プログラムは前記コンピュータに、前記範囲データに基いて各グループを画面表示させるとともに所望のグループの選択を受け付けさせ、選択されたグループの各レコードを画面表示させるとともに前記新たなレコードの挿入位置の指定を受け付けさせ、前記新たなレコードについて、各項目のデータの入力を受け付けさせるとともに、指定された前記挿入位置に挿入させることにより追加を行わせ、前記追加に基いて前記範囲データの更新を行わせることを特徴とする。
【００２６】
これらの態様では、範囲データの活用により、グループの表示及び選択、グループ内のレコードの表示と挿入位置の指定、実際の挿入と範囲データの更新に至る一連の処理が円滑に進行する利点があり、レコード追加が大幅に効率化される。
【００２７】
請求項６の発明は、請求項５記載のデータベースシステムにおいて、前記追加手段は、選択された前記グループの各レコードを、前記データベース中のレコード番号とは異なる所定のローカル位置番号で特定される所定の選択状態で、前記表示及び挿入位置の指定の対象とし、前記挿入位置が指定されると、前記選択状態を解除するとともに、指定された挿入位置をローカル位置番号から前記データベース中のレコード番号に換算することにより新しいレコードの挿入を行うように構成されたことを特徴とする。
【００２８】
請求項１４の発明は、請求項６の発明を方法という見方から捉えたもので、請求項１３記載のデータ処理方法において、前記追加処理は、選択された前記グループの各レコードを、前記データベース中のレコード番号とは異なる所定のローカル位置番号で特定される所定の選択状態で、前記表示及び挿入位置の指定の対象とし、前記挿入位置が指定されると、前記選択状態を解除するとともに、指定された挿入位置をローカル位置番号から前記データベース中のレコード番号に換算することにより新しいレコードの挿入を行うことを特徴とする。
【００２９】
請求項１９の発明は、請求項６，１４の発明をコンピュータのプログラムという見方から捉えたもので、請求項１８記載のデータベースプログラムにおいて、前記追加にあたり、前記プログラムは前記コンピュータに、選択された前記グループの各レコードを、前記データベース中のレコード番号とは異なる所定のローカル位置番号で特定される所定の選択状態で、前記表示及び挿入位置の指定の対象とさせ、前記挿入位置が指定されると、前記選択状態を解除させるとともに、指定された挿入位置をローカル位置番号から前記データベース中のレコード番号に換算させることにより新しいレコードの挿入を行わせることを特徴とする。
【００３０】
これらの態様では、選択状態のままでは行挿入等のレコード挿入が行えない場合も、挿入位置の指定後に選択状態を解除し、挿入位置指定時の番号をデータベース中のレコード番号に換算してレコード挿入を行える利点があり、幅広い多様なシステムを適用対象とすることができる。特に、従来では選択状態のまま入力すれば表の最後への追加となり再ソートをはじめとする煩雑な処理を要したところそれが不要となる。
【００３１】
請求項７の発明は、請求項１から６のいずれかに記載のデータベースシステムにおいて、前記保持手段は、前記範囲データを、所定の変数に保持することを特徴とする。
【００３２】
請求項１５の発明は、請求項７の発明を方法という見方から捉えたもので、請求項９から１４のいずれかに記載のデータ処理方法において、前記保持処理は、前記範囲データを、所定の変数に保持することを特徴とする。
【００３３】
これらの態様では、最初や最後のレコード番号や件数、グループ分けの基準となる項目であるキー項目などの範囲データを変数に保持するので、データベースシステムが扱う表の数を減らし、システムの単純化や負担軽減が可能となる利点がある。
【００３４】
請求項８の発明は、請求項１から７のいずれかに記載のデータベースシステムにおいて、前記保持手段は、前記範囲データを、前記表とは異なる第２の表に保持することを特徴とする。
【００３５】
請求項１６の発明は、請求項８の発明を方法という見方から捉えたもので、請求項９から１５のいずれかに記載のデータ処理方法において、前記保持処理は、前記範囲データを、前記表とは異なる第２の表に保持することを特徴とする。
【００３６】
請求項２０の発明は、請求項８，１６の発明をコンピュータのプログラムという見方から捉えたもので、請求項１７から１９のいずれかに記載のデータベースプログラムにおいて、前記プログラムは前記コンピュータに、前記範囲データを、前記表とは異なる第２の表に保持させることを特徴とする。
【００３７】
これらの態様では、範囲データについても、目的の表と同じデータベースの別の表に保持するので、同じデータベースシステムの機能で容易に扱える利点がある。特に、グループ分けのキー項目について、表中での繰り返しが回避できるので、データのいわゆる正規性が維持され、キー項目を検索したり表示等する処理が大幅に効率化される。
【００３８】
【発明の実施の形態】
次に、本発明の実施の形態（以下「実施形態」と呼ぶ）について図面を参照して具体的に説明する。本実施形態におけるデータベースシステム（以下「本システム」と呼ぶ）は、必要な周辺装置を備えたコンピュータをプログラムで制御することにより実現でき、この場合のハードウェアやプログラムの実現態様は各種変更可能である。また、実施形態は、装置に加え、方法、コンピュータプログラム、そのようなプログラムを記録したコンピュータ読取可能な記録媒体としても把握可能である。このように本実施形態の実現態様は各種考えられるので、以下の説明では、本発明及び本実施形態の各機能を実現する仮想的回路ブロックを用いる。
【００３９】
〔１．構成〕
〔１−１．全体構成〕
本システムは、一以上の各項目のデータをレコードごとにデータベースの表に格納するデータベースシステムで、上記のようなプログラムの作用により、図１の機能ブロック図に示すように、データベースＤＢの表として、見出し表Ｈ０及び明細表Ｈ１を保持し、また、下記の各要素を備える。
【００４０】
まず、明細表Ｈ１は、一以上の各項目のデータをレコードごとに格納するデータベースの表である。そして、見出し表Ｈ０は、明細表Ｈ１に格納されグループ分けの基準となる項目である所定のキー項目の値が共通するグループごとに順列した前記レコードについて、各グループごとのレコードの範囲を表す範囲データを保持する保持手段であり、明細表Ｈ１とは異なる第２の表となっている。
【００４１】
まず、ＲＤＢＭＳ（リレーショナル・データベース・マネジメント・システム）などを用いる検索等管理部Ｍでは、上記プログラムの作用により、追加部２及び更新部３が実現される。このうち追加部２は、前記データベースに新たなレコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理を、前記範囲データに基いて行う追加手段である。また、更新部３は、前記追加に基いて前記範囲データを更新する更新手段である。
【００４２】
また、本システムは、入出力手段として液晶表示パネル等の表示部４と、マウスやキーボード等の操作部５と、を備える。このうち表示部４は、グループやレコード、データ等の情報出力に用いられ、操作部５は、操作や指示の入力、レコードの選択、挿入位置の指定、データの入力などに用いられる。
【００４３】
〔１−２．範囲データの表し方〕
本実施形態において、範囲データの表し方は自由であるが、典型的には、各グループを分ける基準となっている項目であるキー項目の値すなわちキー項目値とともに、それに対応したレコード件数、開始レコード番号、最終レコード番号、のうちいずれか又は複数を含むことが考えられる。例えば、レコード件数を用いる態様では、特に、各グループのレコード件数が範囲データから直接得られる利点がある。また、所望のグループについて、最初となる開始レコード番号は直前までのレコード件数の積算に１加えて容易に得られ、また、最後となる最終レコード番号もそのグループまでのレコード件数の積算により容易に特定できる。
【００４４】
また、開始レコード番号を用いる態様では、特に、各グループの最初となる開始レコード番号が範囲データから直接得られる利点がある。また、所望のグループについて、最後となる最終レコード番号は直後のグループの開始レコード番号から１減じて容易に得られ、また、レコード件数も直後のグループの開始レコード番号から該当グループの開始レコード番号を減じて容易に特定できる。
【００４５】
また、最終レコード番号を用いる態様では、特に、各グループの最後となる最終レコード番号が範囲データから直接得られる利点がある。また、所望のグループについて、開始レコード番号は直前のグループの最終レコード番号に１加えて容易に得られ、また、レコード件数も該当グループの最終レコード番号から直前のグループの最終レコード番号を減じて容易に特定できる。
【００４６】
本実施形態では、レコード番号を「行番号」「行番」のようにも呼ぶこととし、また、各グループごとの範囲データは、開始レコード番号及びレコード件数であるものとする。
【００４７】
〔２．作用〕
〔２−１．作用の概略〕
上記のように構成された本実施形態では、追加部２が、データベースＤＢに新たなレコードを追加する際、該当するグループ及びグループ中の挿入位置を特定する処理を、見出し表Ｈ０に格納された前記範囲データに基いて行う。そして、更新部３は、そのような追加に基いて見出し表Ｈ０の範囲データを更新する。
【００４８】
具体的には、図２のフローチャートに示すように、追加部２は、
（１）見出し表Ｈ０から前記範囲データすなわちグループごとの行番と件数を取り出し、その範囲データに基いて各グループを画面表示するとともに所望のグループの選択を受け付け（ステップ１）、
（２）選択されたグループの各レコードの呼出しすなわち画面表示を行うとともに（ステップ２）前記新たなレコードの挿入位置の指定を受け付け（ステップ３）、
（３）前記新たなレコードについて、各項目のデータの入力を受け付けるとともに、指定された前記挿入位置に挿入処理することで追加を行い（ステップ４）、（４）更新部３は、そのような追加に基いて、影響が及ぶ各グループの範囲データである行番と件数の更新を行う（ステップ５）。
【００４９】
このように、本実施形態では、範囲データの活用により、グループの表示及び選択、グループ内のレコードの表示と挿入位置の指定、実際の挿入と範囲データの更新に至る一連の処理が円滑に進行する利点があり、レコード追加が大幅に効率化される。
【００５０】
〔２−２．簡単な例〕
ここで、範囲データを活用した処理の簡単な例を示す。例えば、各グループのレコード件数をグループ単位にカウントすると、各グループが始まる行番がわかる。例えば、ａグループで４件、ｂグループで３件、ｃグループで２件のレコードが上から順に並んでいる場合、ｃグループが始まる行番は、それ以前のグループａとｂの各件数の合計に１を加えた「８」となる。
【００５１】
なお、この例ではｃグループ以前の合計レコード件数が７件に過ぎないため計算容易であるが、グループ数やレコード数が多いほど計算所要時間は増大するので、本実施形態では、レコード追加の都度、件数と行番を最新の値に更新し、見出し表Ｈ０に記録することで処理を効率化する。このようにすれば、追加分と同じグループのレコードを画面に呼び出すような時、画面に呼び出すべきグループの行番号範囲を記録済みの情報を参照するだけで瞬時に特定できる。
【００５２】
〔２−３．具体例〕
ここで、以下の説明で用いるデータの例を示す。この例は社員情報システムであり、社員の名前や生年月日等の個人情報を、部課ごとのグループで管理する。具体的には、各社員について取り扱うデータ項目は、「地区」、「部」、「課」、「名前」、「生年月日」、「性別」、「役職名」、「出身地」であり、そのうち名前以降の個人固有情報は、図３に示すような各項目を単位とした一人ずつのレコードとして、明細表Ｈ１に格納する。
【００５３】
また、それらレコードは、所定のキー項目値の共通するもの同士を同じグループとするが、グループごとに共通するキー項目としては上記のデータ項目から個人固有情報を除いた「地区」、「部」、「課」を用いる。そして、見出し表Ｈ０に、項目としてグループ番号（図中「グ番号」）と、グループ番号に対応するそれぞれのキー項目値「地区」、「部」、「課」と、それに対応するグループに属するレコードの「行番」すなわち開始レコード番号と「件数」を、図４に示すようなレコードごとの範囲データとして格納する。
【００５４】
また、これらの情報の画面表示の例を図５に示す。すなわち、画面上部には、表示するグループのキー項目値を表示し、この部分を「見出し部」と呼ぶ。この部分の表示内容は、その下に表示させるレコードの出力条件となっている。そして、見出し部の下のグループのレコードを表示する部分を「明細部」と呼ぶ。明細部に表示するレコードの範囲については、見出し表Ｈ０に格納されたそのグループの範囲データに基き、最初の位置は「行番」で直接把握し、終わりの位置は行番に「件数」を加えて計算される。
【００５５】
そして、新しいデータが任意の挿入位置すなわち行間に追加されると、そのグループとそれ以降の行番と件数が変わり、この更新後の値が見出し表Ｈ０内の範囲データに反映され、次回のグループごとの画面表示に利用される。このような範囲データを用いたレコード追加について、概略を図６の概念図に示し、また、その処理手順について、以下、図２に示した各ステップに沿って説明する。
【００５６】
〔２−４．行番と件数の取り出し及びグループ選択〕
すなわち図２のステップ１では、まず、図７のフローチャートに示すように、見出し部用のデータが保存されている見出し表Ｈ０を開き、その項目のうち「グ番号」に加え、キー項目値である「地区」、「部」、「課」を射影により取り出し、画面上に各グループごとのキー項目値の一覧を、画面上にファイル出力すなわち表示させる（ステップ１１）。射影により画面（図８）には「グ番号」、「地区」、「部」、「課」が表示され、「行番」及び「件数」は表示されない。
【００５７】
このように表示された画面上のグループ候補一覧から、ユーザに、追加しようとするレコードのデータが属すべきグループを指定させると（ステップ１２）、指定されたグループの各キー項目値と、「件数」と、そのグループの開始レコード番号である「行番」が、それぞれ対応する変数にコピーされる（ステップ１３，１４）。なお、本実施形態において変数は「ｈ〜」で始まる名称や略称で適宜表す。
【００５８】
図８の例は、そのように選択可能な複数のグループが画面表示された配属先の指定画面であり、この画面上で矢印で示す行、すなわち７行目のグ番号「７」、地区「横浜支社」、部「総務部」、課「２」の行にカーソルを移し、実行キーの入力など所定の操作を行う、画面に表示しない右側の二列の項目から、指定されたグループに対応する行番「８００」と件数「７」のペアが一組だけ、それぞれ所定の変数例えばｈ行番、ｈ件数に代入される。
【００５９】
また、見出し表Ｈ０の内容は、メモリ上の配列変数にいったん呼び出しておけば、見出し表Ｈ０へのアクセス無しで複数のグループにレコードが追加できるなど、その後の処理が効率化でき、その場合の行番と件数の取り出し及びグループ選択の処理手順を図９に示す。
【００６０】
この手順では、見出し表Ｈ０の（ステップ１０１）トップから（ステップ１０２，１０３）終端行まで（ステップ１０７）、グループ番号を格納する変数ｈグ番号をループ制御変数として０から（ステップ１０３）インクリメントしながら（ステップ１０４）、見出し表Ｈ０中の［位置］を、ｈグ番号を添字とした配列変数ｈ行番［ｈグ番号］へ代入し（ステップ１０５）カーソルを一行ずつ移動させる（ステップ１０６）。
【００６１】
カーソルが終端行を過ぎると（ステップ１０７）、さらに、最後のｈグ番号を最終レコード番号である変数ｈ終グ番号に代入し（ステップ１０８）、射影及び出力（ステップ１０９）、グループの指定すなわち選択（ステップ１１０）を経て、選択された［グループ番号］を変数ｈグ現番号とし、表を閉じる（ステップ１１２）。
【００６２】
〔２−５．レコードの呼出〕
上記のように選択したグループ番号と、それに対応して取り出し所定の変数に記録した行番と件数の情報から、対象となるレコードを呼び出す処理（図２のステップ２）の手順を図１０のフローチャートに示す。なお、フローチャート中での破線は図９のように配列変数を用いる場合に関するものであり、以下のフローチャートでも同様である。
【００６３】
図１０の手順では、まず、明細表Ｈ１を開いたうえ（ステップ２１）、指定したグループが始まる位置は、行番でもって把握し、カーソルを該当レコードへ移動させる（ステップ２２）。その結果、表のトップからそのレコードの一つ手前にあたる行までのレコード検索が不要になるので、入力済みデータの件数や容量とはほとんど関係なく、選択したグループのレコードを画面呼出することが可能となる。
【００６４】
例えば、図１１の概念図に示す例では、指定したグループ７の開始レコード番号である行番が８００行目なので、７９９行分の検索処理が省略できる。また、レコードは、グループの最終レコード番号まで、キー項目の昇順や降順で連続して並んでいるので、そのグループに属するものとして表示すべき最終レコード番号は、そのグループの始まる「行番」に、それまでに入力済みのグループ内レコードの「件数」を加えたものとみなしてグループの範囲を特定し、その範囲を選択状態にして、瞬時に画面表示を行える（ステップ２３）。なお、本実施形態における選択状態は「行数選択」と呼ぶ。
【００６５】
その結果、図１１の例では、選択グループ７より後の行番８０７から表の終わる９００行目までの検索も全て不要になる。なお、各時点でポインタすなわちカーソルが指しているレコードを「カレントレコード」と呼ぶ。
【００６６】
このようにレコードを画面表示するとともに、画面上部に見出し部の変数値すなわち項目値を表示し（ステップ２４）、操作選択のためのキー入力を受け付ける（ステップ３０）。図１０の例では、状態検出用のいくつかの変数、すなわちｈ区分、ｈ区分行、ｈ区分状態、ｈ区分ボタンの状態に応じていくつかの処理に分岐する（ステップ３１〜３５）。このようなユーザインタフェースは自由に設計でき、例えば、プログラム構成によるが、行間挿入のためには、挿入キーを押した時点でカーソルがいずれかの行や行間も指していなければ、「カレント行を指定して下さい」等の要求を出力してもよい。なお、複数のグループの範囲データを配列変数に読み込み済（図９）の場合は、例えば「他グループ編集」を選ぶことにより、続けて他のグループについてもレコード追加等の編集が可能である。
【００６７】
〔２−６．挿入位置の指定〕
但し、以上のようなユーザインタフェースの設計は一例に過ぎず自由に変更可能であり、重要なことは、ユーザは選択したグループのレコード間から、所望の挿入位置を指定できることである（図２のステップ３）。例えば、図５の状態でユーザはキー操作により、上下のカーソル移動により所望のレコード間を指定したうえ、挿入キーを押すなど所定の操作を行うと（図１０のステップ３１）、そのときカーソルが指していたレコード間の位置を挿入位置として（ステップ３２）、行挿入処理へ移行する（ステップ３５）。
【００６８】
例えば、図５の例は、新しく入社する社員の配属先として、横浜支社の総務部第２課を選択し（図８）その各レコードを画面に表示した状態であり、このグループ内の各レコードは生年月日の昇順に順列している。この場合、新しく入力するレコードが昭和３２年生まれに関する場合、図５に矢印で示すように、３行目と４行目の間をカーソルで指定し、挿入キーを押すことで挿入位置が指定される。
【００６９】
ところで、追加部２による上記のような表示及び挿入位置の指定は、対象グループの各レコードを選択した選択状態で行われるが、この選択状態は、選択されたグループの各レコードを、データベースＤＢ中のレコード番号とは異なる所定のローカル位置番号で特定する状態である。このため、追加部２は、挿入位置が指定されると、そのような選択状態を解除するとともに、指定された挿入位置をローカル位置番号からデータベースＤＢ中のレコード番号に換算することにより新しいレコードの挿入を行う。
【００７０】
例えば、図１１で例示するグループ７は、データベースＤＢ中での行番では「８００」から「７」件を占めているが、図５で指定した挿入位置は選択されたグループ内でのローカル位置番号として得られ、挿入位置直前の「鈴木三郎」が「３」行目、挿入位置直後の「佐野太郎」が「４」行目である。このため、ローカル位置番号で「４」行目直前という挿入位置は、選択解除した状態でのデータベースＤＢ中の行番に換算すれば、選択画面上で取得した行番「４」と、直前のグループ６の最後尾を示した行番「７９９」を足した値、すなわち７９９＋４＝「８０３」行目の直前、となる。この関係を図１２の概念図に示す。
【００７１】
すなわち、本実施形態では、レコード挿入位置の指定と取扱いについても従来技術と大きく異なる。すなわち、データベースシステムによっては、所望の条件のレコードを画面表示するためには該当レコードを所定の選択状態にする必要があり、選択状態のレコードはデータベース中のレコード番号すなわち行番とは異なる所定のローカル位置番号で特定され、その最大値は画面表示中の件数と同じ数字となる。この種のシステムでは、行挿入すなわちレコード挿入はデータベース自体に対するものなので、選択状態では実行できない。
【００７２】
このような場合、従来では、各レコードにソート用の項目値として行番と同じ値を持たせ、画面表示のための選択状態で数えた位置とその直前の行番号を足して２で割った値をそのソート用の項目値に代入した行を、表の最後に追加し、表全体をソートし並べ替えることで、追加した行を指定位置に移動させていたが、その所要時間はレコード数やデータ量に比例して増大し負担となっていた。
【００７３】
これに対し本実施形態は、そのようなソートを使わず、該当する位置に直接挿入するが、挿入はデータベース自体に対して直接行う処理なので、その条件として、選択状態はいったん解除する。このように選択を解除するとカーソルは初期化されて表のトップ位置に戻り、その状態から入力準備に入るので、選択中に挿入位置を指定したローカル位置番号では、レコード挿入位置を特定することはできない。そこで、本実施形態では、トップから数えた行番を求めるために、ローカル位置番号をデータベース中のレコード番号に換算している。
【００７４】
このような本実施形態では、選択状態のままでは行挿入等のレコード挿入が行えない場合も、挿入位置の指定後に選択状態を解除し、挿入位置指定時の番号をデータベース中のレコード番号に換算してレコード挿入を行える利点があり、幅広い多様なシステムを適用対象とすることができる。特に、従来では選択状態のまま入力すれば表の最後への追加となり再ソートをはじめとする煩雑な処理を要したところそれが不要となる。
【００７５】
〔２−７．新規レコードの行挿入処理〕
上記のように指定した挿入位置へカーソルを移動させ、新しいレコードの行を挿入（図２のステップ４）した結果を図１３の概念図に示す。この例は、昭和３２年５月３１日生まれの「新規太郎」の社員データのレコードが挿入されたケースで、その結果、挿入位置以降の既存データが一行ずつ下方にずれ、各行番が変化する。例えば、「佐野太郎」の行番が「８０３」から「８０４」に増え、以下同様に、「吉岡次郎」までの行番がインクリメント（１増加）する。この結果、当然、各グループが始まる行番も変化する。このような影響が及ぶのは、挿入したグループより後の各グループであり、すなわちグループ８の始まる行番が「８０７」だったものが「８０８」に増え、グループ９も同様である。
【００７６】
このような行挿入処理の手順を図１４のフローチャートに示す。すなわち、図５の状態で挿入位置として選択されたローカル位置番号であるカレントレコードの行番を変数ｈカレント行番に保存した後（ステップ４１）、選択状態を解除し（ステップ４２）、現在対象としているグループのｈ行番−１をｈ前グループ最後尾とし（ステップ４３）、ｈカレント行番の内容をそれに加えることでデータベースＤＢ中のレコード番号に換算された挿入位置を得て、それをｈ新入力位置とする（ステップ４４）。
【００７７】
そこへカーソルを移動し（ステップ４５）、行挿入をデータベースＤＢへ反映させる（ステップ４６）。続いて、今回挿入したレコード件数を示すｈ当件数をインクリメントし（ステップ４７）、グループの冒頭から（ステップ４８，５１）、追加後におけるグループの新たな件数分を（ステップ５２）選択して画面表示し（ステップ５３）、カーソルは挿入位置の行に置く（ステップ５４）。この状態が行挿入後に表示される入力画面であり、図１５に示す。
【００７８】
そして、その行について必要な他の項目の入力を終え（図１４のステップ６１１）、次行にさらにレコード入力を行う場合は（ステップ６１３）、ｈカレント行番を増やして再度ステップ４２からの処理を繰り返すが、次行にレコード入力を行わず終了する場合は（ステップ６１３）、図１０の結合子２すなわちステップ３０へ戻る。また、レコード入力の中断が指示されれば（ステップ６１２）、入力したデータの削除（ステップ６２）や件数を減らして戻す処理（ステップ６４）のうえ、図１０の結合子２すなわちステップ３０へ戻る。
【００７９】
〔２−８．見出し表の更新〕
上記のような行挿入を行った場合は、見出し表Ｈ０に格納された範囲データである行番と件数の更新を行う（図２のステップ５）。上記の例ではグループ７へのレコード挿入（図１３）に基いて、更新部３は図１６に矢印で示すように、グループ７の件数と、グループ８と９の開始行番とを、それぞれ１ずつ増大させる更新を見出し表Ｈ０に対して行うことで次回の利用に備える。なお、図１６に示す「当件数」が今回追加挿入したレコード件数である。
【００８０】
このような行番と件数の更新の処理手順を図１７のフローチャートに示す。すなわち、この手順では、見出し表Ｈ０を開き（ステップ８１）、カーソルを今回レコードを追加入力したグループの範囲データに移動させる（ステップ８２）。なお、この際、見出し表Ｈ０ではグループ番号が行番と一致しているので、変数ｈグ番号の値を使ってカーソルを移動すればよい（ステップ８２）。そして、そのグループの範囲データのうち、［件数］の値を、今回入力した当件数を加えた値で書き換える（ステップ８３）。
【００８１】
そして、終端行まで（ステップ８４１）カーソルを一行ずつ移動しながら（ステップ８４）、各行の［行番］の値を（ステップ８５）、それに当件数を加えた値で（ステップ８６）書き換え（ステップ８７）、終端行に至ると（ステップ８４１）見出し表Ｈ０を新しいデータで書き換える（ステップ８８）。
【００８２】
また、図１８のフローチャートは、配列を用いる場合に、見出し表Ｈ０の行番と件数の更新を行なう処理手順を示すもので、この場合は、配列変数ｈ行番［］の更新のうえ（ステップ９１）、見出し表Ｈ０を開く（ステップ９２）。そして、カーソルをトップから（ステップ９３）一行ずつ移動させながら（ステップ９７）変数ｈグ番号を０から（ステップ９４）インクリメントし（ステップ９５）見出し表Ｈ０のその行の［行番］の項目値を配列変数ｈ行番［ｈグ番号］に置き換えてゆく（ステップ９６）。そして、終端行に至ると（ステップ９７１）見出し表Ｈ０を保存終了する（ステップ９８）。
【００８３】
〔２−９．その他〕
なお、図１０で分岐先の一つとして示した「他のグループ編集」は、範囲データである行番と件数を配列変数に保持することでいちいちデータベースＤＢへアクセスせずに複数のグループへのレコード追加を連続して行う場合に、レコード追加対象グループを新しく選択する処理で、その処理手順を図１９のフローチャートに示す。
【００８４】
この手順では、それまでのレコード追加に基いて配列変数ｈ行番［］を更新のうえ（ステップ６１）、次のグループの番号の入力を受け付け、ｈグ現番号へ代入する（ステップ６２）。また、配列変数のｈ行番［］の更新は、図２０のフローチャートに示すように、最大グループ番号を表すｈ終グ番号まで（ステップ７１１）ｈグ現番号をインクリメントしながら（ステップ７１）、ｈ行番［ｈグ現番号］を当件数分だけ増やす処理を繰り返す（ステップ７２）。
【００８５】
〔３．効果〕
上記のような本実施形態では、グループごとの行番号などレコードの範囲を範囲データとして保持及び更新するので、次のレコード追加時に、グループや挿入位置を画面表示してユーザに選択させるなどの処理を、範囲データを利用して迅速に行うことができ、処理が大幅に効率化される。
【００８６】
これらの態様では、範囲データについても、目的の表と同じデータベースの別の表に保持するので、同じデータベースシステムの機能で容易に扱える利点がある。特に、グループ分けのキー項目について、表中での繰り返しが回避できるので、データのいわゆる正規性が維持され、キー項目を検索したり表示等する処理が大幅に効率化される。
【００８７】
〔４．他の実施形態〕
本発明は、上記実施形態に限定されるものではなく、次に例示するような他の実施形態も含むものである。例えば、上記実施形態では、レコードを追加する際、該当するグループ又はグループ中の挿入位置の少なくとも一方を特定する処理として、グループと挿入位置をユーザに手作業で指定させたが、ユーザによる追加レコードの入力値からこれらを自動判断するようにしてもよい。また、上記実施形態は、行挿入機能のあるリレーショナルデータベースシステムを前提に説明したが、行挿入機能の無いものや、表計算ソフトウェア、ワードプロセッサの計算機能など、他の種類のプログラムやシステムに本発明を適用してもよい。
【００８８】
また、最初や最後のレコード番号や件数、キー項目などの範囲データは、所定の変数に保持してもよい。このようにすれば、データベースシステムが扱う表の数を減らし、システムの単純化や負担軽減が可能となる利点がある。
【００８９】
【発明の効果】
以上のように、本発明によれば、データベース中の各グループの範囲を記録しておくことで、効率良くデータ挿入を行うデータベースシステム、データ処理方法及びデータベースプログラムを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施形態の構成を示す機能ブロック図である。
【図２】本発明の実施形態における処理手順の概略を示すフローチャートである。
【図３】本発明の実施形態における明細表のデータ構造を例示する概念図である。
【図４】本発明の実施形態における見出し表のデータ構造を例示する概念図である。
【図５】本発明の実施形態における表示画面を例示する図である。
【図６】本発明の実施形態における行挿入を説明する概念図である。
【図７】本発明の実施形態における行番と件数の取り出しの処理手順を示すフローチャートである。
【図８】本発明の実施形態におけるグループの選択画面を示す図である。
【図９】本発明の実施形態において配列を用いる場合に、行番と件数の取り出しの処理手順を示すフローチャートである。
【図１０】本発明の実施形態におけるレコードの呼出しの処理手順を示すフローチャートである。
【図１１】本発明の実施形態におけるデータベース中のレコード番号である行番と、挿入位置指定におけるローカル位置番号である行番との関係を示す概念図である。
【図１２】本発明の実施形態における選択状態における挿入位置指定と選択解除を示す概念図である。
【図１３】本発明の実施形態における行挿入を示す概念図である。
【図１４】本発明の実施形態における行挿入の処理手順を示すフローチャートである。
【図１５】本発明の実施形態における行挿入後の表示画面を例示する図である。
【図１６】本発明の実施形態における行挿入後の行番及び件数の更新を示す概念図である。
【図１７】本発明の実施形態における行番と件数の更新の処理手順を示すフローチャートである。
【図１８】本発明の実施形態において、配列を用いる場合における行番と件数の更新の処理手順を示すフローチャートである。
【図１９】本発明の実施形態における他のグループ編集の処理手順を示すフローチャートである。
【図２０】本発明の実施形態における配列変数更新の処理手順を示すフローチャートである。
【符号の説明】
ＤＢ…データベース
Ｈ０…見出し表
Ｈ１…明細表
Ｍ…検索等管理部
２…追加部
３…更新部
４…表示部
５…操作部
【図１】
2004318342.tif 000003
【図２】
2004318342.tif 000004
【図３】
2004318342.tif 000005
【図４】
2004318342.tif 000006
【図５】
2004318342.tif 000007
【図６】
2004318342.tif 000008
【図７】
2004318342.tif 000009
【図８】
2004318342.tif 000010
【図９】
2004318342.tif 000011
【図１０】
2004318342.tif 000012
【図１１】
2004318342.tif 000013
【図１２】
2004318342.tif 000014
【図１３】
2004318342.tif 000015
【図１４】
2004318342.tif 000016
【図１５】
2004318342.tif 000017
【図１６】
2004318342.tif 000018
【図１７】
2004318342.tif 000019
【図１８】
2004318342.tif 000020
【図１９】
2004318342.tif 000021
【図２０】
2004318342.tif 000022