(57)【要約】  従来とは異なる方法でデータを高速に検索するデータベース装置及びデータベースシステムを提供する。  キー値を短縮変換して短縮変換値とし、短縮変換値をメモリアドレスとするアドレス記憶用メモリ上の領域にキー値を記憶し、短縮変換値をメモリアドレスとするデータ記憶用メモリ上の領域にキー値に関連するデータを書き込み、また、短縮変換値をメモリアドレスとするデータ記憶用メモリ上の領域からデータを読み出すデータベース装置。
2012141115.tif 000002
【特許請求の範囲】
【請求項１】
アドレス記憶用メモリと、
データ記憶用メモリと、
キー値と該キー値に関連するデータとを含む記憶要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズムを用いて該キー値を短縮変換して短縮変換値とし、該短縮変換値をメモリアドレスとする前記アドレス記憶用メモリ上の領域に初期値が記憶されているか否かを判定し、初期値が記憶されていれば前記キー値を該領域に記憶するとともに該短縮変換値をメモリアドレスとする前記データ記憶用メモリ上の領域に前記キー値に関連するデータを書き込み、初期値が記憶されていなければ前記予め定められた複数のアルゴリズムのうちの該短縮変換に用いたアルゴリズムとは異なる他のアルゴリズムを用いて前記キー値を短縮変換し前記判定を繰り返す手段と、
キー値を含む検索要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズムを用いて該キー値を短縮変換して短縮変換値とし、該短縮変換値をメモリアドレスとする前記アドレス記憶用メモリ上の領域に該キー値が記憶されているか否かを判定し、キー値が記憶されていれば該短縮変換値をメモリアドレスとする前記データ記憶用メモリ上の領域からデータを読み出し、キー値が記憶されていなければ前記予め定められた複数のアルゴリズムのうちの該短縮変換に用いたアルゴリズムとは異なる他のアルゴリズムを用いて前記キー値を短縮変換し前記判定を繰り返す手段と、
を備えたことを特徴とするデータベース装置。
【請求項２】
アドレス記憶用メモリと、
データ記憶用メモリと、
キー値と該キー値に関連するデータを含む記憶要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズムを用いて該キー値を短縮変換して短縮変換値とし、該短縮変換値をメモリアドレスとする前記アドレス記憶用メモリ上の領域に初期値が記憶されているか否かを判定し、初期値が記憶されていれば前記キー値を該領域に記憶するとともに該短縮変換値に所定値を加えた値をメモリアドレスとする前記アドレス記憶用メモリ上の領域にアドレス値を書き込み該書き込んだアドレス値をメモリアドレスとする前記データ記憶用メモリ上の領域に前記キー値に関連するデータを書き込み、初期値が記憶されていなければ前記予め定められた複数のアルゴリズムのうちの該短縮変換に用いたアルゴリズムとは異なる他のアルゴリズムを用いて前記キー値を短縮変換し前記判定を繰り返す手段と、
キー値を含む検索要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズムを用いて該キー値を短縮変換して短縮変換値とし、該短縮変換値をメモリアドレスとする前記アドレス記憶用メモリ上の領域に該キー値が記憶されているか否かを判定し、キー値が記憶されていれば該短縮変換値に所定値を加えた値をメモリアドレスとする前記アドレス記憶用メモリ上の領域からアドレス値を読み出し該読み出したアドレス値をメモリアドレスとする前記データ記憶用メモリ上の領域からデータを読み出し、キー値が記憶されていなければ前記予め定められた複数のアルゴリズムのうちの該短縮変換に用いたアルゴリズムとは異なる他のアルゴリズムを用いて前記キー値を短縮変換し前記判定を繰り返す手段と、
を備えたことを特徴とするデータベース装置。
【請求項３】
前記アドレス値は、書き込みを行う度にインクリメントされる、ことを特徴とする請求項２に記載のデータベース装置。
【請求項４】
前記アルゴリズムは、ハッシュ関数やＣＲＣなどに基づく処理である、ことを特徴とする請求項１〜請求項３のいずれか１項に記載のデータベース装置。
【請求項５】
前記キー値は、文字列であり、
前記アルゴリズムは、前記文字列の一部を前記短縮変換値とする処理である、
ことを特徴とする請求項１〜請求項３のいずれか１項に記載のデータベース装置。
【請求項６】
請求項１〜請求項５のいずれか１項に記載のデータベース装置がネットワークに接続されるデータベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース装置及びデータベースシステムに関する。
【背景技術】
【０００２】
従来より、インデックスを用いてデータの記憶場所を検索する方法が知られている（非特許文献１参照）。インデックスとは、データの記憶場所とキー値とを対応付けたものであり、これを用いれば、データの記憶場所を直接に検索するよりも、記憶場所からデータを高速に取り出すことが可能となるとされる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】フリー百科事典「ウィキペディア（Ｗｉｋｉｐｅｄｉａ）」、索引  （データベース）、［平成２３年３月２７日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｊａ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／索引＿（データベース）＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の方法では、記憶するデータの数が多くなると、インデックスが肥大化するため、検索に時間がかかってしまうとともに、登録や削除などのデータベースのメンテナンスにも時間がかかってしまい、場合によっては、データベースを一時的に止めてメンテナンス（インデックスのテーブルの再構築など）を行わなければならなくなるという問題があった。【０００５】
そこで、本発明は、従来とは異なる方法でデータを検索するデータベース装置及びデータベースシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、上記課題は、次の手段により解決される。【０００７】
本発明は、アドレス記憶用メモリと、データ記憶用メモリと、キー値と該キー値に関連するデータとを含む記憶要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズムを用いて該キー値を短縮変換して短縮変換値とし、該短縮変換値をメモリアドレスとする前記アドレス記憶用メモリ上の領域に初期値が記憶されているか否かを判定し、初期値が記憶されていれば前記キー値を該領域に記憶するとともに該短縮変換値をメモリアドレスとする前記データ記憶用メモリ上の領域に前記キー値に関連するデータを書き込み、初期値が記憶されていなければ前記予め定められた複数のアルゴリズムのうちの該短縮変換に用いたアルゴリズムとは異なる他のアルゴリズムを用いて前記キー値を短縮変換し前記判定を繰り返す手段と、キー値を含む検索要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズムを用いて該キー値を短縮変換して短縮変換値とし、該短縮変換値をメモリアドレスとする前記アドレス記憶用メモリ上の領域に該キー値が記憶されているか否かを判定し、キー値が記憶されていれば該短縮変換値をメモリアドレスとする前記データ記憶用メモリ上の領域からデータを読み出し、キー値が記憶されていなければ前記予め定められた複数のアルゴリズムのうちの該短縮変換に用いたアルゴリズムとは異なる他のアルゴリズムを用いて前記キー値を短縮変換し前記判定を繰り返す手段と、を備えたことを特徴とするデータベース装置である。【０００８】
また、本発明は、アドレス記憶用メモリと、データ記憶用メモリと、キー値と該キー値に関連するデータを含む記憶要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズムを用いて該キー値を短縮変換して短縮変換値とし、該短縮変換値をメモリアドレスとする前記アドレス記憶用メモリ上の領域に初期値が記憶されているか否かを判定し、初期値が記憶されていれば前記キー値を該領域に記憶するとともに該短縮変換値に所定値を加えた値をメモリアドレスとする前記アドレス記憶用メモリ上の領域にアドレス値を書き込み該書き込んだアドレス値をメモリアドレスとする前記データ記憶用メモリ上の領域に前記キー値に関連するデータを書き込み、初期値が記憶されていなければ前記予め定められた複数のアルゴリズムのうちの該短縮変換に用いたアルゴリズムとは異なる他のアルゴリズムを用いて前記キー値を短縮変換し前記判定を繰り返す手段と、キー値を含む検索要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズムを用いて該キー値を短縮変換して短縮変換値とし、該短縮変換値をメモリアドレスとする前記アドレス記憶用メモリ上の領域に該キー値が記憶されているか否かを判定し、キー値が記憶されていれば該短縮変換値に所定値を加えた値をメモリアドレスとする前記アドレス記憶用メモリ上の領域からアドレス値を読み出し該読み出したアドレス値をメモリアドレスとする前記データ記憶用メモリ上の領域からデータを読み出し、キー値が記憶されていなければ前記予め定められた複数のアルゴリズムのうちの該短縮変換に用いたアルゴリズムとは異なる他のアルゴリズムを用いて前記キー値を短縮変換し前記判定を繰り返す手段と、を備えたことを特徴とするデータベース装置である。【０００９】
また、本発明は、前記アドレス値は、書き込みを行う度にインクリメントされる、ことを特徴とする上記のデータベース装置である。【００１０】
また、本発明は、前記アルゴリズムは、ハッシュ関数やＣＲＣなどに基づく処理である、ことを特徴とする上記のデータベース装置である。【００１１】
また、本発明は、前記キー値は、文字列であり、前記アルゴリズムは、前記文字列の一部を前記短縮変換値とする処理である、ことを特徴とする上記のデータベース装置である。【００１２】
また、本発明は、上記のデータベース装置がネットワークに接続されるデータベースシステムである。
【発明の効果】
【００１３】
本発明によれば、従来とは異なる方法でデータを高速に検索するデータベース装置及びデータベースシステムを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るデータベース装置の構成例を示す図である。
【図２】アドレス記憶用メモリの第１構成例を示す図である。
【図３】制御部の第１動作例（記憶処理）を示すフローチャートである。
【図４】制御部の第１動作例（検索処理）を示すフローチャートである。
【図５】アドレス記憶用メモリの第２構成例を示す図である。
【図６】制御部の第２動作例（記憶処理）を示すフローチャートである。
【図７】制御部の第２動作例（検索処理）を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に、添付した図面を参照しつつ、本発明を実施するための形態について説明する。
【００１６】
図１は、本発明の実施形態に係るデータベース装置の構成例を示す図である。
【００１７】
図１に示すように、本発明の実施形態に係るデータベース装置１は、制御部１１と、アドレス記憶用メモリ１２と、データ記憶用メモリ１３と、を備えている。
【００１８】
制御部１１としては、ＣＰＵなどの演算手段を用いる。また、アドレス記憶用メモリ１２やデータ記憶用メモリ１３としては、半導体メモリを用いる。
【００１９】
図２は、アドレス記憶用メモリの第１構成例を示す図であり、図３は、制御部の第１動作例（記憶処理）を示すフローチャートであり、図４は、制御部の第１動作例（検索処理）を示すフローチャートである。以下、図２、図３、図４を参照しつつ、制御部１１の第１動作例について説明する。
【００２０】
（ステップＡ１）
図３に示すように、制御部１１は、キー値Ｘとキー値Ｘに関連するデータを含む記憶要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズム（例えばｆ関数）を用いてキー値Ｘを短縮変換して短縮変換値ｆ（Ｘ）とする。
【００２１】
（ステップＡ２）
次に、制御部１１は、短縮変換値ｆ（Ｘ）をメモリアドレスとするアドレス記憶用メモリ１２上の領域１ａに初期値Ｙが記憶されているか否かを判定する。初期値Ｙとしては、例えば、所定のビット列を用いることができる。
【００２２】
（ステップＡ３）
制御部１１は、初期値Ｙが記憶されていれば、キー値Ｘを上記領域１ａに記憶するとともに、短縮変換値ｆ（Ｘ）をメモリアドレスとするデータ記憶用メモリ１３上の領域にキー値Ｘに関連するデータを書き込む。
【００２３】
（ステップＡ４）
他方、制御部１１は、初期値Ｙが記憶されていなければ予め定められた複数のアルゴリズムのうちの上記短縮変換に用いたアルゴリズム（例えばｆ関数）とは異なる他のアルゴリズム（例えばｇ関数）を用いてキー値Ｘを短縮変換して（例えば短縮変換値ｇ（Ｘ）にして）、判定を繰り返す（例えば領域１ｂについて判定する）。
【００２４】
（ステップＢ１）
図４に示すように、制御部１１は、キー値Ｘを含む検索要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズム（例えばｆ関数）を用いてキー値Ｘを短縮変換して短縮変換値ｆ（Ｘ）とする。
【００２５】
（ステップＢ２）
次に、制御部１１は、短縮変換値ｆ（Ｘ）をメモリアドレスとするアドレス記憶用メモリ１２上の領域１ａにキー値Ｘが記憶されているか否かを判定する。
【００２６】
（ステップＢ３）
制御部１１は、キー値Ｘが記憶されていれば短縮変換値ｆ（Ｘ）をメモリアドレスとするデータ記憶用メモリ１３上の領域からデータを読み出す。
【００２７】
（ステップＢ４）
他方、制御部１１は、キー値Ｘが記憶されていなければ予め定められた複数のアルゴリズムのうちの上記短縮変換に用いたアルゴリズム（例えばｆ関数）とは異なる他のアルゴリズム（例えばｇ関数）を用いてキー値Ｘを短縮変換し（例えば短縮変換値ｇ（Ｘ）にして）、判定を繰り返す（例えば領域１ｂについて判定する）。
【００２８】
図５は、アドレス記憶用メモリの第２構成例を示す図であり、図６は、制御部の第２動作例（記憶処理）を示すフローチャートであり、図７は、制御部の第２動作例（検索処理）を示すフローチャートである。以下、図５、図６、図７を参照しつつ、制御部１１の第２動作例について説明する。
【００２９】
（ステップＣ１）
図６に示すように、制御部１１は、キー値Ｘとキー値Ｘに関連するデータを含む記憶要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズム（例えばｆ関数）を用いてキー値Ｘを短縮変換して短縮変換値ｆ（Ｘ）とする。
【００３０】
（ステップＣ２）
次に、制御部１１は、短縮変換値ｆ（Ｘ）をメモリアドレスとするアドレス記憶用メモリ１２上の領域２ａに初期値Ｙが記憶されているか否かを判定する。初期値Ｙとしては、例えば、所定のビット列を用いることができる。
【００３１】
（ステップＣ３）
制御部１１は、初期値Ｙが記憶されていればキー値Ｘを上記領域２ａに記憶し、短縮変換値ｆ（Ｘ）に所定値Ｚを加えた値をメモリアドレスとするアドレス記憶用メモリ１２上の領域２ｂにアドレス値Ｓを書き込む。また、制御部１１は、書き込んだアドレス値Ｓをメモリアドレスとするデータ記憶用メモリ１３上の領域にキー値Ｘに関連するデータを書き込む。所定値Ｚとしては、例えば、所定のビット列を用いることができる。
【００３２】
アドレス値Ｓとして、書き込みを行う度にインクリメントされる連続番号を用いれば、データ記憶用メモリ１３に連続的にデータを書き込むことが可能となるため、データ記憶用メモリ１３を効率的に利用することが可能となる。
【００３３】
（ステップＣ４）
他方、制御部１１は、初期値Ｙが記憶されていなければ、予め定められた複数のアルゴリズムのうちの上記短縮変換に用いたアルゴリズム（例えばｆ関数）とは異なる他のアルゴリズム（例えばｇ関数、ｈ関数、ｉ関数）を用いてキー値Ｘを短縮変換し（例えば短縮変換値ｇ（Ｘ）、短縮変換値ｈ（Ｘ）、または短縮変換値ｉ（Ｘ）にして）、判定を繰り返す（例えば領域２ｃ、領域２ｅ、または領域２ｇについて判定し、領域２ｄ、領域２ｆ、または領域２ｈにアドレス値Ｓを書き込む）。
【００３４】
（ステップＤ１）
図７に示すように、制御部１１は、キー値Ｘを含む検索要求を受け付けた場合に、予め定められた複数のアルゴリズムのうちの一つのアルゴリズム（例えばｆ関数）を用いてキー値Ｘを短縮変換して短縮変換値ｆ（Ｘ）とする。
【００３５】
（ステップＤ２）
次に、制御部１１は、短縮変換値ｆ（Ｘ）をメモリアドレスとするアドレス記憶用メモリ１２上の領域２ａにキー値Ｘが記憶されているか否かを判定する。
【００３６】
（ステップＤ３）
制御部１１は、キー値Ｘが記憶されていれば、短縮変換値ｆ（Ｘ）に所定値Ｚを加えた値をメモリアドレスとするアドレス記憶用メモリ１２上の領域２ｂからアドレス値Ｓを読み出し読み出したアドレス値Ｓをメモリアドレスとするデータ記憶用メモリ１３上の領域からデータを読み出す。
【００３７】
（ステップＤ４）
他方、制御部１１は、キー値Ｘが記憶されていなければ、予め定められた複数のアルゴリズムのうちの上記短縮変換に用いたアルゴリズム（例えばｆ関数）とは異なる他のアルゴリズム（例えばｇ関数、ｈ関数、ｉ関数）を用いてキー値Ｘを短縮変換し（例えば短縮変換値ｇ（Ｘ）、短縮変換値ｈ（Ｘ）、または短縮変換値ｉ（Ｘ）にして）、判定を繰り返す（例えば領域２ｃ、領域２ｅ、または領域２ｇについて判定し、領域２ｄ、領域２ｆ、または領域２ｈにアドレス値Ｓを書き込む）。
【００３８】
以上説明した本発明の実施形態に係るデータベース装置１によれば、アドレス記憶用メモリ１２を用いて検索が行われるため、従来とは異なる方法でデータを高速に検索することが可能となる。また、アドレス記憶用メモリ１２へのアドレスの登録・アドレスの修正・アドレスの削除などは、アドレスを検索する際に行われるため（すなわち、動的に登録、修正、削除などされる）、アドレス記憶用メモリ１２は従来のインデックステーブルのように頻繁にメンテナンスする必要がない。このため、本発明の実施形態に係るデータベース装置１によれば、インデックステーブルの再構築などのためにデータベースを停止させる必要がなく、データベースを無停止運転させることも可能となる。
【００３９】
なお、キー値Ｘとしては、例えば、クレジットカード番号や非接触ＩＣカードの識別番号などを用いることができる。また、キー値Ｘに関連するデータとしては、例えば、クレジットカード番号や非接触ＩＣカードに関連するデータなどを用いることができる。
【００４０】
また、アルゴリズム（ｆ関数、ｇ関数、ｈ関数、ｉ関数など）としては、キー値を短縮変換する各種のアルゴリズムを用いることができる。例えば、ハッシュ関数やＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）などに基づく処理は、このアルゴリズムの一例である。
【００４１】
また、キー値を文字列とし、この文字列の一部を短縮変換値とする処理なども、上記アルゴリズムの一例として好ましく用いることができる。例えば、文字列（例：ＡＢＣ１２３４５６７８９）を半分に切り分けてそのうちの一方（例：後半部分の「４５６７８９」）を短縮変換値として用いたり、文字列において所定の箇所に位置する文字例（例：４桁目〜６桁目に位置する「１２３」）を短縮変換値として用いたりする処理などは、このようなアルゴリズムの一例となる。
【００４２】
このようにして文字列の一部を短縮変換値とする場合は、文字列のどの部分を短縮変換値として用いるのかを動的に変更させることにより、１つのキー値について様々な短縮変換を容易に試みることが可能となる。
【００４３】
すなわち、上記の例で説明すると、文字列（例：ＡＢＣ１２３４５６７８９）を半分に切り分けてそのうちの一方を短縮変換値として用いる場合は、前半部分（例：ＡＢＣ１２３）を用いるか後半部分（例：４５６７８９）を用いるかを短縮変換の度に変更したり、文字列において所定の箇所に位置する文字例を短縮変換値として用いる場合は、所定の箇所を短縮変換の度に変更したりすることにより、１つのキー値について様々な短縮変換を容易に試みることが可能となる。
【００４４】
本発明の実施形態に係るデータベース装置１は、ネットワークに接続して用いることができる。この場合、上記した記憶要求や検索要求は、ネットワークに接続された装置から本発明の実施形態に係るデータベース装置１へ送信されることとなる。本発明の実施形態に係るデータベース装置１がネットワークに接続されるデータベースシステムによれば、ネットワークにおいて、従来とは異なる方法でデータを高速に検索することが可能となる。
【００４５】
以上、本発明の実施形態について説明したが、これらの説明は、本発明の一例に関するものであり、本発明は、これらの説明によって何ら限定されるものではない。
【符号の説明】
【００４６】
１    データベース装置
１１    制御部
１２    アドレス記憶用メモリ
１３    データ記憶用メモリ
【図１】
2012141115.tif 000003
【図２】
2012141115.tif 000004
【図３】
2012141115.tif 000005
【図４】
2012141115.tif 000006
【図５】
2012141115.tif 000007
【図６】
2012141115.tif 000008
【図７】
2012141115.tif 000009
【国際調査報告】
2012141115.tif 000010
2012141115.tif 000011
2012141115.tif 000012
2012141115.tif 000013