(57)【要約】【課題】  多次元データの検索を高速化する情報を提供する。【解決手段】  多次元データを登録し、検索するための多次元データ管理システムであって、中央処理装置と、複数の次元それぞれの値を含む多次元データ、及び複数の次元それぞれの値の範囲と文字列とを対応付ける多次元管理データが、格納された記憶装置と、プログラムが格納されたメモリと、を備え、前記メモリに格納されたプログラムを実行する前記中央処理装置は、前記記憶装置から多次元データに含まれる複数の次元それぞれの値を取得し、取得された複数の次元それぞれの値が、前記記憶装置に格納された多次元管理データで対応付けられた複数の次元それぞれの値の範囲内に入る文字列を取得し、取得された文字列を連結し、連結された文字列を多次元データと関連付け、登録後の多次元データとして前記記憶装置へ格納する。【選択図】  図１
2019028933.tif 000002
【特許請求の範囲】
【請求項１】
多次元データを登録し、検索するための多次元データ管理システムであって、
中央処理装置と、
複数の次元それぞれの値を含む多次元データ、及び複数の次元それぞれの値の範囲と文字列とを対応付ける多次元管理データが、格納された記憶装置と、
プログラムが格納されたメモリと、
を備え、
前記メモリに格納されたプログラムを実行する前記中央処理装置は、
前記記憶装置から多次元データに含まれる複数の次元それぞれの値を取得し、
取得された複数の次元それぞれの値が、前記記憶装置に格納された多次元管理データで対応付けられた複数の次元それぞれの値の範囲内に入る文字列を取得し、
取得された文字列を連結し、
連結された文字列を多次元データと関連付け、登録後の多次元データとして前記記憶装置へ格納すること
を特徴とする多次元データ管理システム。
【請求項２】
請求項１に記載の多次元データ管理システムであって、
前記メモリに格納されたプログラムを実行する前記中央処理装置は、
前記記憶装置の読み出し単位に収まるように、予め設定された文字をセパレータとして、取得された文字列を連結すること
を特徴とする多次元データ管理システム。
【請求項３】
請求項２に記載の多次元データ管理システムであって、
前記記憶装置は、
複数の次元それぞれの値の範囲は、該範囲の最小値と最大値を含み、最小値と最大値の差が複数の範囲で一定である多次元管理データが格納されること
を特徴とする多次元データ管理システム。
【請求項４】
請求項２に記載の多次元データ管理システムであって、
前記記憶装置は、
複数の次元それぞれの値の範囲は、該範囲の最小値と最大値を含み、最小値と最大値の差が多次元データの分布に応じて異なる多次元管理データが格納されること
を特徴とする多次元データ管理システム。
【請求項５】
請求項２に記載の多次元データ管理システムであって、
前記記憶装置は、
複数の次元それぞれの値の範囲は、該範囲の最小値と最大値を含み、最小値と最大値の間に複数の多次元データが分布する多次元管理データが格納されること
を特徴とする多次元データ管理システム。
【請求項６】
請求項２に記載の多次元データ管理システムであって、
前記メモリに格納されたプログラムを実行する前記中央処理装置は、
前記記憶装置における、登録後の多次元データの格納位置情報を、連結された文字列から検索するための多次元索引データを生成し、前記記憶装置に格納すること
を特徴とする多次元データ管理システム。
【請求項７】
請求項６に記載の多次元データ管理システムであって、
前記記憶装置に格納された多次元索引データは、テキストインデックスであること
を特徴とする多次元データ管理システム。
【請求項８】
請求項６に記載の多次元データ管理システムであって、
前記メモリに格納されたプログラムを実行する前記中央処理装置は、
検索条件に含まれる次元の値が、前記記憶装置に格納された多次元管理データで対応付けられた複数の次元の値の範囲内に入る文字列を取得し、
取得された文字列を、前記記憶装置に格納された多次元索引データにて検索して、登録後の多次元データの格納位置情報を取得し、結果候補とすること
を特徴とする多次元データ管理システム。
【請求項９】
請求項８に記載の多次元データ管理システムであって、
前記メモリに格納されたプログラムを実行する前記中央処理装置は、
結果候補の中から検索条件に該当する登録後の多次元データを結果とすること
を特徴とする多次元データ管理システム。
【請求項１０】
請求項８に記載の多次元データ管理システムであって、
前記メモリに格納されたプログラムを実行する前記中央処理装置は、
検索条件に含まれる次元の値の範囲が、前記記憶装置に格納された多次元管理データで対応付けられた複数の次元の値の範囲内に入る文字列を取得し、
取得された文字列を、前記記憶装置に格納された多次元索引データにて検索して、登録後の多次元データの格納位置情報を取得し、結果候補とすること
を特徴とする多次元データ管理システム。
【請求項１１】
請求項８に記載の多次元データ管理システムであって、
前記記憶装置は、物理量をさらに含む登録後の多次元データが複数格納され、
前記メモリに格納されたプログラムを実行する前記中央処理装置は、
検索条件に含まれる次元の値の範囲が、前記記憶装置に格納された多次元管理データで対応付けられた複数の次元の値の範囲内に入る文字列を取得し、
取得された文字列を、前記記憶装置に格納された多次元索引データにて検索して、登録後の多次元データの格納位置情報を複数取得し、
複数取得された格納位置情報に基づき登録後の多次元データを複数取得し、
複数取得された多次元データに含まれる次元の値の一致を判定し、次元の値が一致すると判定された多次元データに含まれる物理量に基づいて、多次元データが類似していると判定すること
を特徴とする多次元データ管理システム。
【請求項１２】
中央処理装置とメモリを備えたコンピュータの多次元データ管理方法であって、
前記メモリに格納されたプログラムを実行する前記中央処理装置は、
多次元データに含まれる複数の次元それぞれの値を取得し、
取得された複数の次元それぞれの値が、多次元管理データで対応付けられた複数の次元それぞれの値の範囲内に入る文字列を取得し、
取得された文字列を連結し、
連結された文字列を多次元データと関連付け、登録後の多次元データとして格納すること
を特徴とする多次元データ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多次元データ管理システム及び多次元データ管理方法に関する。
【背景技術】
【０００２】
近年、情報技術を用いた材料工学の開発効率化の取り組みが盛んに行われており、マテリアルインフォマティクスへの関心が高まっている。これまでに、材料工学の分野では、第一原理計算などシミュレーション技術の導入が進んでいる。近年のビッグデータや人工知能への注目の高まりにも伴い、研究現場で得られる実験結果やシミュレーション結果のデータを活用し、研究者が仮説を検証するため、これらのデータを分析するニーズが高まっている。
【０００３】
研究現場で得られる実験結果やシミュレーション結果のデータは、一つ以上の次元に関連づけられた一つ以上の物理量から構成される多次元データであることが一般的である。研究者は、仮説を検証するため、一つ以上の次元及びその次元の値の範囲で多次元データを抽出し、その物理量の状態を可視化する。一つ以上の次元及びその次元の値の範囲で多次元データを抽出する処理は範囲検索となる。
【０００４】
また研究者は、仮説を検証するため、過去に実施した実験結果を蓄積し、新たに取得した実験結果と特性が似ている過去の実験結果を参照する、あるいは事前にシミュレーションを実行して、その結果を蓄積し、新たに取得した実験データと特性が似ている前記シミュレーションの結果を参照する。このように、類似する多次元データを抽出する処理は類似検索となる。
【０００５】
研究者にとって仮説検証のサイクルを早く回せるように、実験結果やシミュレーション結果の分析処理時間を短くすることは重要である。実験結果やシミュレーション結果は、レコード件数が多く、多次元のデータとなり、範囲検索や類似検索を高速に処理するための技術が必要になる。
【０００６】
特許文献１には、「特徴空間中の各次元がいくつかの区間に分割」され、「単一の区間が、各次元から選択」され、「選択された区間に重なるデータオブジェクトだけを含む、削減されたデータオブジェクト集合が選択」され、「この削減されたデータオブジェクト集合を使用」して、「クエリに対するマッチが決定」される技術が記載されている（要約）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２００７−５２１５６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載された技術を用いれば、「マッチ」（検索）の対象が「選択された区間」に限定することが可能になる。しかしながら、検索の対象となる「区間」（範囲）を高速に限定するためには、「クエリ」に含まれる検索条件から「区間」を高速に選択する必要があるものの、特許文献１には、このために提供されるべき情報に関する技術が十分に記載されているとは言えない。
【０００９】
本発明の目的は、多次元データの検索を高速化する情報を提供することにある。
【課題を解決するための手段】
【００１０】
本発明に係る代表的な多次元データ管理システムは、多次元データを登録し、検索するための多次元データ管理システムであって、中央処理装置と、複数の次元それぞれの値を含む多次元データ、及び複数の次元それぞれの値の範囲と文字列とを対応付ける多次元管理データが、格納された記憶装置と、プログラムが格納されたメモリと、を備え、前記メモリに格納されたプログラムを実行する前記中央処理装置は、前記記憶装置から多次元データに含まれる複数の次元それぞれの値を取得し、取得された複数の次元それぞれの値が、前記記憶装置に格納された多次元管理データで対応付けられた複数の次元それぞれの値の範囲内に入る文字列を取得し、取得された文字列を連結し、連結された文字列を多次元データと関連付け、登録後の多次元データとして前記記憶装置へ格納することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、多次元データの検索を高速化する情報を提供できる。
【図面の簡単な説明】
【００１２】
【図１】多次元データ管理システムの構成の例を示すブロック図である。
【図２】多次元データの登録処理の例を示す図である。
【図３】多次元管理データの例を示す図である。
【図４】登録前の多次元データの例を示す図である。
【図５】登録用データ生成の例を示すフローチャートである。
【図６】登録後の多次元データの例を示す図である。
【図７】多次元データの検索処理の例を示す図である。
【図８】多次元データの範囲検索の例を示す図である。
【図９】多次元データの類似検索の条件変換の例を示す図である。
【図１０】類似検索における多次元データのテーブルの例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照し、本発明を実施するための好ましい形態を実施例として説明する。
【００１４】
図１は、多次元データ管理システムの構成の例を示すブロック図である。図１に示すように、多次元データ管理システムは、中央処理装置１００、二次記憶装置１１０、主メモリ１２０、入力装置１３０及び出力装置１４０を有し、これらはバス１５０で接続された計算機である。
【００１５】
中央処理装置１００は、主メモリ１２０に格納されたプログラムを実行するプロセッサである。二次記憶装置１１０は、例えば、磁気記憶装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置であり、プログラム実行時に中央処理装置１００によって使用されるデータが格納される。
【００１６】
具体的に、二次記憶装置１１０には、多次元データ１１１、多次元管理データ１１２及び多次元索引データ１１３が格納される。
【００１７】
多次元データ１１１は、後で図４及び図９を用いて説明するように、複数の次元すなわち多次元に関する情報と物理量から成る多次元データを複数含み、例えば表形式の多次元データテーブルである。多次元データテーブルでは、多次元データそれぞれがテーブルのレコードとして格納され、レコード番号やアドレスで管理されてもよい。
【００１８】
多次元データ１１１は、多次元データのスキーマを含んでもよい。多次元データのスキーマは、多次元データテーブルのカラム名及びカラムのデータ型を含む。多次元管理データ１１２は、後で図３を用いて説明するように、多次元データ１１１を管理するためのデータである。
【００１９】
多次元索引データ１１３は、多次元コードをキーとして多次元データ１１１(多次元データテーブル)の中から多次元データ（多次元データのレコード番号やレコードの格納アドレス）を検索するための索引であり、例えば、Ｂ−Ｔｒｅｅインデックスやテキストインデックスである。
【００２０】
多次元索引データ１１３は、これらの一般的なインデックスであり、どのようなインデックスであっても本実施例の説明には影響がないため、多次元索引データ１１３の内容とその使用における処理の詳細については、説明を省略する。
【００２１】
主メモリ１２０は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性のメモリであり、オペレーティングシステム（ＯＳ）及びアプリケーションプログラムが格納される。中央処理装置１００が、オペレーティングシステムを実行することによって、計算機の基本機能が実現され、アプリケーションプログラムを実行することによって、アプリケーション特有の機能が実現される。
【００２２】
具体的に、主メモリ１２０には、多次元データ統括管理プログラム１２１、多次元管理データ作成プログラム１２２、多次元データ登録プログラム１２３、多次元データ検索プログラム１２４、多次元索引データ作成プログラム１２５及び多次元索引データ検索プログラム１２６が格納される。
【００２３】
多次元データ統括管理プログラム１２１は、多次元データ１１１などを管理するためのプログラムである。例えば、以下で説明する複数のプログラムがそれぞれの実行時に共通の多次元データ１１１などへアクセスできるように、多次元データ１１１などのアドレスを各プログラムへ提供してもよい。また、以下で説明するプログラムが多次元データ１１１などへアクセスする際に多次元データ統括管理プログラム１２１を使用してもよい。
【００２４】
多次元データ統括管理プログラム１２１は、多次元データ１１１などを多次元データ管理システムの外部から入力したり、外部へ出力したりするためのプログラムが含まれてもよい。また、多次元データ管理システムの外部からの操作に従って、以下で説明するプログラムのいずれかを起動してもよい。
【００２５】
多次元管理データ作成プログラム１２２は、入力された多次元管理データから多次元管理データ１１２を作成するためのプログラムである。多次元データ登録プログラム１２３は、入力された多次元データから多次元データ１１１を作成するためのプログラムである。
【００２６】
多次元データ検索プログラム１２４は、多次元データ１１１を参照して、検索処理（概略判定、詳細判定）を実行するためのプログラムである。これらの入力されたデータと作成されたデータの違いに関しては、後で説明する。
【００２７】
多次元索引データ作成プログラム１２５は、登録用の多次元データから索引データを生成し、多次元索引データ１１３に登録するためのプログラムである。多次元索引データ検索プログラム１２６は、多次元索引データ１１３を参照して、検索処理（概略判定）を実行するためのプログラムである。
【００２８】
なお、図１では、プログラムが主メモリ１２０に格納される例を示したが、プログラムは二次記憶装置１１０に格納されてもよい。この場合、プログラムは、二次記憶装置１１０から読み出され、主メモリ１２０にロードされて、中央処理装置１００によって実行される。
【００２９】
入力装置１３０は、キーボード、マウスなどのユーザインターフェースとなる装置である。出力装置１４０は、ディスプレイ装置、プリンタなどのユーザインターフェースとなる装置である。なお、多次元データ管理システムが、ネットワークに接続し、他の装置との通信を制御する通信インターフェースを備えてもよい。
【００３０】
通信インターフェースを備える場合、多次元データ管理システムが通信インターフェースを介して端末と接続され、その端末が入力装置１３０及び出力装置１４０の代わりとなって、多次元データ管理システムは、端末からの要求に従って多次元データを処理し、処理結果を端末に出力する。
【００３１】
多次元データ管理システムが、可搬記憶媒体の読み書き装置を備えてもよい。二次記憶装置１１０に格納されるデータと、主メモリ１２０に格納されるプログラムは、可搬記憶媒体に格納されて、多次元データ管理システムに読み込まれてもよいし、通信インターフェースを介して他の装置から入力されてもよい。
【００３２】
二次記憶装置１１０に格納されたデータは、可搬記憶媒体に書き込まれてもよいし、通信インターフェースを介して他の装置へ出力されてもよい。また、多次元データ管理システムは、物理的に一つの計算機上に構築されてもよいし、物理的には一つ又は複数の計算機上に構成された論理区画上に構築されてもよい。
【００３３】
図２は、多次元データの登録処理の例を示す図である。多次元データ登録プログラム１２３を実行する中央処理装置１００は、多次元データ登録２０２となり、多次元データ登録２０２は、多次元データの登録前に、多次元データを登録するテーブルの構成を定義した多次元スキーマ２０１に従い、空の多次元データテーブルとなる多次元データ２０３を作成する。
【００３４】
多次元スキーマには、テーブル名、カラム名、カラムのデータ型、インデックス定義など、多次元データテーブルの枠の作成に必要な情報が含まれる。既に説明したように、多次元スキーマ２０１は、入力された多次元データ１１１に含まれてもよい。空の多次元データテーブルである多次元データ２０３は、ＲＤＢ（Relational Database）で管理されるデータ構造であってもよい。
【００３５】
また、多次元管理データ作成プログラム１２２を実行する中央処理装置１００は、多次元管理データ作成２１２となり、多次元管理データ作成２１２は、多次元データの登録前に、入力された多次元管理データ２１１に従い、多次元管理データ１１２のテーブルを作成する。
【００３６】
多次元管理データ１１２は、多次元データ１１１の検索を高速化するため、多次元空間の分割領域が定義されたデータである。各次元の値の範囲、及びその範囲に割り当てられた文字列のコードが定義されている。各次元の値の範囲は予め設定されて一定であってもよいし、その範囲に存在する多次元データの件数が多いほど細かく分割するというように不定であってもよい。一つの範囲は２個以上の値を含むことが好ましい。
【００３７】
多次元管理データ２１１は、多次元管理データ１１２を作成するために使用できるデータであれば、どのようなデータであってもよい。例えば、多次元管理データ２１１は多次元データの分布の情報であって、多次元管理データ作成２１２は、範囲それぞれに同じ件数の多次元データが含まれる（分布する）ように分割領域をそれぞれ定義して、多次元管理データ１１２としてもよい。
【００３８】
また、多次元管理データ２１１は多次元データの分布の情報であって、多次元管理データ作成２１２は、範囲それぞれに含まれる多次元データの件数が最も平均化するように一定の分割領域を定義して、多次元管理データ１１２としてもよい。そして、多次元管理データ２１１は登録前の多次元データ２２１であり、多次元管理データ作成２１２は、前処理として多次元データの分布を計測してもよい。
【００３９】
また、多次元管理データ２１１は多次元管理データ１１２と同じ情報を含み、多次元管理データ作成２１２は、情報のデータフォーマットを変換してよい。
【００４０】
図３に多次元管理データ１１２の例を示す。図３に示した例では、三つの次元（ＤＩＭ−１、ＤＩＭ−２、ＤＩＭ−３）が存在する場合に、各次元の範囲、及びその範囲に割り当てられた文字列のコードを定義している。次元名１１２ａは次元を識別するための名称であり、この例では「ＤＩＭ−１」、「ＤＩＭ−２」及び「ＤＩＭ−３」である。
【００４１】
この例では次元それぞれに一つずつの値が存在し、最小値１１２ｂと最大値１１２ｃのそれぞれは、次元名１１２ａで識別される次元において、コード１１２ｄのコードが割り当てられる範囲を表す最小値と最大値である。
【００４２】
また、この例でコード１１２ｄは、２桁の数字の文字コードであるが、これに限定されるものではない。コード１１２ｄの「００」と「０１」が隣接する範囲であるのと同様に、次元に存在する値が近いことを表せるコードであれば、他のコードであってもよい。
【００４３】
そして、この例では、シンプルなケースとして、各次元は同じ一定の範囲と定義されている。例えば次元名１１２ａの「ＤＩＭ−１」で、最小値１１２ｂが「１」から最大値１１２ｃが「１０」の範囲に含まれるＤＩＭ−１の値には、文字列コード「００」が割り当てられることを示している。
【００４４】
図２に説明を戻し、多次元データ２０３と多次元管理データ１１２が作成された状態で、実質的な値を持つ多次元データが登録される。登録前の多次元データは、二つ以上の次元の値、及びその次元の値の組に関連付けられた一つ以上の物理量から構成されるデータとなる。このような登録前の多次元データを複数含む多次元データ２２１は、値をカンマ区切りの形式で表現されるＣＳＶ（Comma Separated Values）形式のデータ（ファイル）であってもよい。
【００４５】
図４に登録前の多次元データ２２１の例を示す。図４の例では、三つの次元の値、及びそれらの次元の値の組に関連付けられた一つの物理量から構成される多次元データが複数含まれる多次元データ２２１を示す。なお、説明を理解しやすいように、“１，９，６，５．２，・・・”となるＣＳＶ形式をテーブルのように表現している。
【００４６】
ＤＩＭ−１  ２２１ａは「ＤＩＭ−１」の次元名で識別される次元の値であり、ＤＩＭ−２  ２２１ｂは「ＤＩＭ−２」の次元名で識別される次元の値であり、ＤＩＭ−３  ２２１ｃは「ＤＩＭ−３」の次元名で識別される次元の値である。
【００４７】
ＤＩＭ−１  ２２１ａからＤＩＭ−３  ２２１ｃまでの値は、図３に示した多次元管理データ１１２の最小値１１２ｂと最大値１１２ｃに対応し、大小の比較の対象となりえる値である。また、物理量２２１ｄは四則演算の対象となりえる実数値である。
【００４８】
図２に説明を戻し、多次元データ登録プログラム１２３を実行する中央処理装置１００は、多次元データ登録２２２となり、多次元データ登録２２２は、多次元データ２２１を読み込む。そして、多次元データ登録プログラム１２３を実行する中央処理装置１００は、多次元データ登録２２３となり、多次元データ登録２２３は、多次元管理データ１１２に従い、登録用データ２３１を生成する。
【００４９】
図５に多次元データ登録２２３の登録用データ生成の例を示す。多次元データ登録２２３は、多次元データ登録プログラム１２３を実行する中央処理装置１００であるから、図５に示すフローチャートは中央処理装置１００が実行するフローチャートでもある。多次元データ登録２２３で生成される登録用データ２３１は、図４に示した多次元データ２２１に多次元コードを加えたデータである。
【００５０】
このために、登録用データ生成では、多次元データ２２１の各次元の値が、多次元管理データ１１２で定義されている各次元の値のどの範囲に含まれるか特定し、特定した範囲に対応するコードから多次元コードを生成する。
【００５１】
まず、多次元データ登録２２３は、多次元データ登録２２２で読み込んだ多次元データの中に未処理の多次元データが存在するかを判定する（ステップ５０１）。この判定は、登録前の多次元データ２２１のファイルのＥＯＦ（End of File）の直前にある多次元データまで処理したかを判定してもよい。
【００５２】
多次元データ登録２２３は、ステップ５０１で、未処理の多次元データが存在しないと判定すると処理を終了し、未処理の多次元データが存在すると判定すると、未処理の多次元データを１件（一つのレコード）取得し（ステップ５０２）、取得した多次元データの多次元コードを算出する（ステップ５０３）。
【００５３】
例えば、多次元データのＤＩＭ−１の値が「１」である場合は、多次元管理データ１１２の次元名１１２ａが「ＤＩＭ−１」において「１」を最小値１１２ｂと最大値１１２ｃの範囲に含むコード１１２ｄは「００」であり、多次元データのＤＩＭ−２の値が「９」である場合は、多次元管理データ１１２の次元名１１２ａが「ＤＩＭ−２」において「９」を最小値１１２ｂと最大値１１２ｃの範囲に含むコード１１２ｄは「００」である。
【００５４】
そして、多次元データのＤＩＭ−３の値が「６」である場合は、多次元管理データ１１２の次元名１１２ａが「ＤＩＭ−３」において「６」を最小値１１２ｂと最大値１１２ｃの範囲に含むコード１１２ｄは「００」であるので、三つの文字コードとして「００」と「００」と「００」を得て連結し、一つの文字列のコードを生成する。この文字列のコードが多次元コードである。
【００５５】
コードの連結フォーマットは事前に定義され、例えばコロンをセパレータとして三つのコードが連絡されて“００：００：００”などとなる。なお、“００：００：００”などとなる一つの多次元コードは、二次記憶装置１１０あるいは主メモリ１２０の読み書きの単位に収まる情報であることが好ましい。
【００５６】
多次元データ登録２２３は、多次元コードの生成元となった多次元データに、生成された多次元コードを関連付けて、登録用データ２３１の一部とし（ステップ５０４）、ステップ５０１へ戻る。
【００５７】
一つの多次元データへの一つの多次元コードの関連付けは、ＣＳＶ形式の多次元データへＣＳＶ形式で多次元コードが追加されてもよい。そして、ステップ５０１からステップ５０４のループにより、登録用データ２３１は、関連付けられた多次元データと多次元データのＣＳＶ形式のデータが、ＣＳＶ形式で次々と追加されたデータであってもよい。
【００５８】
図２に説明を戻し、多次元データ登録プログラム１２３を実行する中央処理装置１００は、多次元データ登録２３２となり、多次元データ登録２３２は、空の多次元データテーブルである多次元データ２０３へ、登録用データ２３１を登録する。多次元データ２０３は、多次元コードのためのカラム、二つ以上の次元の値のためのカラム、一つ以上の物理量のためのカラムから構成される。
【００５９】
ここで、多次元コードのためのカラムは文字列型のカラムであり、固定長の文字列型であってもよいし、可変長の文字列型であってもよい。
【００６０】
図６に登録後の多次元データ１１１の例を示す。ＤＩＭ−１  １１１ｂ、ＤＩＭ−２  １１１ｃ、ＤＩＭ−３  １１１ｄ及び物理量１１１ｅのそれぞれは、図４に示したＤＩＭ−１  ２２１ａ、ＤＩＭ−２  ２２１ｂ、ＤＩＭ−３  ２２１ｃ及び物理量２２１ｄに対応し、多次元コード１１１ａは図５のステップ５０３で算出された多次元コードである。
【００６１】
このため、既に説明したように、例えばＤＩＭ−１  １１１ｂの値が「１」、ＤＩＭ−２  １１１ｃの値が「９」、ＤＩＭ−３  １１１ｄの値が「６」の場合、各次元のコードはそれぞれ「００」、「００」、「００」となり、連結フォーマットがＤＩＭ−１、ＤＩＭ−２、ＤＩＭ−３の順にコロンをセパレータとして連結すると定義されているので、この多次元コード１１１ａは「００：００：００」となる。
【００６２】
図４に示した登録前の多次元データ２２１と、図６に示した登録後の多次元データ１１１とが、同じテーブルのように表現されているのは、理解しやすいようにするためであり、二次記憶装置１１０に格納されたデータとしては、多次元データ２２１はＣＳＶ形式のデータであり、多次元データ１１１はＲＤＢのデータであってもよい。
【００６３】
図２に説明を戻し、多次元索引データ作成プログラム１２５を実行する中央処理装置１００は、多次元索引データ作成２４２となり、多次元索引データ作成２４２は、登録用データ２３１を受け取って多次元コードを抽出し、抽出した多次元コードに対応する多次元データのレコード番号かレコードの格納アドレスを多次元データ登録２３２から受け取り、多次元索引データ１１３を生成する。
【００６４】
多次元索引データ１１３は、多次元コードをキーとして多次元データ（多次元データのレコード番号やレコードの格納アドレス）を検索するための索引であり、例えば、Ｂ−Ｔｒｅｅインデックスやテキストインデックスである。このため、多次元索引データ作成２４２は、多次元データ１１１から多次元索引データ１１３を生成してもよい。
【００６５】
次に、多次元データの検索処理について説明する。図７は、多次元データの検索処理の例を示す図である。多次元データ検索プログラム１２４を実行する中央処理装置１００は、多次元データ検索７０２となり、多次元データ検索７０２は、検索条件７０１と多次元管理データ１１２を用いて、クエリ文７０３を生成する。
【００６６】
検索条件７０１は、範囲検索や類似検索の検索条件であり、例えば検索で見つけるべき一つ以上の次元とその次元の値の範囲を含む。多次元データ検索７０２は、この検索条件７０１に、検索条件７０１に含まれる次元と値の範囲から変換された多次元コードを用いた検索条件を追加して、フォーマットなどを変換し、クエリ文７０３とする。
【００６７】
ここで、多次元コードを用いた検索条件としては、例えば多次元コードの文字列の一致や部分一致などであり、任意の文字と一致するなどの正規表現が用いられて表現されてもよい。また、クエリ文７０３は、ＳＱＬのクエリ文であってもよい。
【００６８】
多次元索引データ検索プログラム１２６を実行する中央処理装置１００は、多次元索引データ検索７０４となり、多次元索引データ検索７０４は、クエリ文７０３を実行し（クエリ文７０３を用いた検索を実行し）、多次元データ１１１から検索条件に該当する結果候補７０５を抽出する。
【００６９】
この検索は概略判定であり、多次元索引データ検索７０４は、クエリ文７０３の中の多次元コードを用いた検索条件に該当するレコード番号あるいはレコードの格納アドレスを、多次元索引データ１１３を参照して取得し、検索条件７０１に該当する可能性のある多次元データの絞り込みを行う。
【００７０】
概略判定は、取得されたレコード番号あるいはレコードの格納アドレスを結果候補７０５としてもよいし、これらに基づいて多次元データ１１１からレコードに含まれる情報を抽出して結果候補７０５としてもよい。
【００７１】
多次元データ検索プログラム１２４を実行する中央処理装置１００は、多次元データ検索７０６となり、多次元データ検索７０６は、クエリ文７０３を実行し、多次元データ１１１から検索条件に該当する最終的な結果７０７を抽出する。
【００７２】
この検索は詳細判定であり、多次元データ検索７０６は、クエリ文７０３の中の検索条件７０１に含まれる一つ以上の次元とその次元の値の範囲の条件に該当するレコードを結果候補７０５の中から抽出し、抽出したレコードの多次元データを結果７０７とする。結果候補７０５が多次元データそのものを含む場合、多次元データ検索７０６は多次元データ１１１を参照しなくてもよい。
【００７３】
図８は多次元データの範囲検索の例を示す図である。検索条件７０１が範囲検索の条件であり、「１３＜＝ＤＩＭ−１＜＝１５、かつ０＜＝ＤＩＭ−２＜＝７、かつ２１＜＝ＤＩＭ−３＜＝２９」という検索条件７０１ａの例である。まず、多次元データ検索７０２は、この範囲検索の条件から「多次元コードの条件」として「多次元コード＝０１：００：０２」を得て、範囲検索の条件に追加し、クエリ文７０３ａを生成する。
【００７４】
この多次元コードは、例えば、多次元管理データ１１２の次元名１１２ａが「ＤＩＭ−１」であり「１３＜＝ＤＩＭ−１＜＝１５」を最小値１１２ｂの「１１」と最大値１１２ｃの「２０」で包含するコード１１２ｄの「０１」を特定するなどして、特定されたコードが連結されて得られる。
【００７５】
次に、多次元索引データ検索７０４は、多次元索引データ１１３の中から多次元コードが０１：００：０２のレコード番号かレコードの格納アドレスを検索し、結果候補とする。この例で、結果候補は一つであり、多次元データ１１１のレコード７１０のレコード番号か格納アドレスとなる。
【００７６】
そして、図８では、結果候補として抽出されるレコードが一つであるため、図示を省略した多次元データ検索７０６が、多次元データ１１１の中から結果候補に該当する（ＤＩＭ−１、ＤＩＭ−２、ＤＩＭ−３、物理量）＝（１５、５、２６、９）のレコード７１０を抽出する。
【００７７】
多次元データ検索７０６は、結果候補すなわちレコード７１０の各次元の値が検索条件７０１ａの範囲検索の条件を満たすか判定し、範囲検索の条件を満たすレコード７１０を最終的な結果として抽出する。なお、検索条件７０１に物理量の条件が加えられ、詳細判定が、その物理量の条件を満たすか否かを判定してもよい。
【００７８】
図９と図１０を用いて、多次元データの類似検索の例を説明する。図９は類似検索における検索条件の変換の例を示す図であり、図１０は類似検索における多次元データ１１１のテーブルの例を示す図である。
【００７９】
図９に示す通り、この例では、類似検索の条件として、検索条件７０１ｂが「１３＜＝ＤＩＭ−１＜＝１５のＤＩＭ−２とＤＩＭ−３の断面が類似しているデータ」である。まず、多次元データ検索７０２は、この類似検索の条件から、多次元コードを用いた表現に変換し、類似検索の条件に追加し、クエリ文７０３ｂを生成する。
【００８０】
この例で、追加される「多次元コードを用いた表現」は「多次元データＡの多次元コード＝“０１：ｘｘ：ｘｘ”、かつ多次元データＢの多次元コード＝“０１：ｘｘ：ｘｘ”、かつ多次元データＡの多次元コード＝多次元データＢの多次元コード、かつ多次元データＡのＤＩＭ−１＝多次元データＢのＤＩＭ−１、かつ多次元データＡのＤＩＭ−２＝多次元データＢのＤＩＭ−２、かつ多次元データＡのＤＩＭ−３＝多次元データＢのＤＩＭ−３」である。
【００８１】
ここで、「ｘ」は任意の１文字を表す表現であり、ドットは表現上見づらいため「ｘ」と表現したが、正規表現のドットであってもよく、「０１：ｘｘ：ｘｘ」は先頭の２文字が「０１」から始まる任意の多次元コードを表す。
【００８２】
多次元データ検索７０２は、多次元管理データ１１２を参照し、検索条件７０１ｂの「１３＜＝ＤＩＭ−１＜＝１５」に対して、次元名１１２ａが「ＤＩＭ−１」であり「１３＜＝ＤＩＭ−１＜＝１５」を最小値１１２ｂの「１１」と最大値１１２ｃの「２０」で包含するコード１１２ｄの「０１」を得る。
【００８３】
次に、多次元索引データ検索７０４ｂは多次元索引データ１１３を参照し、クエリ文７０３ｂから多次元データＡと多次元データＢのＤＩＭ−２とＤＩＭ−３の断面を取得する。図１０に示した多次元データＡ  １１１−１の範囲９０１−１と、多次元データＢ  １１１−２の範囲９０１−２が、取得された断面であり、結果候補７０５である。
【００８４】
その後、多次元データ検索７０６ｂは、各次元の値が一致し、「１３＜＝ＤＩＭ−１＜＝１５」の条件を満たす多次元データ（レコード）を特定する。この特定された多次元データは、図１０の範囲９０１−１と範囲９０１−２の中のハッチングされたレコードであり、これらのレコードに対して類似度を算出する。
【００８５】
類似度の算出と判定の基準は、様々な指標が存在するが、この例では、類似度として一般的な平均２乗誤差平方根を用いた場合を説明し、その判定の基準として、平均２条誤差平方根の値が最小となる多次元データの組み合せを類似していると判定する。
【００８６】
図１０に示す通り、ハッチングされたレコードの中で、ＤＩＭ−１  １１１ｂ−１の値とＤＩＭ−１  １１１ｂ−２の値が一致し、ＤＩＭ−２  １１１ｃ−１の値とＤＩＭ−２  １１１ｃ−２の値が一致し、かつＤＩＭ−３  １１１ｄ−１の値とＤＩＭ−３  １１１ｄ−２の値が一致するレコードの物理量１１１ｅ−１と物理量１１１ｅ−２との平均２乗誤差平方根が「７．９」と算出される。
【００８７】
「多次元データＡ」と「多次元データＢ」以外に多次元データが存在する場合、例えば多次元データＣが存在する場合、クエリ文７０３ｂは、図９に示した「多次元データＡ」と「多次元データＢ」との組み合せに加えて、「多次元データＡ」と多次元データＣとの組み合せ及び「多次元データＢ」と多次元データＣとの組み合せの条件も含む。
【００８８】
この多次元データＣも含むクエリ文７０３ｂに応じて、多次元索引データ検索７０４ｂはさらに多次元データＣの断面を取得し、多次元データ検索７０６ｂは、さらに「多次元データＡ」と多次元データＣとの類似度及び「多次元データＢ」と多次元データＣとの類似度を算出する。
【００８９】
多次元データ検索７０６ｃは、算出された三つの類似度の中で最小となる多次元データの組み合せを判定し、類似している多次元データとして取得する。多次元データＣ以外にさらに多次元データが存在する場合も、以上の説明のように類似度が算出され、判定される。
【００９０】
以上で説明したように、多次元データの検索を高速化する情報として多次元コードを生成でき、検索に提供することが可能になる。多次元コードは二次記憶装置あるいは主メモリの読み書きの単位に収めることが可能であり、複数の次元の情報を含む多次元コードを１度のアクセスで読み出すこともできる。
【００９１】
また、多次元コードの中の一つの次元に割り当てられた文字列が表す範囲を、一定とすることにより、簡単に割り当てることが可能となり、不定とすることにより、範囲に含まれる多次元データの件数を揃えることが可能となる。
【００９２】
そして、検索においては、多次元コードを利用した概略判定により、詳細判定の検索範囲を絞り込むことが可能となり、検索の高速化に貢献できる。この絞り込みは、各次元の値が次元毎に一つずつ指定された検索で可能であるのみならず、範囲検索と類似検索でも可能である。
【符号の説明】
【００９３】
１００  中央処理装置
１１０  二次記憶装置
１１１  多次元データ
１１２  多次元管理データ
１１３  多次元索引データ
１２０  主メモリ
【図１】
2019028933.tif 000003
【図２】
2019028933.tif 000004
【図３】
2019028933.tif 000005
【図４】
2019028933.tif 000006
【図５】
2019028933.tif 000007
【図６】
2019028933.tif 000008
【図７】
2019028933.tif 000009
【図８】
2019028933.tif 000010
【図９】
2019028933.tif 000011
【図１０】
2019028933.tif 000012