(57)【特許請求の範囲】
【請求項１】
対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有し、この記憶装置には、記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域がそれぞれ数値化可能な識別子によって個性化されているシステムであって、
データのアクセス要求を受け付けたときに当該データが関わる前記識別子とアクセス先のテーブルの記録領域数とを特定する特定手段と、
少なくとも前記特定手段で特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定する領域範囲決定手段と、
を有することを特徴とするデータ処理システム。
【請求項２】
対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有し、この記憶装置には、記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域がそれぞれ数値化可能な識別子によって個性化されているシステムであって、
データ及びそのデータの記録要求が入力されたときに前記記憶装置にアクセスしていずれかのテーブルの記録領域に当該データを記録するデータ記録モジュールと、検索要求が入力されたときに前記記憶装置にアクセスして前記一又は複数のテーブルから該当するデータを検索するデータ検索モジュールとを有し、
前記データ記録モジュールと前記検索モジュールの少なくとも一方は、
対象となるデータが関わる前記識別子とアクセス先のテーブルの記録領域数とを特定し、少なくとも特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定し、決定した領域範囲にアクセスするように構成されていることを特徴とするデータ処理システム。
【請求項３】
前記特定手段は、オブジェクトの識別子（Ｍ）と前記アクセス先のテーブルでの１顧客当たりの記録領域数（Ｎ）とを特定し、
前記領域決定手段は、特定された前記識別子（Ｍ）と前記記録領域数（Ｎ）とから下記の計算アルゴリズムを実行することにより当該テーブルにおいてアクセス可能な記録領域の範囲を決定することを特徴とする、
請求項１記載のデータ処理システム。
Ｎ＊［Ｍ−１］＋１〜Ｎ＊Ｍ
（但し、［］はガウス関数によって算出される整数値）
【請求項４】
前記特定手段は、目標オブジェクトに属するデータが記録される第１テーブルの記録領域の識別子（αａ）を特定するとともに、第１テーブルの１オブジェクト当たりの記録領域数（Ｎａ）と、この第１テーブルと前記目標オブジェクトにより関連付けられたデータが記録される第２テーブルの１オブジェクト当たりの記録領域数（Ｎｂ）とを特定し、
前記領域範囲決定手段は、特定された前記識別子（αａ）及び各記録領域数（Ｎａ，Ｎｂ）とから下記の計算アルゴリズムを実行することにより第２テーブルにおいてアクセス可能なデータの記録領域の範囲を決定することを特徴とする、請求項１記載のデータ処理システム。
［αａ／Ｎａ］＊Ｎｂ＋１〜［αａ／Ｎａ＋１］＊Ｎｂ
（但し、［］はガウス関数によって算出される整数値）
【請求項５】
オブジェクトによって相互に関連付けられた第１テーブル及び第２テーブルのテーブル結合検索要求及び検索条件を受け付ける手段と、
受け付けた前記検索条件をテーブル毎に分解する手段と、
受け付けた前記テーブル結合検索要求を実行する検索手段とをさらに備え、
前記特定手段は、分解された第１テーブルの検索条件をもとに当該第１テーブルから該当する一の記録領域の識別子（αａ）を特定するとともに当該第１テーブルの１オブジェクト当たりの記録領域数（Ｎａ）と前記第２テーブルの１オブジェクト当たりの記録領域数（Ｎｂ）とを特定し、
前記領域範囲決定手段は、特定された前記識別子（αａ）及び各記録領域数（Ｎａ，Ｎｂ）とから第２テーブルにおいて検索対象となる記録領域の範囲を下記の計算アルゴリズムを実行することによって決定し、
［αａ／Ｎａ］＊Ｎｂ＋１〜［αａ／Ｎａ＋］）＊Ｎｂ
（但し、［］はガウス関数によって算出される整数値）
前記検索手段は、前記領域範囲決定手段で決定された範囲の記録領域に対して第２テーブルの検索条件に従うデータの検索処理を実行することを特徴とする、
請求項１記載のデータ処理システム。
【請求項６】
オブジェクトによって相互に関連付けられた第１テーブル及び第２テーブルのテーブル結合検索要求及び検索条件を受け付ける手段と、
受け付けた前記検索条件をテーブル毎に分解する手段と、
受け付けた前記テーブル結合検索要求を実行する検索手段とをさらに備え、
前記特定手段は、分解された第１テーブルの検索条件をもとに当該第１テーブルから該当する一の記録領域の識別子（αａ）を特定するとともに当該第１テーブルの１オブジェクト当たりの記録領域数（Ｎａ）と前記第２テーブルの１オブジェクト当たりの記録領域数（Ｎｂ）とを特定し、
前記領域範囲決定手段は、特定された前記識別子（αａ）及び各記録領域数（Ｎａ，Ｎｂ）とから第２テーブルにおいて検索対象となる記録領域の範囲を下記の計算アルゴリズムを実行することによって決定し、
［αａ／Ｎａ］＊Ｎｂ＋１〜［αａ／Ｎａ＋］）＊Ｎｂ
（但し、［］はガウス関数によって算出される整数値）
前記検索手段は、第２テーブルの検索条件に従うデータの検索処理を実行するとともに、これによって得られた記録領域の識別子と、前記領域範囲決定手段で決定された範囲のすべての記録領域の識別子との論理積を判定することにより、すべての検索条件に従うデータが記録されている記録領域を特定するように構成されていることを特徴とする、
請求項１記載のデータ処理システム。
【請求項７】
前記記録領域が個々のテーブル内に行又は列単位で連続して形成されており、前記識別子は、当該テーブル内の行番号又は列番号であることを特徴とする、
請求項１ないし６のいずれかの項記載のデータ処理システム。
【請求項８】
対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有し、この記憶装置には、記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域がそれぞれ数値化可能な識別子によって個性化されているコンピュータシステムに於いて、
オブジェクトを識別するための識別情報を含むデータのアクセス要求を受け付けたときに当該データが関わる前記識別子とアクセス先のテーブルの記録領域数とを前記識別情報をもとに特定する処理と、
少なくとも前記特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定する処理とを実行することを特徴とする、
コンピュータシステムによるデータ処理方法。
【請求項９】
対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有し、この記憶装置には、記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域がそれぞれ数値化可能な識別子によって個性化されているコンピュータシステムに、
オブジェクトを識別するための識別情報を含むデータのアクセス要求を受け付けたときに当該データが関わる前記識別子とアクセス先のテーブルの記録領域数とを前記識別情報をもとに特定する処理と、
少なくとも前記特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定する処理とを実行させるためのコンピュータプログラムが記録された、コンピュータ読み取り可能な記録媒体。
【請求項１０】
対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有し、この記憶装置には、記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域がそれぞれ数値化可能な識別子によって個性化されているコンピュータシステムに、
オブジェクトを識別するための識別情報を含むデータのアクセス要求を受け付けたときに当該データが関わる前記識別子とアクセス先のテーブルの記録領域数とを前記識別情報をもとに特定する特定手段と、
少なくとも前記特定手段で特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定する領域範囲決定手段とを構築するためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、顧客、従業員、患者、犯罪者、製品、航空機、設備、原子炉等のようなオブジェクトに関連するデータをオブジェクトによって関連付けた複数のデータ領域に分類して記録するとともに、該当するデータをデータ領域から読み出す際に行う特徴的なデータ処理に関する。特に、オブジェクトの種類、データの量等に依存せずにデータの記録及び検索を可能にする改良された手法に関する。
【０００２】
【従来の技術】
顧客に関する各種データを収集して記憶装置で管理する場合、そのデータの種類や収集過程等に応じて、それらのデータを、記憶装置内で複数のデータ領域、例えばテーブル又はファイル（以下、データ領域を「テーブル」とする）に分けて管理するのが一般的である。
【０００３】
例えば、顧客に対してどのようなイベント（セール、バーゲン、キャンペーン等）を、何時行ったかを管理するためのイベント履歴テーブルに、顧客を識別するためのＩＤ（顧客ＩＤ）、イベント日、イベント内容、イベント媒体（どのような媒体（ダイレクト・メールや電子メール等）で顧客に通知をしたか・・・）等の情報が記録され、顧客の購買実績を管理するための購買履歴テーブルに、顧客を識別するためのＩＤ、購買日、商品名、金額等の情報が記録される例を想定する。すなわち、顧客の情報が、イベント履歴と購買履歴との二つのテーブルに分けられて管理される場合を想定する。
【０００４】
これらの二つのテーブルは、顧客ＩＤのような基本データで関連付けられており、テーブル間にまたがったデータの検索を可能にする。例えば、「キャンペーンＣを行った顧客が購入した商品を見つける場合は、イベント履歴テーブルを検索し、このイベント履歴テーブルから、「キャンペーンＣ」を行った顧客を特定してその顧客の顧客ＩＤを得る。次に、顧客ＩＤを使用して、購買履歴テーブルを検索し、該当する顧客ＩＤの購買実績を特定する。そして、購買した商品をディスプレイ等に出力する。
これらの一連の処理の手法としては、そのための手続を明示的に記述して実行する場合と、データを処理するシステム（データベース・システム等）が自動的に、すなわち暗黙的に解釈実行する場合の２通りが考えられる。明示的、暗黙的、いずれの場合においても、二つのテーブル間の関連付けは、顧客ＩＤをキーとして検索を行うことによって行なわれる。
【０００５】
一方のテーブルから特定された顧客についての詳細な情報は、その顧客の顧客ＩＤを用いて他方のテーブルから検索することにより得る。このような処理は、テーブル結合（ＪＯＩＮ）と呼ばれる。このテーブル結合を実現する場合は、複数のステップを伴うため、処理すべきデータ件数が増加するにつれて、処理時間が膨大になり、実用にならないケースが出てくる。
【０００６】
【発明が解決しようとする課題】
上記のテーブル結合のプロセスを高速化する手法は、種々開発されている。従来の手法は、いずれも処理を高速化するために、記憶装置上にテーブル間の関係を記録しておく。したがって、記憶装置との間でのデータ入出力のプロセスが伴うため、処理の高速化には限界があった。また、記憶装置にテーブル間の関係を記録しておくため、テーブルの数が増加し、テーブル間の関係の情報が増加するため、それらの関係を検出して記録する際のオーバヘッド、それらの関係を記録する記憶装置上のスペース等が増加する等の問題があった。
【０００７】
このように、複数のテーブルに分かれて管理されている顧客情報を、それらのテーブルにまたがった条件で探すテーブル結合の処理において、管理する顧客数が多くなると、テーブル結合の処理を実行する際に要する処理負荷が増大し、実運用に耐えられない状態になる可能性が高くなる。また、扱うテーブル数が増えた場合も、テーブル結合の組み合わせが増え、処理負荷が増大し、実運用に耐えられない状態になる可能性が高くなる。
【０００８】
本発明は、このような実情に鑑み、例えばデータの量に依存せず、一定の処理速度を得ることができるデータ処理の仕組みを提供するものである。
【０００９】
【課題を解決するための手段】
本発明は、対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有するデータ処理システムを提供する。記憶装置には、記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域が、それぞれ数値化可能な識別子によって個性化されている。
本発明のデータ処理システムは、データのアクセス要求を受け付けたときに当該データが関わる前記識別子とアクセス先のテーブルの記録領域数とを特定する特定手段と、少なくとも前記特定手段で特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定する領域範囲決定手段とを具えることで、オブジェクトの種類、データの量に拘わらないアクセスを可能にするものである。
ここで「アクセス」とは、データの記録、削除、更新又は読み出しを指す。また、「テーブル」は記憶装置における所定単位でのデータ記録領域を指す。
【００１０】
上記の特定手段と領域範囲決定手段を、一つのモジュールによって実現することも可能である。この場合のモジュールは、データ及びそのデータの記録要求が入力されたときに前記記憶装置にアクセスしていずれかのテーブルの記録領域に当該データを記録するデータ記録モジュール、及び／又は、検索要求が入力されたときに前記記憶装置にアクセスして前記一又は複数のテーブルから該当するデータを検索するデータ検索モジュールである。
【００１１】
前記記憶装置に、オブジェクトによって相互に関連付けられた第１テーブル及び第２テーブルを格納しておき、テーブル結合検索要求及び検索条件を受け付ける手段と、受け付けた前記検索条件をテーブル毎に分解する手段と、受け付けた前記テーブル結合検索要求を実行する検索手段とをさらに備えてデータ処理システムを構成することも、本発明によれば可能である。
この場合の前記特定手段は、例えば、分解された第１テーブルの検索条件をもとに当該第１テーブルから該当する一の記録領域の識別子を特定するとともに当該第１テーブルの１オブジェクト当たりの記録領域数と前記第２テーブルの１オブジェクト当たりの記録領域数とを特定し、前記領域範囲決定手段は、特定された前記識別子及び各記録領域数とから第２テーブルにおいて検索対象となる記録領域の範囲を所定の計算アルゴリズムを実行することによって決定する。
そして、前記検索手段で、前記領域範囲決定手段で決定された範囲の記録領域に対して第２テーブルの検索条件に従うデータの検索処理を実行するように構成する。このような構成のデータ処理システムでは、計算アルゴリズムによって検索対象となる記録領域の範囲が定まるので、オブジェクトの種類及びデータの量に依存しないデータ検索が可能になる。
【００１２】
本発明は、また、対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有し、この記憶装置には、オブジェクト毎に記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域がそれぞれ数値化可能な識別子によって個性化されているコンピュータシステムに於いて、
オブジェクトを識別するための識別情報を含むデータのアクセス要求を受け付けたときに当該データが関わる前記識別子とアクセス先のテーブルの記録領域数とを前記識別情報をもとに特定する処理と、少なくとも前記特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定する処理とを実行することを特徴とする、コンピュータシステムによるデータ処理方法を提供する。
【００１３】
本発明は、さらに、対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有し、この記憶装置には、オブジェクト毎に記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域がそれぞれ数値化可能な識別子によって個性化されているコンピュータシステムに、オブジェクトを識別するための識別情報を含むデータのアクセス要求を受け付けたときに当該データが関わる前記識別子とアクセス先のテーブルの記録領域数とを前記識別情報をもとに特定する処理と、少なくとも前記特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定する処理とを実行させるためのコンピュータプログラムが記録された、コンピュータ読み取り可能な記録媒体を提供する。
【００１４】
本発明は、さらに、対象となる事象を表現したオブジェクトに属するデータを記録する記憶装置を有し、この記憶装置には、オブジェクト毎に記録可能なデータの記録領域数がオブジェクト毎に定められている一又は複数のテーブルが格納されており、個々のオブジェクト及びテーブルの記録領域がそれぞれ数値化可能な識別子によって個性化されているコンピュータシステムに、
オブジェクトを識別するための識別情報を含むデータのアクセス要求を受け付けたときに当該データが関わる前記識別子とアクセス先のテーブルの記録領域数とを前記識別情報をもとに特定する特定手段と、少なくとも前記特定手段で特定された識別子と記録領域数とを変動要素とする所定の計算アルゴリズムを実行することにより前記アクセス先のテーブルの記録領域の範囲を決定する領域範囲決定手段とを構築するためのコンピュータプログラムを提供する。
【００１５】
【発明の実施の形態】
以下、本発明を適用したデータ処理システムの実施の形態を説明する。
図１は、このデータ処理システムのハードウェア構成図である。
このデータ処理システム１は、コンピュータシステムとコンピュータプログラムとの協働によって実現されるもので、主制御部１０と、この主制御部１０がアクセス可能な記憶装置２０と、オペレータからの各種要求を受け付けるための入力装置３０と、表示装置４０と、データ処理の結果を外部システムに出力するための出力装置５０と、主制御部１０、入力装置３０、表示装置４０及び出力装置５０との間のデータの入出力を制御する入出力制御部６０とを含んで構成される。
【００１６】
主制御部１０は、ＣＰＵを含んで構成されるもので、システム内の所要の制御と、後述するデータ記録モジュール及びデータ検索モジュールによる記憶装置２０へのアクセス、すなわちデータ記録及びデータ検索とを実行するものである。
【００１７】
記憶装置２０は、ハードディスク等のような外部記憶装置やＲＡＭ等の半導体メモリである。この記憶装置２０には、オブジェクト毎のデータを記録して管理するための複数のテーブルを格納するとともに、本発明の特徴的なコンピュータ（アプリケーション）プログラムの一つである記録・検索プログラム２４と、オペレーティングシステム等の制御プログラム２５とを記憶させ、主制御部１０が、これらを適宜読み出せるようにしておく。なお、本明細書において「テーブル」という場合は、狭義のデータテーブルのほか、ファイルのようなデータ記録手段全般を指すものとする。
【００１８】
この実施形態では、オブジェクトの一つとして、顧客を例に挙げ、顧客に関する種々のデータを、顧客ＩＤテーブル２１、行数管理テーブル２２、顧客テーブル２３に記録して管理する場合の例を挙げる。
【００１９】
記録・検索プログラム２４は、システム構築時に記憶装置２０に記憶させておいても良いが、例えばフレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ等の可搬性の記録媒体に予めコンピュータ読み取り可能な形態で記録され、適宜、記憶装置２０にインストールされるものであっても良い。
【００２０】
記録・検索プログラム２４は、顧客毎のデータの記録処理を行うデータ記録モジュールと、検索要求に応じてデータ検索処理を行うデータ検索モジュールとを主制御部１０に選択的に形成するためのものである。データ記録モジュールと、データ検索モジュールは、それぞれ本発明の特定手段と、領域範囲決定手段の双方の機能を具備するものである。
【００２１】
なお、記録・検索プログラム２４の指示に基づいて制御プログラム２５が実際の処理の一部を行い、その処理を通じて上記モジュールが形成される場合や他のアプリケーションプログラムとの協働によって上記モジュールが形成される場合もあるが、ここでは、便宜上、記録・検索プログラム２４のみによって、上記のモジュールが形成されるものとして説明する。
【００２２】
入力装置３０は、キーボードやマウス等により構成され、オペレータからのデータの記録要求、検索要求その他の要求を受け付け、これらの要求を入出力制御部６０を介して主制御部１０に伝達する機能を有する。これらの要求は、入力装置３０によらず、あるいは、入力装置３０を介して通信回線及び入出力制御部６０を介して主制御部１０に伝達される場合もある。図１の通信回線は、そのために記述してある。
【００２３】
表示装置４０は、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）やＦＰＤ（Ｆｌａｔ  Ｐａｎｅｌ  Ｄｉｓｐｌａｙ）により構成され、オペレータからの各種要求の内容や要求に応じた主制御部１０による処理結果を表示する機能を有する。
【００２４】
出力装置５０は、プリンタ、ディスク装置等により構成され、主制御部１０による処理結果を出力する機能を有する。プリンタの場合にはそれを印刷によって出力し、ディスク装置の場合にはそれを内部に蓄積しておいて、適宜、それを読み出せるようにする。
【００２５】
入出力制御部６０は、入力装置３０又は通信回線を通じて受け付けた各種要求を主制御部１０に伝達したり、こられの要求の内容を表示装置４０に表示させたり、入力装置３０又は通信回線を介して受け付けた要求に従って実行された処理結果を表示装置４０または出力装置５０に伝達したりする機能を有する。
【００２６】
次に、本実施形態における顧客ＩＤテーブル２１、行数管理テーブル２２、顧客テーブル２３の内容を説明する。
＜顧客ＩＤテーブル＞
図２は、顧客ＩＤテーブル２１の内容例を示した図である。顧客ＩＤテーブル２１には、顧客毎に、データ記録の一単位である行を識別するための識別子（以後、「行番号」とする）と、顧客を一意に識別するための顧客ＩＤとの組が記録される。行番号は、１，２，３，・・・のような自然数である。
テーブル内では、同一の顧客ＩＤが重複して記録されないようになっている。この顧客ＩＤテーブル２１は、顧客ＩＤが既に記録されているかどうかを判定するため、あるいは、既に記録されていた顧客ＩＤの行番号を特定するために用いられる。
【００２７】
＜行数管理テーブル＞
図３は、行数管理テーブル２２の内容例を示した図である。行数管理テーブル２２には、顧客テーブル毎に、１顧客について割当可能なデータ記録領域数、つまり、データの行数が記録される。図３の例では、顧客テーブル＃１には１顧客当り１００行、顧客テーブル＃２は１顧客当り２００行、顧客テーブル＃３は１顧客当り１０００行が割当可能になっている。
【００２８】
＜顧客テーブル＞
顧客テーブル２３は、顧客に関する種々のデータを記録するためのテーブルであり、複数の行（記録領域）がそれぞれ連続する数値からなる識別子（これも「行番号」となる）で識別できるようになっている。顧客テーブル２３は、単一であっても良く、顧客から派生するデータの種類に応じて複数用意しても良い。
但し、どの顧客ＩＤに属するデータかによって、顧客テーブル２３の中の行番号の範囲が異なる。例えば、ある顧客テーブルに対してデータを記録する場合に、行番号１０１番から２００番の中で未使用の行番号を割り当て、この行番号によって、そのデータを記録した領域が特定できるようになっている。
【００２９】
図４は、顧客ＩＤテーブル２１と顧客テーブル２３との間の相互関連例を示した図である。ここでは、顧客テーブル２３が二つ（顧客テーブル＃１、顧客テーブル＃２）挙げられている。以後の説明では、一方の顧客テーブル２３を顧客テーブル＃１、他方の顧客テーブル２３を顧客テーブル＃２と表現する。
顧客テーブル＃１には顧客を対象としたイベントの履歴が顧客毎に記録され、顧客テーブル＃２には当該イベントに基づく購買履歴が記録されるようになっている。これらのテーブルは相互に関連付けられており、顧客ＩＤ、イベント、購買履歴のいずれかによって他のデータを特定できるようになっている。つまり、「顧客Ａ」の顧客ＩＤを含むデータは、顧客テーブル＃１では行番号１〜１００、顧客テーブル＃２では行番号１〜２００の範囲に記録される。言い換えれば、これらの範囲のデータは、どの顧客テーブルでも顧客Ａに関わるデータとなる。同様に、「顧客Ｂ」の顧客ＩＤを含むデータは、顧客テーブル＃１では行番号１０１〜２００、顧客テーブル＃２では行番号２０１〜４００の範囲に記録される。
【００３０】
［データ処理方法］
＜データ記録処理＞
次に、このデータ処理システム１により行われるデータ処理方法の実施形態を説明する。
まず、図５を参照して、データ記録モジュールにおけるデータの記録処理について説明する。
顧客ＩＤを含むデータが入力装置３０を通じて入力されると（Ｓ１０１：Ｙｅｓ）、主制御部１０（データ記録モジュール）は、入力されたデータを入出力制御部６０を介して取得する。データ記録モジュールは、このデータに含まれている顧客ＩＤと同一のＩＤが、顧客ＩＤテーブル２１に存在するかどうかを調べる。存在した場合は（Ｓ１０２：Ｙｅｓ）、その存在した顧客ＩＤに対応する行番号を「Ｍ」として、主制御部１０内の図示しない作業領域に一時記録する（Ｓ１０４）。このデータが、顧客Ｂに関わるデータであるとすると、図２に示されるように、顧客Ｂは、顧客ＩＤテーブル２１の行番号「２」の領域に存在するので、「Ｍ」として「２」を一時記録する。なお、顧客ＩＤテーブル２１に顧客Ｂが存在しなかった場含は（Ｓ１０２：Ｎｏ）、顧客ＩＤテーブル２１の未使用の行を調べ、その行に新たに該当する顧客ＩＤを対応付け（Ｓ１０３）、その行番号を「Ｍ」として作業領域に一時記録することになる（Ｓ１０４）。
【００３１】
データ記録モジュールは、次に、行数管理テーブル２２を調べ、データを記録しようとする顧客テーブルでの１顧客当たりに確保すべき行数を特定し、その値を作業領域に一時記録する。この値を「Ｎ」とする。記録しようとする顧客テーブル２３がどのようなデータを扱うか、また、そのデータの構造がどのようになっているかは、このデータ記録の処理に先立って決定されており、その顧客テーブル２３の構造に合わせた形式のデータが入力されるものとする。図４の例では、イベントの履歴に関するデータであれば、顧客テーブル＃２に、日付、イベント（キャンペーンＡ，Ｂ，Ｃ，・・・）、通知手段（ダイレクトメール（ＤＭ）、Ｅｍａｉｌ、・・・）として記録され、イベント毎の購買履歴に関するデータであれば、顧客テーブル＃１に、日付、商品（バッグ、ベルト、・・・）、価格として記録される。また、行数（Ｎ）は、顧客テーブル＃１であれば１００行、顧客テーブル＃２であれば２００行として特定され、作業領域に一時記録される。
【００３２】
上記の処理によって、ＭとＮの値が特定されると、データ記録モジュールは、これらの値からデータを記録すべき顧客テーブルの行番号の範囲を、
「Ｎ＊（Ｍ−１）＋１〜Ｎ＊Ｍ」の計算アルゴリズムによって決定する（Ｓ１０５）。例えば、顧客Ａについてのイベントデータを記録することができる顧客テーブル＃１の範囲は、Ｍが「１」であり、Ｎが「１００」であることから、行番号「１」〜「１００」の範囲、顧客Ｂについてのイベントデータを記録することができる顧客テーブル＃１の範囲は、Ｍが「２」であり、Ｎが「１００」であることから、行番号「１０１」〜「２００」の範囲、ということになる。
【００３３】
データを記録する際には、この行番号の範囲で、未使用の行を選びだし、その行にデータを記録していく（Ｓ１０６）。例えば、顧客Ｂのイベントデータを顧客テーブル＃１に記録する際に、１０１行目が使用されており、１０２行目が未使用であった場合は、当該データが１０２行目に記録される。
このように、計算アルゴリズムを実行するだけで、データを記録する領域（行番号の範囲）を決定することができるので、データの量に依存しない、高速なデータ記録処理が可能になる。
【００３４】
＜テーブル結合検索＞
次に、図６を参照して、テーブル結合検索処理について説明する。この処理は、データ検索モジュールにより実行される。
オペレータによる検索要求及び検索条件が入力装置３０を通じて入力されると、これらのデータが、入出力制御部６０を通じてデータ検索モジュールへ送られ（Ｓ２０１：Ｙｅｓ）、データ検索モジュールで、テーブル結合検索が行われる。
【００３５】
データ検索モジュールは、入力された検索条件を、テーブル毎の検索条件に分解する（Ｓ２０２）。そして、分解された検索条件により、まず、顧客テーブル＃１に対して検索を行い、その検索の結果として求められた行の行番号を、作業領域に一時記録する（Ｓ２０３）。この値を「αａ」とする。また、行数管理テーブル２２を調べ、検索対象となるテーブルの１顧客当たりの行数を読み出し、これを作業領域に一時記録する（Ｓ２０４）。この値を「Ｎａ」とする。
データ検索モジュールは、さらに、テーブル結合を行うもう一方の顧客テーブル＃２についての１顧客当たりの行数を行数管理テーブル２２を調べて特定し、これを作業領域に一時記録する（Ｓ２０４）。この値を「Ｎｂ」とする。
その後、次の計算アルゴリズムを実行し、テーブル結合先のテーブルの該当する行番号の範囲を決定する（Ｓ２０５）。
［αａ／Ｎａ］＊Ｎｂ＋１  〜  ［αａ／Ｎａ＋］）＊Ｎｂ
（［  ］はガウス関数、すなわち［  ］内の演算結果で求められた値のうち、最大の整数値であることを示す）
【００３６】
上記のようにして算出された行番号の範囲は、顧客テーブル＃１に対する検索条件を満足した顧客に関連付けられた顧客テーブル＃２のデータの行の範囲である。顧客テーブル＃２に対する検索条件が無い場合（Ｓ２０６：Ｎｏ）、データ検索モジュールは、上記のようにして決定した範囲の各行のデータを順次読み出し、これらのデータを検索結果として、入出力制御部６０を介して表示装置４０、及び／又は、出力装置５０に送る（Ｓ２０７、Ｓ２０９）。
【００３７】
顧客テーブル＃２に対する検索条件がある場合（Ｓ２０６：Ｙｅｓ）、データ検索モジュールは、上記のようにして決定した範囲の各行に対して、顧客テーブル＃２内での検索条件を用いて検索処理を行い、これにより得られた行番号と上記のようにして決定された範囲のすべての行番号との論理積を判定する。つまり顧客テーブル＃２内での検索条件を用いた検索結果が上記の行番号の範囲に入っているかを調べ、マッチしたものを選択して最終的な検索結果を得る。得られた検索結果は、入出力制御部６０を介して表示装置４０、及び／又は、出力装置５０に送る（Ｓ２０８、Ｓ２０９）。
【００３８】
このように、計算アルゴリズムを実行するだけで、検索対象となるデータ（行番号によって特定可能）の範囲を決定することができるので、データの量に依存しない、高速なテーブル結合検索処理が可能になる。
【００３９】
ここで、テーブル結合検索の例をより具体的に説明する。
＜例１＞
図４に示した顧客テーブル＃１（イベント履歴）と顧客テーブル＃２（購買履歴）において、検索条件「キャンペーンＣの対象となった顧客が購入した商品を見つける」という検索要求があった場合のテーブル結合検索の例を説明する。
【００４０】
この場合に分解される検索条件は、
▲１▼顧客テーブル＃１に対する「キャンペーンＣ」を実施した顧客を求める、▲２▼顧客テーブル＃１で見つかった顧客に関連する購買履歴を顧客テーブル＃２から求める（テーブル結合）、となる。
【００４１】
データ検索モジュールは、顧客テーブル＃１に対して「キャンペーンＣ」を実施した顧客の検索処理を行う。この検索の結果は、図４の例では、顧客テーブル＃１の行番号「２」が該当する（αａ＝２）。行数管理テーブル２２から、顧客テーブル＃１の１顧客当たりに確保する行数として１００を得る（Ｎａ＝１００）。更に行数管理テーブル２２から、テーブル結合する相手先テーブルの顧客テーブル＃２の１顧客当たりに確保する行数として２００を得る（Ｎｂ＝２００）。これらの数値から、以下の計算アルゴリズムを実行し、顧客テーブル＃２の該当するデータの行番号の範囲を決定する。
0003631680.tif 000002
つまり、顧客テーブル＃２の行番号「１」から「２００」の範囲で、データが記録されている内容を出力することで、目的のデータを得ることができる。
【００４２】
＜例２＞
より複雑な検索例として、図４に示す顧客テーブル＃１と顧客テーブル＃２において、検索条件「キャンペーンＣの対象となった顧客で、ベルトを購入している顧客データを探す」という検索要求があった場合の処理を説明する。
【００４３】
この場合に分解された検索条件は、▲１▼顧客テーブル＃１に対する「キャンペーンＣ」を実施した顧客を求める、▲２▼顧客テーブル＃１で見つかった顧客に関連する購買履歴を顧客テーブル＃２から求める（テーブル結合）、▲３▼顧客テーブル＃２に対する「ベルト」を購入した顧客を求める、▲４▼▲２▼のテーブル結合の結果と▲３▼の検索結果の論理積を求める、ということになる。
【００４４】
データ検索モジュールは、まず、顧客テーブル＃１に対して「キャンペーンＣ」を実施した顧客の検索処理を行い、顧客テーブル＃１の行番号「２」を得る（αａ＝２）。次に、行数管理テーブル２２から、顧客テーブル＃１の１顧客当たりに確保する行数「１００」を得る（Ｎａ＝１００）。更に、行数管理テーブル２２から、テーブル結合した相手先テーブルである顧客テーブル＃２の１顧客当たりに確保する行数「２００」を得る（Ｎｂ  ＝２００）。そして、各数値から、以下の計算アルゴリズムを実行し、顧客テーブル＃２の該当するデータが記録されている行番号の範囲を求める。
0003631680.tif 000003
【００４５】
次に、顧客テーブル＃２に対して、「ベルト」を購入した顧客のデータの検索処理を行う。この検索の結果は、図４の例では、行番号「２」と「２０２」が該当する。上記のようにして決定した行番号の範囲（「１」〜「２００」）と、検索結果である行番号「２」、行番号「２０２」との両方に含まれる行番号を求める。結果は、行番号「２」となり、「キャンペーンＣの対象となった顧客で、ベルトを購入している顧客は、顧客ＡのＩＤをもつ者ということがわかる。
【００４６】
なお、上記の検索手順は一例であり、他の手順も考えられる。
行番号の範囲を決定した後は、その範囲の行番号をもとに、順次データを読み出して検索条件を満足するかどうかを判定するようにすることも可能である。但し、顧客テーブル＃１から顧客テーブル＃２の同じ顧客のデータを求める処理が含まれる。
【００４７】
＜変形例、他の分野への応用可能性＞
本実施形態では、顧客ＩＤテーブル２１が記憶装置２０内に独立して存在する形で説明しているが、この顧客ＩＤテーブル２１は、顧客テーブル２３の１つで、その機能を代替することが可能である。この場合は、より少ない種類のテーブルで実現可能となる。
【００４８】
また、本実施形態では、顧客テーブル２３が複数存在する形で説明しているが、顧客テーブル２３が１つであっても、本発明の効果がある。いわゆる自己ＪＯＩＮである。例えば、購買履歴に関するデータを記録した顧客テーブル＃２で、バッグとベルトの両方を購入した顧客を探す場合等が、これに該当する。
【００４９】
また、本実施形態では、処理すべきオブジェクトのデータとして、顧客のデータを用いたが、処理することができるオブジェクトは、一般化が可能である。例えば、従業員、患者、犯罪者、製品、航空機、設備、原子炉等をオブジェクトとし、これらから派生する種々のデータを対象にすることもできる。複数のデータが存在する場合（特に履歴等）には、特に効果が大きくなる。
【００５０】
また、本実施形態では、テーブルの行番号をデータの記録領域とした記録、検索が可能な処理系を例に挙げて説明したが、行番号でなくても、行を一意に識別できる識別子があり、これを数値化可能なものであれば、本発明の実施は、可能である。同様に、行のみならず、列を記録領域とし、その列を一意に識別できる識別子を用いても本発明の実施は可能である。
【００５１】
以上説明したように、本実施形態のデータ処理システム１が採用するようなデータ処理により、一方のテーブルで特定される行番号から他方のテーブルの行番号の範囲に、計算アルゴリズムによって直ちに変換することにより、２つのテーブル間の関係を計算のロジックだけで求めることができる。そのため、データ処理速度が、従来型のこの種のデータ処理システムに比べて、極めて高速になり。また、計算のロジックだけで、処理が可能であるため、データ量に関わらず、処理速度が一定となる効果もある。
【００５２】
また、顧客テーブル２３の数が増えても、テーブル毎の顧客ＩＤ当りの行数を行数管理テーブル２２に記述するだけで、これらのテーブル間でのテーブル結合が容易に実現できるようになる。さらに、このテーブル間結合が、テーブルへのデータ記録処理だけで済むようになるため、その速度がテーブルの数に依存しないデータ処理が可能になる。
【００５３】
【発明の効果】
以上、説明したように本発明によれば、その負荷がデータの大きさに依存しないデータ処理が可能になるので、データの増大によるシステムの処理速度の低下が抑制される、という優れた効果を奏し得る。
【図面の簡単な説明】
【図１】本発明が適用されるデータ処理システムの一実施形態を示すハードウェア構成図。
【図２】顧客ＩＤテーブルの内容例を示した図。
【図３】行数管理テーブルの内容例を示した図。
【図４】顧客ＩＤテーブルと顧客テーブル間の関係例を示した図。
【図５】本実施形態によるデータ記録処理の手順説明図。
【図６】本実施形態によるテ―ブル結合検索処理の手順説明図。
【符号の説明】
１  データ処理システム
１０  主制御部
２０  記憶装置
２１  顧客ＩＤテーブル
２２  行数管理テーブル
２３  顧客テーブル
３０  入力装置
４０  表示装置
５０  出力装置
６０  入出力制御部
【図１】
0003631680.tif 000004
【図２】
0003631680.tif 000005
【図３】
0003631680.tif 000006
【図４】
0003631680.tif 000007
【図５】
0003631680.tif 000008
【図６】
0003631680.tif 000009