(57)【要約】【課題】データベース装置においてメモリの使用効率を高める。【解決手段】データベース装置１０に設けられた共有テーブル１において各共有テーブル行は、検索のためのキー範囲情報１１、該当の一群データが記憶されるデータベース装置１０を示す配置先情報１２、当該データベース装置１０において当該実データ群に対応して設けられるキャビネット４に対して割り当てられるキャビネット論理通番１３、該当の実データ群に付与されるアドレス１４、当該一群データの中で当該実データ群の次の順位を付与された実データ群のアドレス１４を示す次順アドレス１５、を含む。【選択図】図２
2015041207.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベース装置からなる分散データベースシステムを構成するデータベース装置であって、
いずれかのデータベース装置に記憶される一群の実データである一群データの全部または一部である実データ群のそれぞれにつき、当該一群データを検索するためキー範囲情報（１１）、当該一群データが記憶されるデータベース装置を示す配置先情報（１２）、当該データベース装置において当該実データ群に対応して設けられるキャビネットに対し全データベース装置で一意となるように割り当てられるキャビネット論理通番（１３）、当該実データ群に付与されるアドレス（１４）、当該一群データの中で当該実データ群の次の順位を付与された実データ群のアドレス（１４）を示す次順アドレス（１５）、を含む共有テーブル行を備える共有テーブル（１）と、
自データベース装置に設けられるキャビネットのそれぞれにつき、当該キャビネットに割り当てられるキャビネット論理通番（２１）、当該キャビネットに対し自データベース装置で一意となるように割り当てられるキャビネット物理通番（２２）、を含む変換テーブル行を備える変換テーブル（２）と、
自データベース装置に設けられるキャビネット（４）であり、且つ、当該キャビネットに対応する実データ群の中での実データのそれぞれにつき、当該実データ群の中で当該実データを一意に示すキャビネットインデクス（４１）、自データベース装置の中での当該実データの位置を示す実データポインタ（４２）、含むキャビネット行を備えるキャビネット（４）と、
一群データごとに設けられ、当該一群データに含まれる実データのそれぞれにつき、当該実データを検索するためのキー（５１）、当該実データに対応するキャビネットインデクス（４１）を辿るためのインデクス（５２）、を含むキーテーブル行を備えるキーテーブル（５）と、
自データベース装置において実データを個々に記憶するためのデータベース行からなり、当該データベース行に対し、当該データベース行の位置を示す実データインデクス（６１）、当該データベース行に記憶すべき実データ（６２）、を記憶させるためのデータベース（６）とを備え、
共有テーブル（１）のキャビネット論理通番（１３）と変換テーブル（２）のキャビネット論理通番（２１）は連携する番号であって、
変換テーブル（２）のキャビネット物理通番（２２）とキャビネット（４）のキャビネット物理通番は連携する番号であって、
キャビネット（４）のキャビネットインデクス（４１）とキーテーブル（５）のインデクス（５２）は連携する番号であって、
キャビネット（４）の実データポインタ（４２）とデータベース（６）の実データインデクス（６１）は連携する番号であることを特徴とするデータベース装置。
【請求項２】
各キー範囲情報（１１）の共通部分を幹（７１）とし非共通部分を枝（７２）とした木形状で当該各キー範囲情報（１１）を表現してなる検索ツリー（７）を備え、各枝（７２）に対して当該枝のキー範囲情報（１１）に対応するアドレス（１４）を対応づけ、入力された情報に対応する枝（７２）を検索ツリー（７）から検索し、当該枝（１１２）に対応づけられたアドレス（１４）を検索する
ことを特徴とする請求項１記載のデータベース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース装置に関するものである。
【背景技術】
【０００２】
従来においては、データ大容量化や拡張性、信頼性等の観点からデータを分散格納する分散データベースシステムの適用が進んでいる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】鶴見 俊輔、阿部  健二、佐々木  潤子、日本電信電話株式会社 ＮＴＴネットワークサービスシステム研究所、「分散ＤＢシステムにおけるデータ管理方式の一検討」、２０１３年電子情報通信学会総合大会
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図１０は、分散データベースシステムを構成する１つのデータベース装置における内部構成の一例を示す。
【０００５】
データベース装置１０Ａは、１つの共有テーブル１、１つの変換テーブル２、１つの空塞状況テーブル３、１つ以上のキャビネット４、キャビネット４ごとのキーテーブル５および１つのデータベース６を備える。
【０００６】
共有テーブル１には、分散データベースシステムを構成するいずれかのデータベース装置１０Ａに記憶される一群の実データ（以下、一群データという）のそれぞれにつき、共有テーブル行を備える。
【０００７】
共有テーブル行は、一群データを検索するためキー範囲情報１１、一群データが記憶されるデータベース装置１０Ａを示す配置先情報１２、当該データベース装置１０Ａにおいて当該一群データに対応して設けられるキャビネット４に対し全データベース装置で一意となるように割り当てられるキャビネット論理通番１３、を含む。
【０００８】
変換テーブル２は、変換テーブル２を備えるデータベース装置（以下、自データベース装置のように呼称する）に設けられるキャビネット４のそれぞれにつき、変換テーブル行を備える。
【０００９】
変換テーブル行は、該当のキャビネット４に割り当てられるキャビネット論理通番（変換テーブル行においては、キャビネット論理通番２１という）、該当のキャビネット４に対し自データベース装置で一意となるように割り当てられるキャビネット物理通番２２、を含む。
【００１０】
空塞状況テーブル３は、自データベース装置におけるキャビネット４の状況を示すものであり、各キャビネット４につき、空塞状況テーブル行を備える。
【００１１】
空塞状況テーブル行は、該当のキャビネット４に割り当てられるキャビネット物理通番（空塞状況テーブル行においては、キャビネット物理通番３１という）、該当のキャビネットにおける実データポインタ４２（詳しくは後述する）の有無を示す空塞状況フラグ３２、を含む。
【００１２】
キャビネット４には、自データベース装置で一意となるようにキャビネット物理通番が割り当てられる。
【００１３】
また、キャビネット４は、所定数（Ｎ）のキャビネット行を備える。
【００１４】
キャビネット行は、当初からキャビネットインデクス４１を含み、後に実データポインタ４２を含むように更新される。
【００１５】
キャビネット行は、キャビネット行を含むキャビネット４に対応する一群データの中での１つの実データに対応するものである。キャビネットインデクス４１は、当該一群の中で当該実データを一意に示すものである。実データポインタ４２は、自データベース装置のデータベース６の中で当該実データを保持するデータベース行の位置を示すものである。
【００１６】
キーテーブル５は、対応するキャビネット４に記憶される実データのそれぞれにつき、キーテーブル行を備える。キーテーブル行は、該当の実データを検索するためのキー５１、当該実データに対応するキャビネットインデクス４１を辿るためのインデクス５２、を含む。
【００１７】
データベース６は、自データベース装置において実データを個々に記憶するためのデータベース行からなる。
【００１８】
データベース行は、当初から実データインデクス６１を含み、後に実データ（データベース行においては、実データ６２という）、識別子６３、を含むように更新される。
【００１９】
実データインデクス６１は、当該実データインデクス６１を含むデータベース行のデータベース６における位置を示すものである。
【００２０】
識別子６３は、当該識別子６３を含むデータベース行内の実データインデクス６１と同じ実データポインタ４２を含むキャビネット４に割り当てられたキャビネット物理通番と同じキャビネット物理通番を含む変換テーブル行内のキャビネット論理通番２１と同じキャビネット論理通番（識別子６３においては、キャビネット論理通番Ｎ１という）、当該キャビネット４において当該実データポインタ４２を含むキャビネット行内のキャビネットインデクス４１と同じキャビネットインデクス（識別子６３においては、キャビネットインデクスＮ２という）、を含む。
【００２１】
共有テーブル１のキャビネット論理通番１３と変換テーブル２のキャビネット論理通番２１は連携する番号である。
【００２２】
変換テーブル２のキャビネット物理通番２２とキャビネット４のキャビネット物理通番は連携する番号である。
【００２３】
キャビネット４のキャビネットインデクス４１とキーテーブル５のインデクス５２は連携する番号である。
【００２４】
キャビネット４の実データポインタ４２とデータベース６の実データインデクス６１は連携する番号である。
【００２５】
上記説明において、一群データに対応してキャビネット４が設けられると記載したが、これは、一群データに対してキャビネット４が１対１で設けられるという意味である。
【００２６】
この一群データについて言えば、その中の実データ数は、一群データごとに異なる。よって、キャビネット行の数Ｎ（各キャビネット４で共通）は、実データの最大数以上となるように設定される。つまり、各キャビネット４は、実データの最大数以上のキャビネット行を予め有していなければならない。
【００２７】
言い換えれば、実データの数の少ない一群データに対応するキャビネット４であっても、最大数以上のキャビネット行を予め有していなければならず、その多くのキャビネット行が使用されない。キャビネット行は、メモリ（記憶素子）で構成されるので、使用しないメモリが多く必要となり、メモリの使用効率が悪い。
【００２８】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、データベース装置においてメモリの使用効率を高める技術を提供することにある。
【課題を解決するための手段】
【００２９】
上記の課題を解決するために、本発明は、複数のデータベース装置からなる分散データベースシステムを構成するデータベース装置であって、いずれかのデータベース装置に記憶される一群の実データである一群データの全部または一部である実データ群のそれぞれにつき、当該一群データを検索するためキー範囲情報（１１）、当該一群データが記憶されるデータベース装置を示す配置先情報（１２）、当該データベース装置において当該実データ群に対応して設けられるキャビネットに対し全データベース装置で一意となるように割り当てられるキャビネット論理通番（１３）、当該実データ群に付与されるアドレス（１４）、当該一群データの中で当該実データ群の次の順位を付与された実データ群のアドレス（１４）を示す次順アドレス（１５）、を含む共有テーブル行を備える共有テーブル（１）と、自データベース装置に設けられるキャビネットのそれぞれにつき、当該キャビネットに割り当てられるキャビネット論理通番（２１）、当該キャビネットに対し自データベース装置で一意となるように割り当てられるキャビネット物理通番（２２）、を含む変換テーブル行を備える変換テーブル（２）と、自データベース装置に設けられるキャビネット（４）であり、且つ、当該キャビネットに対応する実データ群の中での実データのそれぞれにつき、当該実データ群の中で当該実データを一意に示すキャビネットインデクス（４１）、自データベース装置の中での当該実データの位置を示す実データポインタ（４２）、含むキャビネット行を備えるキャビネット（４）と、一群データごとに設けられ、当該一群データに含まれる実データのそれぞれにつき、当該実データを検索するためのキー（５１）、当該実データに対応するキャビネットインデクス（４１）を辿るためのインデクス（５２）、を含むキーテーブル行を備えるキーテーブル（５）と、自データベース装置において実データを個々に記憶するためのデータベース行からなり、当該データベース行に対し、当該データベース行の位置を示す実データインデクス（６１）、当該データベース行に記憶すべき実データ（６２）、を記憶させるためのデータベース（６）とを備え、共有テーブル（１）のキャビネット論理通番（１３）と変換テーブル（２）のキャビネット論理通番（２１）は連携する番号であって、変換テーブル（２）のキャビネット物理通番（２２）とキャビネット（４）のキャビネット物理通番は連携する番号であって、キャビネット（４）のキャビネットインデクス（４１）とキーテーブル（５）のインデクス（５２）は連携する番号であって、キャビネット（４）の実データポインタ（４２）とデータベース（６）の実データインデクス（６１）は連携する番号であることを特徴とする。
【発明の効果】
【００３０】
本発明によれば、キャビネット行の数を少なく設定でき、よって、使用されないキャビネット行を少なくでき、メモリの使用効率を高めることができる。。
【図面の簡単な説明】
【００３１】
【図１】本実施の形態に係る分散データベースシステムの一例を示す図である。
【図２】各データベース装置１０の概略構成を示す図である。
【図３】分散データベースシステムにおいて新たな一群データを記憶させる必要性が生じた場合の動作の第１段階を示す図である。
【図４】分散データベースシステムにおいて新たな一群データを記憶させる必要性が生じた場合の動作の第２段階を示す図である。
【図５】分散データベースシステムにおいて一群データに対応するキャビネット４の数を増やす必要性が生じた場合の動作を示す図である。
【図６】実データをデータベース６に記憶させる際の動作を示す図である。
【図７】実データをデータベース６に記憶させる際の別な動作を示す図である。
【図８】キーによる実データ検索の動作を示す図である。
【図９】識別子による実データ検索の動作を示す図である。
【図１０】一群データに対してキャビネット４が１対１で設けられるデータベース装置における内部構成の一例を示す。
【発明を実施するための形態】
【００３２】
以下、本発明の実施の形態について図面を参照して説明する。
【００３３】
図１は、本実施の形態に係る分散データベースシステムの一例を示す図である。
【００３４】
分散データベースシステム１００は、複数のデータベース装置１０を備え、各データベース装置１０は、互いに通信可能となっている。
【００３５】
各データベース装置１０は、また、制御装置２０および呼処理サーバ（ＳＩＰサーバなど）３０とも通信可能となっている。呼処理サーバ３０には、複数の電話機３０１が収容されている。
【００３６】
図２は、各データベース装置１０の概略構成を示す図である。
【００３７】
データベース装置１０は、１つの共有テーブル１、１つの変換テーブル２、１つの空塞状況テーブル３、１つ以上のキャビネット４、いずれかのデータベース装置１０に記憶される一群の実データ（以下、「一群データ」という）ごとのキーテーブル５、１つのデータベース６および、１つの検索ツリー７を備える。
【００３８】
共有テーブル１には、一群データの全部または一部である実データ群のそれぞれにつき、共有テーブル行を備える。
【００３９】
一群データにおける実データ数がＮ個より多い場合、一群データは複数の実データ群で構成され、つまり、各実データ群は、一群データの一部でしかない。
【００４０】
一方、一群データにおける実データ数がＮ個以下の場合、一群データは１つの実データ群で構成され、つまり、実データ群は一群データの全部をいう。
【００４１】
共有テーブル行は、該当の一群データを検索するためキー範囲情報１１、当該一群データが記憶されるデータベース装置１０を示す配置先情報１２、当該データベース装置１０において当該実データ群に対応して設けられるキャビネット４に対し全データベース装置で一意となるように割り当てられるキャビネット論理通番１３、該当の実データ群に付与されるアドレス１４、当該一群データの中で当該実データ群の次の順位を付与された実データ群のアドレス１４を示す次順アドレス１５、を含む。
【００４２】
一群データが複数の実データ群で構成される場合、各実データ群には順位（例えば、生成時期に応じた順位）が付与される。
【００４３】
図において、キャビネット論理通番１３「１」を含む共有テーブル行に対応する実データ群は、例えば、これを含む一群データ（キー範囲情報１１:050-1111に対応する一群データ）の中で順位「１」を付与されたものである。
【００４４】
また、キャビネット論理通番１３「２」を含む共有テーブル行に対応する実データ群は、例えば、これを含む一群データ（キー範囲情報１１:050-1111に対応する一群データ）の中で順位「２」を付与されたものである。
【００４５】
よって、前者の共有テーブル行は、後者の共有テーブル行におけるアドレス１４:0002を示す次順アドレス１５:0002を含む。
【００４６】
後者の共有テーブル行の次順アドレス１５が「NULL」（空白）となっているのは、例えば、順位が「２」まで、つまり、実データ群が２個だからである。
【００４７】
また、キャビネット論理通番１３「３」や「４」を含む共有テーブル行の次順アドレス１５が「NULL」（空白）となっているのは、例えば、一群データの全部が実データ群であり、よって、順位が付与されてないからある。
【００４８】
変換テーブル２は、変換テーブル２を備えるデータベース装置（以下、自データベース装置のように呼称する）に設けられるキャビネット４のそれぞれにつき、変換テーブル行を備える。
【００４９】
変換テーブル行は、該当のキャビネット４に割り当てられるキャビネット論理通番（変換テーブル行においては、キャビネット論理通番２１という）、該当のキャビネット４に対し自データベース装置で一意となるように割り当てられるキャビネット物理通番２２、を含む。
【００５０】
空塞状況テーブル３は、自データベース装置におけるキャビネット４の状況を示すものであり、各キャビネット４につき、空塞状況テーブル行を備える。
【００５１】
空塞状況テーブル行は、該当のキャビネット４に割り当てられるキャビネット物理通番（空塞状況テーブル行においては、キャビネット物理通番３１という）、該当のキャビネットにおける実データポインタ４２（詳しくは後述する）の有無を示す空塞状況フラグ３２、を含む。
【００５２】
キャビネット４には、自データベース装置で一意となるようにキャビネット物理通番が割り当てられる。
【００５３】
また、キャビネット４は、上記説明におけるＮに等しい数のキャビネット行を備える。
【００５４】
キャビネット行は、当初からキャビネットインデクス４１を含み、後に実データポインタ４２を含むように更新される。
【００５５】
キャビネット行は、キャビネット行を含むキャビネット４に対応する実データ群の中での１つの実データに対応するものである。キャビネットインデクス４１は、当該実データ群の中で当該実データを一意に示すものである。実データポインタ４２は、自データベース装置のデータベース６の中で当該実データを保持するデータベース行の位置を示すものである。
【００５６】
キーテーブル５は、対応するキャビネット４に記憶される実データのそれぞれにつき、キーテーブル行を備える。キーテーブル行は、該当の実データを検索するためのキー５１、当該実データに対応するキャビネットインデクス４１を辿るためのインデクス５２、を含む。
【００５７】
データベース６は、自データベース装置において実データを個々に記憶するためのデータベース行からなる。
【００５８】
データベース行は、当初から実データインデクス６１を含み、後に実データ（データベース行においては、実データ６２という）、識別子６３、を含むように更新される。
【００５９】
実データインデクス６１は、当該実データインデクス６１を含むデータベース行のデータベース６における位置を示すものである。
【００６０】
識別子６３は、当該識別子６３を含むデータベース行内の実データインデクス６１と同じ実データポインタ４２を含むキャビネット４に割り当てられたキャビネット物理通番と同じキャビネット物理通番を含む変換テーブル行内のキャビネット論理通番２１と同じキャビネット論理通番（識別子６３においては、キャビネット論理通番Ｎ１という）、当該キャビネット４において当該実データポインタ４２を含むキャビネット行内のキャビネットインデクス４１と同じキャビネットインデクス（識別子６３においては、キャビネットインデクスＮ２という）、を含む。例えば、識別子６３が「１２」である場合、Ｎ１は「１」、Ｎ２は「２」である。
【００６１】
共有テーブル１のキャビネット論理通番１３と変換テーブル２のキャビネット論理通番２１は連携する番号である。
【００６２】
変換テーブル２のキャビネット物理通番２２とキャビネット４のキャビネット物理通番は連携する番号である。
【００６３】
キャビネット４のキャビネットインデクス４１とキーテーブル５のインデクス５２は連携する番号である。
【００６４】
キャビネット４の実データポインタ４２とデータベース６の実データインデクス６１は連携する番号である。
【００６５】
図３は、分散データベースシステムにおいて新たな一群データを記憶させる必要性が生じた場合の動作の第１段階を示す図である。
【００６６】
動作説明の前に検索ツリー７について説明する。
【００６７】
検索ツリー７は、各キー範囲情報１１同士の共通部分を幹７１とし非共通部分を枝７２とした木形状で当該各キー範囲情報１１を表現したものである。また、各枝７２に対しては、当該枝のキー範囲情報１１に対応するアドレス１４が対応づけられている。
【００６８】
分散データベースシステムにおいて、新たな一群データを記憶させる必要性が生じた場合、データベース装置１０は、制御装置２０や他のデータベース装置１０から、例えば、その一群データを検索するためキー範囲情報１１と同じ増設キー情報Ａ：050-555、その一群データが記憶されるデータベース装置１０を示す配置先情報Ｂ：#1、その一群データに対して割り当てるべきキャビネット４の数と同じキャビネット数Ｃ：1を含むキャビネット増設電文を受信する。
【００６９】
図示しないが、データベース装置１０は、配置先情報Ｂが他のデータベース装置を示すものなら、キャビネット増設電文を他のデータベース装置に送信する。
【００７０】
一方、データベース装置１０は、配置先情報Ｂが自データベース装置を示すものなら、増設キー情報Ａと同じキー範囲情報１１：050-555に対応する枝７２を検索ツリー７から検索する。キー範囲情報１１：050-555は新しいものなので、枝７２は検索ツリー７には無く、データベース装置１０は、キー範囲情報１１：050-555に対応する枝７２を検索ツリー７に追加する（Ｓ１）。
【００７１】
次に、データベース装置１０は、共有テーブル１に対し、増設キー情報Ａと同じキー範囲情報１１：050-555、配置先情報Ｂと同じ配置先情報１２：#1、新たなアドレス１４：0003、共有テーブル１にないキャビネット論理通番１３：2を含む共有テーブル行を追加し、追加した枝７２をアドレス１４：0003に対応づける（Ｓ２）。
【００７２】
なお、キャビネット数Ｃが２以上ならば、データベース装置１０は、同数の共有テーブル行を設け、最低順位以外の共有テーブル行には次順アドレス１５を含める。
【００７３】
図４は、分散データベースシステムにおいて新たな一群データを記憶させる必要性が生じた場合の動作の第２段階を示す図である。
【００７４】
次に、データベース装置１０は、変換テーブル２に対し、追加された共有テーブル行のキャビネット論理通番１３と同じキャビネット論理通番２１、変換テーブル２にないキャビネット物理通番２２、を含む変換テーブル行を追加する（Ｓ３）。
【００７５】
また、図示しないが、データベース装置１０は、新たなキャビネット４を生成し、キャビネット４に対し、追加された変換テーブル行のキャビネット物理通番２２と同じキャビネット物理通番を割り当てる。
【００７６】
また、データベース装置１０は、空塞状況テーブル３において、割り当てられたキャビネット物理通番２２と同じキャビネット物理通番３１を含む空塞状況テーブル行内の空塞状況フラグ３２が、キャビネット４が存在することを示すように（「空」→「塞」）、空塞状況テーブル３を更新する（Ｓ４）。
【００７７】
また、データベース装置１０は、更新された共有テーブル１を他のデータベース装置に送信する（Ｓ５）。他のデータベース装置１０は、共有テーブル１を受信し、受信した共有テーブル１で、自データベース装置の共有テーブル１を置き換える。なお、共有テーブル１を送信したデータベース装置１０は、他のデータベース装置１０から共有テーブル１を受信した場合、受信した共有テーブル１で、自データベース装置の共有テーブル１を置き換える。
【００７８】
図５は、分散データベースシステムにおいて一群データに対応するキャビネット４の数を増やす必要性が生じた場合の動作を示す図である。
【００７９】
分散データベースシステムにおいて、ある一群データに対応するキャビネット４の数を増やす必要性が生じた場合、つまり、例えば、一群データにおける実データ数が増えるような場合、データベース装置１０は、制御装置２０や他のデータベース装置１０から、例えば、増設キー情報Ａ：050-1111、キャビネット数Ｃ：2を含むキャビネット増設電文を受信する。キャビネット数Ｃは、増加後のキャビネット４の数である。
【００８０】
データベース装置１０は、増設キー情報Ａと同じキー範囲情報１１：050-1111に対応する枝７２を検索ツリー７から検索する。
【００８１】
データベース装置１０は、該当の枝７２がないなら、キャビネット増設電文を他のデータベース装置に送信する。
【００８２】
一方、データベース装置１０は、該当の枝７２があるなら、共有テーブル１から、増設キー情報Ａと同じキー範囲情報１１：050-1111を含む共有テーブル行を検索し、配置先情報１２：#1を読み出す。
【００８３】
次に、データベース装置１０は、共有テーブル１に対し、増設キー情報Ａと同じキー範囲情報１１：050-1111、読み出した配置先情報１２：#1、新たなアドレス１４：0003、共有テーブル１にないキャビネット論理通番１３：2を含む共有テーブル行を追加する（Ｓ１１）。
【００８４】
次に、データベース装置１０は、キー範囲情報１１：050-1111を含む共有テーブル行（追加した共有テーブル行を除く）から最低順位の共有テーブル行を検索し、当該共有テーブル行に対し、追加した共有テーブル行に含まれるアドレス１４：0003を示す次順アドレス１５：0003を追加する（Ｓ１２）。
【００８５】
以下、図４と同様に、追加された共有テーブル行に関連して、変換テーブル２が更新され、キャビネット４が生成されてキャビネット物理通番が割り当てられる。
【００８６】
なお、このキャビネット４については、キャビネットインデクス４１は、１つ前の順位のキャビネット４のキャビネットインデクス４１からの続き番号となる。例えば、順位「２」のキャビネット４のキャビネットインデクス４１は、Ｎ＋１から始まり、２Ｎまでとなる（図２のキャビネット物理通番「３」のキャビネット４を参照のこと）。
【００８７】
また、図４と同様に、空塞状況テーブル３が更新され、各データベース装置１０において共有テーブル１の同期が図られる。
【００８８】
図６は、実データをデータベース６に記憶させる際の動作を示す図である。
【００８９】
例えば、データベース装置１０は、制御装置２０や他のデータベース装置１０から、キーＸ：050-1111-bbbb、実データＹ：yyyyを含む登録電文を受信する。
【００９０】
データベース装置１０は、検索ツリー７から、キーＸ：050-1111-bbbbの一部に該当する枝７２：1111を検索する。
【００９１】
次に、データベース装置１０は、共有テーブル１から、枝７２：1111に対応づけられたアドレス１４：0001を含む共有テーブル行を検索する（Ｓ２１）。
【００９２】
データベース装置１０は、共有テーブル行の配置先情報１２が他のデータベース装置を示すものなら、新規投入電文を当該他のデータベース装置に送信する（図示せず）。
【００９３】
一方、データベース装置１０は、配置先情報１２が自データベース装置を示すものなら、変換テーブル２から、共有テーブル行のキャビネット論理通番１３と同じキャビネット論理通番２１を含む変換テーブル行を検索し（Ｓ２２）、変換テーブル行からキャビネット物理通番２２を読み出す。
【００９４】
次に、データベース装置１０は、キャビネット物理通番２２と同じキャビネット物理通番を割り当てられたキャビネット４から、実データポインタ４２のないキャビネット行を検索する（Ｓ２３）。
【００９５】
データベース装置１０は、実データポインタ４２のないキャビネット行があったなら、そのキャビネット行に対し、実データ６２のないデータベース行の実データインデクス６１と同じ実データポインタ４２を追加する（Ｓ２４）。
【００９６】
次に、データベース装置１０は、キャビネット４に対応するキーテーブル５に対し、キーＸと同じキー５１、キャビネットインデクス４１と同じインデクス５２、を含むキーテーブル行を追加する（Ｓ２５）。
【００９７】
次に、データベース装置１０は、データベース６から、追加されたキャビネット行の実データポインタ４２と同じ実データインデクス６１を含むデータベース行を検索し、データベース行に対し、実データＹと同じ実データ６２ならびに識別子６３を記憶させる(Ｓ２６）。
【００９８】
識別子６３は、当該識別子６３を含むデータベース行内の実データインデクス６１と同じ実データポインタ４２を含むキャビネット４に割り当てられたキャビネット物理通番と同じキャビネット物理通番を含む変換テーブル行内のキャビネット論理通番２１と同じキャビネット論理通番Ｎ１、当該キャビネット４において当該実データポインタ４２を含むキャビネット行内のキャビネットインデクス４１と同じキャビネットインデクスＮ２、を含む。
【００９９】
図７は、実データをデータベース６に記憶させる際の別な動作を示す図である。
【０１００】
図６のステップＳ２３において、実データポインタ４２のないキャビネット行がなかったなら、つまり、全キャビネット行に実データポインタ４２がある場合は、登録電文の送信元にエラーを返却し、前述のようにキャビネット４を増設する（Ｓ３１）。これに伴い、共有テーブル１も更新（共有テーブル行の追加等）される（Ｓ３２）。
【０１０１】
これにより、増設されたキャビネット４においては、全キャビネット行において実データポインタ４２がないので、データベース装置１０は、そのキャビネット行の１つに対し、実データ６２のないデータベース行の実データインデクス６１と同じ実データポインタ４２を追加する（Ｓ３３）。
【０１０２】
次に、データベース装置１０は、キャビネット４に対応するキーテーブル５に対し、キーＸと同じキー５１、キャビネットインデクス４１と同じインデクス５２、を含むキーテーブル行を追加する（Ｓ３４）。
【０１０３】
次に、データベース装置１０は、データベース６から、追加されたキャビネット行の実データポインタ４２と同じ実データインデクス６１を含むデータベース行を検索し（Ｓ３５）、データベース行に対し、実データＹと同じ実データ６２ならびに識別子６３を記憶させる（Ｓ５）。
【０１０４】
図８は、キーによる実データ検索の動作を示す図である。
【０１０５】
例えば、データベース装置１０は、電話機３０１から呼処理サーバ３０を介して、または、他のデータベース装置１０から、キーＭ：050-1111-ccccを含む検索電文を受信する。
【０１０６】
データベース装置１０は、検索ツリー７から、キーＭ：050-1111-ccccの一部に該当する枝７２：1111を検索する。
【０１０７】
次に、データベース装置１０は、共有テーブル１から、枝７２：1111に対応づけられたアドレス１４：0001を含む共有テーブル行を検索する（Ｓ４１）。
【０１０８】
データベース装置１０は、共有テーブル行の配置先情報１２が他のデータベース装置を示すものなら、検索電文を当該他のデータベース装置に送信する（図示せず）。
【０１０９】
一方、データベース装置１０は、配置先情報１２が自データベース装置を示すものなら、共有テーブル１から、検索した共有テーブル行の次順アドレス１５と同じアドレス１４：0003を含む共有テーブル行を検索する（Ｓ４２）。
【０１１０】
このようにして、データベース装置１０は、検索した共有テーブル行の次順アドレス１５と同じアドレス１４を含む共有テーブル行がなくなるまで検索を行う。
【０１１１】
次に、データベース装置１０は、検索された各共有テーブル行のキャビネット論理通番１３と同じキャビネット論理通番２１を含む変換テーブル行を検索し（Ｓ４３）、変換テーブル行からキャビネット物理通番２２を読み出す。
【０１１２】
次に、データベース装置１０は、キャビネット物理通番２２と同じキャビネット物理通番を割り当てられたキャビネット４に対応するキーテーブル５から、キーＭと同じキー５１を含むキーテーブル行を検索し、キーテーブル行からインデクス５２を読み出す（Ｓ４４）。
【０１１３】
次に、データベース装置１０は、キャビネット物理通番２２と同じキャビネット物理通番を割り当てられた各キャビネット４から、インデクス５２と同じキャビネットインデクス４１を含むキャビネット行を検索する（Ｓ４５）。
【０１１４】
ここでは、１つのキャビネット４（図では、キャビネット物理通番「３」のキャビネット４）から該当のキャビネット行が検索され（Ｓ４５）、データベース装置１０は、そのキャビネット行から実データポインタ４２を読み出す。
【０１１５】
次に、データベース装置１０は、データベース６から、実データポインタ４２と同じ実データインデクス６１を含むデータベース行を検索する（Ｓ４６）。
【０１１６】
次に、データベース装置１０は、データベース行から実データ６２を読み出し、実データ６２を例えば、呼処理サーバ３０を介して電話機３０１に送信する。
【０１１７】
図９は、識別子による実データ検索の動作を示す図である。
【０１１８】
例えば、データベース装置１０は、電話機３０１から呼処理サーバ３０を介して、または、他のデータベース装置１０から、識別子：２１を含む検索電文を受信する。識別子は、キャビネット論理通番Ｎ１、キャビネットインデクスＮ２を含む。
【０１１９】
データベース装置１０は、共有テーブル１から、キャビネット論理通番Ｎ１と同じキャビネット論理通番１３を含む共有テーブル行を検索し（Ｓ５１）、共有テーブル行の配置先情報１２が他のデータベース装置を示すものなら、検索電文を当該他のデータベース装置に送信する（図示せず）。
【０１２０】
一方、データベース装置１０は、配置先情報１２が自データベース装置を示すものなら、変換テーブル２から、共有テーブル行のキャビネット論理通番１３と同じキャビネット論理通番２１を含む変換テーブル行を検索し（Ｓ５２）、変換テーブル行からキャビネット物理通番２２を読み出す。
【０１２１】
次に、データベース装置１０は、キャビネット物理通番２２と同じキャビネット物理通番を割り当てられたキャビネット４から、キャビネットインデクスＮ２と同じキャビネットインデクス４１を含むキャビネット行を検索し（Ｓ５３）、キャビネット行から実データポインタ４２を読み出す。
【０１２２】
次に、データベース装置１０は、データベース６から、実データポインタ４２と同じ実データインデクス６１を含むデータベース行を検索し（Ｓ５４）、データベース行から実データ６２を読み出し、実データ６２を例えば、呼処理サーバ３０を介して電話機３０１に送信する。
【０１２３】
以上のように、本実施の形態に係るデータベース装置（１０）は、複数のデータベース装置からなる分散データベースシステムを構成するデータベース装置であって、いずれかのデータベース装置に記憶される一群の実データである一群データの全部または一部である実データ群のそれぞれにつき、当該一群データを検索するためキー範囲情報（１１）、当該一群データが記憶されるデータベース装置を示す配置先情報（１２）、当該データベース装置において当該実データ群に対応して設けられるキャビネットに対し全データベース装置で一意となるように割り当てられるキャビネット論理通番（１３）、当該実データ群に付与されるアドレス（１４）、当該一群データの中で当該実データ群の次の順位を付与された実データ群のアドレス（１４）を示す次順アドレス（１５）、を含む共有テーブル行を備える共有テーブル（１）と、自データベース装置に設けられるキャビネットのそれぞれにつき、当該キャビネットに割り当てられるキャビネット論理通番（２１）、当該キャビネットに対し自データベース装置で一意となるように割り当てられるキャビネット物理通番（２２）、を含む変換テーブル行を備える変換テーブル（２）と、自データベース装置に設けられるキャビネット（４）であり、且つ、当該キャビネットに対応する実データ群の中での実データのそれぞれにつき、当該実データ群の中で当該実データを一意に示すキャビネットインデクス（４１）、自データベース装置の中での当該実データの位置を示す実データポインタ（４２）、含むキャビネット行を備えるキャビネット（４）と、一群データごとに設けられ、当該一群データに含まれる実データのそれぞれにつき、当該実データを検索するためのキー（５１）、当該実データに対応するキャビネットインデクス（４１）を辿るためのインデクス（５２）、を含むキーテーブル行を備えるキーテーブル（５）と、自データベース装置において実データを個々に記憶するためのデータベース行からなり、当該データベース行に対し、当該データベース行の位置を示す実データインデクス（６１）、当該データベース行に記憶すべき実データ（６２）、を記憶させるためのデータベース（６）とを備え、共有テーブル（１）のキャビネット論理通番（１３）と変換テーブル（２）のキャビネット論理通番（２１）は連携する番号であって、変換テーブル（２）のキャビネット物理通番（２２）とキャビネット（４）のキャビネット物理通番は連携する番号であって、キャビネット（４）のキャビネットインデクス（４１）とキーテーブル（５）のインデクス（５２）は連携する番号であって、キャビネット（４）の実データポインタ（４２）とデータベース（６）の実データインデクス（６１）は連携する番号であるので、キャビネット行の数Ｎを一群データにおける実データ数の最大数以上としなくてもよく、つまり、キャビネット行の数Ｎを少なく設定できる。よって、使用されないキャビネット行を少なくでき、メモリの使用効率を高めることができる。
【０１２４】
また、データベース装置（１０）は、各キー範囲情報（１１）の共通部分を幹（７１）とし非共通部分を枝（７２）とした木形状で当該各キー範囲情報（１１）を表現してなる検索ツリー（７）を備え、各枝（７２）に対して当該枝のキー範囲情報（１１）に対応するアドレス（１４）を対応づけ、入力された情報に対応する枝（７２）を検索ツリー（７）から検索し、当該枝（１１２）に対応づけられたアドレス（１４）を検索するので、入力された情報に対応するアドレス（１４）を検索することができる。
【符号の説明】
【０１２５】
１…共有テーブル
２…変換テーブル
３…空塞状況テーブル
４…キャビネット
５…キーテーブル
６…データベース
７…検索ツリー
１０…データベース装置
１１…キー範囲情報
１２…配置先情報
１３…キャビネット論理通番
１４…アドレス
１５…次順アドレス
２０…制御装置
２１…キャビネット論理通番
２２…キャビネット物理通番
３０…呼処理サーバ
３１…キャビネット物理通番
３２…空塞状況フラグ
４１…キャビネットインデクス
４２…実データポインタ
５１…キー
５２…インデクス
６１…実データインデクス
６２…実データ
６３…識別子
７１…幹
７２…枝
１００…分散データベースシステム
３０１…電話機
Ａ…増設キー情報
Ｂ…配置先情報
Ｃ…キャビネット数
Ｍ、Ｘ…キー
Ｎ１…キャビネット論理通番
Ｎ２…キャビネットインデクス
Ｙ…実データ
Ｎ…キャビネット行の数
【図１】
2015041207.tif 000003
【図２】
2015041207.tif 000004
【図３】
2015041207.tif 000005
【図４】
2015041207.tif 000006
【図５】
2015041207.tif 000007
【図６】
2015041207.tif 000008
【図７】
2015041207.tif 000009
【図８】
2015041207.tif 000010
【図９】
2015041207.tif 000011
【図１０】
2015041207.tif 000012