(57)【特許請求の範囲】
【請求項１】
先祖データから下位に位置する子孫データへと辿ることができるよう親データにその子データを特定する子特定データが関係付けられた階層構造データにインデックス付けを行う情報管理装置であって、
該階層構造データを、その各構成データが記憶されている記憶位置を含むデータ特定データに関連付けて記憶するデータ記憶手段と、
これからインデックス付けを行う子孫データに対する先祖データのデータ特定データたる先祖特定データと、該先祖特定データにより特定される先祖データから該インデックス付けを行う子孫データの親データまでの階層差と、を受け付けるインデックス定義情報受付手段と、
該先祖特定データに従って該先祖データを該データ記憶手段において特定し、該受け付けられた階層差が０でなければ該特定された先祖データから該階層差の分の下位の子孫データまで該子特定データに従って辿り該下位の子孫データの子データの少なくとも一部の内容にインデックス付けを行う、インデックス付け手段と、
を備えてなる、情報管理装置。
【請求項２】
前記インデックス定義情報受付手段が、前記少なくとも一部の内容を特定するインデックス対象項目特定データをさらに受け付け、
前記インデックス付け手段が、該受け付けられたインデックス対象項目特定データによって特定されるものにインデックス付けを行うものである、請求項１に記載の情報管理装置。
【請求項３】
これから生成されるインデックスを特定するインデックス特定データを取得するインデックス特定データ取得手段と、
前記インデックス付け手段が、前記受け付けられた階層差が０であれば前記特定された先祖データのデータ特定データと階層差が０であることを示す階層差データと該インデックス特定データ取得手段により該取得されたインデックス特定データとを関連付けてインデックス管理情報として記憶させ、一方、前記受け付けられた階層差が０でなければ前記特定された先祖データと前記階層差の分の下位の子孫データとの両データ及び該両データの間に存する中間データの各々のデータについて該各々のデータのデータ特定データと、前記階層差の分の下位の子孫データから該各々のデータまでの階層差をあらわす階層差データと、該インデックス特定データ取得手段により該取得されたインデックス特定データと、を関連付けてインデックス管理情報として記憶させるインデックス管理情報記憶手段と、
を、さらに備えてなる、請求項１又は２に記載の情報管理装置。
【請求項４】
請求項３に記載の情報管理装置であって、
前記階層構造データに追加する新規データと、前記階層構造データにおいて該新規データを子データとして格納すべき親データのデータ特定データである格納先特定データと、該新規データがさらに子データを格納するか否かを示す種別データと、を受け付ける追加情報受付手段と、
該格納先特定データに示される親データの子データとして該新規データを記憶し、該記憶された新規データのデータ特定データを追加位置データとして取得する新規データ書き込み手段と、
該格納先特定データと合致するデータ特定データを有する前記インデックス管理情報を前記インデックス管理情報記憶手段から読み出し、該読み出されたインデックス管理情報に含まれる階層差データが０か否か判断するインデックス管理判断手段と、
該インデックス管理判断手段によって階層差データが０と判断された場合に該読み出されたインデックス管理情報に含まれる前記インデックス特定データが示すインデックスに、該記録した新規データに含まれる少なくとも一部の内容にインデックス付けするインデックス挿入手段と、
該インデックス管理判断手段によって階層差データが０でなくかつ該種別データが該新規データがさらに子データを格納することを示すものであればデータ特定データとして該追加位置データと前記階層差データとして該階層差データから１減じたものと該読み出した情報に含まれるインデックス特定データとを関連付けて前記インデックス管理情報として前記インデックス管理情報記憶手段に記憶させるインデックス管理情報追加手段と、
をさらに備えるものである、情報管理装置。
【請求項５】
請求項１乃至４のいずれかに記載の前記情報管理装置をコンピュータに実現させるためのプログラム。
【請求項６】
請求項１乃至４のいずれかに記載の前記情報管理装置をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報管理装置に関し、より詳細には、先祖データから下位に位置する子孫データへと辿ることができるよう親データにその子データを特定する子特定データが関係付けられた階層構造データにインデックス付けを行う情報管理装置に関する。
【０００２】
【従来の技術】
データベースの検索を高速に行うため、キーになる項目にインデックス付けを行うことが従来から行われている。
図１５は、インデックス付けの一例を概念的に示すもので、いわゆるＢ−Ｔｒｅｅ（厳密には、昔のB-Treeが改良されたものでB+-Treeと呼ばれることもある。）と呼ばれるツリー構造のインデックスを示している。ここでは社員番号１０１２番から９８９０番までの社員に関する情報（例えば、氏名及び入社年月日）を記憶したデータベースの社員番号をキーとしてインデックス付けを行ったもののインデックスを概念的に示している。この図中の「ＰＮＯ」とは、データベースを記憶した記憶領域を所定の固定サイズのブロックに分割したそれぞれのブロックに付された番号であり、これをページ番号という。また、図中の「ＯＩＤ」（オブジェクトＩＤの略）とは、システムの使用者が操作（例えば、挿入、削除、更新等）することができる記憶領域内における最小単位のデータたるオブジェクトが記録されている記憶領域内のページのページ番号と、該ページにおいて該オブジェクトが記録されている順番（最初のものには「０」が付される。）と、によって構成され、例えば、ページ番号が２７ページであり該当するオブジェクトが２７ページの中で４番目に記録されている場合であればオブジェクトＩＤ（２７，３）（順番は最初のものに「０」を付与するので、４番目のものには「３」が付与される。）になる。
【０００３】
図１５中、最も下のレベルがツリーの「葉」と呼ばれるもので、その中には複数のエントリが記録されている。ここではエントリは、インデックスのキーである社員番号の値（例えば、１０１２、１１２０、１１８３・・・・、１９１５、１９２０、２０１８・・・・、８４５０、８６８０、８７３０・・・・、９８９０）と、それぞれの社員番号の値（インデックスのキーの値）を持っているオブジェクトのＯＩＤ（オブジェクトＩＤ）と、を有している。また、葉の中のエントリは、キーの値によってソートされている。
エントリが多くて１つの葉に収まらない場合は新しい葉が作られ、図１５中、左の葉の中のエントリのキー値が右の葉のものより小さくなるように分配される。この時、１つ上のレベルに作成された「節」に、左の葉のキーの最大値よりも大きく右の葉のキーの最小値以下である境界値と、左右の葉に対応するページ番号と、が記録される（ツリーの１つの節または葉は、データベースの１つのページに対応する。）。
葉の数が増え、１つ上のレベルの節に境界値、ページ番号が収まらなくなった時は、同じレベルに新しい節が作られる。このとき、さらに１つ上のレベルに節が作られ、境界値と左右の節に対応するページ番号が記録される。これを繰り返すことで、ツリーのレベルは増えて行く。
【０００４】
このように形成されたインデックスを使用して条件検索を行う時は、ツリーの最も上のレベルの節（この最も上のレベルの節に対応する（該節を記録している）ページをインデックスルートページまたはルートページという。）から、検索する条件値と各節に記録されているキーの値とを大小比較しながらツリーを下方向に辿り、条件を満たす葉の中のエントリを探し出す。そして条件を満たすエントリを見つければ、その中にはキー値を実際に持っているオブジェクトのＯＩＤ（オブジェクトＩＤ）が記録されているので、そのＯＩＤ（オブジェクトＩＤ）が示すオブジェクトを取り出すことで検索条件を満たすオブジェクトを取り出すことができる。
このようにインデックスを使用して条件検索を行う場合、インデックスがないときであれば必要となる、条件値と全てのオブジェクトが有する値との比較を行う必要がないので、高速に条件検索を行うことができる。
【０００５】
図１６に、このようにインデックス付け（図１５に示すようなインデックスを形成すること）がされたデータベースを概念的に示した。図１６は、中央部分のデータベースサーバよりも上方に利用者にとってのデータ構造（例えば、コンピュータの画面に表示されるデータ）を示し、データベースサーバよりも下方にデータベースファイルの内部構造を示した。
ここではある会社の社員それぞれについて、社員番号と氏名と入社年月日とを記憶したデータベースが構築されており、利用者は、その内容を図１６のデータベースサーバよりも上方に示すような表（社員テーブル）の形式で出力させ利用することができるようになっている。
データベースファイルの内部構造においては、まず、データベースの記憶領域が所定の固定サイズのブロックに分割され、その分割された各ブロックをページと呼び、各ページには０、１、・・・、３０、３１、３２、３３、３４、・・・のようにページ番号が付されている。そして、ページ番号３０（ページ３０）には、「社員テーブル」という名称に加え、その社員テーブルに収容されるデータ（具体的には、各社員の社員番号、氏名、入社年月日）が記憶されているページ番号である３２、３３が記憶されている。加えて、ページ３２及びページ３３には、各社員の具体的データ（社員番号、氏名、入社年月日）が１のオブジェクトを構成して記憶されている。
また、ページ３４等には、図１５に示したようなインデックスが記憶されており、該インデックスのキーに関して検索をする場合には、前述したように、インデックスルートページに記憶されているツリーの最も上のレベルの節から、検索する条件値と各節に記録されているキーの値とを大小比較しながらツリーを下方向に辿り、条件を満たす葉の中のエントリを探し出し、そして条件を満たすエントリが有するＯＩＤ（オブジェクトＩＤ）が示すオブジェクトを取り出すことで検索を行う。
【０００６】
ところで、図１６に示したデータベースに、各社員が所属する部署名を併記すると図１７（ａ）のようになる。しかしこのとき、部署名や部署番号を変更するような場合には変更に係る社員それぞれの欄を変更する必要があることや、ある部署（例えば、総務部）に属する社員の情報を取り出したいような場合には図１７（ａ）の部署番号または部署名の項目をキーとしてインデックス付けを行う必要があること等から、多くの場合、図１７（ｂ）のようなテーブルを作成することが行われている。
【０００７】
【発明が解決しようとする課題】
ここで図１７（ｂ）のようなテーブルを作成した場合、社員全員の中から所定の入社日の者の情報を取り出したい場合には、入社日をキーとしてインデックス付けを行わなければならない。
しかしながら、インデックス付けを行う従来の情報管理装置では、インデックス付けを行うオブジェクトの指定は、インデックス付けのキーとなる項目を持つオブジェクトが直接格納された１のテーブルに属するオブジェクト全部といった指定ができるものしかなかった。
従って、図１７（ｂ）のテーブルは、図１８に示すように３の社員テーブル（（総務部）社員テーブル、（営業部）社員テーブル、（製造部）社員テーブル）を格納してなるから、該３の社員テーブルそれぞれに属するオブジェクトにインデックス付け（図１８に示すように、総務部社員入社日インデックス、営業部社員入社日インデックス、製造部社員入社日インデックス）を行う必要がある（前記したように、インデックス付けのキーとなる項目たる入社日を持つオブジェクトが直接格納されたテーブルは、ここでは（総務部）社員テーブル、（営業部）社員テーブル、（製造部）社員テーブルである。）。
【０００８】
このように各テーブルそれぞれに属するオブジェクトにインデックス付けを行うことは、インデックス付けを行うオブジェクトの指定を煩雑にし（実際の情報管理装置に見られるように複雑な情報を管理する場合、多数のテーブルが存することから、かかる指定はたいへん煩雑になる。）、該指定を誤ることもある。そして、全体について検索する場合には、付された各インデックスの全てを検索する必要があることから、検索時間を増加させる問題もあった。
そこで、本発明では、各テーブルに共通したインデックス付けを、単一のオブジェクト指定により可能ならしめる情報管理装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の情報管理装置（以下、「本装置」という。）は、先祖データから下位に位置する子孫データへと辿ることができるよう親データにその子データを特定する子特定データが関係付けられた階層構造データにインデックス付けを行う情報管理装置であって、該階層構造データを、その各構成データが記憶されている記憶位置を含むデータ特定データに関連付けて記憶するデータ記憶手段と、これからインデックス付けを行う子孫データに対する先祖データのデータ特定データたる先祖特定データと、該先祖特定データにより特定される先祖データから該インデックス付けを行う子孫データの親データまでの階層差と、を受け付けるインデックス定義情報受付手段と、該先祖特定データに従って該先祖データを該データ記憶手段において特定し、該受け付けられた階層差が０でなければ該特定された先祖データから該階層差の分の下位の子孫データまで該子特定データに従って辿り該下位の子孫データの子データの少なくとも一部の内容にインデックス付けを行う、インデックス付け手段と、を備えてなる、情報管理装置である。
なお、「階層構造」とは、全てのデータが包含関係により関係付けられている構造である。また、包含関係における含む側を親、含まれる側を子とした時に、親、親の親、さらにその親など親を辿ることだけでたどり着くことのできる関係を「先祖」、そして、子、子の子、さらにその子など、子を辿ることだけで辿り着くことのできる関係を「子孫」と呼ぶ。そして「階層差」とは、階層構造データにおける含む側と含まれる側、即ち親と子の間に１生じると考えられる、データ間の関係を表す相対的な数値である。
【００１０】
こうすることで、インデックス定義情報受付手段が、これからインデックス付けを行う子孫データに対する先祖データのデータ特定データたる先祖特定データ（該先祖データがデータ記憶手段において記憶されている記憶位置を含む。）と、該先祖特定データにより特定される先祖データから該インデックス付けを行う子孫データの親データまでの階層差と、を受け付ける。
そして、インデックス付け手段が、該先祖特定データに従って該先祖データを該データ記憶手段において特定し（データ記憶手段は、該階層構造データを、その各構成データが記憶されている記憶位置を含むデータ特定データに関連付けて記憶しているので、インデックス付け手段は、記憶位置を含むデータ特定データたる先祖特定データによって該先祖データを該データ記憶手段において特定することができる。）、該受け付けられた階層差が０でなければ該特定された先祖データから該階層差の分の下位の子孫データまで該子特定データに従って辿り該下位の子孫データの子データの少なくとも一部の内容にインデックス付けを行う。従って、ある先祖データが有する子孫データのうち、指定された階層差の分だけ該先祖データから下位に位置する子孫データの子データに含まれる内容にインデックス付けを行うことができる。このためある共通した先祖データを有し、該先祖データから同じ階層差分だけ下位に位置する子孫データの子データに含まれる内容にインデックスを付ける場合では、本装置によれば、それぞれの子孫データをインデックス付けのオブジェクトが収容されているとしていちいち指定する必要がなく、該共通した先祖データとそこからの階層差とを指定することで全ての子孫データに共通したインデックス付けを行うことができる。即ち、本装置は、該共通した先祖データとそこからの階層差とを指定するという単一のオブジェクト指定により、複数または単数を問わず該先祖データから該階層差だけ下位の子孫データの子データ全てにインデックス付けを行うことができる。
【００１１】
前記インデックス定義情報受付手段が、前記少なくとも一部の内容を特定するインデックス対象項目特定データをさらに受け付け、前記インデックス付け手段が、該受け付けられたインデックス対象項目特定データによって特定されるものにインデックス付けを行うものであってもよい。
本装置がインデックス付けを行う子孫データは複数の項目を含んでいる場合があり、かかる場合であれば該子孫データのいずれの項目にインデックス付けを行うかを指定してやる必要がある。そこで、本装置においては、インデックス定義情報受付手段が、前記少なくとも一部の内容（インデックス付けを行う項目）を特定するインデックス対象項目特定データをさらに受け付け、前記インデックス付け手段が、該受け付けられたインデックス対象項目特定データによって特定されるものにインデックス付けを行うようにすれば、インデックス付けを行う子孫データが複数の項目を含んでいてもいずれの項目にインデックス付けを行うかを指定し、円滑にインデックス付けを行うことができる。
【００１２】
これから生成されるインデックスを特定するインデックス特定データを取得するインデックス特定データ取得手段と、前記インデックス付け手段が、前記受け付けられた階層差が０であれば前記特定された先祖データのデータ特定データと階層差が０であることを示す階層差データと該インデックス特定データ取得手段により該取得されたインデックス特定データとを関連付けてインデックス管理情報として記憶させ、一方、前記受け付けられた階層差が０でなければ前記特定された先祖データと前記階層差の分の下位の子孫データとの両データ及び該両データの間に存する中間データの各々のデータについて該各々のデータのデータ特定データと、前記階層差の分の下位の子孫データから該各々のデータまでの階層差をあらわす階層差データと、該インデックス特定データ取得手段により該取得されたインデックス特定データと、を関連付けてインデックス管理情報として記憶させるインデックス管理情報記憶手段と、を、さらに備えてなるもの（以下、「インデックス管理情報記憶の本装置」という。）であってもよい。
【００１３】
こうすることで前記下位の子孫データの子データの少なくとも一部の内容にインデックス付けを行う際（インデックス付けの前後を問わない）にインデックス付け手段が新しく付けられるまたは新しく付けられたインデックスの内容をインデックス管理情報としてインデックス管理情報記憶手段に記憶させることができる。ここにインデックス管理情報は、前記受け付けられた階層差が０であれば前記特定された先祖データのデータ特定データと階層差が０であることを示す階層差データと該インデックス特定データ取得手段により該取得されたインデックス特定データとを関連付けたものであり、一方、前記受け付けられた階層差が０でなければ前記特定された先祖データと前記階層差の分の下位の子孫データとの両データ及び該両データの間に存する中間データの各々のデータについて該各々のデータのデータ特定データと、前記階層差の分の下位の子孫データから該各々のデータまでの階層差をあらわす階層差データと、該インデックス特定データ取得手段により該取得されたインデックス特定データと、を関連付けたものである。このようなインデックス管理情報がインデックス管理情報記憶手段に記憶されることで、インデックスに管理された全てのデータに関して、インデックス特定データ取得手段により該取得されたインデックス特定データ（即ち、インデックスそれぞれを一義に特定するためのデータ）と、そのインデックス特定データによって特定されるインデックスの管理対象となるデータの前記データ記憶手段における記憶位置を含むデータ特定データと、そのインデックス特定データによって特定されるインデックスの中でインデックスの前記階層差の分の下位の子孫データ（即ち、該インデックスの最下の階層に位置するデータ）から該各々のデータまでの階層差をあらわす階層差データと、の情報を得ることができるので、各インデックスそれぞれについてどの階層のデータがどこに記憶されているかを知ることができる。これら各インデックスそれぞれについてどの階層のデータがどこに記憶されているかを知ることで、前記階層構造データにオブジェクトを追加する等のようにインデックスの管理に影響を与え得ることを行う際にインデックスの管理を変更する必要があるか否かそしてその必要がある際に迅速かつ確実に行うことができる。
【００１４】
インデックス管理情報記憶の本装置の場合、前記階層構造データに追加する新規データと、前記階層構造データにおいて該新規データを子データとして格納すべき親データのデータ特定データである格納先特定データと、該新規データがさらに子データを格納するか否かを示す種別データと、を受け付ける追加情報受付手段と、該格納先特定データに示される親データの子データとして該新規データを記憶し、該記憶された新規データのデータ特定データを追加位置データとして取得する新規データ書き込み手段と、該格納先特定データと合致するデータ特定データを有する前記インデックス管理情報を前記インデックス管理情報記憶手段から読み出し、該読み出されたインデックス管理情報に含まれる階層差データが０か否か判断するインデックス管理判断手段と、該インデックス管理判断手段によって階層差データが０と判断された場合に該読み出されたインデックス管理情報に含まれる前記インデックス特定データが示すインデックスに、該記録した新規データに含まれる少なくとも一部の内容にインデックス付けするインデックス挿入手段と、該インデックス管理判断手段によって階層差データが０でなくかつ該種別データが該新規データがさらに子データを格納することを示すものであればデータ特定データとして該追加位置データと前記階層差データとして該階層差データから１減じたものと該読み出した情報に含まれるインデックス特定データとを関連付けて前記インデックス管理情報として前記インデックス管理情報記憶手段に記憶させるインデックス管理情報追加手段と、をさらに備えるものであってもよい。
【００１５】
こうすることで追加情報受付手段が、前記階層構造データに追加する新規データと、前記階層構造データにおいて該新規データを子データとして格納すべき親データのデータ特定データである格納先特定データと、該新規データがさらに子データを格納するか否かを示す種別データと、を受け付ける。
そして、新規データ書き込み手段が、該格納先特定データに示される親データの子データとして該新規データを記憶し、該記憶された新規データのデータ特定データ（前記データ記憶手段における新規データの記憶位置を含むデータ）を追加位置データとして取得する。
さらに、インデックス管理判断手段が、該格納先特定データと合致するデータ特定データを有する前記インデックス管理情報を前記インデックス管理情報記憶手段から読み出し（該格納先特定データと合致するデータ特定データを有する前記インデックス管理情報が前記インデックス管理情報記憶手段に記憶されていれば、該新規データはインデックス管理の対象であることがわかる。）、該読み出されたインデックス管理情報に含まれる階層差データが０か否か判断する。
【００１６】
そして、該インデックス管理判断手段によって階層差データが０と判断された場合（即ち、前記新規データが、インデックスのキー項目に該当するものと判断される。）には、インデックス挿入手段が該読み出されたインデックス管理情報に含まれる前記インデックス特定データが示すインデックスに、該記録した新規データに含まれる少なくとも一部の内容をインデックス付けする。
また、インデックス管理情報追加手段は、該インデックス管理判断手段によって階層差データが０でなく（これによりインデックスのキー項目に該当するものが該記録した新規データに含まれていないことがわかる。）かつ該種別データが該新規データがさらに子データを格納することを示すもの（その後、該記録した新規データに子孫データが付け加えられて、最終的には、該記録した新規データの子孫データにインデックスのキー項目に該当するものが含まれる可能性があると判断される。なお、このようにさらに子データを格納することができるデータをテーブルデータまたはテーブルという。）であれば、データ特定データとして該追加位置データと前記階層差データとして該階層差データから１減じたものと該読み出した情報に含まれるインデックス特定データとを関連付けて前記インデックス管理情報として前記インデックス管理情報記憶手段に記憶させる。このためインデックスのキー項目に該当するものが該記録した新規データに含まれておらず、かつ該記録した新規データに、インデックスのキー項目に該当するものが含まれる可能性がある子孫データが付け加えられる可能性があるものは、該追加位置データと前記階層差データとして該階層差データから１減じたもの（該記録した新規データは、格納した親データの階層の１つ下の階層になる。）と該読み出した情報に含まれるインデックス特定データとを関連付けて前記インデックス管理情報として前記インデックス管理情報記憶手段に記憶させるので、どの階層でどこのインデックスに属す可能性があるデータがどこに記憶されているかを記憶し、階層構造データにオブジェクトを追加する等のようにインデックスの管理に影響を与え得ることを行う際にインデックスの管理を変更する必要があるか否かそしてその必要がある際に迅速かつ確実に行うことができる。
【００１７】
本装置は、所定のプログラムをコンピュータに実行させることで実現させることができ、さらに、かかるプログラムはコンピュータ読み取り可能な記憶媒体に記録することができる。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。しかしながら、これらによって本発明は何ら制限されるものではない。
【００１９】
図１は、一実施形態の本システム１０１のハードウエア構成を示す概略ブロック図である。図１を参照して、一実施形態の本システム１０１のハードウエア構成について説明する。本システム１０１は、ある会社の社員情報を管理する情報管理システム（情報管理装置）であり、他の端末から要求を受けてデータの追加や検索等を行うデータベースサーバーとして機能する。
本実施形態では、本システム１０１は、プログラムを内蔵させたコンピュータとそれに接続されたキーボード１１３、モニタ１１５及び大容量のハードディスク１１９とを含んでなる。
本システム１０１は、演算処理を行うＣＰＵ１１０ａ、ＣＰＵ１１０ａの作業領域等となるＲＡＭ１１０ｂ、制御プログラム等を記録するＲＯＭ１１０ｃ、情報を入力するためのキーボード１１３と、情報等を表示するためのモニタ１１５と、情報等を記憶するための大容量のハードディスク１１９と、キーボード１１３、モニタ１１５及びハードディスク１１９と情報のやり取りを行うためのインターフェイス１１０ｄと、を有する。なお、ここでは制御プログラム等はＲＯＭ１１０ｃに記憶されているが、ハードディスク１１９に記憶するようにしてよいことは言うまでもない。また、ここではＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１１７を経由して、本システム１０１は、他の情報端末から自由にアクセスされることができるようになっている。もっとも本システム１０１が他の情報端末から自由にアクセスされるために用いる通信回線は、ここで用いたＬＡＮ等に限定されるものではなく、本システム１０１が他の情報端末との間でデータ授受を行うことができるものであればいかなるものが用いられてもよく、例えば、電話回線やインターネット通信網等のような通信回線を用いてよいことは言うまでもない。
【００２０】
図２に、図１のハードウエアと主としてＲＯＭ１１０ｃに記録されるプログラムにより実現される本システム１０１の機能ブロック図を示す。本システム１０１は、機能的には、大まかには要求受信部２０１とインデックス定義部３０１とオブジェクト格納部４０１とインデックス検索部５０１と閲覧部６０１とデータ記憶部７０１とによって構成されている。なお、図１に示した大容量のハードディスク１１９がデータ記憶部７０１を構成しており、図１に示したキーボード１１３及びモニタ１１５は図２中示していないが、それぞれ本システム１０１に情報を入力することや本システム１０１の情報を表示することを自由に行うことができるようになっている。
なお、要求受信部２０１は、図示しない他の情報端末から本システム１０１のいずれの機能を選択するかをＬＡＮ１１７を経由して受け付け該選択された機能を発揮するように本システム１０１を機能させるものであり、具体的には、該選択された機能に従ってインデックス定義部３０１、オブジェクト格納部４０１、インデックス検索部５０１及び閲覧部６０１のいずれかを起動させる起動信号をこれらに発するものである。そして、インデックス定義部３０１は、データ記憶部７０１に記憶され又はこれから記憶されるデータを迅速に検索するため該記憶されるデータにインデックス付け（インデックス作成）をどのように行うかを入力するものである。さらに、オブジェクト格納部４０１は、新しいデータをデータ記憶部７０１に記憶させるものである。また、インデックス検索部５０１は、データ記憶部７０１に記憶されているデータを検索し出力するものである。そして、閲覧部６０１は、図示しない他の情報端末がＬＡＮ１１７を経由してデータ記憶部７０１に記憶されているデータを自由に閲覧することができる（これによって、データが記憶されている後述のオブジェクトＩＤを知ることができる。）ように該図示しない他の情報端末とデータ記憶部７０１との間でデータの授受を行わしめるものである。なお、データ記憶部７０１は、社員情報等のデータやインデックス付け（インデックス作成）に関するデータ等を記憶するものである。
【００２１】
そして、データ記憶部７０１ではＢ−Ｔｒｅｅ又はＲ−Ｔｒｅｅのいずれかの構造を有するインデックス付け（インデックス作成）がなされたデータ構造を有するデータベースが形成される。なお、Ｂ−Ｔｒｅｅ又はＲ−Ｔｒｅｅのいずれかの構造を有するインデックス定義がなされたデータ構造については、既知の技術（例えば、「Ｂ−Ｔｒｅｅ」については、日経ＢＰ社発行の「日経ＢＰデジタル大辞典２０００−２００１年版」６９３頁に掲載されている。また、「Ｒ−Ｔｒｅｅ」については、(1)著者：Antonin Guttman，表題：R-Trees: A Dynamic Index Structure for Spatial Searching.学会会議名と、その議事録（論文誌）における上記論文の掲載ページ：Proceedings of the ACM SIGMOD Conference 1984: pp.47-57、(2)著者：Norbert Beckmann, Hans-Peter Kriegel, Ralf Schneider,Bernhard Seeger，表題：The R*-Tree: An Efficient and Robust Access Method for Points and Rectangles.学会会議名と、その議事録（論文誌）における上記論文の掲載ページ：Proceedings of the ACM SIGMOD Conference 1990: pp.322-331、(3)著者：Marcel Kornacker, Douglas Banks，表題：High-Concurrency Locking in R-Trees.学会会議名と、その議事録（論文誌）における上記論文の掲載ページ：Proceedings of the VLDB Conference 1995: pp.134-145、等に記載されている。）であるのでここでは説明を省略する。
【００２２】
まず、要求受信部２０１について説明する。
図３は、要求受信部２０１を詳細に示した機能ブロック図である。図３を参照して、要求受信部２０１について説明する。要求受信部２０１は、本システム１０１のいずれの機能を選択するかを決するものであり、要求信号受信部２０３と起動信号送信部２０５とを含んでいる。
第１に、本システム１０１が起動された状態において、ＬＡＮ１１７を経由して図示しない他の情報端末から本システム１０１がアクセスされると、それを要求信号受信部２０３が認識し、本システム１０１の起動画面を表示する信号を該図示しない他の情報端末に要求信号受信部２０３は送信する。この起動画面には、「１、インデックス付け（インデックス作成）」、「２、オブジェクト追加」、「３、検索」、「４、閲覧」の４項目が表示されるようになっており、該図示しない他の情報端末の使用者が該図示しない他の情報端末を介して（無論、ＬＡＮ１１７を経由する。）「１」、「２」、「３」、「４」のいずれかの信号を要求受信部２０１に入力することで本システム１０１の所望の機能を発揮させることができるようになっている。即ち、該図示しない他の情報通信端末の使用者が、「１」、「２」、「３」、「４」のいずれかの信号を入力するとそれを要求受信部２０１の要求信号受信部２０３が受信し、さらにその受信した信号を要求信号受信部２０３が（要求受信部２０１の）起動信号送信部２０５へ送信する。かかる「１」、「２」、「３」、「４」のいずれかの信号を要求信号受信部２０３から受信した起動信号送信部２０５は、受信した信号の種類を認識し、それが「１」であればインデックス定義部３０１（インデックス定義情報受信部３１１）に起動信号を発し、それが「２」であればオブジェクト格納部４０１（オブジェクト情報受信部４１１）に起動信号を発し、それが「３」であればインデックス検索部５０１（検索情報受信部５１１）に起動信号を発し、それが「４」であれば閲覧部６０１に起動信号を発する。
なお、ここでは前記図示しない他の情報端末の使用者が該図示しない他の情報端末を介して「１」、「２」、「３」、「４」のいずれかの信号を要求受信部２０１に入力することで本システム１０１の所望の機能を選択し発揮させるようになっているが、本システム１０１がいずれの機能が選択されたかを認識できればいかなる信号が要求受信部２０１に入力されるものであって良いことは言うまでもない。更に、本システム１０１は、ここでは本発明に関係する「１、インデックス付け（インデックス作成）」、「２、オブジェクト追加」、「３、検索」、「４、閲覧」の４の機能を有しているが、これ以外の機能を有するものであってよいことは言うまでもない。
【００２３】
まず、閲覧部６０１について説明する。
起動信号送信部２０５から起動信号を受信した閲覧部６０１は、前記図示しない他の情報端末がＬＡＮ１１７を経由してデータ記憶部７０１に記憶されているデータを自由に閲覧することができるように前記図示しない他の情報端末とデータ記憶部７０１との間で自由にデータの授受を行うことができるようにデータ授受の仲介を行う（図２を参照されたい）。このように閲覧部６０１が前記図示しない他の情報端末にデータ記憶部７０１の記憶内容を自由に閲覧させることによって、前記図示しない他の情報端末の使用者は、データ記憶部７０１に記憶されている内容とその記憶されている位置を知ることができる。
なお、本システム１０１においては、データ記憶部７０１における記憶位置を示す概念として「オブジェクトＩＤ」を用いる。「オブジェクトＩＤ」は、システムの使用者が操作（例えば、挿入、削除、更新等）することができる記憶領域内における最小単位のデータたるオブジェクトが記録されている記憶領域内のページの番号（ページ番号）と、該ページにおいて該オブジェクトが記録されている順番（最初のものには「０」が付される。）と、によって構成され、例えば、ページ番号が２７ページであり該当するオブジェクトが２７ページの中で４番目に記録されている場合であればオブジェクトＩＤ（２７，３）（順番は最初のものに「０」を付与するので、４番目のものには「３」が付与される。）になる。また、ここにいう「ページ」とは、データ記憶部７０１における記憶領域を、所定の固定サイズのブロックに分割したそれぞれのブロックをいう。このようなオブジェクトＩＤを用いることで、記憶領域の先頭に対するデータの記録位置が一義に定まるため、データの入出力を迅速かつ確実に行うことができる。
【００２４】
次いで、インデックス定義部３０１について説明する。
図４は、インデックス定義部３０１の詳細な機能ブロック図である。図４を参照して、インデックス定義部３０１について説明する。
インデックス定義部３０１は、機能的には、インデックス定義情報受信部３１１とインデックス番号生成部３１３とインデックス作成部３１５とインデックス情報書き込み部３１７とインデックス管理対象情報書き込み部３１９とオブジェクト情報読み出し部３２１とインデックス情報記憶部３２３と階層差記憶部３２５とオブジェクトＩＤ記憶部３２７とインデックスへのエントリ挿入部３２９とを有してなる。
【００２５】
まず、ここでは部署を示すテーブル（以下、「部署テーブル」という。）と、それぞれの部に所属する社員のテーブル（以下、「社員テーブル」という。）と、がそれぞれデータ記憶部７０１（データ記憶手段）における記憶領域の別の位置に既に記憶されているものとする。
また、データ記憶部７０１における記憶領域には、前記した部署テーブル及び社員テーブルに加え、いくつかのシステムテーブルが記憶されている。システムテーブルとは、データベースを管理するための情報を格納しておくテーブルであり、データベース作成時にデータベースサーバーが作成し、データベースサーバだけが使用するものである。データベースを管理するための情報とは、利用者が作成したテーブル（部署テーブルと社員テーブル）に格納されるオブジェクトのフォーマット情報や、インデックス情報などデータベースの構造に関する情報である。システムテーブルの中で本発明に関係するのは、インデックス自身の情報（インデックス名やインデックスデータを記録しているページ番号など）を格納するための「ＳＹＳ＿ＩＮＤＩＣＥＳ」と、インデックスとその管理対象となるオブジェクトとの関係情報を格納するための「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」の２つだけであるため、その他のシステムテーブルについては説明を省略する。
【００２６】
データ記憶部７０１における記憶領域において、記録されている部署テーブルと社員テーブルとを模式的に示せば図５のようになる。
図５に示されたページ３０には部署テーブルが記録されている。即ち、ページ３０の最初（即ち、オブジェクトＩＤ（３０，０））には部署テーブルが記録されており、その記録内容は、部署テーブルに格納されているオブジェクトが記録されているページのページ番号（３２）である。
そして、ページ３２には、３つの部署に対応して、各部署の情報と所属する社員の情報を持つ社員テーブルが記録されている。それぞれの記録内容は、部署番号「100」である「総務部」に所属する社員のデータ（「総務部」の社員テーブルに格納されているオブジェクト）はページ33に記録されており、部署番号「200」である「営業部」に所属する社員のデータ（「営業部」の社員テーブルに格納されているオブジェクト）はページ35に記録されており、そして部署番号「300」である「製造部」に所属する社員のデータ（「製造部」の社員テーブルに格納されているオブジェクト）はページ37に記録されていることを示している。
さらに、このページ32の各部署の社員テーブルに対応して、ページ33、35、37にはそれぞれ「総務部」、「営業部」、「製造部」に所属する社員のデータが記録されている。即ち、「総務部」に所属する社員のデータはページ33に記録されており、具体的に総務部に所属する社員は、「社員番号：５６３８、氏名：渡部一郎、入社日：１９８２年４月１日」、「社員番号：２３２６、氏名：山崎太郎、入社日：１９８３年４月１日」及び「社員番号：１８９２、氏名：上田次郎、入社日：１９９０年３月５日」の３人であることがわかる。同様に、「営業部」に所属する社員のデータはページ35に記録されており、具体的に営業部に所属する社員は、「社員番号：２３９１、氏名：川崎英男、入社日：１９８７年７月１日」、「社員番号：７９３８、氏名：山田三郎、入社日：１９８８年８月９日」、「社員番号：５２３４、氏名：大田良男、入社日：１９９０年２月５日」及び「社員番号：４２１２、氏名：多原幸男、入社日：１９９３年１０月５日」の４人であることがわかる。最後に、「製造部」に所属する社員のデータはページ37に記録されており、具体的に製造部に所属する社員は、「社員番号：１０３９、氏名：石田一子、入社日：１９８０年９月１日」及び「社員番号：３９２９、氏名：笠原英俊、入社日：１９８７年４月１日」の２人であることがわかる。
【００２７】
データ記憶部７０１における記憶領域において、記録されているシステムテーブル「ＳＹＳ＿ＩＮＤＩＣＥＳ」と「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」とを模式的に示せば図１３のようになる。
図１３に示されたページ６には、「ＳＹＳ＿ＩＮＤＩＣＥＳ」と「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」が記録されている。ここでは、他のシステムテーブル（本発明とは直接関係ないので説明は省略する。）に続いて、それぞれ７番目、８番目に記録されているものとする。即ち、ページ６の７番目（即ち、オブジェクトＩＤ（６，６））には「ＳＹＳ＿ＩＮＤＩＣＥＳ」が記録されており、その記録内容は、「ＳＹＳ＿ＩＮＤＩＣＥＳ」に格納されるオブジェクトが記録されるページのページ番号（１４）である。また、ページ６の８番目（即ち、オブジェクトＩＤ（６，７））には「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」が記録されており、その記録内容は、「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に格納されるオブジェクトが記録されるページのページ番号（１６）である。
そして、ページ１４には、ページ６の「ＳＹＳ＿ＩＮＤＩＣＥＳ」に格納される「インデックスの情報」が記録される。また、ページ１６には、ページ６の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に格納される「インデックスとその管理対象となるオブジェクトとの関係情報」が記録される。しかし、現時点ではインデックスは１つも定義されていないものとし、この場合はページ１４、ページ１６は空の状態となっている。
【００２８】
以上説明した状態において、起動信号送信部２０５から起動信号を受信したインデックス定義情報受信部３１１（インデックス定義情報受付手段）は、ＬＡＮ１１７を経由して直接データを送受信することができる状態になり、まず、インデックス定義情報の入力フォーマットをＬＡＮ１１７を経由して前記図示しない他の情報端末に送信し入力を促す。インデックス定義情報の入力フォーマットには、インデックス名、保有元テーブルのオブジェクトＩＤ（先祖特定データ）、Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別、階層差（先祖特定データにより特定される先祖データからインデックス付けを行う子孫データの親データまでの階層差）及びキーに対応する項目（インデックス対象項目特定データ）の５項目が存しており、該入力フォーマットを受信した前記図示しない他の情報端末は、これらの項目に該当するデータを受け付けた後、受け付けたデータをインデックス定義情報受信部３１１へ送信する。この前記図示しない他の情報端末からインデックス定義情報受信部３１１へ送信されたインデックス定義情報の一例を表１に示す。
なお、表１の項目のうち、インデックス名はこれからインデックス付け（インデックス作成）を行おうとするインデックスを示す名称であり任意に設定することができ、保有元テーブルのオブジェクトＩＤは、次に示す（１）または（２）の条件を満たすオブジェクトの中から、インデックスを定義する時の「階層差」の基準として任意に選んだオブジェクトのオブジェクトＩＤである。即ち、（１）インデックス付けを行うオブジェクトが格納されている全てのテーブルの共通の先祖であるテーブルオブジェクト、（２）１つのテーブルのみに格納されているオブジェクトにインデックス付けを行う時はそのテーブル自身であるオブジェクト、である。そして、ここでは、保有元テーブルのオブジェクトＩＤは、図５に示したように部署テーブルのオブジェクトＩＤたる（３０，０）とされている。また、Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別はこれからインデックス付け（インデックス作成）を行おうとするインデックスの構造をＢ−ＴｒｅｅとＲ−Ｔｒｅｅとのいずれにするかを決するものであり（ここではＢ−Ｔｒｅｅが指定されている。）、階層差は、指定した保有元テーブル（ここでは部署テーブル（３０，０））に対してインデックス付けを行うオブジェクトが格納されたテーブル（ここでは社員テーブル（３２，０）、（３２，１）、（３２，２））が幾つ階層が下になるかを示しており、キーに対応する項目は、インデックス付けを行うオブジェクト（ここではページ３３、３５及び３７に記録されているもの）の、インデックスのキーに対応する項目の名前（ここでは入社日）である。
また、これらのうち保有元テーブルのオブジェクトＩＤ、階層差及びキーに対応する項目等のように、データ記憶部７０１における記憶データを参照しつつ決すべきものは、必要に応じ閲覧部６０１を通じて前記図示しない他の情報端末がデータ記憶部７０１の記憶内容を閲覧して決定される。
【００２９】
（表１）  インデックス定義情報の一例
・インデックス名：入社日インデックス
・保有元テーブルのオブジェクトＩＤ：（３０，０）
・Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別：Ｂ−Ｔｒｅｅ
・階層差：１
・キーに対応する項目：入社日
【００３０】
表１に示したようなインデックス定義情報を受信したインデックス定義情報受信部３１１（インデックス定義情報受付手段）は、該受信したインデックス定義情報全てをインデックス情報記憶部３２３へ送信しインデックス情報記憶部３２３に記憶させ、そして該受信したインデックス定義情報に含まれる保有元テーブルのオブジェクトＩＤ（ここでは（３０，０））を抽出しオブジェクトＩＤ記憶部３２７へ送信しオブジェクトＩＤ記憶部３２７に記憶させ、さらにインデックス番号生成部３１３へ起動信号を発しインデックス番号生成部３１３を起動させる。
【００３１】
インデックス定義情報受信部３１１から起動信号を受信したインデックス番号生成部３１３（インデックス特定データ取得手段）は、インデックス番号（インデックス特定データ）を決定し、該決定したインデックス番号をインデックス情報記憶部３２３に送信し、そして既にインデックス情報記憶部３２３が記憶しているインデックス定義情報に加え、該決定したインデックス番号をインデックス情報記憶部３２３に記憶させる。
なお、インデックス番号生成部３１３がインデックス番号を決定する方法は、次の如きである。即ち、後述するように、インデックス定義情報を含む情報はインデックス情報書き込み部３１７によってデータ記憶部７０１の記憶領域に記録されているシステムテーブル「ＳＹＳ＿ＩＮＤＩＣＥＳ」に格納されるので、インデックス番号生成部３１３は、この「ＳＹＳ＿ＩＮＤＩＣＥＳ」に格納されている情報に付されたインデックス番号を検索しこのインデックス番号のうち最大値に１を加えてインデックス番号を決定する（「ＳＹＳ＿ＩＮＤＩＣＥＳ」に格納されている情報がなければインデックス番号として「１」を決定する。なお、ここでは「１」を決定したものとして、後の説明を行う。）。これによって新しく作成されるインデックスにはこれまで付けられていなかったインデックス番号が付与されることになり、結果として、全てのインデックスとインデックス番号とは互いに一対一の対応関係を持つことになる。
その後、インデックス番号生成部３１３はインデックス作成部３１５に起動信号を発し、インデックス作成部３１５を起動させる。
【００３２】
インデックス番号生成部３１３から起動信号を受信したインデックス作成部３１５は、インデックスデータを記録するためのインデックスルートページを、データ記憶部７０１の記憶領域（データ記憶部７０１が有する記憶領域全部をいう。）のうち現在記憶されている部分の後に続くように作成する（従って、図５に示すような内容がデータ記憶部７０１の記憶領域の末尾に記憶されていれば、インデックスルートページはページ番号「３８」に作成される。）。なお、ここにいう「インデックスルートページ」とは、Ｂ−Ｔｒｅｅ又はＲ−Ｔｒｅｅのツリー構造の根（最も上のレベルに位置する節）に該当する部分の情報を記録するページをいい、さらに、インデックスルートページの作成とは、具体的には、データベースファイルを１ページのサイズだけ拡張し、その拡張した領域をインデックスを構成するページとして初期化する（エントリ数が０であるインデックスページとする）ことをいう。
そして、インデックス作成部３１５は、作成したインデックスルートページのページ番号（ここでは「３８」）をインデックス情報記憶部３２３に送信し、そして既にインデックス情報記憶部３２３が記憶しているインデックス定義情報とインデックス番号に加え、インデックスルートページのページ番号をインデックス情報記憶部３２３に記憶させる。
この時点におけるインデックス情報記憶部３２３に記憶されている内容を模式的に表２に示す。
その後、インデックス作成部３１５は、インデックス情報書き込み部３１７に起動信号を発し、インデックス情報書き込み部３１７を起動させる。
【００３３】
（表２）  インデックス情報記憶部３２３に記憶されている内容の一例
・インデックス名：入社日インデックス
・保有元テーブルのオブジェクトＩＤ：（３０，０）
・Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別：Ｂ−Ｔｒｅｅ
・階層差：１
・キーに対応する項目：入社日
・インデックス番号：１
・インデックスルートページ番号：３８
【００３４】
インデックス作成部３１５から起動信号を受信したインデックス情報書き込み部３１７は、インデックス情報記憶部３２３に記憶されている情報（上記した表２に示す情報）をインデックス情報記憶部３２３から読み出し取得し、該取得した情報（表２）をデータ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＩＣＥＳ」に書き込む。
そして、インデックス情報書き込み部３１７は、該取得した情報（表２）に含まれる「階層差」（ここでは「１」）を階層差記憶部３２５に送信し階層差記憶部３２５に記憶させる。
さらに、インデックス情報書き込み部３１７は、インデックス管理対象情報書き込み部３１９に起動信号を発し、インデックス管理対象情報書き込み部３１９を起動させる。
【００３５】
インデックス情報書き込み部３１７から起動信号を受信したインデックス管理対象情報書き込み部３１９は、オブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（ここではインデックス定義情報受信部３１１から受信し記憶したものであり、保有元テーブルのオブジェクトＩＤたる（３０，０））と、インデックス情報記憶部３２３が記憶しているインデックス番号（ここでは「１」）を読み出し取得したインデックス番号（ここでは「１」）と、階層差記憶部３２５が記憶している階層差（ここでは「１」）を読み出し取得した階層差（ここでは「１」）と、を有する情報（インデックス管理情報）を作成すると共に、該作成された情報をデータ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込む。具体的には、表３に示した情報をインデックス管理対象情報書き込み部３１９はシステムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込む。
【００３６】
（表３）  「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」への書き込み例
・テーブルのオブジェクトＩＤ：（３０，０）
・インデックス番号：１
・階層差：１
【００３７】
「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に前記情報（表３）を書き込んだインデックス管理対象情報書き込み部３１９は、該書き込んだ情報に含まれている階層差が「０」か否か判断し、「０」であればインデックスへのエントリ挿入部３２９へ起動信号を発しインデックスへのエントリ挿入部３２９を起動させ、「０」でなければ（０より大きい値であれば）オブジェクト情報読み出し部３２１へ起動信号を発しオブジェクト情報読み出し部３２１を起動させる。
なお、ここでは階層差「１」であり「０」でないので（０より大きい値であるので）、インデックス管理対象情報書き込み部３１９はオブジェクト情報読み出し部３２１へ起動信号を発しオブジェクト情報読み出し部３２１を起動させる。
【００３８】
階層差が「０」でありインデックス管理対象情報書き込み部３１９から起動信号を受信したインデックスへのエントリ挿入部３２９は、まずオブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（前記した例では保有元テーブルのオブジェクトＩＤたる（３０，０）をオブジェクトＩＤ記憶部３２７が記憶しているが、これは表２に示すように、階層差「１」であるので、前記した例では階層差が「０」と判断されることはない。）を読み出し取得し、該取得したテーブルのオブジェクトＩＤが指すテーブル（以下、「処理対象テーブル」という。）に格納されている（含まれる）全てのオブジェクトについて、それぞれに対応するエントリ（該オブジェクトのオブジェクトＩＤと「キーに対応する項目」の値との組）をインデックスに挿入する。なお、インデックスへのエントリ挿入部３２９は、処理対象テーブルをデータ記憶部７０１にアクセスして読み出し、該読み出した処理対象テーブルに格納されている（含まれている）オブジェクトに含まれる「キーに対応する項目」に相当する値を用いて該エントリを作成することができる。
なお、該エントリをインデックスに挿入する方法は、一般的なＢ−Ｔｒｅｅ又はＲ−Ｔｒｅｅの構築動作に従って行うことができるので、ここでは説明を省略する（また、該エントリをインデックスに挿入する際に必要となるインデックスに関する情報は、インデックスへのエントリ挿入部３２９がインデックス情報記憶部３２３へ適宜アクセスして読み出し取得すればよい。）。
【００３９】
階層差が「０」でなくインデックス管理対象情報書き込み部３１９から起動信号を受信したオブジェクト情報読み出し部３２１は、まず階層差記憶部３２５にアクセスし階層差記憶部３２５が記憶している階層差の値から１を減じた数を階層差として階層差記憶部３２５に上書きして記憶させる（即ち、これによって階層差記憶部３２５が記憶している階層差が「１」減少する。従って、上記した例では階層差記憶部３２５に階層差「１」が記憶されているので、それから１を減じた数「０」が階層差として階層差記憶部３２５に上書きされ記憶される。）。次いで、オブジェクト情報読み出し部３２１は、オブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（ここでは保有元テーブルのオブジェクトＩＤ（３０，０））を読み出し取得し、該取得したテーブルのオブジェクトＩＤ（ここでは（３０，０））が指すテーブル（以下、「処理対象テーブル」という。）に格納されている全てのオブジェクトを１つずつ順次読み出す。そして、それぞれのオブジェクトに記録されている「種別」（そのオブジェクトがテーブルオブジェクトであるか否か）の内容を判定し、テーブルオブジェクトでは無い場合は処理対象テーブルに格納されている次のオブジェクトを読み出す。テーブルオブジェクトである場合は次の処理（以下、「処理Ｂ」という。）を行う。即ち、処理Ｂにおいて、オブジェクト情報読み出し部３２１は、処理対象テーブルに格納されているこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤをオブジェクトＩＤ記憶部３２７に記憶させる（このことは、これから処理しようとするテーブルオブジェクトが「処理対象テーブル」になることを示す。）。なお、このとき必要となる該これから処理しようとするテーブルオブジェクトのオブジェクトＩＤは、オブジェクト情報読み出し部３２１がオブジェクトＩＤ記憶部３２７に記憶されているオブジェクトＩＤに該当するテーブルを読み出すことで、そのテーブルに格納されているオブジェクトのページ番号（子特定データ）を取得し、そのページ番号のページに記録されているオブジェクトを読み込んでゆくことで、該テーブルに格納されているオブジェクトのオブジェクトＩＤ及びその内容を取得できる（例えば、図５の例では、オブジェクトＩＤ記憶部３２７に記憶されているオブジェクトＩＤたる（３０，０）に該当するテーブル「部署テーブル（３０，０）」を読み出すことで、そのテーブル「部署テーブル（３０，０）」に格納されているオブジェクトのページ番号（３２）を取得し、そのページ番号（３２）のページに記録されているオブジェクトを読み込んでゆくことで、該テーブル「部署テーブル（３０，０）」に格納されているオブジェクトのオブジェクトＩＤ（３２，０）、（３２，１）、（３２，２）及びその内容を取得することができる。）。その後、オブジェクト情報読み出し部３２１は、インデックス管理対象情報書き込み部３１９に起動信号を発し、インデックス管理対象情報書き込み部３１９を起動させる。
【００４０】
オブジェクト情報読み出し部３２１から起動信号を受信したインデックス管理対象情報書き込み部３１９は、オブジェクトＩＤ記憶部３２７が記憶しているこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（オブジェクト情報読み出し部３２１によって記憶させられたものであり、例えば、（３２，０））と、インデックス情報記憶部３２３が記憶しているインデックス番号（ここでは「１」）を読み出し取得したインデックス番号（ここでは「１」）と、階層差記憶部３２５が記憶している階層差（ここでは「０」）を読み出し取得した階層差（ここでは「０」）と、を有する情報（インデックス管理情報）を作成すると共に、該作成された情報をデータ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込む。
「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に前記情報（オブジェクト）を書き込んだインデックス管理対象情報書き込み部３１９は、該書き込んだ情報に含まれている階層差が「０」か否か判断し、「０」であればインデックスへのエントリ挿入部３２９へ起動信号を発しインデックスへのエントリ挿入部３２９を起動させ、「０」でなければ（０より大きい値であれば）オブジェクト情報読み出し部３２１へ起動信号を発しオブジェクト情報読み出し部３２１を起動させる。
なお、ここで階層差が「０」であり起動されたインデックスへのエントリ挿入部３２９は、既に前回説明した階層差が「０」でありインデックス管理対象情報書き込み部３１９から起動信号を受信したインデックスへのエントリ挿入部３２９の動作と同様の動作を行う。このとき前回と異なるのは、オブジェクトＩＤ記憶部３２７が記憶しているオブジェクトＩＤが１階層下のもの（例えば、（３２，０））に置換されている点である。
また、ここで階層差が「０」でなく起動されたオブジェクト情報読み出し部３２１は、既に前回説明した階層差が「０」でなくインデックス管理対象情報書き込み部３１９から起動信号を受信したオブジェクト情報読み出し部３２１の動作と同様の動作を行う。このとき前回と異なるのは、階層差記憶部３２５が記憶している階層差の値が前回よりも１を減じた数となっていることと、オブジェクトＩＤ記憶部３２７が記憶しているオブジェクトＩＤが１階層下のもの（例えば、（３２，０））に置換されていること、の２点である。
【００４１】
以上が処理Ｂであり、かかる処理Ｂは、処理Ｂが開始される際にオブジェクトＩＤ記憶部３２７が記憶しているオブジェクトＩＤ（ここでは（３０，０））が指すテーブル（処理対象テーブル）に従属している（格納されている）全てのテーブルオブジェクト（ここでは（３２，０）、（３２，１）及び（３２，２））について行われる。
全ての処理Ｂが完了した後、オブジェクト情報読み出し部３２１は階層差記憶部３２５にアクセスし階層差記憶部３２５が記憶している階層差の値に１を加えた数を階層差として階層差記憶部３２５に上書きして記憶させる。
以上でインデックス定義部３０１の動作が終了する。
なお、ここではインデックス管理対象情報書き込み部３１９とオブジェクト情報読み出し部３２１と階層差記憶部３２５とオブジェクトＩＤ記憶部３２７とインデックスへのエントリ挿入部３２９とを含んで、インデックス付け手段が構成されている。
また、データ記憶部７０１（システムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」）が、インデックス管理情報記憶手段を構成している。
【００４２】
上記した動作のうち、階層差が「０」でなくインデックス管理対象情報書き込み部３１９から起動信号を受信したオブジェクト情報読み出し部３２１の動作（処理Ｂを含む）について、以下、具体的に説明をしておく。
まず、オブジェクト情報読み出し部３２１は、階層差記憶部３２５にアクセスし階層差記憶部３２５が記憶している階層差（ここでは「１」）の値から１を減じた数（即ち、「０」）を階層差として階層差記憶部３２５に上書きして記憶させる。
そしてオブジェクト情報読み出し部３２１は、オブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（ここでは（３０，０））を読み出し取得し、該取得したテーブルのオブジェクトＩＤ（ここでは（３０，０））が指すテーブル（処理対象テーブル）に従属している（格納されている）全てのテーブルオブジェクト（ここでは（総務部）社員テーブル、（営業部）社員テーブル及び（製造部）社員テーブル）について次の処理（処理Ｂ）を行う。即ち、オブジェクト情報読み出し部３２１は、処理対象テーブルたる部署テーブル（オブジェクトＩＤ：（３０，０））に従属している（格納されている）全てのテーブルオブジェクトのうちこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（（３２，０）、（３２，１）及び（３２，２）のいずれか）をオブジェクトＩＤ記憶部３２７に記憶させる。なお、このとき必要となる該これから処理しようとするテーブルオブジェクトのオブジェクトＩＤは、オブジェクト情報読み出し部３２１がデータ記憶部７０１にアクセスし、オブジェクトＩＤ記憶部３２７から読み出し取得したテーブルのオブジェクトＩＤ（３０，０）に該当するテーブル（部署テーブル）から読み出し取得される（例えば、図５の例では、オブジェクトＩＤ記憶部３２７から読み出し取得したテーブルのオブジェクトＩＤ（３０，０）に該当するテーブルは部署テーブルであり、この部署テーブル（３０，０）を読み出すことで、そのテーブル「部署テーブル（３０，０）」に格納されているオブジェクトのページ番号（３２）を取得し、そのページ番号（３２）のページに記録されているオブジェクトを読み込んでゆくことで、該テーブル「部署テーブル（３０，０）」に格納されているオブジェクトのオブジェクトＩＤ（３２，０）、（３２，１）、（３２，２）及びその内容を取得することができる。その後、オブジェクト情報読み出し部３２１は、インデックス管理対象情報書き込み部３１９に起動信号を発し、インデックス管理対象情報書き込み部３１９を起動させる。
【００４３】
オブジェクト情報読み出し部３２１から起動信号を受信したインデックス管理対象情報書き込み部３１９は、オブジェクトＩＤ記憶部３２７が記憶しているこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（例えば、（総務部）社員テーブルのオブジェクトＩＤたる（３２，０））と、インデックス情報記憶部３２３が記憶しているインデックス番号（ここでは「１」）を読み出し取得したインデックス番号（ここでは「１」）と、階層差記憶部３２５が記憶している階層差（ここでは「０」）を読み出し取得した階層差（ここでは「０」）と、を有する情報（オブジェクト）を作成すると共に、該作成された情報をデータ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込む。
「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に前記情報（オブジェクト）を書き込んだインデックス管理対象情報書き込み部３１９は、該書き込んだ情報に含まれている階層差が「０」か否か判断し、「０」であればインデックスへのエントリ挿入部３２９へ起動信号を発しインデックスへのエントリ挿入部３２９を起動させ、「０」でなければ（０より大きい値であれば）オブジェクト情報読み出し部３２１へ起動信号を発しオブジェクト情報読み出し部３２１を起動させる。
以下、同様にして、（総務部）社員テーブルのオブジェクトＩＤ（３２，０）以外のもの（（営業部）社員テーブルのオブジェクトＩＤ（３２，１）と（製造部）社員テーブルのオブジェクトＩＤ（３２，２））についても処理する。
このように（総務部）社員テーブル、（営業部）社員テーブル及び（製造部）社員テーブルのそれぞれを処理対象テーブルとしたときに、インデックス管理対象情報書き込み部３１９が「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込む情報（上述した表３のような情報）は表４のようなものになる。
【００４４】
（表４）  各社員テーブルを処理対象テーブルとしたときの「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」への書き込み例
「（総務部）社員テーブル」を処理したとき
・テーブルのオブジェクトＩＤ：（３２，０）
・インデックス番号：１
・階層差：０
「（営業部）社員テーブル」を処理したとき
・テーブルのオブジェクトＩＤ：（３２，１）
・インデックス番号：１
・階層差：０
「（製造部）社員テーブル」を処理したとき
・テーブルのオブジェクトＩＤ：（３２，２）
・インデックス番号：１
・階層差：０
【００４５】
なお、表４から明らかなように、（総務部）社員テーブル、（営業部）社員テーブル及び（製造部）社員テーブルのそれぞれを処理対象テーブルとしたときには、階層差が「０」であるので、インデックス管理対象情報書き込み部３１９は、インデックスへのエントリ挿入部３２９へ起動信号を発しインデックスへのエントリ挿入部３２９を起動させ、各テーブル（（総務部）社員テーブル、（営業部）社員テーブル、（製造部）社員テーブル）に収容されている全オブジェクト（各部に所属する全ての社員の情報、即ち、図５の例では、ページ３３、３５、３７に記憶されている情報）について、オブジェクトＩＤと項目「入社日」の値の組がインデックスに挿入される。
【００４６】
以上のように、インデックス定義部３０１によって、データ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＩＣＥＳ」と「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」とには、具体的には、表５のような情報が記憶される。また、データ記憶部７０１における記憶領域において、記録されている「ＳＹＳ＿ＩＮＤＩＣＥＳ」と「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」とを模式的に示せば図１４のようになる。図１４に示されたページ６の７番目（即ち、オブジェクトＩＤ（６，６））には「ＳＹＳ＿ＩＮＤＩＣＥＳ」が記録されており、ページ６の８番目（即ち、オブジェクトＩＤ（６，７））には「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」が記録されている。そして、ページ１４の１番目（即ち、オブジェクトＩＤ（１４，０））には、「ＳＹＳ＿ＩＮＤＩＣＥＳ」に格納されている「インデックスの情報」が記録されている。その記録内容は、インデックス名「入社日インデックス」、保有元テーブルのオブジェクトＩＤ「（３０，０）」のインデックスは、種別が「Ｂ−Ｔｒｅｅ」であり、保有元テーブルから「１」階層下のテーブルに格納されるオブジェクトの項目「入社日」の値を管理対象とし、インデックス番号は「１」で、インデックスルートページのページ番号は「３８」であることを示している。さらに、ページ１６には、インデックスとその管理対象となるオブジェクトとの関係情報が記録されている。具体的には、以下の（１）〜（４）の関係情報が、それぞれオブジェクトＩＤ（１６，０）、（１６，１）、（１６，２）、（１６，３）として記録されている。即ち、（１）インデックス番号「１」のインデックスは、オブジェクトＩＤが「（３０，０）」のテーブルの「１」階層下のテーブルに格納されるオブジェクトを管理対象とする、（２）インデックス番号「１」のインデックスは、オブジェクトＩＤが「（３２，０）」のテーブルの「０」階層下のテーブル（即ち、オブジェクトＩＤが「（３２，０）」のテーブル）に格納されるオブジェクトを管理対象とする、（３）インデックス番号「１」のインデックスは、オブジェクトＩＤが「（３２，１）」のテーブルの「０」階層下のテーブル（即ち、オブジェクトＩＤが「（３２，１）」のテーブル）に格納されるオブジェクトを管理対象とする、（４）インデックス番号「１」のインデックスは、オブジェクトＩＤが「（３２，２）」のテーブルの「０」階層下のテーブル（即ち、オブジェクトＩＤが「（３２，２）」のテーブル）に格納されるオブジェクトを管理対象とする、という以上４つの関係情報である。ただし、図１４中のページ１６の４つの関係情報は、「テーブルのオブジェクトＩＤ」、「インデックス番号」、「階層差」の順にデータが記録されている。
【００４７】
（表５）「ＳＹＳ＿ＩＮＤＩＣＥＳ」と「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」との記憶内容
（ａ）「ＳＹＳ＿ＩＮＤＩＣＥＳ」
・インデックス名：入社日インデックス
・保有元テーブルのオブジェクトＩＤ：（３０，０）
・Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別：Ｂ−Ｔｒｅｅ
・階層差：１
・キーに対応する項目：入社日
・インデックス番号：１
・インデックスルートページ番号：３８
（ｂ）「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」
・テーブルのオブジェクトＩＤ：（３０，０）
・インデックス番号：１
・階層差：１
・テーブルのオブジェクトＩＤ：（３２，０）
・インデックス番号：１
・階層差：０
・テーブルのオブジェクトＩＤ：（３２，１）
・インデックス番号：１
・階層差：０
・テーブルのオブジェクトＩＤ：（３２，２）
・インデックス番号：１
・階層差：０
【００４８】
さらに、オブジェクト格納部４０１について説明する。
図６は、オブジェクト格納部４０１の詳細な機能ブロック図である。図６を参照して、オブジェクト格納部４０１について説明する。
オブジェクト格納部４０１は、機能的には、オブジェクト情報受信部４１１とテーブルオブジェクト読み出し部４１３とオブジェクト作成・格納部４１５とインデックス管理対象情報読み出し部４１７とインデックス管理対象情報書き込み部４１９とオブジェクト情報記憶部４２１とページ番号記憶部４２３とオブジェクトＩＤ記憶部４２５とインデックス情報記憶部４２７と階層差記憶部４２９とインデックス情報読み出し部４３１とインデックスへのエントリ挿入部４３３とを有して構成されている。
【００４９】
起動信号送信部２０５から起動信号を受信したオブジェクト情報受信部４１１（追加情報受付手段）は、ＬＡＮ１１７を経由して直接データを送受信することができる状態になり、まず、オブジェクト情報（新しく追加する情報）の入力フォーマットをＬＡＮ１１７を経由して前記図示しない他の情報端末に送信し入力を促す。オブジェクト情報の入力フォーマットには、種別、項目のデータ、格納先となるテーブルのオブジェクトＩＤの３項目が存しており、該入力フォーマットを受信した前記図示しない他の情報端末は、これらの項目に該当するデータを受け付けた後、受け付けたデータをオブジェクト情報受信部４１１へ送信する。この前記図示しない他の情報端末からオブジェクト情報受信部４１１へ送信されるオブジェクト情報の一例を表６及び表７に示す。
なお、表６では、図５に示された「部署テーブル」（オブジェクトＩＤ（３０，０））に、新たに「企画部」の情報を収納するための情報を示す。また、総務部に新しく配属された者の情報を収納するための情報を表７に示す。
【００５０】
（表６）  オブジェクト情報受信部４１１へ送信されるオブジェクト情報の一例
・種別：テーブルオブジェクト
・項目のデータ：部署番号：４００
部署名：企画部
・格納先となるテーブルのオブジェクトＩＤ：（３０，０）
【００５１】
（表７）  オブジェクト情報受信部４１１へ送信されるオブジェクト情報の一例
・種別：テーブルオブジェクトではない
・項目のデータ：社員番号：７０９５
氏名：笠原次郎
入社日：１９９３．４．１
・格納先となるテーブルのオブジェクトＩＤ：（３２，０）
【００５２】
表６及び表７に示されているように、オブジェクト情報は、種別（新規に追加作成するオブジェクトがテーブルオブジェクトであるか否か、つまり新規に追加されるデータがさらに子データを格納するか否かを示すものであり、本発明にいう種別データである。）、項目のデータ（オブジェクトの全ての項目のデータであり、階層構造データに追加する新規データである。）、格納先となるテーブルのオブジェクトＩＤ（新規に追加作成するオブジェクトの格納先となるテーブルのオブジェクトＩＤ、即ち、新規データたる該項目のデータを子データとして格納すべき親データのデータ特定データである格納先特定データである。）を含んで構成されている。なお、これらのうち格納先となるテーブルのオブジェクトＩＤ等のように、データ記憶部７０１における記憶データを参照しつつ決すべきものは、必要に応じ閲覧部６０１を通じて前記図示しない他の情報端末がデータ記憶部７０１の記憶内容を閲覧して決定される。
このようなオブジェクト情報を受信したオブジェクト情報受信部４１１（追加情報受付手段）は、該受信したオブジェクト情報をオブジェクト情報記憶部４２１へ送信しオブジェクト情報記憶部４２１に記憶させ、その後、テーブルオブジェクト読み出し部４１３に起動信号を送信しテーブルオブジェクト読み出し部４１３を起動させる。
【００５３】
オブジェクト情報受信部４１１から起動信号を受信したテーブルオブジェクト読み出し部４１３は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１が記憶している「格納先となるテーブルのオブジェクトＩＤ」を取得する。そして、テーブルオブジェクト読み出し部４１３は、オブジェクト情報記憶部４２１から取得した「格納先となるテーブルのオブジェクトＩＤ」に該当するオブジェクトＩＤに記憶されているテーブルオブジェクト（新たに作成するオブジェクトの格納先となる）をデータ記憶部７０１のオブジェクトＩＤに記録されているページから読み出し取得する。さらに、テーブルオブジェクト読み出し部４１３は、該読み出し取得したテーブルオブジェクトから新しいオブジェクトを記憶すべきページのページ番号を取得し、ページ番号記憶部４２３に送信しページ番号記憶部４２３に記憶させる。そして、テーブルオブジェクト読み出し部４１３は、オブジェクト作成・格納部４１５に起動信号を送信しオブジェクト作成・格納部４１５を起動させる。
具体的に説明すれば、表６に示すようなオブジェクト情報をオブジェクト情報記憶部４２１が記憶していたとすると、テーブルオブジェクト読み出し部４１３は、オブジェクト情報記憶部４２１が記憶している「格納先となるテーブルのオブジェクトＩＤ」たる（３０，０）を取得し、そして「格納先となるテーブルのオブジェクトＩＤ」（３０，０）に該当するオブジェクトＩＤに記憶されているテーブルオブジェクトをデータ記憶部７０１のオブジェクトＩＤに記録されているページ（３０）から読み出し取得し、該読み出し取得したテーブルオブジェクトに含まれる新しいオブジェクトを記録すべきページのページ番号（３２）を取得する。
さらに、テーブルオブジェクト読み出し部４１３は、この取得した新しいオブジェクト（新しい企画部の情報）を記憶すべきページのページ番号たる「３２」をページ番号記憶部４２３に送信しページ番号記憶部４２３に記憶させ、オブジェクト作成・格納部４１５に起動信号を送信しオブジェクト作成・格納部４１５を起動させる。
【００５４】
テーブルオブジェクト読み出し部４１３から起動信号を受信したオブジェクト作成・格納部４１５は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１に記憶されている内容（種別、項目のデータ）を読み出し取得して該取得した内容に従ってオブジェクトを作成する。そして、オブジェクト作成・格納部４１５は、ページ番号記憶部４２３にアクセスしページ番号記憶部４２３が記憶しているページ番号を読み出し取得し、該取得したページ番号に該当するデータ記憶部７０１のページに該作成したオブジェクトを書き込み記憶させる。このデータ記憶部７０１のページ番号記憶部４２３が記憶しているページ番号に該当するページに該作成したオブジェクトが書き込まれ記憶されたとき、オブジェクト作成・格納部４１５は、該作成したオブジェクトが書き込まれ記憶されたデータ記憶部７０１のオブジェクトＩＤ（追加位置データ）を検出し取得し、さらに該検出し取得したオブジェクトＩＤをオブジェクトＩＤ記憶部４２５に送信しオブジェクトＩＤ記憶部４２５に記憶させる。そして、オブジェクト作成・格納部４１５は、インデックス管理対象情報読み出し部４１７に起動信号を送信しインデックス管理対象情報読み出し部４１７を起動させる。
以上のように、ここではテーブルオブジェクト読み出し部４１３とオブジェクト作成・格納部４１５とページ番号記憶部４２３とを含んで新規データ書き込み手段が構成されている。
【００５５】
具体的に説明すれば、表６に示すようなオブジェクト情報をオブジェクト情報記憶部４２１が記憶していたとすると、オブジェクト作成・格納部４１５は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１に記憶されている内容（表６に示されている「種別」及び「項目のデータ」。即ち、「種別」：テーブルオブジェクト、「項目のデータ」：部署番号：４００、部署名：企画部）を読み出し取得して該取得した内容に従ってオブジェクトを作成する（（「種別」：テーブルオブジェクト、「項目のデータ」：部署番号：４００、部署名：企画部）をデータ記憶部７０１の後述するページに書き込み記憶させるのに適したかたちのデータに加工する。）。そして、オブジェクト作成・格納部４１５は、ページ番号記憶部４２３にアクセスしページ番号記憶部４２３が記憶しているページ番号「３２」を読み出し取得し、該取得したページ番号「３２」に該当するデータ記憶部７０１のページに該作成したオブジェクトを書き込み記憶させる。このデータ記憶部７０１のページ番号「３２」に該当するページに該作成したオブジェクトが書き込まれ記憶されたとき、オブジェクト作成・格納部４１５は、該作成したオブジェクトが書き込まれ記憶されたデータ記憶部７０１のオブジェクトＩＤ（例えば、（３２，３））を検出し取得し、さらに該検出し取得したオブジェクトＩＤ（３２，３）をオブジェクトＩＤ記憶部４２５に送信しオブジェクトＩＤ記憶部４２５に記憶させ、インデックス管理対象情報読み出し部４１７に起動信号を送信しインデックス管理対象情報読み出し部４１７を起動させる。
【００５６】
また、表７に示すようなオブジェクト情報をオブジェクト情報記憶部４２１が記憶していたとすると、オブジェクト作成・格納部４１５は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１に記憶されている内容（表７に示されている「種別」及び「項目のデータ」。即ち、「種別」：テーブルオブジェクトではない、「項目のデータ」：社員番号：７０９５、氏名：笠原次郎、入社日：１９９３．４．１）を読み出し取得して該取得した内容に従ってオブジェクトを作成する（（「種別」：テーブルオブジェクトではない、「項目のデータ」：社員番号：７０９５、氏名：笠原次郎、入社日：１９９３．４．１）をデータ記憶部７０１の後述するページに書き込み記憶させるのに適したかたちのデータに加工する。）。そして、オブジェクト作成・格納部４１５は、ページ番号記憶部４２３にアクセスしページ番号記憶部４２３が記憶しているページ番号「３３」に該当するデータ記憶部７０１のページに該作成したオブジェクトを書き込み記憶させる。このデータ記憶部７０１のページ番号「３３」に該当するページに該作成したオブジェクトが書き込まれ記憶されたとき、オブジェクト作成・格納部４１５は、該作成したオブジェクトが書き込まれ記憶されたデータ記憶部７０１のオブジェクトＩＤ（例えば、（３３，３）））を検出し取得し、さらに該検出し取得したオブジェクトＩＤ（３３，３）をオブジェクトＩＤ記憶部４２５に送信しオブジェクトＩＤ記憶部４２５に記憶させ、インデックス管理対象情報読み出し部４１７に起動信号を送信しインデックス管理対象情報読み出し部４１７を起動させる。
【００５７】
オブジェクト作成・格納部４１５から起動信号を受信したインデックス管理対象情報読み出し部４１７は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１が記憶しているオブジェクト情報（例えば、表６のような情報）に含まれる「格納先となるテーブルのオブジェクトＩＤ」（格納先特定データ）を読み出し取得する。次いで、インデックス管理対象情報読み出し部４１７は、データ記憶部７０１にアクセスし該読み出し取得した「格納先となるテーブルのオブジェクトＩＤ」（格納先特定データ）に該当（合致）するデータ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」（インデックス管理情報記憶手段）を検索する。この検索は、「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に記憶されているオブジェクトの項目「テーブルのオブジェクトＩＤ」の値が、該読み出し取得した「格納先となるテーブルのオブジェクトＩＤ」と同一のものを探すことをいう。
ここでインデックス管理対象情報読み出し部４１７が、前記検索にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当するオブジェクトを見つけることができない場合には、インデックス管理対象情報読み出し部４１７はこのオブジェクト情報がインデックス管理の対象になっていないと判断しオブジェクト格納部４０１の処理を終了する。一方、インデックス管理対象情報読み出し部４１７が、前記検索にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当するオブジェクトを見つけることができた場合には、インデックス管理対象情報読み出し部４１７はこのオブジェクト情報がインデックス管理の対象になっていると判断し以下述べる単位処理を、前記検索にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当すると見いだしたオブジェクト（インデックス管理情報）それぞれについて実施（前記検索にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当すると見いだしたオブジェクトと同じ数だけ該単位処理を行う）し、その後、オブジェクト格納部４０１の処理を終了する。
【００５８】
前記単位処理とは、以下説明する処理をいう。
インデックス管理対象情報読み出し部４１７が、前記検索にて見つけた「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に存するオブジェクト（以下、「該当オブジェクト」という。）に含まれる「階層差」を階層差記憶部４２９に送信し階層差記憶部４２９に記憶させると共に、該当オブジェクトに含まれる「インデックス番号」をインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる。
そして、インデックス管理対象情報読み出し部４１７が、階層差記憶部４２９にアクセスし階層差記憶部４２９が記憶している「階層差」を読み出し取得し該取得した「階層差」が「０」か否か判断し、「階層差」が「０」と判断した場合にはインデックス情報読み出し部４３１に起動信号を送信しインデックス情報読み出し部４３１を起動させ、「階層差」が「０」と判断しない場合（「階層差」が０よりも大きい場合）にはさらにオブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１が記憶しているオブジェクト情報（表６のような情報）の「種別」（種別データ）を読み出しそれが「テーブルオブジェクト」であるときには（新規データがさらに子データを格納することを示すものであるときには）階層差記憶部４２９が記憶している「階層差」の値から１減じた値を階層差記憶部４２９に記憶させ、そしてインデックス管理対象情報書き込み部４１９に起動信号を送信しインデックス管理対象情報書き込み部４１９を起動させる。オブジェクト情報記憶部４２１が記憶しているオブジェクト情報の「種別」が「テーブルオブジェクトではない」であるときには、単位処理を終了する。
以上のように、ここではインデックス管理対象情報読み出し部４１７と階層差記憶部４２９とを含んで、インデックス管理判断手段が構成されている。
【００５９】
具体的に説明すれば、インデックス管理対象情報読み出し部４１７が、前記検索（「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に格納されているオブジェクトの項目「テーブルのオブジェクトＩＤ」の値が、該読み出し取得した「格納先となるテーブルのオブジェクトＩＤ」と同一のものを探すことであるので、「格納先となるテーブルのオブジェクトＩＤ」が表６に示す（３０，０）であり、「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に記憶されているオブジェクトが表５の（ｂ）のようなものであれば、インデックス管理対象情報読み出し部４１７は、該当オブジェクトとして「・テーブルのオブジェクトＩＤ：（３０，０）  ・インデックス番号：１  ・階層差：１」を見いだす。）にて見つけた「該当オブジェクト」に含まれる「階層差」たる「１」を階層差記憶部４２９に送信し階層差記憶部４２９に記憶させると共に、該当オブジェクトに含まれる「インデックス番号」たる「１」をインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる。そして、インデックス管理対象情報読み出し部４１７が、階層差記憶部４２９にアクセスし階層差記憶部４２９が記憶している「階層差」たる「１」を読み出し取得し該取得した「階層差」たる「１」が「０」か否か判断しここでは「階層差」が「０」と判断しないのでさらにオブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１が記憶しているオブジェクト情報（表６の情報）の「種別」たる「テーブルオブジェクト」を読み出しここではそれが「テーブルオブジェクト」であるので階層差記憶部４２９が記憶している「階層差」たる「１」の値から１減じた値である「０」を階層差記憶部４２９に記憶させ、そしてインデックス管理対象情報書き込み部４１９に起動信号を送信しインデックス管理対象情報書き込み部４１９を起動させる。
【００６０】
インデックス管理対象情報読み出し部４１７が「階層差」が「０」と判断した場合に発する起動信号を受信したインデックス情報読み出し部４３１は、インデックス情報記憶部４２７にアクセスしインデックス情報記憶部４２７が記憶している「インデックス番号」（インデックス特定データ）を読み出し取得し、該読み出し取得した「インデックス番号」によりデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」を検索する。この検索によって、該当すると判断されたオブジェクトの全ての項目の値をインデックス情報読み出し部４３１は読み出し取得してインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる。その後、インデックス情報読み出し部４３１は、インデックスへのエントリ挿入部４３３に起動信号を送信しインデックスへのエントリ挿入部４３３を起動させる。
具体的に説明すれば、インデックス情報読み出し部４３１は、インデックス情報記憶部４２７にアクセスしインデックス情報記憶部４２７が記憶している「インデックス番号」たる「１」を読み出し取得し、該読み出し取得した「インデックス番号」たる「１」によりデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」を検索（「ＳＹＳ＿ＩＮＤＩＣＥＳ」の各オブジェクトに含まれる「インデックス番号」が、該読み出し取得した「インデックス番号」に合致するものを探すことをいう。）する。この検索によって、該当すると判断されたオブジェクト（ここでは「ＳＹＳ＿ＩＮＤＩＣＥＳ」には表５（ａ）に示すように１のオブジェクトが記憶されており、その「インデックス番号」たる「１」は、前記読み出し取得した「インデックス番号」たる「１」に合致するので、該１のオブジェクトが該当する。）の全ての項目の値をインデックス情報読み出し部４３１は読み出し取得してインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる（表８にインデックス情報記憶部４２７が記憶する情報を模式的に示す。）。その後、インデックス情報読み出し部４３１は、インデックスへのエントリ挿入部４３３に起動信号を送信しインデックスへのエントリ挿入部４３３を起動させる。
【００６１】
（表８）インデックス情報記憶部４２７の記憶内容
・インデックス名：入社日インデックス
・保有元テーブルのオブジェクトＩＤ：（３０，０）
・Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別：Ｂ−Ｔｒｅｅ
・階層差：１
・キーに対応する項目：入社日
・インデックス番号：１
・インデックスルートページ番号：３８
【００６２】
インデックス情報読み出し部４３１から起動信号を受信したインデックスへのエントリ挿入部４３３は、オブジェクトＩＤ記憶部４２５に記憶されているオブジェクトＩＤと、オブジェクト情報記憶部４２１に記憶されているオブジェクト情報に含まれる「キーに対応する項目」に対応するデータ（値）と、をインデックスへ挿入する。なお、「キーに対応する項目」は、インデックスへのエントリ挿入部４３３が、インデックス情報記憶部４２７にアクセスしてそれが記憶している表８に示すデータから読み出し取得する。この「キーに対応する項目」を取得したインデックスへのエントリ挿入部４３３は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１に記憶されているオブジェクト情報に含まれる「キーに対応する項目」に対応するデータ（値）を読み出し取得する。また、インデックスへの挿入は、一般的なＢ−Ｔｒｅｅ又はＲ−Ｔｒｅｅの構築動作に従って行うことができるので、ここでは説明を省略する（インデックスへの挿入を行う際に必要となるインデックスに関する情報は、インデックス情報記憶部４２７に記憶されている（表８のような情報が記憶されている。）ので、インデックスへのエントリ挿入部４３３は適宜インデックス情報記憶部４２７にアクセスすることでかかる情報を得ることができる。）。
具体的に説明すれば、インデックスへのエントリ挿入部４３３は、オブジェクトＩＤ記憶部４２５に記憶されているオブジェクトＩＤたる（３３，３）と、オブジェクト情報記憶部４２１に記憶されているオブジェクト情報に含まれる「キーに対応する項目」たる「入社日」に対応するデータ（値）（例えば、表７のようなデータがオブジェクト情報記憶部４２１に記憶されていれば「１９９３．４．１」）と、をインデックスへ挿入する。なお、オブジェクトＩＤ記憶部４２５に記憶されているオブジェクトＩＤたる（３３，３）は、表７に示したオブジェクトを格納する際であり、もし表６に示したオブジェクトを格納する場合であれば（３２，３）となる。
以上のように、ここではインデックス情報読み出し部４３１とインデックスへのエントリ挿入部４３３とを含んでインデックス挿入手段が構成されている。
【００６３】
インデックス管理対象情報読み出し部４１７から起動信号を受信したインデックス管理対象情報書き込み部４１９（インデックス管理情報追加手段）は、オブジェクトＩＤ記憶部４２５にアクセスしオブジェクトＩＤ記憶部４２５に記憶されているオブジェクトＩＤ（追加位置データ）を読み出し取得し、インデックス情報記憶部４２７にアクセスしインデックス情報記憶部４２７に記憶されているインデックス番号（インデックス特定データ）を読み出し取得し、階層差記憶部４２９にアクセスし階層差記憶部４２９に記憶されている階層差（１減じたもの）を読み出し取得し、そしてこれら読み出し取得したオブジェクトＩＤ、インデックス番号及び階層差の情報を含むオブジェクトを作成し、該オブジェクトをデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」（インデックス管理情報記憶手段）に書き込み記憶させる。
具体的に説明すれば、インデックス管理対象情報書き込み部４１９は、オブジェクトＩＤ記憶部４２５にアクセスしオブジェクトＩＤ記憶部４２５に記憶されているオブジェクトＩＤたる（３２，３）を読み出し取得し、インデックス情報記憶部４２７にアクセスしインデックス情報記憶部４２７に記憶されているインデックス番号たる「１」を読み出し取得し、階層差記憶部４２９にアクセスし階層差記憶部４２９に記憶されている階層差たる「０」を読み出し取得し、そしてこれら読み出し取得したオブジェクトＩＤ、インデックス番号及び階層差の情報を含むオブジェクトを作成し、該オブジェクトをデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込み記憶させる。この後のデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」の記憶内容を表９に示す。表９と表５（ｂ）とを比較すると、表９ではオブジェクト「・テーブルのオブジェクトＩＤ：（３２，３）、・インデックス番号：１、・階層差：０」が付け加えられたことがわかる。
【００６４】
（表９）「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」の記憶内容
・テーブルのオブジェクトＩＤ：（３０，０）
・インデックス番号：１
・階層差：１
・テーブルのオブジェクトＩＤ：（３２，０）
・インデックス番号：１
・階層差：０
・テーブルのオブジェクトＩＤ：（３２，１）
・インデックス番号：１
・階層差：０
・テーブルのオブジェクトＩＤ：（３２，２）
・インデックス番号：１
・階層差：０
・テーブルのオブジェクトＩＤ：（３２，３）
・インデックス番号：１
・階層差：０
【００６５】
さらに、インデックス検索部５０１について説明する。
図７は、インデックス検索部５０１の詳細な機能ブロック図である。図７を参照して、インデックス検索部５０１について説明する。
インデックス検索部５０１は、機能的には、検索情報受信部５１１とインデックス情報読み出し部５１３とインデックス検索処理部５１５とオブジェクトデータ読み出し部５１７とオブジェクトデータ送信部５１９と検索情報記憶部５２１とインデックス情報記憶部５２３と検索結果記憶部５２５とを有して構成されている。
【００６６】
起動信号送信部２０５から起動信号を受信した検索情報受信部５１１は、ＬＡＮ１１７を経由して直接データを送受信することができる状態になり、まず、検索情報（検索をどのように行うかに関する情報）の入力フォーマットをＬＡＮ１１７を経由して前記図示しない他の情報端末に送信し入力を促す。検索情報の入力フォーマットには、インデックス名（検索に使用するインデックスの名称）、保有元テーブルのオブジェクトＩＤ及び検索条件（比較演算の種別と条件値とによって構成される。）の３項目を含む。該入力フォーマットを受信した前記図示しない他の情報端末は、これらの項目に該当するデータを受け付けた後、受け付けたデータを検索情報受信部５１１へ送信する。この前記図示しない他の情報端末から検索情報受信部５１１へ送信される検索情報の一例を表１０に示す。
なお、表１０では、インデックス定義部３０１の動作を説明する際に用いた「入社日インデックス」を用いて、入社日が「１９８５．４．１」である社員情報を検索するための検索情報を示している。また、これらのうち「インデックス名」や「保有元テーブルのオブジェクトＩＤ」等のように、データ記憶部７０１における記憶データを参照しつつ決すべきものは、必要に応じ閲覧部６０１を通じて前記図示しない他の情報端末がデータ記憶部７０１の記憶内容を閲覧して決定される。
【００６７】
（表１０）検索情報の一例
・インデックス名：「入社日インデックス」
・保有元テーブルのオブジェクトＩＤ：（３０，０）
・検索条件：「１９８５．４．１」に等しい
【００６８】
表１０に示したような検索情報を受信した検索情報受信部５１１は、該受信した検索情報全てを検索情報記憶部５２１へ送信し検索情報記憶部５２１に記憶させ、さらにインデックス情報読み出し部５１３へ起動信号を発しインデックス情報読み出し部５１３を起動させる。
【００６９】
検索情報受信部５１１から起動信号を受信したインデックス情報読み出し部５１３は、検索情報記憶部５２１にアクセスし検索情報記憶部５２１が記憶している検索情報から「インデックス名」と「保有元テーブルのオブジェクトＩＤ」とを読み出し取得する。そして、インデックス情報読み出し部５１３は、データ記憶部７０１にアクセスし該読み出し取得した「インデックス名」及び「保有元テーブルのオブジェクトＩＤ」を用いてデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」（既に説明した表５（ａ）に示すようなデータが記憶されている。）を検索し、これら「インデックス名」と「保有元テーブルのオブジェクトＩＤ」との両方に合致するオブジェクトに含まれる全ての項目の値を読み出し取得する。さらに、インデックス情報読み出し部５１３は、該読み出し取得したオブジェクトに含まれる全ての項目の値をインデックス情報記憶部５２３に送信しインデックス情報記憶部５２３に記憶させる。その後、インデックス情報読み出し部５１３は、インデックス検索処理部５１５へ起動信号を発しインデックス検索処理部５１５を起動させる。
具体的に説明すれば、表１０に示した検索情報に含まれる「インデックス名」たる「入社日インデックス」及び「保有元テーブルのオブジェクトＩＤ」たる（３０，０）を用いてデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」（既に説明した表５（ａ）に示すようなデータが記憶されている。）を検索し、これら「インデックス名」たる「入社日インデックス」及び「保有元テーブルのオブジェクトＩＤ」たる（３０，０）との両方に合致するオブジェクトに含まれる全ての項目の値を読み出し取得する。該読み出し取得したオブジェクトに含まれる全ての項目の値（一例）を表１１に示す。なお、前述のように、インデックス情報読み出し部５１３は、表１１に示したような該読み出し取得したオブジェクトに含まれる全ての項目の値をインデックス情報記憶部５２３に送信しインデックス情報記憶部５２３に記憶させ、インデックス検索処理部５１５へ起動信号を発する。
【００７０】
（表１１）検索情報による「ＳＹＳ＿ＩＮＤＩＣＥＳ」の検索結果
・インデックス名：入社日インデックス
・保有元テーブルのオブジェクトＩＤ：（３０，０）
・Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別：Ｂ−Ｔｒｅｅ
・階層差：１
・キーに対応する項目：入社日
・インデックス番号：１
・インデックスルートページ番号：３８
【００７１】
インデックス情報読み出し部５１３から起動信号を受信したインデックス検索処理部５１５は、インデックス情報記憶部５２３に記憶されている情報（表１１に示したような情報）と検索情報記憶部５２１に記憶されている情報（表１０に示したような情報）とを用いて、該当するインデックスを使用した検索処理（データ記憶部７０１に関する検索）を行う。なお、かかるインデックスを使用した検索処理は、一般的なＢ−Ｔｒｅｅ又はＲ−Ｔｒｅｅの既知の動作方法によって行うことができるので、ここでは説明を省略する。また、ここで行う検索処理（Ｂ−Ｔｒｅｅ又はＲ−Ｔｒｅｅのいずれについても）においては、前記検索情報に合致する１又は２以上のオブジェクトのオブジェクトＩＤをインデックス検索処理部５１５が取得し、さらにインデックス検索処理部５１５が該取得したオブジェクトＩＤを検索結果記憶部５２５へ送信し検索結果記憶部５２５に記憶させる。
その後、インデックス検索処理部５１５は、オブジェクトデータ読み出し部５１７へ起動信号を発しオブジェクトデータ読み出し部５１７を起動させる。
【００７２】
インデックス検索処理部５１５から起動信号を受信したオブジェクトデータ読み出し部５１７は、検索結果記憶部５２５にアクセスし検索結果記憶部５２５が記憶しているオブジェクトＩＤ（前記検索情報に合致する１又は２以上のオブジェクトのオブジェクトＩＤ）を読み出し取得し、該読み出し取得したオブジェクトＩＤに従ってデータ記憶部７０１にアクセスし該オブジェクトＩＤに該当するオブジェクトに関するデータを読み出し取得する。そして、オブジェクトデータ読み出し部５１７は、該読み出し取得したオブジェクトに関するデータをオブジェクトデータ送信部５１９へ送信し、それを受けてオブジェクトデータ送信部５１９は、受信したオブジェクトに関するデータをＬＡＮ１１７を経由して前記図示しない他の情報端末（前記検索情報を送信した情報端末）に送信する（これによって前記図示しない他の情報端末（前記検索情報を送信した情報端末）は、該データを表示することができる。）。
このようなオブジェクトデータ読み出し部５１７によるオブジェクトに関するデータ読み出しと、オブジェクトデータ送信部５１９によるオブジェクトに関するデータの送信と、は、検索結果記憶部５２５に記憶されているオブジェクトＩＤ全てについて行われる。
【００７３】
次いで、本システム１０１の動作について説明する。
図８は、要求受信部２０１の動作を示すフローチャートである。図８を参照して、要求受信部２０１の動作について説明する。
まず、要求受信部２０１の要求信号受信部２０３が、ＬＡＮ１１７を経由して図示しない他の情報端末からアクセスされたか否か判断し（ｓ２５１）、アクセスされたと判断した場合（ＹＥＳ）本システム１０１の起動画面を表示する信号を該図示しない他の情報端末に要求信号受信部２０３は送信し（ｓ２５２）、アクセスされたと判断しない場合（ＮＯ）再びｓ２５１へ戻る。なお、前述のように、この起動画面には、「１、インデックス付け」、「２、オブジェクト追加」、「３、検索」、「４、閲覧」の４項目が表示されるようになっており、該図示しない他の情報端末の使用者が該図示しない他の情報端末を介して（無論、ＬＡＮ１１７を経由する。）「１」、「２」、「３」、「４」のいずれかの信号を要求受信部２０１に入力することで本システム１０１の所望の機能を発揮させることができるようになっているので、要求信号受信部２０３は、該図示しない他の情報通信端末の使用者が、「１」、「２」、「３」、「４」のいずれかの信号を入力することを待つ（ｓ２５３）。該図示しない他の情報端末の使用者から該図示しない他の情報端末を介して「１」、「２」、「３」、「４」の信号が要求信号受信部２０３に入力されたと要求信号受信部２０３が判断すると（ＹＥＳ）、その入力された信号を要求信号受信部２０３が（要求受信部２０１の）起動信号送信部２０５へ送信し（ｓ２５４）、該図示しない他の情報端末の使用者から該図示しない他の情報端末を介して「１」、「２」、「３」、「４」の信号が要求信号受信部２０３に入力されたと要求信号受信部２０３が判断しないと（ＮＯ）再びｓ２５３へ戻る。ｓ２５４にて「１」、「２」、「３」、「４」のいずれかの信号を要求信号受信部２０３から受信した起動信号送信部２０５は、受信した信号の種類を認識し、その種類に応じた起動信号を発する（ｓ２５５）。なお、この種類に応じた起動信号とは、前述したように、要求信号受信部２０３から起動信号送信部２０５が受信した信号が、「１」であればインデックス定義部３０１（インデックス定義情報受信部３１１）に起動信号を発し、「２」であればオブジェクト格納部４０１（オブジェクト情報受信部４１１）に起動信号を発し、「３」であればインデックス検索部５０１（検索情報受信部５１１）に起動信号を発し、「４」であれば閲覧部６０１に起動信号を発することをいう。
その後、作業終了か否か判断し（ｓ２５６）、作業終了と判断すれば（ＹＥＳ）作業を終了し（ＥＮＤ）、作業終了と判断しなければ再びｓ２５１へ戻る。
【００７４】
図９は、インデックス定義部３０１の動作を示すフローチャートである。図９を参照して、インデックス定義部３０１の動作について説明する。
まず、インデックス定義情報受信部３１１（インデックス定義情報受付手段）が、起動信号送信部２０５から起動信号を受信したか否か判断し（ｓ３５１）、起動信号を受信したと判断した場合（ＹＥＳ）インデックス定義情報受信部３１１は、インデックス定義情報の入力フォーマットをＬＡＮ１１７を経由して前記図示しない他の情報端末に送信し（ｓ３５２）入力を促し、起動信号を受信したと判断しない場合（ＮＯ）には再びｓ３５１へ戻る。
本システム１０１の動作ではないが、該入力フォーマットを受信した前記図示しない他の情報端末は、これらの項目に該当するデータを前記図示しない他の情報端末の使用者から受け付けた後、受け付けたデータをインデックス定義情報受信部３１１へ送信する。
ｓ３５２の後、前述のようにして前記図示しない他の情報端末から送信されたインデックス定義情報をインデックス定義情報受信部３１１は受信し、さらにインデックス定義情報受信部３１１は該受信したインデックス定義情報全てをインデックス情報記憶部３２３へ送信しインデックス情報記憶部３２３に記憶させる（ｓ３５３）。なお、インデックス定義情報は、前述したように、インデックス名、保有元テーブルのオブジェクトＩＤ（先祖特定データ）、Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別（インデックスの種類選択）、階層差（先祖特定データにより特定される先祖データ（保有元テーブル）からインデックス付けを行う子孫データの親データまでの階層差）及びキーに対応する項目（インデックス対象項目特定データ）の５項目が含まれており、これらのうち保有元テーブルのオブジェクトＩＤ、階層差及びキーに対応する項目等のように、データ記憶部７０１における記憶データを参照しつつ決すべきものは、必要に応じ閲覧部６０１を通じて前記図示しない他の情報端末がデータ記憶部７０１の記憶内容を閲覧して決定される。
ｓ３５３の後、インデックス定義情報受信部３１１は、ｓ３５３において受信したインデックス定義情報に含まれる保有元テーブルのオブジェクトＩＤ（ここでは（３０，０））を抽出しオブジェクトＩＤ記憶部３２７へ送信しオブジェクトＩＤ記憶部３２７に記憶させ（ｓ３５４）、さらにインデックス番号生成部３１３へ起動信号を発し（ｓ３５５）インデックス番号生成部３１３を起動させる。
【００７５】
ｓ３５５においてインデックス定義情報受信部３１１から発せられた起動信号を受信したインデックス番号生成部３１３（インデックス特定データ取得手段）は、インデックス番号（インデックス特定データ）を決定し、該決定したインデックス番号をインデックス情報記憶部３２３に送信し、そして既にインデックス情報記憶部３２３が記憶しているインデックス定義情報（ｓ３５３においてインデックス情報記憶部３２３に送信される。）に加え、該決定したインデックス番号をインデックス情報記憶部３２３に記憶させる（ｓ３５６）。なお、インデックス番号生成部３１３がインデックス番号を決定する方法は、前述のように、「ＳＹＳ＿ＩＮＤＩＣＥＳ」に格納されている情報（オブジェクト）に付されたインデックス番号を検索しこのインデックス番号のうち最大値に１を加えてインデックス番号を決定する（「ＳＹＳ＿ＩＮＤＩＣＥＳ」に格納されている情報（オブジェクト）がなければインデックス番号として「１」を決定する。なお、ここでは「１」を決定したものとして、後の説明を行う。）。
その後、インデックス番号生成部３１３はインデックス作成部３１５に起動信号を発し（ｓ３５７）、インデックス作成部３１５を起動させる。
【００７６】
インデックス番号生成部３１３からｓ３５７にて発せられた起動信号を受信したインデックス作成部３１５は、データ記憶部７０１の記憶領域にインデックスデータを記録するためのインデックスルートページを作成し、該作成したインデックスルートページのページ番号（ここでは「３８」）をインデックス情報記憶部３２３に送信し、そして既にインデックス情報記憶部３２３が記憶しているインデックス定義情報とインデックス番号に加え、インデックスルートページのページ番号をインデックス情報記憶部３２３に記憶させる（ｓ３５８）。なお、ここにいうインデックスルートページの作成とは、具体的には、データベースファイルを１ページのサイズだけ拡張し、その拡張した領域をインデックスを構成するページとして初期化する（エントリ数が０であるインデックスページとする）ことをいう。また、インデックスルートページは、データ記憶部７０１の記憶領域のうち記憶末尾に続くように作成される（ここではインデックスルートページがページ番号「３８」に作成されたものとした。）。
その後、インデックス作成部３１５は、インデックス情報書き込み部３１７に起動信号を発し（ｓ３５９）、インデックス情報書き込み部３１７を起動させる。
【００７７】
インデックス作成部３１５からｓ３５９にて発せられた起動信号を受信したインデックス情報書き込み部３１７は、インデックス情報記憶部３２３に記憶されている情報（上記した表２に示す情報）をインデックス情報記憶部３２３から読み出し取得し、該取得した情報（表２）をデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」に書き込む（ｓ３６０）。そして、インデックス情報書き込み部３１７は、該取得した情報（表２）に含まれる「階層差」（ここでは「１」）を階層差記憶部３２５に書き込む（ｓ３６１）。
さらに、インデックス情報書き込み部３１７は、インデックス管理対象情報書き込み部３１９に起動信号を発し（ｓ３６２）、インデックス管理対象情報書き込み部３１９を起動させる。
【００７８】
インデックス情報書き込み部３１７からｓ３６２にて発せられた起動信号を受信したインデックス管理対象情報書き込み部３１９は、オブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（インデックス定義情報受信部３１１から受信（ｓ３５４）し記憶したものであり、ここでは保有元テーブルのオブジェクトＩＤたる（３０，０））と、インデックス情報記憶部３２３が記憶しているインデックス番号（ここでは「１」）を読み出し取得したインデックス番号（ここでは「１」）と、階層差記憶部３２５が記憶している階層差（ここでは「１」）を読み出し取得した階層差（ここでは「１」）と、を有する情報を作成すると共に、該作成された情報をデータ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」（インデックス管理情報記憶手段）に書き込む（ｓ３６３）。
ｓ３６３にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に前記情報を書き込んだインデックス管理対象情報書き込み部３１９は、該書き込んだ情報に含まれている階層差が「０」か否か判断し（ｓ３６４）、「０」であれば（ＹＥＳ）インデックスへのエントリ挿入部３２９へ起動信号を発し（ｓ３６５）インデックスへのエントリ挿入部３２９を起動させ、「０」でなければ（０より大きい値であれば）（ＮＯ）オブジェクト情報読み出し部３２１へ起動信号を発し（ｓ３６６）オブジェクト情報読み出し部３２１を起動させ、後述の処理Ａを行う。
【００７９】
ｓ３６４において階層差が「０」と判断されインデックス管理対象情報書き込み部３１９からｓ３６５にて発せられた起動信号を受信したインデックスへのエントリ挿入部３２９は、まずオブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（前記した例では保有元テーブルのオブジェクトＩＤたる（３０，０）をオブジェクトＩＤ記憶部３２７が記憶しているが、これは表２に示すように、階層差「１」であるので、前記した例では階層差が「０」と判断されることはない。）を読み出し取得し、該取得したテーブルのオブジェクトＩＤが指すテーブル（処理対象テーブル）に格納されている（含まれる）全てのオブジェクトについて、それぞれに対応するエントリ（該オブジェクトのオブジェクトＩＤと「キーに対応する項目」の値との組）をインデックスに挿入する（ｓ３６７）。なお、インデックスへのエントリ挿入部３２９は、処理対象テーブルをデータ記憶部７０１にアクセスして読み出し、該読み出した処理対象テーブルに格納されている（含まれている）オブジェクトに含まれる「キーに対応する項目」に相当する値を用いて該エントリを作成することができる。なお、該エントリをインデックスに挿入する方法は、一般的なＢ−Ｔｒｅｅ又はＲ−Ｔｒｅｅの構築動作に従って行うことができるので、ここでは説明を省略する（また、該エントリをインデックスに挿入する際に必要となるインデックスに関する情報は、インデックスへのエントリ挿入部３２９がインデックス情報記憶部３２３へ適宜アクセスして読み出し取得すればよい。）。
【００８０】
ｓ３６６において発せられた起動信号を受信したオブジェクト情報読み出し部３２１等が行う処理Ａについて説明する。図１０は、処理Ａの詳細を示すフローチャートである。図１０を参照して、処理Ａについて説明する。
まずオブジェクト情報読み出し部３２１は、階層差記憶部３２５にアクセスし階層差記憶部３２５が記憶している階層差の値から１を減じた数を階層差として階層差記憶部３２５に上書きして記憶させる（ｓ３８１）。
その後、オブジェクト情報読み出し部３２１は、オブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（ここでは（３０，０））を読み出し取得し、該取得したテーブルのオブジェクトＩＤ（ここでは（３０，０））が指すテーブル（処理対象テーブル）に従属している（格納されている）全てのオブジェクトを１つずつ順次読み出す。そして、それぞれのオブジェクトに記録されている「種別」（そのオブジェクトがテーブルオブジェクトであるか否か）の内容を判定し、テーブルオブジェクトでは無い場合は処理対象テーブルの次のオブジェクトを読み出す。テーブルオブジェクトである場合は次の処理（処理Ｂ）を行う（ここでは（総務部）社員テーブル、（営業部）社員テーブル及び（製造部）社員テーブルについて処理Ｂを行う。）。
【００８１】
処理Ｂは、次のごとき処理である。
まず、オブジェクト情報読み出し部３２１は、オブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（ここでは（３０，０））をオブジェクトＩＤ記憶部３２７にアクセスし読み出し取得し、該読み出し取得したテーブルのオブジェクトＩＤ（ここでは（３０，０））が指すテーブル（処理対象テーブル）に格納されている（含まれる）テーブルオブジェクトのうちこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤをオブジェクトＩＤ記憶部３２７に記憶させる（ｓ３８２）（このことは、これから処理しようとするテーブルオブジェクトが「処理対象テーブル」になることを示す。）。なお、オブジェクト情報読み出し部３２１は、オブジェクトＩＤ記憶部３２７に記憶されているオブジェクトＩＤに該当するテーブルを読み出すことで、そのテーブルに格納されているオブジェクトのページ番号を取得し、そのページ番号のページに記録されているオブジェクトを読み込んでゆくことで、該テーブルに格納されているオブジェクトのオブジェクトＩＤ（ｓ３８２において、オブジェクトＩＤ記憶部３２７に記憶させるもの）及びその内容を取得できる（例えば、図５の例では、オブジェクトＩＤ記憶部３２７に記憶されているオブジェクトＩＤたる（３０，０）に該当するテーブル「部署テーブル（３０，０）」を読み出すことで、そのテーブル「部署テーブル（３０，０）」に格納されているオブジェクトのページ番号（３２）を取得し、そのページ番号（３２）のページに記録されているオブジェクトを読み込んでゆくことで、該テーブル「部署テーブル（３０，０）」に格納されているオブジェクトのオブジェクトＩＤ（３２，０）、（３２，１）、（３２，２）及びその内容を取得することができる。）。
さらに、オブジェクト情報読み出し部３２１は、インデックス管理対象情報書き込み部３１９に起動信号を発し（ｓ３８３）、インデックス管理対象情報書き込み部３１９を起動させる。
【００８２】
オブジェクト情報読み出し部３２１からｓ３８３にて発せられた起動信号を受信したインデックス管理対象情報書き込み部３１９は、オブジェクトＩＤ記憶部３２７が記憶しているこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（オブジェクト情報読み出し部３２１によって記憶させられたものであり、例えば、（３２，０））と、インデックス情報記憶部３２３が記憶しているインデックス番号（ここでは「１」）を読み出し取得したインデックス番号（ここでは「１」）と、階層差記憶部３２５が記憶している階層差（ここでは「０」）を読み出し取得した階層差（ここでは「０」）と、を有する情報を作成すると共に、該作成された情報をデータ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込む（ｓ３８４）。
ｓ３８４にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に前記情報を書き込んだインデックス管理対象情報書き込み部３１９は、該書き込んだ情報に含まれている階層差が「０」か否か判断し（ｓ３８５）、「０」であれば（ＹＥＳ）インデックスへのエントリ挿入部３２９へ起動信号を発し（ｓ３８７）インデックスへのエントリ挿入部３２９を起動させ、「０」でなければ（０より大きい値であれば）（ＮＯ）オブジェクト情報読み出し部３２１へ起動信号を発し（ｓ３８６）オブジェクト情報読み出し部３２１を起動させ、再び処理Ａを行う。
【００８３】
ｓ３８５において階層差が「０」と判断されインデックス管理対象情報書き込み部３１９からｓ３８７にて発せられた起動信号を受信したインデックスへのエントリ挿入部３２９は、まずオブジェクトＩＤ記憶部３２７が記憶しているこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（例えば、（３２，０））を読み出し取得し、該取得したこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（例えば、（３２，０））が指すテーブル（ここでの処理対象テーブル）に格納されている（含まれている）全てのオブジェクトについて、それぞれに対応するエントリ（該オブジェクトのオブジェクトＩＤと「キーに対応する項目」の値との組）をインデックスに挿入する（ｓ３８８）。なお、インデックスへのエントリ挿入部３２９は、これから処理しようとするテーブルのオブジェクトＩＤに該当するテーブル（処理対象テーブル）をデータ記憶部７０１にアクセスして読み出し、該読み出した処理対象テーブルに格納されている（含まれている）オブジェクトに含まれる「キーに対応する項目」（インデックス対象項目特定データ）に相当する値を用いて該エントリを作成することができる。なお、該エントリをインデックスに挿入する方法は、一般的なＢ−Ｔｒｅｅ又はＲ−Ｔｒｅｅの構築動作に従って行うことができるので、ここでは説明を省略する。
【００８４】
以上が処理Ｂであり、かかる処理Ｂは、処理Ｂが開始される際にオブジェクトＩＤ記憶部３２７が記憶しているオブジェクトＩＤが指すテーブル（処理対象テーブル）に従属している（格納されている）全てのテーブルオブジェクトについて行われる。
全ての処理Ｂが完了した後、オブジェクト情報読み出し部３２１は階層差記憶部３２５にアクセスし階層差記憶部３２５が記憶している階層差の値に１を加えた数を階層差として階層差記憶部３２５に上書きして記憶させる（ｓ３８９）（即ち、これによって階層差記憶部３２５が記憶している階層差が「１」増加する。）。
以上のように、ｓ３８１からｓ３８９によって（処理Ｂの繰り返しを含む）処理Ａが構成されている。
かかる処理Ａが完了すると、図９に示すようにインデックス定義部３０１の動作が終了する。
なお、上述したように、ここではインデックス管理対象情報書き込み部３１９とオブジェクト情報読み出し部３２１と階層差記憶部３２５とオブジェクトＩＤ記憶部３２７とインデックスへのエントリ挿入部３２９とを含んで、インデックス付け手段が構成されている。
【００８５】
かかる処理Ａについて具体的に説明をしておく。
まずｓ３８１においてオブジェクト情報読み出し部３２１が階層差記憶部３２５にアクセスした際、階層差記憶部３２５が記憶している階層差の値が「１」だとすると（この階層差が「１」であり０ではないので、前述のｓ３６４において「ＮＯ」と判断された。）、オブジェクト情報読み出し部３２１は、階層差記憶部３２５が記憶している階層差たる「１」の値から１を減じた数（即ち「０」）を階層差として階層差記憶部３２５に上書きして記憶させる（ｓ３８１）。
その後、オブジェクト情報読み出し部３２１は、オブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（ここでは（３０，０））が指すテーブル（処理対象テーブル）に格納されている（含まれている）全てのテーブルオブジェクト（例えば、前述の図５に示したものであれば、「（総務部）社員テーブル」（オブジェクトＩＤ：（３２，０））、「（営業部）社員テーブル」（オブジェクトＩＤ：（３２，１））、「（製造部）社員テーブル」（オブジェクトＩＤ：（３２，２）））について次の処理Ｂを行う。
【００８６】
処理Ｂは、次のように行われる。
まず、オブジェクト情報読み出し部３２１は、オブジェクトＩＤ記憶部３２７が記憶しているテーブルのオブジェクトＩＤ（ここでは（３０，０））をオブジェクトＩＤ記憶部３２７にアクセスし読み出し取得し、該読み出し取得したテーブルのオブジェクトＩＤ（ここでは（３０，０））が指すテーブル（処理対象テーブル）に格納されている（含まれている）テーブルオブジェクトのうちこれから処理しようとするテーブルオブジェクト（例えば、「（総務部）社員テーブル」）のオブジェクトＩＤ（ここでは（３２，０））をオブジェクトＩＤ記憶部３２７に記憶させる（ｓ３８２）（このことは、これから処理しようとするテーブルオブジェクトたる「（総務部）社員テーブル」が「処理対象テーブル」になることを示す。）。なお、オブジェクト情報読み出し部３２１は、オブジェクトＩＤ記憶部３２７に記憶されているオブジェクトＩＤに該当するテーブルを読み出すことで、そのテーブルに格納されているオブジェクトのページ番号を取得し、そのページ番号のページに記録されているオブジェクトを読み込んでゆくことで、該テーブルに格納されているオブジェクトのオブジェクトＩＤ（ｓ３８２において、オブジェクトＩＤ記憶部３２７に記憶させるもの）及びその内容を取得できる（例えば、図５の例では、オブジェクトＩＤ記憶部３２７に記憶されているオブジェクトＩＤたる（３０，０）に該当するテーブル「部署テーブル（３０，０）」を読み出すことで、そのテーブル「部署テーブル（３０，０）」に格納されているオブジェクトのページ番号（３２）を取得し、そのページ番号（３２）のページに記録されているオブジェクトを読み込んでゆくことで、該テーブル「部署テーブル（３０，０）」に格納されているオブジェクトのオブジェクトＩＤ（３２，０）、（３２，１）、（３２，２）及びその内容を取得することができる。）。
さらに、オブジェクト情報読み出し部３２１は、インデックス管理対象情報書き込み部３１９に起動信号を発し（ｓ３８３）、インデックス管理対象情報書き込み部３１９を起動させる。
【００８７】
オブジェクト情報読み出し部３２１から起動信号を受信したインデックス管理対象情報書き込み部３１９は、オブジェクトＩＤ記憶部３２７が記憶しているこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（ここでは（３２，０））と、インデックス情報記憶部３２３が記憶しているインデックス番号（ここでは「１」）を読み出し取得したインデックス番号（ここでは「１」）と、階層差記憶部３２５が記憶している階層差（ｓ３８１において「１」から「０」に変更されている。）を読み出し取得した階層差（ここでは「０」）と、を有する情報を作成すると共に、該作成された情報をデータ記憶部７０１のシステムテーブル「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込む（ｓ３８４）。
ｓ３８４にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に前記情報を書き込んだインデックス管理対象情報書き込み部３１９は、該書き込んだ情報に含まれている階層差が「０」か否か判断し（ｓ３８５）、ここでは「０」であるので（ＹＥＳ）インデックスへのエントリ挿入部３２９へ起動信号を発し（ｓ３８７）インデックスへのエントリ挿入部３２９を起動させる。なお、前述したように、ｓ３８５において、階層差が「０」でなければ（０より大きい値であれば）（ＮＯ）オブジェクト情報読み出し部３２１へ起動信号を発し（ｓ３８６）オブジェクト情報読み出し部３２１を起動させ、再び処理Ａを行う。
【００８８】
ｓ３８５において階層差が「０」と判断されインデックス管理対象情報書き込み部３１９からｓ３８７にて発せられた起動信号を受信したインデックスへのエントリ挿入部３２９は、まずオブジェクトＩＤ記憶部３２７が記憶しているこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（ここでは（３２，０））を読み出し取得し、該取得したこれから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（ここでは（３２，０））が指すテーブル（ここでは「（総務部）社員テーブル」）に格納されている全てのオブジェクトについて、それぞれに対応するエントリ（該オブジェクトのオブジェクトＩＤと「キーに対応する項目」の値との組をいい、例えば、図５に含まれる例でいえば、（３３，０）と「１９８２．４．１」、（３３，１）と「１９８３．４．１」、（３３，２）と「１９９０．３．５」）をインデックスに挿入する（ｓ３８８）。なお、インデックスへのエントリ挿入部３２９は、これから処理しようとするテーブルオブジェクトのオブジェクトＩＤ（ここでは（３２，０））に該当するテーブル（ここでは「（総務部）社員テーブル」）をデータ記憶部７０１にアクセスして読み出し、該読み出した処理対象テーブルに格納されている（含まれている）オブジェクトに含まれる「キーに対応する項目」に相当する値を用いて該エントリを作成することができる。なお、該エントリをインデックスに挿入する方法は、一般的なＢ−Ｔｒｅｅ又はＲ−Ｔｒｅｅの構築動作に従って行うことができるので、ここでは説明を省略する。
【００８９】
以上が処理Ｂであり、かかる処理Ｂは、処理Ｂが開始される際にオブジェクトＩＤ記憶部３２７が記憶しているオブジェクトＩＤ（ここでは（３０，０））が指すテーブル（処理対象テーブル）に従属している（格納されている）全てのテーブルオブジェクト（「（総務部）社員テーブル」（オブジェクトＩＤ：（３２，０））、「（営業部）社員テーブル」（オブジェクトＩＤ：（３２，１））、「（製造部）社員テーブル」（オブジェクトＩＤ：（３２，２）））の全てについて行われる。
全ての処理Ｂが完了した後、オブジェクト情報読み出し部３２１は階層差記憶部３２５にアクセスし階層差記憶部３２５が記憶している階層差（ここでは「０」）の値に１を加えた数（ここでは「１」）を階層差として階層差記憶部３２５に上書きして記憶させる（ｓ３８９）（即ち、これによって階層差記憶部３２５が記憶している階層差が「１」増加する。）。
かかる処理Ａ（処理Ｂの繰り返しを含む）が完了すると、図９に示すようにインデックス定義部３０１の動作が終了する。
【００９０】
図１１は、オブジェクト格納部４０１の動作を示すフローチャートである。図１１を参照して、オブジェクト格納部４０１の動作について説明する。
まず、オブジェクト情報受信部４１１（追加情報受付手段）が、起動信号送信部２０５から起動信号を受信したか否か判断し（ｓ４５１）、起動信号を受信したと判断した場合（ＹＥＳ）オブジェクト情報受信部４１１は、オブジェクト情報（新しく追加する情報）の入力フォーマットをＬＡＮ１１７を経由して前記図示しない他の情報端末に送信し（ｓ４５２）入力を促し、起動信号を受信したと判断しない場合（ＮＯ）には再びｓ４５１へ戻る。
本システム１０１の動作ではないが、該入力フォーマットを受信した前記図示しない他の情報端末は、これらの項目に該当するデータを前記図示しない他の情報端末の使用者から受け付けた後、受け付けたデータをオブジェクト情報受信部４１１へ送信する。なお、オブジェクト情報は、種別（新規に追加作成するオブジェクトがテーブルオブジェクトであるか否か、つまり新規に追加されるデータがさらに子データを格納するか否かを示すものであり、本発明にいう種別データである。）、項目のデータ（オブジェクトの全ての項目のデータであり、階層構造データに追加する新規データである。）、格納先となるテーブルのオブジェクトＩＤ（新規に追加作成するオブジェクトの格納先となるテーブルのオブジェクトＩＤ、即ち、新規データたる該項目のデータを子データとして格納すべき親データのデータ特定データである格納先特定データである。）を含んで構成されている。なお、これらのうち格納先となるテーブルのオブジェクトＩＤ等のように、データ記憶部７０１における記憶データを参照しつつ決すべきものは、必要に応じ閲覧部６０１を通じて前記図示しない他の情報端末がデータ記憶部７０１の記憶内容を閲覧して決定される。
ｓ４５２の後、前述のようにして前記図示しない他の情報端末から送信されたオブジェクト情報をオブジェクト情報受信部４１１は受信し、さらにオブジェクト情報受信部４１１は該受信したオブジェクト情報全てをオブジェクト情報記憶部４２１へ送信しオブジェクト情報記憶部４２１に記憶させる（ｓ４５３）。
ｓ４５３の後、オブジェクト情報受信部４１１は、テーブルオブジェクト読み出し部４１３に起動信号を送信し（ｓ４５４）テーブルオブジェクト読み出し部４１３を起動させる。
【００９１】
オブジェクト情報受信部４１１からｓ４５４において発せられた起動信号を受信したテーブルオブジェクト読み出し部４１３は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１が記憶している「格納先となるテーブルのオブジェクトＩＤ」を読み出し取得する。そして、テーブルオブジェクト読み出し部４１３は、オブジェクト情報記憶部４２１から取得した「格納先となるテーブルのオブジェクトＩＤ」（格納先特定データ）に該当するオブジェクトＩＤに記憶されているテーブルオブジェクト（新たに作成するオブジェクトの格納先となる）をデータ記憶部７０１のオブジェクトＩＤに記録されているページから読み出し取得する。さらに、テーブルオブジェクト読み出し部４１３は、該読み出し取得したテーブルオブジェクトから新しいオブジェクトを記憶すべきページのページ番号を取得し、ページ番号記憶部４２３に送信しページ番号記憶部４２３に記憶させる（ｓ４５５）。そして、テーブルオブジェクト読み出し部４１３は、オブジェクト作成・格納部４１５に起動信号を送信し（ｓ４５６）オブジェクト作成・格納部４１５を起動させる。
ｓ４５５及びｓ４５６を具体的に説明すれば、前述した表６に示すようなオブジェクト情報をオブジェクト情報記憶部４２１が記憶していたとすると、テーブルオブジェクト読み出し部４１３は、オブジェクト情報記憶部４２１が記憶している「格納先となるテーブルのオブジェクトＩＤ」たる（３０，０）を取得し、そして「格納先となるテーブルのオブジェクトＩＤ」（３０，０）に該当するオブジェクトＩＤに記憶されているテーブルオブジェクトをデータ記憶部７０１のオブジェクトＩＤに記録されているページ（３０）から読み出し取得し、該読み出し取得したテーブルオブジェクトに含まれる新しいオブジェクトを記録すべきページのページ番号（３２）を取得する。さらに、テーブルオブジェクト読み出し部４１３は、この取得した新しいオブジェクト（新しい企画部の情報）を記憶すべきページのページ番号たる「３２」をページ番号記憶部４２３に送信しページ番号記憶部４２３に記憶させ（ｓ４５５）、オブジェクト作成・格納部４１５に起動信号を送信し（ｓ４５６）オブジェクト作成・格納部４１５を起動させる。
【００９２】
テーブルオブジェクト読み出し部４１３からｓ４５６にて発せられた起動信号を受信したオブジェクト作成・格納部４１５は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１に記憶されている内容（種別、項目のデータ）を読み出し取得して該取得した内容に従ってオブジェクトを作成する（ｓ４５７）。そして、オブジェクト作成・格納部４１５は、ページ番号記憶部４２３にアクセスしページ番号記憶部４２３が記憶しているページ番号を読み出し取得し、該取得したページ番号に該当するデータ記憶部７０１のページにｓ４５７にて作成した該オブジェクトを書き込み記憶させると共に、このデータ記憶部７０１のページ番号記憶部４２３が記憶しているページ番号に該当するページに該オブジェクトが書き込まれ記憶されたとき、オブジェクト作成・格納部４１５は、該オブジェクトが書き込まれ記憶されたデータ記憶部７０１のオブジェクトＩＤを検出し取得し、さらに該検出し取得したオブジェクトＩＤをオブジェクトＩＤ記憶部４２５に送信しオブジェクトＩＤ記憶部４２５に記憶させる（ｓ４５８）。
そして、オブジェクト作成・格納部４１５は、インデックス管理対象情報読み出し部４１７に起動信号を送信し（ｓ４５９）インデックス管理対象情報読み出し部４１７を起動させる。
ここではテーブルオブジェクト読み出し部４１３とオブジェクト作成・格納部４１５とページ番号記憶部４２３とを含んで新規データ書き込み手段が構成されている。
【００９３】
ｓ４５７及びｓ４５８を具体的に説明すれば、表６に示すようなオブジェクト情報をオブジェクト情報記憶部４２１が記憶していたとすると、オブジェクト作成・格納部４１５は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１に記憶されている内容（「種別」：テーブルオブジェクト、「項目のデータ」：部署番号：４００、部署名：企画部）を読み出し取得して該取得した内容に従ってオブジェクトを作成する（（「種別」：テーブルオブジェクト、「項目のデータ」：部署番号：４００、部署名：企画部）をデータ記憶部７０１の後述するページに書き込み記憶させるのに適したかたちのデータに加工する。）（ｓ４５７）。
そして、オブジェクト作成・格納部４１５は、ページ番号記憶部４２３にアクセスしページ番号記憶部４２３が記憶しているページ番号「３２」を読み出し取得し、該取得したページ番号「３２」に該当するデータ記憶部７０１のページに該作成したオブジェクトを書き込み記憶させる。このデータ記憶部７０１のページ番号「３２」に該当するページに該作成したオブジェクトが書き込まれ記憶されたとき、オブジェクト作成・格納部４１５は、該作成したオブジェクトが書き込まれ記憶されたデータ記憶部７０１のオブジェクトＩＤ（例えば、（３２，３））を検出し取得し、さらに該検出し取得したオブジェクトＩＤ（３２，３）をオブジェクトＩＤ記憶部４２５に送信しオブジェクトＩＤ記憶部４２５に記憶させる（ｓ４５８）。
ｓ４５８の後、オブジェクト作成・格納部４１５は、インデックス管理対象情報読み出し部４１７に起動信号を送信し（ｓ４５９）インデックス管理対象情報読み出し部４１７を起動させる。
【００９４】
オブジェクト作成・格納部４１５からｓ４５９にて発せられた起動信号を受信したインデックス管理対象情報読み出し部４１７は、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１が記憶しているオブジェクト情報（例えば、表６のような情報）に含まれる「格納先となるテーブルのオブジェクトＩＤ」（格納先特定データ）を読み出し取得する。次いで、インデックス管理対象情報読み出し部４１７は、データ記憶部７０１にアクセスし該読み出し取得した「格納先となるテーブルのオブジェクトＩＤ」に該当するデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」（インデックス管理情報記憶手段）を検索する（ｓ４６０）。この検索は、「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に格納されているオブジェクトの項目「テーブルのオブジェクトＩＤ」（データ特定データ）の値が、該読み出し取得した「格納先となるテーブルのオブジェクトＩＤ」（格納先特定データ）と同一のものを探すことをいう。
ここでインデックス管理対象情報読み出し部４１７が、前記検索にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当するオブジェクトが存するか否か判断し（ｓ４６１）、該当するオブジェクトが存しないと判断した場合（ＮＯ）インデックス管理対象情報読み出し部４１７はこのオブジェクト情報がインデックス管理の対象になっていないと判断しオブジェクト格納部４０１の処理を終了する。一方、インデックス管理対象情報読み出し部４１７が、ｓ４６０の前記検索にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当するオブジェクトが存すると判断した場合（ＹＥＳ）インデックス管理対象情報読み出し部４１７はこのオブジェクト情報がインデックス管理の対象になっていると判断し以下述べる単位処理を、ｓ４６０の前記検索にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当すると見いだしたオブジェクトそれぞれについて実施する（前記検索にて「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当すると見いだしたオブジェクトと同じ数だけ該単位処理を行う）。
【００９５】
前記単位処理とは、以下説明する処理をいう。
インデックス管理対象情報読み出し部４１７が、ｓ４６０の前記検索にて見つけた「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に存するオブジェクト（以下、「該当オブジェクト」という。）に含まれる「階層差」を階層差記憶部４２９に送信し階層差記憶部４２９に記憶させると共に、該当オブジェクトに含まれる「インデックス番号」をインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる（ｓ４６２）。
そして、インデックス管理対象情報読み出し部４１７が、階層差記憶部４２９にアクセスし階層差記憶部４２９が記憶している「階層差」を読み出し取得し該取得した「階層差」が「０」か否か判断し（ｓ４６３）、「階層差」が「０」と判断した場合（ＹＥＳ）にはインデックス情報読み出し部４３１に起動信号を送信し（ｓ４６４）インデックス情報読み出し部４３１を起動させ、「階層差」が「０」と判断しない場合（ＮＯ）には後述のｓ４６５へ行く。
ｓ４６５では、インデックス管理対象情報読み出し部４１７が、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１が記憶しているオブジェクト情報（表６のような情報）の「種別」を読み出しそれが「テーブルオブジェクト」であるか否か判断し（ｓ４６５）、「種別」が「テーブルオブジェクト」であると判断した場合（ＹＥＳ）には階層差記憶部４２９が記憶している「階層差」の値から１減じた値を階層差記憶部４２９に記憶させ（ｓ４６６）、そしてインデックス管理対象情報書き込み部４１９に起動信号を送信し（ｓ４６７）インデックス管理対象情報書き込み部４１９を起動させる。また、ｓ４６５において「種別」が「テーブルオブジェクト」であると判断しない場合（ＮＯ）には、再びｓ４６１へ戻る。
以上のように、ここではインデックス管理対象情報読み出し部４１７と階層差記憶部４２９とを含んで、インデックス管理判断手段が構成されている。
【００９６】
ｓ４６０以降の動作を具体的に説明すれば、インデックス管理対象情報読み出し部４１７が、ｓ４６０にて「格納先となるテーブルのオブジェクトＩＤ」と「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に格納されているオブジェクトの「テーブルのオブジェクトＩＤ」とが同じになる「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に格納されているオブジェクトを探すので、「格納先となるテーブルのオブジェクトＩＤ」が表６に示す（３０，０）であり、「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に格納されているオブジェクトが表５の（ｂ）のようなものであれば、インデックス管理対象情報読み出し部４１７は、該当オブジェクトとして「・テーブルのオブジェクトＩＤ：（３０，０）  ・インデックス番号：１  ・階層差：１」を見いだすのでｓ４６１において「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当するオブジェクトが存すると判断し（ＹＥＳ）ｓ４６２へ行く。ｓ４６２では、インデックス管理対象情報読み出し部４１７が、ｓ４６０の前記検索にて見つけた「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に存する該当オブジェクトに含まれる「階層差」たる「１」を階層差記憶部４２９に送信し階層差記憶部４２９に記憶させると共に、該当オブジェクトに含まれる「インデックス番号」たる「１」をインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる（ｓ４６２）。
ｓ４６２の後、インデックス管理対象情報読み出し部４１７が、階層差記憶部４２９にアクセスし階層差記憶部４２９が記憶している「階層差」たる「１」を読み出し取得し該取得した「階層差」たる「１」が「０」か否か判断し（ｓ４６３）ここでは「階層差」が「０」と判断しないので（ＮＯ）後述のｓ４６５へ行く。ｓ４６５では、インデックス管理対象情報読み出し部４１７が、オブジェクト情報記憶部４２１にアクセスしオブジェクト情報記憶部４２１が記憶しているオブジェクト情報（表６のような情報）の「種別」を読み出しそれが「テーブルオブジェクト」であるか否か判断し（ｓ４６５）、ここではそれが「テーブルオブジェクト」であるので「種別」が「テーブルオブジェクト」であると判断し（ＹＥＳ）階層差記憶部４２９が記憶している「階層差」の値から１減じた値たる「０」を階層差記憶部４２９に記憶させ（ｓ４６６）、そしてインデックス管理対象情報書き込み部４１９に起動信号を送信し（ｓ４６７）インデックス管理対象情報書き込み部４１９を起動させる。
【００９７】
インデックス管理対象情報読み出し部４１７からｓ４６７にて発せられた起動信号を受信したインデックス管理対象情報書き込み部４１９（インデックス管理情報追加手段）は、オブジェクトＩＤ記憶部４２５にアクセスしオブジェクトＩＤ記憶部４２５に記憶されているオブジェクトＩＤを読み出し取得し、インデックス情報記憶部４２７にアクセスしインデックス情報記憶部４２７に記憶されているインデックス番号を読み出し取得し、階層差記憶部４２９にアクセスし階層差記憶部４２９に記憶されている階層差を読み出し取得し、そしてこれら読み出し取得したオブジェクトＩＤ、インデックス番号及び階層差の情報を含むオブジェクトを作成し、該オブジェクトをデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込み記憶させる（ｓ４７１）。
ｓ４７１の後、再びｓ４６１に戻る。
ｓ４７１を具体的に説明すれば、インデックス管理対象情報書き込み部４１９は、オブジェクトＩＤ記憶部４２５にアクセスしオブジェクトＩＤ記憶部４２５に記憶されているオブジェクトＩＤたる（３２，３）を読み出し取得し、インデックス情報記憶部４２７にアクセスしインデックス情報記憶部４２７に記憶されているインデックス番号たる「１」を読み出し取得し、階層差記憶部４２９にアクセスし階層差記憶部４２９に記憶されている階層差たる「０」を読み出し取得し、そしてこれら読み出し取得したオブジェクトＩＤ、インデックス番号及び階層差の情報を含むオブジェクトを作成し、該オブジェクトをデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に書き込み記憶させる（表１２）。
【００９８】
（表１２）  「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」の記憶例
・テーブルのオブジェクトＩＤ：（３２，３）
・インデックス番号：１
・階層差：０
【００９９】
一方、ｓ４６３にてインデックス管理対象情報読み出し部４１７が「階層差」が「０」と判断した場合にｓ４６４にて発する起動信号を受信したインデックス情報読み出し部４３１は、インデックス情報記憶部４２７にアクセスしインデックス情報記憶部４２７が記憶している「インデックス番号」を読み出し取得し、該読み出し取得した「インデックス番号」によりデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」を検索する。この検索によって、該当すると判断されたオブジェクトの全ての項目の値をインデックス情報読み出し部４３１は読み出し取得してインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる（ｓ４６８）。
以下、ｓ４６８を具体的に説明するが、オブジェクト情報受信部４１１が表７に示すオブジェクト情報を受信し、該受信したオブジェクト情報をオブジェクト情報記憶部４２１が記憶している場合の具体例を用いる。オブジェクト格納部４０１のｓ４６０に至るまでの動作については、オブジェクト情報受信部４１１が表６に示すオブジェクト情報を受信したとする具体例を用いて既に説明した動作と同様であるため説明を省略する。オブジェクト情報受信部４１１が表７に示すオブジェクト情報を受信した場合と、表６に示すオブジェクト情報を受信した場合との異なる点は、各処理の対象となるデータの内容と新たに作成したオブジェクトをデータ記憶部７０１に記録する時の記録位置だけであり、具体的には以下の（１）〜（６）である。即ち、（１）ｓ４５３においてオブジェクト情報記憶部４２１が記憶するオブジェクト情報が表６ではなく表７に示す情報となること、（２）ｓ４５５においてオブジェクト情報記憶部４２１から取得する「格納先となるテーブルのオブジェクトＩＤ」が（３０，０）ではなく（３２，０）となること、（３）ｓ４５５において格納先となるテーブルオブジェクトをデータ記憶部７０１から読み出すことにより取得される新しいオブジェクトを記録すべきページのページ番号が（３２）ではなく（３３）となること、（４）ｓ４５７においてオブジェクト情報記憶部４２１に記憶されている内容に従ってオブジェクトを作成する時の内容が（「種別」：テーブルオブジェクト、「項目のデータ」：部署番号：４００、部署名：企画部）ではなく（「種別」：テーブルオブジェクトではない、「項目のデータ」：社員番号：７０９５、氏名：笠原次郎、入社日：１９９３．４．１）となること、（５）ｓ４５８においてページ番号記憶部４２３から取得するページ番号、及び作成したオブジェクトをデータ記憶部７０１に記録する時の記録位置を示すページ番号が「３２」ではなく「３３」となること、（６）ｓ４５８において作成したオブジェクトをデータ記憶部７０１に記録した時に検出し取得されるオブジェクトＩＤが（３２，３）ではなく（３３，３）となること、である。以下は、ｓ４６０からの説明である。
「格納先となるテーブルのオブジェクトＩＤ」が表７に示す（３２，０）であり、「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に記憶されているオブジェクトが表５の（ｂ）のようなものであれば、インデックス管理対象情報読み出し部４１７は、該当オブジェクトとして「・テーブルのオブジェクトＩＤ：（３２，０）  ・インデックス番号：１  ・階層差：０」を見いだすのでｓ４６１において「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に該当するオブジェクトが存すると判断し（ＹＥＳ）ｓ４６２へ行く。
【０１００】
ｓ４６２では、インデックス管理対象情報読み出し部４１７が、ｓ４６０の前記検索にて見つけた「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」に存する該当オブジェクトに含まれる「階層差」たる「０」を階層差記憶部４２９に送信し階層差記憶部４２９に記憶させると共に、該当オブジェクトに含まれる「インデックス番号」たる「１」をインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる（ｓ４６２）。
ｓ４６２の後、インデックス管理対象情報読み出し部４１７が、階層差記憶部４２９にアクセスし階層差記憶部４２９が記憶している「階層差」たる「０」を読み出し取得し該取得した「階層差」たる「０」が「０」か否か判断し（ｓ４６３）ここでは「階層差」が「０」と判断されるので（ＹＥＳ）インデックス情報読み出し部４３１に起動信号を送信し（ｓ４６４）インデックス情報読み出し部４３１を起動させる。
ｓ４６４にて発する起動信号を受信したインデックス情報読み出し部４３１は、インデックス情報記憶部４２７にアクセスしインデックス情報記憶部４２７が記憶している「インデックス番号」たる「１」を読み出し取得し、該読み出し取得した「インデックス番号」によりデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」を検索する。この検索によって、該当すると判断されたオブジェクトの全ての項目の値をインデックス情報読み出し部４３１は読み出し取得してインデックス情報記憶部４２７に送信しインデックス情報記憶部４２７に記憶させる（ｓ４６８）。このｓ４６８の後、インデックス情報記憶部４２７の記憶内容を表１３に示す。
【０１０１】
（表１３）  インデックス情報記憶部４２７の記憶内容
・インデックス名：入社日インデックス
・保有元テーブルのオブジェクトＩＤ：（３０，０）
・Ｂ−Ｔｒｅｅ／Ｒ−Ｔｒｅｅの別：Ｂ−Ｔｒｅｅ
・階層差：１
・キーに対応する項目：入社日
・インデックス番号：１
・インデックスルートページ番号：３８
【０１０２】
ｓ４６８の後、インデックス情報読み出し部４３１は、インデックスへのエントリ挿入部４３３に起動信号を送信し（ｓ４６９）インデックスへのエントリ挿入部４３３を起動させる。
インデックス情報読み出し部４３１からｓ４６９にて発せられた起動信号を受信したインデックスへのエントリ挿入部４３３は、オブジェクトＩＤ記憶部４２５に記憶されているオブジェクトＩＤ（３３，３）と、オブジェクト情報記憶部４２１に記憶されているオブジェクト情報に含まれる「キーに対応する項目」（入社日）に対応するデータ（１９９３．４．１）と、をインデックスへ挿入する（ｓ４７０）。
ｓ４７０の後、再びｓ４６１へ行く。
以上のように、ここではインデックス情報読み出し部４３１とインデックスへのエントリ挿入部４３３とを含んでインデックス挿入手段が構成されている。
【０１０３】
図１２は、インデックス検索部５０１の動作を示すフローチャートである。図１２を参照して、インデックス検索部５０１の動作について説明する。
まず、検索情報受信部５１１が、起動信号送信部２０５から起動信号を受信したか否か判断し（ｓ５５１）、起動信号を受信したと判断した場合（ＹＥＳ）検索情報受信部５１１は、検索情報（検索をどのように行うかに関する情報）の入力フォーマットをＬＡＮ１１７を経由して前記図示しない他の情報端末に送信し（ｓ５５２）入力を促し、起動信号を受信したと判断しない場合（ＮＯ）には再びｓ５５１へ戻る。
本システム１０１の動作ではないが、該入力フォーマットを受信した前記図示しない他の情報端末は、これらの項目に該当するデータを前記図示しない他の情報端末の使用者から受け付けた後、受け付けたデータを検索情報受信部５１１へ送信する。なお、検索情報には、インデックス名（検索に使用するインデックスの名称）、保有元テーブルのオブジェクトＩＤ及び検索条件（比較演算の種別と条件値とによって構成される。）の３項目が含まれるが、これらのうちインデックス名やオブジェクトＩＤ等のように、データ記憶部７０１における記憶データを参照しつつ決すべきものは、必要に応じ閲覧部６０１を通じて前記図示しない他の情報端末がデータ記憶部７０１の記憶内容を閲覧して決定される。
【０１０４】
検索情報受信部５１１は、前記図示しない他の情報端末から前記検索情報を受信し、該受信した検索情報全てを検索情報記憶部５２１へ送信し検索情報記憶部５２１に記憶させ（ｓ５５３）、さらに検索情報受信部５１１はインデックス情報読み出し部５１３へ起動信号を発し（ｓ５５４）インデックス情報読み出し部５１３を起動させる。
検索情報受信部５１１からｓ５５４にて発せられた起動信号を受信したインデックス情報読み出し部５１３は、検索情報記憶部５２１にアクセスし検索情報記憶部５２１が記憶している検索情報から「インデックス名」と「保有元テーブルのオブジェクトＩＤ」とを読み出し取得する（ｓ５５５）。そして、インデックス情報読み出し部５１３は、データ記憶部７０１にアクセスし該読み出し取得した「インデックス名」及び「保有元テーブルのオブジェクトＩＤ」を用いてデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」（既に説明した表５（ａ）に示すようなデータが記憶されている。）を検索し、これら「インデックス名」と「保有元テーブルのオブジェクトＩＤ」との両方に合致するオブジェクトに含まれる全ての項目の値を読み出し取得し、さらに、インデックス情報読み出し部５１３は、該読み出し取得したオブジェクトに含まれる全ての項目の値をインデックス情報記憶部５２３に送信しインデックス情報記憶部５２３に記憶させる（ｓ５５６）。
その後、インデックス情報読み出し部５１３は、インデックス検索処理部５１５へ起動信号を発し（ｓ５５７）インデックス検索処理部５１５を起動させる。
【０１０５】
ｓ５５６を具体的に説明すれば、既述の表１０に示した検索情報に含まれる「インデックス名」たる「入社日インデックス」及び「保有元テーブルのオブジェクトＩＤ」たる（３０，０）を用いてデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＩＣＥＳ」（既に説明した表５（ａ）に示すようなデータが記憶されている。）を検索し、これら「インデックス名」たる「入社日インデックス」及び「保有元テーブルのオブジェクトＩＤ」たる（３０，０）との両方に合致するオブジェクトに含まれる全ての項目の値を読み出し取得する。該読み出し取得したオブジェクトに含まれる全ての項目の値の一例を既述の表１１に示した。その後、インデックス情報読み出し部５１３は、表１１に示したような該読み出し取得したオブジェクトに含まれる全ての項目の値をインデックス情報記憶部５２３に送信しインデックス情報記憶部５２３に記憶させ（以上、ｓ５５６）、インデックス検索処理部５１５へ起動信号を発する（ｓ５５７）。
【０１０６】
インデックス情報読み出し部５１３からｓ５５７にて発せられた起動信号を受信したインデックス検索処理部５１５は、インデックス情報記憶部５２３に記憶されている情報と検索情報記憶部５２１に記憶されている情報とを用いて、該当するインデックスを使用した検索処理を行い、該検索処理の結果を検索結果記憶部５２５へ送信し検索結果記憶部５２５に記憶させる（ｓ５５８）。なお、かかるインデックスを使用した検索処理は、一般的なＢ−Ｔｒｅｅ又はＲ−Ｔｒｅｅの既知の動作方法によって行うことができることは前述の通りであり、ここで行う検索処理（Ｂ−Ｔｒｅｅ又はＲ−Ｔｒｅｅのいずれについても）においては、前記検索情報に合致する１又は２以上のオブジェクトのオブジェクトＩＤをインデックス検索処理部５１５が取得し、さらにインデックス検索処理部５１５が該取得したオブジェクトＩＤを検索結果記憶部５２５へ送信し検索結果記憶部５２５に記憶させる（即ち、ｓ５５８において、検索結果記憶部５２５へ送信され検索結果記憶部５２５に記憶される前記検索処理の結果とは、ここでは具体的には前記検索情報に合致する１又は２以上のオブジェクトのオブジェクトＩＤをいう。）。
その後、インデックス検索処理部５１５は、オブジェクトデータ読み出し部５１７へ起動信号を発し（ｓ５５９）オブジェクトデータ読み出し部５１７を起動させる。
【０１０７】
インデックス検索処理部５１５からｓ５５９にて発せられた起動信号を受信したオブジェクトデータ読み出し部５１７は、次に示す処理Ｆを検索結果記憶部５２５に記憶されているオブジェクトＩＤ全てについて行う。
即ち、処理Ｆは、オブジェクトに関するデータ読み出し（ｓ５６０）とオブジェクトに関するデータの送信（ｓ５６１）とを有している。具体的には、オブジェクトデータ読み出し部５１７は、検索結果記憶部５２５にアクセスし検索結果記憶部５２５が記憶しているオブジェクトＩＤ（前記検索情報に合致する１又は２以上のオブジェクトのオブジェクトＩＤ）を読み出し取得し、該読み出し取得したオブジェクトＩＤに従ってデータ記憶部７０１にアクセスし該オブジェクトＩＤに該当するオブジェクトに関するデータを読み出し取得する（ｓ５６０）。そして、オブジェクトデータ読み出し部５１７は、ｓ５６０にて該読み出し取得したオブジェクトに関するデータをオブジェクトデータ送信部５１９へ送信し、それを受けてオブジェクトデータ送信部５１９は、受信したオブジェクトに関するデータをＬＡＮ１１７を経由して前記図示しない他の情報端末（前記検索情報を送信した情報端末）に送信する（ｓ５６１）（これによって前記図示しない他の情報端末（前記検索情報を送信した情報端末）は、該データを表示することができる。）。
このようなオブジェクトデータ読み出し部５１７によるオブジェクトに関するデータ読み出し（ｓ５６０）とオブジェクトデータ送信部５１９によるオブジェクトに関するデータの送信（ｓ５６１）とから構成される処理Ｆが、検索結果記憶部５２５に記憶されているオブジェクトＩＤ全てについて行われ、インデックス検索部５０１の動作が終了する。
【０１０８】
以上説明したように、本システム１０１は、先祖データ（上記の説明では、ページ３０に記憶された部署テーブルが該当する。）から下位に位置する子孫データ（上記の説明では、ページ３２に記憶された３つの部署に対応した社員テーブルが該当する。）へと辿ることができるよう親データにその子データを特定する子特定データ（ここではページ３０に記憶された部署テーブルに記載されたページ番号（３２）が該当する。）が関係付けられた階層構造データにインデックス付けを行う情報管理装置である。
そして、本システム１０１は、該階層構造データを、その各構成データ（上記の説明では、部署テーブルや３つの部署に対応した社員テーブル等が該当する。）が記憶されている記憶位置を含むデータ特定データ（ここではＯＩＤが該当する。）に関連付けて記憶するデータ記憶手段たるデータ記憶部７０１と、これからインデックス付けを行う子孫データに対する先祖データ（上記説明では、ページ３０に記憶された部署テーブルが該当する。）のデータ特定データたる先祖特定データである保有元テーブルのオブジェクトＩＤと、該先祖特定データにより特定される先祖データから該インデックス付けを行う子孫データの親データ（上記の説明では、ページ３２に記憶された３つの部署に対応した社員テーブルが該当する。）までの階層差（上記説明では、「１」）と、を受け付けるインデックス定義情報受付手段たるインデックス定義情報受信部３１１と、該先祖特定データ（保有元テーブルのオブジェクトＩＤ）に従って該先祖データ（ページ３０に記憶された部署テーブル）を該データ記憶手段（データ記憶部７０１）において特定し、該受け付けられた階層差（「１」）が０でなければ該特定された先祖データ（ページ３０に記憶された部署テーブル）から該階層差（「１」）の分の下位の子孫データ（ページ３２に記憶された３つの部署に対応した社員テーブルが該当する。）まで該子特定データ（部署テーブルに記載されたページ番号（３２））に従って辿り該下位の子孫データの子データ（ページ３２に記憶された３つの部署に対応した社員テーブルに格納されている社員情報が該当する。）の少なくとも一部の内容（入社日）にインデックス付けを行う、インデックス付け手段（インデックス管理対象情報書き込み部３１９とオブジェクト情報読み出し部３２１と階層差記憶部３２５とオブジェクトＩＤ記憶部３２７とインデックスへのエントリ挿入部３２９とを含んで構成されている。）と、を備えてなる。
【０１０９】
また、本システム１０１は、インデックス定義情報受付手段たるインデックス定義情報受信部３１１が、前記少なくとも一部の内容を特定するインデックス対象項目特定データたるキーに対応する項目「入社日」をさらに受け付け、インデックス付け手段（インデックス管理対象情報書き込み部３１９とオブジェクト情報読み出し部３２１と階層差記憶部３２５とオブジェクトＩＤ記憶部３２７とインデックスへのエントリ挿入部３２９とを含んで構成されている。）が、該受け付けられたインデックス対象項目特定データたるキーに対応する項目「入社日」によって特定されるもの「入社日」にインデックス付けを行うものである。
【０１１０】
さらに、本システム１０１は、これから生成されるインデックスを特定するインデックス特定データたるインデックス番号を取得するインデックス特定データ取得手段たるインデックス番号生成部３１３と、インデックス付け手段（インデックス管理対象情報書き込み部３１９とオブジェクト情報読み出し部３２１と階層差記憶部３２５とオブジェクトＩＤ記憶部３２７とインデックスへのエントリ挿入部３２９とを含んで構成されている。）が、前記受け付けられた階層差が０であれば前記特定された先祖データ（ページ３０に記憶された部署テーブル）のデータ特定データ（ここではＯＩＤ）と階層差が０であることを示す階層差データと該インデックス特定データ取得手段（インデックス番号生成部３１３）により該取得されたインデックス特定データ（インデックス番号）とを関連付けてインデックス管理情報として記憶させ、一方、前記受け付けられた階層差（ここでは「１」）が０でなければ前記特定された先祖データ（ページ３０に記憶された部署テーブル）と前記階層差「１」の分の下位の子孫データ（ページ３２に記憶された３つの部署に対応した社員テーブル）との両データ（ここではページ３０に記憶された部署テーブルとページ３２に記憶された３つの部署に対応した社員テーブルとの両データ）及び該両データの間に存する中間データ（ここでは存しない）の各々のデータについて該各々のデータのデータ特定データ（ここではＯＩＤ）と、前記階層差「１」の分の下位の子孫データ（ページ３２に記憶された３つの部署に対応した社員テーブル）から該各々のデータまでの階層差をあらわす階層差データと、該インデックス特定データ取得手段（インデックス番号生成部３１３）により該取得されたインデックス特定データ（インデックス番号）と、を関連付けてインデックス管理情報として記憶させるインデックス管理情報記憶手段たるデータ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」と、を、さらに備えてなる。
【０１１１】
また、本システム１０１は、前記階層構造データに追加する新規データたる前記項目のデータと、前記階層構造データにおいて該新規データを子データとして格納すべき親データのデータ特定データである格納先特定データ（格納先となるテーブルのオブジェクトＩＤ）と、該新規データがさらに子データを格納するか否かを示す種別データたる前記種別（新規データがテーブルオブジェクトであるか否か）と、を受け付ける追加情報受付手段たるオブジェクト情報受信部４１１と、該格納先特定データ（格納先となるテーブルのオブジェクトＩＤ）に示される親データの子データとして該新規データを記憶し、該記憶された新規データのデータ特定データを追加位置データ（ここではＯＩＤ）として取得する新規データ書き込み手段（テーブルオブジェクト読み出し部４１３とオブジェクト作成・格納部４１５とページ番号記憶部４２３とを含んで構成される。）と、該格納先特定データ（格納先となるテーブルのオブジェクトＩＤ）と合致するデータ特定データを有する前記インデックス管理情報を前記インデックス管理情報記憶手段（データ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」）から読み出し、該読み出されたインデックス管理情報に含まれる階層差データが０か否か判断するインデックス管理判断手段（インデックス管理対象情報読み出し部４１７と階層差記憶部４２９とを含んで構成される）と、該インデックス管理判断手段によって階層差データが０と判断された場合に該読み出されたインデックス管理情報に含まれる前記インデックス特定データが示すインデックスに、該記録した新規データに含まれる少なくとも一部の内容にインデックス付けするインデックス挿入手段（インデックス情報読み出し部４３１とインデックスへのエントリ挿入部４３３とを含んで構成される。）と、該インデックス管理判断手段によって階層差データが０でなくかつ該種別データが該新規データがさらに子データを格納することを示すものであればデータ特定データとして該追加位置データ（ＯＩＤ）と前記階層差データとして該階層差データから１減じたものと該読み出した情報に含まれるインデックス特定データとを関連付けてインデックス管理情報として前記インデックス管理情報記憶手段（データ記憶部７０１の「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」）に記憶させるインデックス管理情報追加手段（インデックス管理対象情報書き込み部４１９）と、をさらに備える。
【図面の簡単な説明】
【図１】一実施形態の本システムのハードウエア構成を示す概略ブロック図である。
【図２】本システムの機能ブロック図である。
【図３】要求受信部を詳細に示した機能ブロック図である。
【図４】インデックス定義部の詳細な機能ブロック図である。
【図５】データ記憶部における記憶領域において、記録されている部署テーブルと社員テーブルとを模式的に示した図である。
【図６】オブジェクト格納部の詳細な機能ブロック図である。
【図７】インデックス検索部の詳細な機能ブロック図である。
【図８】要求受信部の動作を示すフローチャートである。
【図９】インデックス定義部の動作を示すフローチャートである。
【図１０】ｓ３６６において発せられた起動信号を受信したオブジェクト情報読み出し部等が行う処理Ａの詳細を示すフローチャートである。
【図１１】オブジェクト格納部の動作を示すフローチャートである。
【図１２】インデックス検索部の動作を示すフローチャートである。
【図１３】データ記憶部における記憶領域において、記録されているシステムテーブル「ＳＹＳ＿ＩＮＤＩＣＥＳ」と「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」とを模式的に示した図である。
【図１４】データ記憶部７０１における記憶領域において、記録されている「ＳＹＳ＿ＩＮＤＩＣＥＳ」と「ＳＹＳ＿ＩＮＤＥＸＥＤＯＢＪＳ」とを模式的に示した図である。
【図１５】インデックス付けの一例を概念的に示す図である。
【図１６】インデックス付けがされたデータベースを概念的に示す図である。
【図１７】図１６に示したデータベースに各社員が所属する部署名を併記する場合の一例を示す図である。
【図１８】図１７（ｂ）のテーブルが社員テーブルを格納している様子を示す概念図である。
【符号の説明】
１０１      本システム
１１３      キーボード
１１５      モニタ
１１９      ハードディスク
１１０ａ    ＣＰＵ
１１０ｂ    ＲＡＭ
１１０ｃ    ＲＯＭ
１１０ｄ    インターフェイス
１１７      ＬＡＮ
２０１      要求受信部
２０３      要求信号受信部
２０５      起動信号送信部
３０１      インデックス定義部
３１１      インデックス定義情報受信部
３１３      インデックス番号生成部
３１５      インデックス作成部
３１７      インデックス情報書き込み部
３１９      インデックス管理対象情報書き込み部
３２１      オブジェクト情報読み出し部
３２３      インデックス情報記憶部
３２５      階層差記憶部
３２７      オブジェクトＩＤ記憶部
３２９      インデックスへのエントリ挿入部
４０１      オブジェクト格納部
４１１      オブジェクト情報受信部
４１３      テーブルオブジェクト読み出し部
４１５      オブジェクト作成・格納部
４１７      インデックス管理対象情報読み出し部
４１９      インデックス管理対象情報書き込み部
４２１      オブジェクト情報記憶部
４２３      ページ番号記憶部
４２５      オブジェクトＩＤ記憶部
４２７      インデックス情報記憶部
４２９      階層差記憶部
４３１      インデックス情報読み出し部
４３３      インデックスへのエントリ挿入部
５０１      インデックス検索部
５１１      検索情報受信部
５１３      インデックス情報読み出し部
５１５      インデックス検索処理部
５１７      オブジェクトデータ読み出し部
５１９      オブジェクトデータ送信部
５２１      検索情報記憶部
５２３      インデックス情報記憶部
５２５      検索結果記憶部
６０１      閲覧部
７０１      データ記憶部
【図１】
0003662533.tif 000002
【図２】
0003662533.tif 000003
【図３】
0003662533.tif 000004
【図４】
0003662533.tif 000005
【図５】
0003662533.tif 000006
【図６】
0003662533.tif 000007
【図７】
0003662533.tif 000008
【図８】
0003662533.tif 000009
【図９】
0003662533.tif 000010
【図１０】
0003662533.tif 000011
【図１１】
0003662533.tif 000012
【図１２】
0003662533.tif 000013
【図１３】
0003662533.tif 000014
【図１４】
0003662533.tif 000015
【図１５】
0003662533.tif 000016
【図１６】
0003662533.tif 000017
【図１７】
0003662533.tif 000018
【図１８】
0003662533.tif 000019