(57)【特許請求の範囲】
【請求項１】
データベースに登録する既存データのインデックスキー及び追加生成するインデックスキーについて、項目名と、可変であることを示す変数を含む計算式を含むキー値の設定範囲とを定義したインデックスキー定義情報を記憶するインデックスキー定義情報記憶手段と、
前記インデックスキー定義情報記憶手段に記憶したインデックスキー定義情報を参照し、前記既存データの該当する項目名をインデックスキーとして出力し、該出力した前記既存データの内容に従って前記インデックスキー定義情報記憶手段に記憶したインデックスキー定義情報のキー値の設定範囲に含まれる変数の値を更新するインデックスキー生成手段と、
前記インデックスキー定義情報記憶手段に記憶したインデックスキー定義情報を参照して、追加生成するインデックスキーについて、前記インデックスキー生成手段が更新した変数の値を含んだ計算式を含むキー値の範囲に基づき該当する項目名のキー値の範囲を決定してインデックスキーとして出力するダミーレコード生成手段と
を備えることを特徴とするデータベース管理装置。
【請求項２】
データベースに登録する既存データのインデックスキー及び追加生成するインデックスキーについて、項目名と、可変であることを示す変数を含む計算式を含むキー値の設定範囲とを定義したインデックスキー定義情報を記憶するインデックスキー定義情報記憶手段に記憶したインデックスキー定義情報を参照して、前記既存データの該当する項目名をインデックスキーとして出力し、該出力した前記既存データの内容に従って前記インデックスキー定義情報記憶手段に記憶したインデックスキー定義情報のキー値の設定範囲に含まれる変数の値を更新するインデックスキー生成ステップと、
前記インデックスキー定義情報記憶手段に記憶したインデックスキー定義情報を参照して、追加生成するインデックスキーについて、前記インデックスキー生成ステップが更新した変数の値を含んだ計算式を含むキー値の範囲に基づき該当する項目名のキー値の範囲を決定してインデックスキーとして出力するダミーレコード生成ステップと
をコンピュータに実行させることを特徴とするデータベース管理プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベースを検索する際に利用する、各データ中の検索キー項目とデータを格納する領域との対応を管理するインデックスファイルの制御に関するものである。
【０００２】
【従来の技術】
従来、データベースの制御においては、データを登録する他に、登録したデータの検索に利用する検索キーを併せて登録する必要がある。検索キーの制御テーブルは、例えばデータ中のキー項目と対応するデータレコードを格納する領域（格納ページ番号等）を管理するインデックステーブルとして登録される。
【０００３】
こうしたインデックステーブルは、キー項目と対応するデータレコードの格納領域を併せて管理することから、実際にデータベースにデータを登録した際に、インデックステーブル中のキー項目に対して、データレコードが登録された格納領域（格納ページ番号等）を登録するものであり、キー項目数分の領域をテーブルデータ域として確保しておく必要がある。
【０００４】
【発明が解決しようとする課題】
インデックステーブル登録処理では、登録キー項目数分のみの領域を予め用意しておき、データをデータベースに登録する際に、各データからキー項目を抽出し、各キー項目に該当するデータレコードの格納領域をインデックステーブルに登録する。ここで、既にデータベースに登録するデータがある場合には、データベースに登録する際に各データからキー項目を抽出してインデックステーブル中のキー項目として登録すると共に、データベース中の格納領域（格納ページ番号等）を併せて登録していく。しかし、登録した既存データに対してデータを追加していくような場合には、インデックステーブルの拡張が明確であるにも係わらず、インデックステーブルを用意しておくことができない。また、登録された既存データから将来拡張することが予想されるデータは、既存データからの追加データであるため、既存データと同じ属性を有した連続データであり、既存データを利用してインデックスデータを登録することが望ましい。
【０００５】
【課題を解決するための手段】
本願発明は、上記課題を解決するために、データベースを構成する各データのインデックスキーを管理するデータベース管理装置において、データベースにインデックスキーと対応付けて登録するデータファイルと、前記登録データをデータベースに格納する際に設定するインデックスキーのキー項目名や開始キー、終了キーの値を設定し、かつ登録するデータはまだないが、予定登録件数のように登録データに追加して予めインデックスキーを生成したいキーについての項目名、キー値の範囲の条件を設定したインデックスキー定義情報を用意しておく。用意された定義情報を参照し、データベースにデータを登録する場合に、指定された条件に従って登録データに対応するインデックスキーを生成すると共に、登録データで処理した結果をキー値の設定範囲に従って、予定登録件数のように登録データに追加してインデックスキーを設定したいデータのキー値の範囲を決定することにより、既存データを利用して追加するインデックスキーについて効率よく生成することを可能とするものである。追加するインデックスキーのキー値の範囲としては、既存データ読み込みで決定するような値は変数で定義しておき、実際にデータ登録時にインデックスキーを生成した際に変数に反映し、追加するキー項目についてのキー値を決定するものである。また、追加するインデックスキーのキー値については変数を含む計算式を指定することを可能とし、過去のデータを登録する際に更新された値を利用して、伸び率等の傾向を計算式として登録することにより追加するキー項目についてのキー値を決定するものである。
【０００６】
【発明の実施の形態】
以下に、本発明の実施の形態を図面に基づいて説明する。
図１に、本願発明のシステムの構成を示す。図中、１はデータベースへのデータ登録及び登録されたデータベースの検索キー等を管理するデータベース管理装置である。２に示すデータベース定義情報は、データベース管理装置の管理対象とするデータベースの項目名、属性等を定義した情報テーブルである。３に示すインデックス定義登録部は、生成したいインデックスキーを定義した情報を登録するものであり、データベース定義情報を参照し該当するキー項目に対する情報を参照して４に示すインデックスキー定義情報として設定する他、生成したいインデックスキーについての定義情報を画面等から入力することによりインデックスキー定義情報として設定するものである。４に示すインデックスキー定義情報は、３に示すインデックスキー定義登録部から登録されるものであり、生成したいインデックスキーについて、キーの設定、データレコードの格納条件等を設定するものである。５に示すインデックスキー生成部は、登録されたインデックスキー定義情報及びデータベースに登録するデータを参照し、キー項目を生成すると共にキー項目に該当するデータの格納領域を設定する、及び追加するキー項目を設定されたキーの属性に従って生成するものである。６に示す登録データは、データベースに登録するデータであり、インデックスキーとして抽出するキー項目及び各キー項目に対応する各種データレコードから構成されるものである。７に示すインデックスキーテーブルは、５に示すインデックスキー生成部により生成されるものであり、検索キー等に用いられるキー項目と、対応するデータレコードの格納領域から構成されるデータテーブルである。
【０００７】
本実施の形態で説明するデータベース管理装置は、パーソナルコンピューター、ワークステーション等の汎用的な目的で使用される計算機上で実行するコンピュータプログラムにより実現する形態を示す。計算機上で実行されるものであることから、データベース定義情報２、インデックスキー定義情報４への登録内容や、登録画面は、キーボード、ディスプレイの入出力装置８で入力、出力するものである。
【０００８】
計算機は、処理装置、主記憶装置、補助記憶装置、入出力装置などから構成され、コンピュータプログラムを実行するものであり、コンピュータプログラムは、フロッピーディスクやＣＤ−ＲＯＭ等の可搬型媒体やネットワーク接続された他の計算機の主記憶装置や補助記憶装置等に格納されて提供される。
提供されたコンピュータプログラムは、可搬型媒体から直接計算機の主記憶装置にロードされ、または可搬型媒体からいったん補助記憶装置にコピーまたはインストール後に、主記憶装置にロードされ実行する。また、ネットワーク接続された他の装置に格納されて提供された場合も、他の装置からネットワークを経由して受信後に、補助記憶装置にコピー、主記憶装置にロードされ実行するものである。
【０００９】
次に図２及び図３により、本発明で使用するデータベース定義情報及びインデックスキー定義情報について説明する。
データベース定義情報は、図２に示すように構成されており、各データベース毎の定義情報を登録するものであり、具体的にはオペレータ等が図示しない登録ツール等が用意する画面から入力して登録したり、定義情報自体を直接エディタ等で修正して登録するものである。データベース名１０は、各データベースの名称であり、インデックスキー項目名１１は各データベースでインデックスキーとして登録する項目名、及び属性はインデックスキーの各項目に登録されるデータの属性を定義したものである。例えば、従業員データベースであれば、入社年度と年度内の通番から組み合わされる従業員番号等がインデックスキーとして登録され、データ属性として入社年度には２桁の文字コードを示す「ＣＨＡＲ（２）」、通番には４桁の文字コードを示す「ＣＨＡＲ（４）」が設定される。
【００１０】
次に、図３に示すインデックスキー定義情報のデータ構造について説明する。インデックキー定義情報は、図３に示すように構成されており、生成するインデックスキーの属性を登録するものであり、具体的にはオペレータ等が図示しない登録ツール等が用意する画面から入力して登録したり、定義情報自体を直接エディタ等で修正して登録するものである。項目名１３は、インデックスキーとする項目名を指定するものであり、「年度」「通番」といった項目名をインデックスキー定義情報に直接登録する他、先に説明したデータベース定義情報に予め設定されている場合には、データベース名を指定することにより該当するデータベースのインデックスキーを参照して登録するものである。属性１４は、インデックスキーとする項目名の属性を指定するものであり、先にデータベース定義情報で説明したように、文字コード及び桁数を示す「ＣＨＡＲ（２）」「ＣＨＡＲ（４）」といった属性を指定する。項目名と同様に属性についても、インデックスキー定義情報に直接登録する他、先に説明したデータベース情報を参照して登録するものである。次に開始キー値１５、及び終了キー値１６は、インデックスキーとして登録した各項目名について登録したいキー値の範囲を指定するものである。次に格納件数１７は、インデックスキーに対応するデータレコードの格納領域について、１ページに格納できるレコード件数を指定するものであり、格納レコードが指定された格納件数を越える場合には、次のページを指定して格納するものである。本例では、各ページへの格納件数で指定するが、各ページに格納するデータレコードは可変長の場合には、一定長のページ内に同一件数を格納できない。従って、格納件数ではなく、ページサイズの何パーセントまで格納したら次のページに格納するというように「ページ内使用率」で設定してもよい。次に切替えポイント１８は、インデックスキーに対してデータレコードを格納するする際にキー項目の値が変わった場合に格納領域を切り替えるかを指定するものであり、切替ありが指定されている場合には、切替が指定されたインデックスキー項目の値が更新されると、ページへの格納件数未満であっても、残りはダミーレコードを設定するようにして、更新されたインデックスキー項目に対するデータは次のページ以降に格納するものである。例えば、各年度について複数のデータレコードをまとめて管理することを目的とし、年度が切り替わった場合には格納ページを変更する場合に指定するものである。「年度」というインデックスキー項目に対して切り替えが指定されている場合には、キー項目「年度」に対する値が「９７」についてのデータの格納処理が終わり、次のデータが「９８」に対応するデータである場合には、まだ格納対象ページには格納可能であってもダミーレコードを登録し、「９８」に対応するデータは次のページに格納するものである。次にダミーレコード件数１９は、切り替えポイント１８で指定されたキー項目が変更された場合に生成するダミーレコード件数を指定するものである。例えば、昨年度までの実績データをデータベースに登録する場合には、まだ実績のない今年度分のデータについてもインデックスキーテーブルを生成するように指定する場合、今年度分の予定数を生成したいダミーレコード件数を登録しておくものである。また、昨年度までの実績データについても、年度毎にダミーレコードを出力する場合に登録するものである。
【００１１】
次に、図２で説明したデータベース定義情報例、及び図３で説明したインデックスキー定義情報に基づき情報を設定した具体例を使用し、本願発明の処理の流れを説明する。
まず、図４、図５に示すインデックスキー定義情報例（１）、登録データ例（１）に従って、図６に示すインデックスキーテーブルの出力例（１）を生成する処理の流れについて説明する。本実施の形態で説明するインデックスキーテーブルは、キー項目３１、３２をデータ格納領域のページ毎に管理し、各キー項目３１、３２は各ページ３３の最大キー値を設定するものとする。また実際のページは各ポインタ３４で位置を管理され、ポインタ３４が指定するデータ領域に実データが格納されるものである。
【００１２】
本例は、従業員に関する情報を管理する従業員データベース上のデータを管理するため、年度及び年度毎の通番から構成される従業員番号をインデックスキーとして生成し、対応するデータレコードを格納したページを管理するインデックスキーテーブルを作成するものである。本例でのインデックステーブルの生成条件は、過去の年度の従業員については従業員がこれから増えることはないため、インデックスキーデータは各ページに格納できるレコード件数を作成しておき、各レコードを登録したページ番号を対応するインデックスキー毎に登録し、新年度については、予定採用人数を指定させることにより、過去の年度の最終キー値の後に年度を１プラスして予定人数分のキーをインデックスデータとして生成することを指定するものである。
【００１３】
まず、図１０に従い、インデックスキー定義情報への登録処理の流れを説明する。インデックスキー定義情報の登録では、まず、データベース名を指定し（Ｓ６１）、図２に示すデータベース定義情報を参照し、指定されたデータベース名に対応するインデックスキーの項目名、属性をインデックスキー定義情報に反映する（Ｓ６２）。図４に示すように、項目名２１として「年度」「通番」、属性２２として「ＣＨＡＲ（２）」「ＣＨＡＲ（４）」が設定される。本例では、予め各データベースの構成する項目名、属性等を定義したデータベース定義情報を登録しておき、データベース名指定で検索するが、インデックスキー定義情報に項目名、属性を指定してもよい。
【００１４】
次に、既にデータが確定している過去の年度の従業員についてのキー生成条件を登録する（Ｓ６３）。過去の年度の従業員についてはデータベースへ登録するデータが既に存在するため、開始キー値２３、終了キー値２４については、登録データ読込時に決定するものについては、可変データとして設定しておく。本例では、通番は開始番号である「０００１」を設定するが、従業員番号を構成する年度については登録データ中の最も古い従業員番号の年度が開始キー値となるため、インデックスキー定義情報としては可変データである「ＬＯＷ−ＶＡＬＵＥ」を設定しておき、データ登録時に登録データ中の年度に従って開始キーを設定するものである。また、終了キー値については９７年までが過去のデータであるため、年度に「９７」を設定し、通番は９７年度の従業員番号中の最終通番が終了キー値となるため、イッデックスキー定義情報としては可変データである「ＨＩＧＨ−ＶＡＬＵＥ」を設定しておき、データ登録時に登録データ中の９７年度の従業員番号の最終通番に従って終了キーを設定するものである。次に格納件数２５として「９０」を設定し、ダミーレコード件数２７として「３０」を設定する。また、項目名「年度」を切替ポイント２６として設定する。以上の設定により、インデックスキーに対応する各データレコードは、各ページに対して９０件ずつ格納し、年度の切り替えがあった場合には、ダミーレコードを３０件確保する。
【００１５】
次に、追加するキー生成条件を登録する（Ｓ６４）。追加する年度の従業員については、インデックスキーとする項目名、属性については過去の年度の流用であるため設定しない。開始キー値２３、終了キー値２４については、追加データである既に定義した既存の従業員データの次の年度のデータであるため、開始キー値を構成する年度については「９８」、通番は「０００１」が設定される。また終了キー値には、予定採用人数である「１０００」が設定される。本例では、予め追加インデックスキーの開始キー値として「９８」を指定させているが、既存データ登録時に既存の従業員番号の終了キー値は「９７」であることがわかるため、既存データの終了キー値の年度を可変項目「ＶＡＬＵＥ」と設定しておき、追加データの開始キー値の年度を登録データの終了キー値の年度の次の年であることを示す「ＶＡＬＵＥ＋１」と設定しておいてもよい。上記のようにインデックスキー定義情報を設定しておくことにより、９７年までの従業員情報については、登録データ内のキー項目に従ってキー項目「年度」に「９７」を設定したインデックスキー値を生成しインデックスキーテーブルに登録し、９８年度の予定採用人数に対する開始キー値は、キー項目「年度」には、生成された終了キー値である「９７」に１加算した「９８」を設定したインデックスキー値を生成するものである。次にページデータ内の格納件数２５として「９０」を設定し、ダミーレコード件数２７として「１０００」を設定する。また、項目名に対する切替指定は行わない。以上の設定により、インデックスキーに対応する各データレコードは、各ページに対して９０件ずつ格納し、全体で１０００件のダミーレコードを確保する。
【００１６】
次に登録されたインデックスキー定義情報に従ったインデックスキー生成処理の流れを、図１１から図１３に従って説明する。
インデックスキー生成処理では、まず登録されたインデックスキー定義情報の読み込みを行う（Ｓ６５）。インデックスキー定義情報は、最初のエントリデータとして、過去の従業員情報である登録データ６についての定義情報が設定されており、次のエントリデータとして追加する予定採用人数分のダミーレコード生成についての定義情報が設定されているため、まず、過去の従業員情報を登録する場合の定義情報の読み込みを行う。次にインデックスキーテーブルへの登録データを初期化する。インデックスキー値は、インデックスキー定義情報で開始キー値と指定された値を初期値とし、格納するデータレコードのページ番号に１、ページ内の格納件数として０が設定される（Ｓ６６）。次に登録データ６から既存の従業員番号に関する登録データを読み込む（Ｓ６７）。登録データは例えば図５の登録データ例（１）のように構成されているデータであり、「年度」「通番」といったキー項目となるデータの他に従業員に対する各種情報がデータとして登録されており、各データを読み込む度に対応するデータレコードの格納領域（ページ番号）にデータを格納していくものである。次にインデックス定義情報の切替設定の有無を判定する（Ｓ６８）。切替ありの場合にはキー項目の値が前回の処理値と変わった場合に格納ページを切り替える必要があるため、切替対象とされている項目キーが前回値と異なるかを判定する（Ｓ６９）。判定によりページの切替が必要な場合には、インデックス定義情報で指定されたダミーレコード件数分のダミーレコードを確保するため、ダミーレコード生成処理を呼び出す（Ｓ７０）。次に、既に何件のデータをページ内に格納したかを判定する（Ｓ７１）。前回までの実格納件数がページ内格納件数と一致した場合には、前回処理したキー項目がページ内の最大キー値となるため、インデックスキーテーブル７に各ページに対応する最大キー値に対応するキー項目を書き込む。本願の実施の形態では、キー項目を書き込むと共に対応するページ番号、該当ページへのポインタを書き込むものである。また、処理中データは次ページに格納することになるため、データ格納ページ番号を次のページ番号に更新すると共にページ内の実格納件数をクリアする（Ｓ７２）。次に処理中データについて、キー項目を更新して対応データを指定されたページへ格納すると共に、ページ内への実格納件数を１加算する（Ｓ７３）。以上のように、図５に示すような既存データ例（１）に示すような既存の従業員について情報について最終レコードまで処理を繰り返す（Ｓ７４）ものである。例えば、図５に示すような登録データについて、１レコードめの「（年度）９０」「（通番）０００１」から順次処理を繰り返すと、ページ内格納件数が９０件であることから、９１レコードめの「（年度）９０」「（通番）００９１」を読み込んだところで、前回の実格納件数とページ内格納件数を比較し（Ｓ７１）一致することからページ番号１についてインデックスキーテーブル書き込みを行うことになる（Ｓ７２）。従って、図６に示すインデックスキーテーブル出力例（１）のようにキー項目である年度３１、通番３２として「９０」「００９０」がページ番号１の最大キー項目として設定され、対応データ位置であるページ番号３３として「０１」が、また図示しないがページに対応するポインタが設定される。インデックスキー定義情報では開始キー値として「年度」には特定値を設定せず「ＬＯＷ−ＶＡＬＵＥ」が設定されているが、読み込まれたデータにより、本例のようにインデックスキーテーブルには開始キー値の「年度」は「９０」となる。以上の処理を繰り返すことにより、「年度」が「９０」についての最終データ「５００」までの処理が繰り返され、次に、５０１レコードめの「（年度）９１」「（通番）０００１」が読み込まれる（Ｓ６７）。次に、キー項目「年度」について切替設定がありと判断され（Ｓ６８）、切替項目キーである「年度」データが前回処理値「９０」から「９１」に切り替わったため（Ｓ６９）、９０年度のデータを格納していたページにインデックスキー定義情報で指定された件数である３０件のダミーレコードを出力するよう指示する（Ｓ７０）。後述するように、ダミーレコード生成処理で、指定されたダミーレコード件数３０件分ページデータ内に領域を確保すると、図６に示すように年度３１、通番３２として「９０」「０５３０」がページ番号６の最大キー項目としてインデックスキーテーブルに書き込まれる。最後に現在処理中の「（年度）９１」「（通番）０００１」のデータについてキー項目更新、及び該当ページへの格納件数加算処理が行われる（Ｓ７３）。以上の処理を既存データの最終レコードまで繰り返すことにより、既存従業員番号に対応するデータについて、インデックスキーテーブルに各ページの最大キー項目が登録される。また、最後の登録データとして「（年度）９７」「（通番）０８００」が読み込まれることにより、インデックス定義情報では終了キー値として「通番」には特定値を設定せず「ＨＩＧＨ−ＶＡＬＵＥ」が設定されているが、読み込まれた登録データにより、本例のようにインデックスキーテーブルの終了キー値「通番」は「０８００」となる。
【００１７】
次に追加データのインデックスキー生成処理を行うため、インデックスキー定義情報の次のエントリ情報を読み込む（Ｓ７５）。インデックスキー定義情報で登録されているキー項目の開始キーを参照し、ページ切替対象である場合には、ダミーレコードを生成する（Ｓ７６）。次に、追加するデータの属性について設定した読み込まれたインデックスキー定義情報中に、既存データをインデックスキーテーブルとして登録したデータに従って内容が決定するような可変値がある場合には、既存データを処理した内容に従って可変値を更新する（Ｓ７７）。例えば、追加キーの開始キー値として既存データの終了キー値の年度を可変項目「ＶＡＬＵＥ」と設定しておき、追加データの開始キー値の年度を登録データの終了キー値の年度の次の年であることを示す「ＶＡＬＵＥ＋１」と設定しておけば、この処理により追加項目の開始キー値の「年度」には、終了キー値である「９７」に１加算した「９８」が設定される。最後に追加データについて開始キー値、終了キー値、及びダミーレコード件数に従って、ダミーレコードを生成する（Ｓ７８）。例えば、図４に示すインデックスキー定義情報例（１）に示す定義例であれば、次の定義情報中の開始エントリに「９８」が指定されており、既存データの終了キーである「９７」と年度が変わっているため、ページ切替の対象となる。従って、図１１に示すインデックスキー生成処理の流れで切替設定ありの処理の流れとして説明したように「９７」年度のデータにダミーレコードを追加してから、追加年度である「９８」年度について指定件数分のダミーレコード生成処理を指定する。
【００１８】
次に、図１３を利用してダミーレコードの生成処理の流れについて説明する。ページ切替、追加データについて指定されたダミーレコードは、インデックス定義情報で指定されたレコード件数をまず読み取り（Ｓ８０）、読み取った件数分の生成処理を行うものである。各ページに格納できる件数は指定されているため、実際に格納した件数とページ格納件数を比較し（Ｓ８１）、既に書き込み処理を行った件数がページ内に格納できる件数と一致した場合には、インデックス定義情報中に該当ページに対応するキー項目を書き込み、次のページ番号を指定し、ページ内の格納件数をクリアする（Ｓ８２）。次に指定されたページにダミーレコードを出力し、対応するキー項目を更新し、格納件数に１加算する（Ｓ８３）。最後に先頭で指定されたダミーレコード件数を減算し（Ｓ８４）、以上の処理を指定されたダミーレコード件数分繰り返す（Ｓ８５）。指定されたダミーレコード件数分の処理が終了すると、ダミーレコードを確保したページの最終キー項目をインデックスキーテーブルに書き込み、次の格納ページを指定するようページ番号、格納件数を更新する（Ｓ８６）。
【００１９】
次に、図７、図８及び図９を用いて、各会社の従業員番号を管理するようなデータベースを対象として、会社コード毎に従業員番号（通番）をインデックスキーとして管理する例について既に説明した処理と相違する部分を中心に説明する。登録データとして既に存在しているこれまでの従業員数を利用し、新規事業開始時などに会社コードが指定される毎に、該当する会社のこれまでのデータに基づいて、事業の伸び率を指定して追加が予想される従業者数分のインデックスキーデータを自動的に生成するものである。
【００２０】
まず、図１０に説明するインデックスキー定義情報への登録処理の流れに従い、図７に示すようなインデックスキー定義情報を設定する。図７に示すように、インデックスキーの項目名４１として「会社コード」「従業員通番」、属性４２として４桁の文字コードを示す「ＣＨＡＲ（４）」が設定される。
次に、既にデータが確定している既存の会社毎の従業員通番のキー生成条件を登録する（Ｓ６３）。開始キー値４３は会社コードを示す「Ａ００１」と先頭番号である「０００１」が設定されるが、終了キー値４４には、会社コードは共通であるが、通番については既存登録データの読み込み時に判断されるため可変データとして「ＨＩＧＨ−ＶＡＬＵＥ」を設定しておく。次に格納件数４５として「４０」を設定し、ダミーレコード件数４７として「１０」を設定する。以上の設定により、インデックスキーに対応する各データレコードは、各ページに対して４０件ずつ格納し、ページを切り替える場合にはダミーレコードを１０件格納する。
【００２１】
次に、追加するキー生成条件を登録する（Ｓ６４）。開始キー値２３、終了キー値２４については、追加データである既に定義した既存の従業員通番の次のデータであるため、開始キー値を構成する会社コードについては「Ａ００１」、通番は登録したデータの終了キー値の次の値である「ＨＩＧＨ−ＶＡＬＵＥ＋１」が設定される。また終了キー値には、既存の従業員数に事業の伸び率を加味して追加キー数を算出することから、既存データの終了キー値の従業員通番として「ＨＩＧＨ−ＶＡＬＵＥ＊０．２」と設定する。上記設定により、登録データに従ってインデックスキーを作成した際の終了キー値から求められる全体従業員者数に対し事業の伸び率を加味した数値が追加インデックキー値として設定される。
【００２２】
次に登録されたインデックスキー定義情報に従ったインデックスキー生成処理の流れを、図１１から図１３に従って説明する。
インデックスキー生成処理では、まず登録されたインデックスキー定義情報の読み込み（Ｓ６５）、及び登録データ６から既存の従業員番号に関する登録データを読み込む（Ｓ６７）。登録データは、例えば図８の登録データ例（２）のように構成されているデータであり、各データを読み込む度にインデックスキー及び対応するデータレコードの格納領域（ページ番号）をインデックスキーテーブルに設定するものである。図８に示すような登録データ例に従い、最終レコードまで処理を繰り返す（Ｓ７４）ことにより、１レコードめの「（会社コード）Ａ００１」「（従業員通番）０００１」から４０レコードめまでは、ページ番号１に格納され、図９に示すインデックスキーテーブル出力例（２）のようにキー項目である会社コード５１、従業員通番５２として「Ａ００１」「００４０」がページ番号１の最大キー項目として設定され、対応データ位置であるページ番号５３として「０１」が出力される。以上の処理を、同一会社コードについての登録データの最後まで繰り返し、イデックスキーテーブルを出力する。既存データの最後のデータである従業員通番「０５００」のデータを処理後、追加データの処理に移る。
【００２３】
次に、追加データのインデックスキー生成処理を行うため、インデックスキー定義情報の次のエントリ情報を読み込む（Ｓ７５）。インデックスキー定義情報で登録されているキー項目の開始キーを参照し、本例では既存データの終了キー値の次から追加キーを生成するため、ページ切替の対象とならず、ダミーレコードを生成しない（Ｓ７６）。次に、既存データをインデックスキーテーブルとして登録したデータに従って内容が決定するような可変値である開始キー値について、既存データの終了キー値に１加算した値を設定する（Ｓ７７）本例では、既存データの終了キー値として「５００」が設定されたため、追加データの開始キー値は「５０１」となる。また、終了キー値は既存データの終了キー値の件数の２割であることを示す「ＨＩＧＨ−ＶＡＬＵＥ＊０．２」と設定されているため、１００件分が追加件数として設定されたことになる。追加件数として指定された１００件を開始キー値に加算することにより終了キー値が決まるため、開始キー値、終了キー値に従って、ダミーレコードを生成する（Ｓ７８）。従って、追加レコードの１００件を処理した結果、最終レコードを格納したページ番号１５に対応する最大キー項目として「Ａ００１」「０６００」が図９に示すように出力される。
【００２４】
【発明の効果】
以上に説明したように、本願発明によれば、データベースにデータを登録する際に検索キー項目、及び対応するデータを格納する領域を管理するインデックスキーを生成すると共に、データ登録時に生成したイッデックスキー値の結果を利用することにより、追加データに対するインデックスキーを効率よく生成することが可能となるものである。また、追加データは、既存のデータから拡張するデータであるため、属性が共通しているため、追加データが登録したインデックスキー値の終了値の次の値から開始するように連続している、または終了値で示される過去の実績データからの一定の伸び率で登録データが増加するようなことが多い。従って、本願発明では、追加インデックスキー値を生成する条件として、データベースへの登録時のキー値を変数、計算式で指定することにより、登録したデータからの連続している、過去のデータから一定量伸びている、といった追加インデックスデータを生成することが可能となるものである。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】データベース定義情報の説明図である。
【図３】インデックスキー定義情報の説明図である。
【図４】インデックスキー定義情報の設定例（１）を示す図である。
【図５】既存データの例（１）を示す図である。
【図６】インデックスキーテーブルの出力例（１）を示す図である。
【図７】インデックスキー定義情報の設定例（２）を示す図である。
【図８】既存データの例（２）を示す図である。
【図９】インデックスキーテーブルの出力例（２）を示す図である。
【図１０】インデックスキー定義情報の登録処理の流れを示す図である。
【図１１】インデックスキー生成処理の流れ（１）を示す図である。
【図１２】インデックスキー生成処理の流れ（２）を示す図である。
【図１３】ダミーレコード生成処理の流れを示す図である。
【符号の説明】
図中で使用している符号の内容は以下のとおりである。
１：データベース管理装置
２：データベース定義情報
３：インデックスキー定義登録部
４：インデックスキー定義情報
５：インデックスキー生成部
６：登録データ
７：インデックスキーテーブル
８：入出力装置
【図１】
0004056622.tif 000002
【図２】
0004056622.tif 000003
【図３】
0004056622.tif 000004
【図４】
0004056622.tif 000005
【図５】
0004056622.tif 000006
【図６】
0004056622.tif 000007
【図７】
0004056622.tif 000008
【図８】
0004056622.tif 000009
【図９】
0004056622.tif 000010
【図１０】
0004056622.tif 000011
【図１１】
0004056622.tif 000012
【図１２】
0004056622.tif 000013
【図１３】
0004056622.tif 000014