JP3855423B2 - Data management apparatus and recording medium - Google Patents

Data management apparatus and recording medium Download PDF

Info

Publication number
JP3855423B2
JP3855423B2 JP00271598A JP271598A JP3855423B2 JP 3855423 B2 JP3855423 B2 JP 3855423B2 JP 00271598 A JP00271598 A JP 00271598A JP 271598 A JP271598 A JP 271598A JP 3855423 B2 JP3855423 B2 JP 3855423B2
Authority
JP
Japan
Prior art keywords
identifier
tag
data
input
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP00271598A
Other languages
Japanese (ja)
Other versions
JPH11203183A (en
Inventor
俊明 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP00271598A priority Critical patent/JP3855423B2/en
Publication of JPH11203183A publication Critical patent/JPH11203183A/en
Application granted granted Critical
Publication of JP3855423B2 publication Critical patent/JP3855423B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はデータ管理装置および記録媒体に関し、特に、識別子によりデータを管理するデータ管理装置および記録媒体に関する。
【0002】
【従来の技術】
記録装置に記録されている複数のデータを管理する場合、データ集合に対する演算処理を行う必要がしばしば生ずる。
【0003】
一般に、データ集合を対象とする演算処理においては、同一のデータであることを判定するデータ同定処理が頻繁に使用される。
従来においては、データとそのデータを一意に識別するための識別子とを対応付けて管理し、この識別子を比較することによって識別子の同一性を判定し、データを同定していた。
【0004】
通常、データ自身のデータ長に比較して識別子のデータ長は非常に小さいため、識別子によるデータの同定処理は効率的なものであった。
しかし、データ管理システムが分散環境で運用されるなどして、管理するデータ数が多数になると、データを識別するための識別子を表すデータ長も次第に大きくなってきた。
【0005】
そこで、そのデータ(ファイル)が記録されている位置をパス名によって指定する方法が提案されている。即ち、このような方法では、ファイルというデータをパス名によって識別する。
【0006】
ところで、パス名にはユーザが認識しやすい名前をつけるため、管理するファイルが多くなるほど、パス名の長さ(パス名のデータ長)も長くなる傾向がある。従って、ファイルの階層が増加すると、必然的にパス名も長くなる結果となる。このとき、ファイル(データ)の同定処理はパス名(文字列)の比較処理となるため、パス名が長くなるほど処理コストが増加することになる。
【0007】
そのような問題点を解決する方法として、特開平4−338844「ファイルのパス名管理制御方式」がある。この発明では、パス名に対応するIDを作成し、パス名の代わりにこのID利用する。IDの作成にあたっては、IDはパス名よりもバイト数が少なく、かつ、IDとパス名との対応関係が一意となるように留意する。パス名の代わりにこのIDを利用することによって、メモリを節約したり、処理を高速化することが可能となり、その結果、ID同士を比較することによって、パス名を使用した場合に比較して迅速にファイルを同定することが可能となる。
【0008】
一方、データ長の長いキーに対する効率的な探索方法として、「トライ」が知られている。トライでは長い文字列に含まれる文字を索引である木構造のノードに対応させる。そして、探索する文字列をこの木構造のノードごとに比較することによって、目的となる文字列を探索することが可能となる。
【0009】
たとえば、特開平5−2607「木構造データ構造による高速探索方式」では、長くなった識別子をコンパクトなブロックに分割することによって、文字列を識別子に、また、文字をブロックに置き換えることでトライを適用している。つまり、ブロックを索引である木構造データのノードとして表現し、識別子の比較ではなく、ブロック列を比較することによって比較処理のコストを少なくしている。
【0010】
ところで、B木を利用した探索においては、木のノードごとに何度か識別子全体を比較する必要がある。特開平5−2607に開示されている方法では、データ長の小さいブロックごとに比較して、比較処理のコストを低減している。
【0011】
【発明が解決しようとする課題】
しかし、特開平4−338844に開示されている方法では、ファイルにアクセスするためには、IDからパス名を取り出す必要があるため、パス名とIDとを管理する(対応付ける)テーブルや管理手段を設ける必要がある。このテーブルは、当然のことながら全てのパス名を含んでいる必要があることから、パス名とIDの対応テーブルの大きさは、ファイルの数に比例して大きなものになる。従って、ファイルの数の増加に応じて、占有されるメモリ容量が増大するという問題点があった。
【0012】
一方、特開平5−2607に開示されている方法では、木構造を利用した探索処理において、識別子の比較回数を削減するものであって、識別子の比較処理そのものを効率化するものではない。この方法の本来の目的は、データ長の長いキーを利用した場合の探索処理の高効率化にある。従って、集合演算処理のように識別子の比較処理を何度も繰り返し実行しなければならない場面においては、この方法をそのまま利用することは困難である。
【0013】
しかし、あえて集合演算処理に使用するならば、演算対象の識別子集合から索引となる木構造を作成し、もう1つの識別子集合の要素を1つずつ探索していく方式を採ることになる。そのため、あらかじめ識別子全体のために作成してある索引を利用することができないことから、その場で索引を作成する処理が必要となり、その結果、処理速度が低下するという問題点があった。
【0014】
本発明はこのような点に鑑みてなされたものであり、データ長の長い識別子に対しても、データの集合演算処理の場面で、複数の識別子から識別子の同一性を迅速に判定してデータを識別することが可能なデータ管理装置を提供する。
【0015】
【課題を解決するための手段】
本発明では上記課題を解決するために、識別子によりデータを管理するデータ管理装置において、前記識別子が入力される識別子入力手段と、入力された前記識別子を、前記識別子よりも短い所定のデータ長の複数のセグメントに分割する識別子分割手段と、得られた複数の前記セグメント間において排他的論理和を演算することにより、前記所定のデータ長のタグを生成するタグ生成手段と、前記タグ生成手段によって生成された前記タグを元にして、索引を生成する索引生成手段と、を有することを特徴とするデータ管理装置が提供される。
ここで、識別子入力手段からは識別子が入力される。識別子分割手段は、入力された識別子を、識別子よりも短い所定のデータ長の複数のセグメントに分割する。タグ生成手段は、得られた複数のセグメント間において排他的論理和を演算することにより、所定のデータ長のタグを生成する。索引生成手段は、タグ生成手段によって生成されたタグを元にして索引を生成する。
【0016】
また、上記課題を解決するために、識別子によりデータを管理するデータ管理装置において、前記識別子が入力される識別子入力手段と、入力された前記識別子を、前記識別子を構成するフィールド毎に分割する識別子分割手段と、得られた個々の前記フィールドの値から、取り得る値の個数が多い前記フィールドほど桁数の大きいハッシュ値を計算し、複数の前記ハッシュ値を結合して、前記識別子よりもデータ長の短いタグを生成するタグ生成手段と、前記タグ生成手段によって生成された前記タグを元にして、索引を生成する索引生成手段と、を有することを特徴とするデータ管理装置が提供される。
ここで、識別子入力手段からは識別子が入力される。識別子分割手段は、入力された識別子を、識別子を構成するフィールド毎に分割する。タグ生成手段は、得られた個々のフィールドの値から、取り得る値の個数が多いフィールドほど桁数の大きいハッシュ値を計算し、複数のハッシュ値を結合して、識別子よりもデータ長の短いタグを生成する。索引生成手段は、タグ生成手段によって生成されたタグを元にして索引を生成する。
【0017】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明のデータ管理装置の原理を説明する原理図である。この図において、識別子入力手段1からは、データを識別するための識別子が入力される。識別子分割手段2は、入力された識別子を複数のセグメントに分割して出力する。タグ生成手段3は、得られたセグメントに対して所定の論理演算を施すことにより、識別子よりもデータ長の短いタグを生成する。索引生成手段4は、生成されたタグを元にして、例えば、木構造を有する索引を生成する。
【0018】
次に、図2を参照して本発明の実施の形態の一例について説明する。
この図において、識別子入力手段11からは、データを識別するための識別子が入力される。識別子分割手段12は、入力された識別子をタグと同一長の複数のセグメントに分割して出力する。タグ生成手段13は、得られたセグメントの間で排他的論理和を演算することにより、識別子よりもデータ長の短いタグを生成する。索引生成手段14は、生成されたタグを元にして、木構造を有する索引を生成する。同一タグ存在判定手段15は、新たな識別子が入力された場合に、その識別子に対応するタグが、索引中に既に存在しているか否かを判定する。識別子同一性判定手段16は、同一タグ存在判定手段15によって同一のタグが既に存在していると判定された場合に、そのタグに対応する識別子と新たに入力された識別子とを比較してこれらが同一であるか否かを判定し、その結果を出力する。
【0019】
次に、以上の実施の形態の動作について説明する。
以下では、第1および第2の識別子集合が入力された場合において、これらの間で識別子の同定を行うための同定処理を例に挙げて動作の説明をする。
【0020】
なお、このような同定処理は、識別子集合の間で論理和や論理積などを算出するときに利用される。
図3は、図2に示す実施の形態において同定処理を行う場合に実行される処理の一例を説明するフローチャートである。このフローチャートが開始されると、以下の処理が実行されることになる。
[S1]識別子入力手段11は、第1の識別子集合を入力する。
[S2]識別子分割手段12とタグ生成手段13は、タグを生成する。
【0021】
即ち、識別子分割手段12は、入力された識別子集合から識別子を1つだけ取得し、取得した識別子をタグと同一データ長のセグメントに分割する。タグ生成手段13は、1つの識別子から得られた複数のセグメントの間で排他的論理和を演算し、得られた結果をその識別子のタグとする。
【0022】
なお、排他的論理和の代わりに他のハッシュ関数を使用してもよい。
[S3]索引生成手段14は、生成されたタグを元にして索引を生成する。
即ち、索引生成手段14は、生成されたタグを利用して、第1の識別子集合に対応する索引(2進木)を生成する。図4は、以上の処理によって生成される索引の一例を示している。この例において、左端の索引が以上の処理によって作成される部分である。この索引はn1〜n7のノードによって構成されており、それぞれのノードには、分岐する際に必要な情報が付与されている。なお、このような2進木については、岩波講座情報科学11「データ管理算法」, P33に詳しい記述がある。
【0023】
索引の右端のノード(n4〜n7)には、タグが少なくとも1つずつ関係付けられている。この例では、ノードn4にタグt1,t2が関連付けられており、また、ノードn5〜n7には、タグt3〜t5がそれぞれ関連付けられている。更に、各タグには識別子がそれぞれ関連付けられている。この例では、タグt1〜t5に識別子i1〜i5がそれぞれ関連付けられている。なお、本実施の形態においては、図4に示すような索引、タグ、および、識別子が索引生成手段14内部のメモリ等に記憶される。
【0024】
このような索引を用いることにより、第1の識別子集合に属する識別子のうち、同一のタグを持つ識別子(タグが衝突した識別子)を効率よくまとめることができる。なお、実際に作成される索引は、図4の場合に比較して大きいものとなる。
[S4]識別子入力手段11は、第2の識別子集合を入力する。
[S5]識別子分割手段12とタグ生成手段13は、入力された第2の識別子集合に属している各識別子に対応するタグを前述の場合と同様の処理により生成する。
[S6]同一タグ存在判定手段15と識別子同一性判定手段16は協働して、識別子の同定処理を実行する。即ち、同一タグ存在判定手段15は、索引を参照して同一のタグが存在しているか否かを判定し、その結果、同一のタグが存在していると判定した場合には、識別子同一性判定手段16がそれらの識別子が同一であるか否かを更に判定する。なお、この処理の詳細については、図5を参照して後述する。
[S7]識別子同一性判定手段16は、全ての識別子の同定が終了したか否かを判定する。その結果、全ての識別子の同定が終了した場合には処理を完了し、また、終了していない場合にはステップS6に戻る。次に、図5を参照して図3に示す同定処理の詳細について説明する。
【0025】
このフローチャートは、図3に示すステップS6の「同定処理」が開始された場合に、呼び出されて実行される。このフローチャートが開始されると、以下のような処理が実行されることになる。
[S21]同一タグ存在判定手段15は、タグ生成手段13によって生成された第2の識別子集合に属する識別子に対応するタグを1つ選択し、索引生成手段14によって生成された第1の識別子集合に対応する索引を参照することにより、同一のタグが存在しているか否かを検索する。
[S22]同一タグ存在判定手段15は、ステップS21の処理の結果、同一のタグが存在していると判定した場合にはステップS23に進み、また、同一のタグが存在していないと判定した場合にはステップS25に進む。
[S23]識別子同一性判定手段16は、同一のタグが存在している場合には、そのタグに対応する識別子(第1の識別子集合に属している識別子)と、処理の対象となっている識別子(第2の識別子集合に属している識別子)とをバイナリデータとして比較し、同一であるか否かを判定する。その結果、これらの識別子が同一であると判定した場合にはステップS24に進み、同一ではないと判定した場合にはステップS25に進む。
【0026】
なお、処理対象となっているタグに対して、複数のタグが同一であるとステップS22において判定された場合には、最初の識別子と比較し、同一でなかったら、次の同一のタグを有する識別子を比較する。また、同一であったら、これを同一な識別子と判定し、残りの同一のタグを持つ識別子を無視する。
[S24]識別子同一性判定手段16は、同定した識別子を第3の識別子集合として退避させる。
[S25]同一タグ存在判定手段15は、第2の識別子集合に属しているタグ(同定処理の対象となるタグ)がまだあるか否かを判定する。その結果、タグがまだあると判定した場合にはステップS21に戻り、次のタグに対する同定処理を行う。また、タグがないと判定した場合には、図3の処理に復帰(リターン)する。
【0027】
以上の処理によれば、索引を利用して同一のタグが存在しているか否かを高速に判定した後、同一のタグが存在している場合には、対応する識別子同士を比較するようにしたので、同一なタグを持つ識別子の数は、識別子集合内の要素数に比較して十分少なくなっていることから、同定処理を迅速に実行することが可能となる。
【0028】
なお、以上のようにして生成された第3の識別子集合は入力された第1の識別子集合と第2の識別子集合の論理積となっている。また、第1の識別子集合と重複する識別子を取り除いた第2の識別子集合は識別子の重複がないため、第1の識別子集合と第2の識別子集合とを単純に結合しただけで、第1および第2の識別子集合の論理和を作成することができる。
【0029】
次に、図6を参照して本発明の第2の実施の形態の構成例について説明する。なお、この図において、図2の場合と対応する部分には同一の符号が付してあるのでその説明は省略する。
【0030】
この実施の形態においては、図2の場合と比較してデータ構造情報記録手段20が新たに追加されているとともに、識別子分割手段12、タグ生成手段13、および、識別子同一性判定手段16における処理が異なっている。その他の構成は、図2の場合と同様である。
【0031】
データ構造情報記録手段20は、識別子のデータ構造に関する情報を記録しており、要求がなされた場合には、必要な情報を、識別子分割手段12、タグ生成手段13、または、識別子同一性判定手段16に供給する。
【0032】
識別子分割手段12は、データ構造に応じて識別子を分割する。
タグ生成手段13は、データ構造情報記録手段20に記録されている情報を参照して、識別子の値のばらつきが大きい部分に対して、タグのデータ領域をより多く割り当てることにより、衝突の少ないタグを生成する。
【0033】
識別子同一性判定手段16は、同一のタグが存在している場合には、データ構造情報記録手段20に記録されている情報を参照して、比較コストが小さい部分から識別子を順次比較する。
【0034】
次に、以上の実施の形態の動作について説明する。なお、以下の処理では、前述の場合と同様に、第1および第2の識別子集合の同定処理を例に挙げて説明を行う。また、前述の場合と同様の処理については説明を省略する。
【0035】
識別子が入力されると、識別子分割手段12は、データ構造情報記録手段20に記録されている構造情報を参照し、同一の属性を有する領域毎に識別子を分割する。
【0036】
タグ生成手段13は、入力されたすべての識別子から対応するタグを生成する。即ち、タグ生成手段13は、データ構造情報記録手段20に予め記録されている識別子の構造情報を参照し、識別子の構造に応じてタグを生成する。例えば、識別子の値のばらつき(統計的なばらつき)が多い部分に対して、タグのデータ領域をより多く割り当てることによって、異なる識別子から生成されるタグが重なりにくいように最適化する。
【0037】
いま、図7に示すような構造情報を参照してタグを生成する場合を考える。この例では、識別子は以下のようなデータによって構成されている。
(A)length ・・・ 4バイトの整数データであり、全ての識別子が同一の値(固定値)を有する。
(B)name ・・・ 固定値を持つ文字列。
(C)unknown ・・・ 2048バイトのバイナリデータであり、特定の値をとる。
(D)number ・・・ 4バイトのデータが16個並んだ配列データであり、1つ1つのデータは、4バイトで表現可能な数値すべてを表す。
【0038】
なお、以上のような構造情報の代わりに、図8に示すような構造情報を用いることも可能である。即ち、このような構造情報の場合では、「役割」の“長さ”や“区切り”により、他のフィールドの長さを決定することによって、可変長データである識別子を表現することができる。
(A)length ・・・ 4バイトの整数であり、nameの長さを表す。
(B)name ・・・ 文字列であり、データ長は前述のlengthによって表される。
(C)unknown1 ・・・ バイナリデータであり、データの末端はフィールドbo undaryによって決定される。
(D)boundary ・・・ 4バイトの整数であり、その値は0である。前後のデータの区切りを表す。
(E)unknown2 ・・・ バイナリデータであり、データの先頭はフィールドbo undaryによって決定される。
【0039】
ここでは、図7に示す構造情報について話をすすめる。この例では、ばらつき度の項目に示してあるように、「length」および「name」では、ばらつきは固定値となっているため、その他のフィールドに対してのみタグの領域を割り当てることが望ましい。
【0040】
従って、先ず、識別子分割手段12が、構造情報に応じて識別子を、「length」、「name」「unknown 」「number」の4つの領域に分割する。そして、タグ生成手段13は、構造情報の「ばらつき度」を参照して、numberのフィールドに対応するタグ部分に多くの領域を割り当て、固定値を有するlengthやnameに対応するフィールドはタグ生成に利用しない。ここでは、タグのデータ長を4バイトとし、ばらつき度の重みを図9のようにすると、全体の重みが5(=4+1)となる。
【0041】
その結果、unknown は4×1÷5=0.8となり、一方、numberは、4×4÷5=3.2となり、四捨五入して1バイトと3バイトをそれぞれ割り当てる。そして、例えば、ハッシュ関数によって、unknown を1バイト、また、numberを3バイトのハッシュ値に変換する。
【0042】
このように構造情報を利用してタグの生成方法を決定することによって、タグの衝突を減少させることができる。
なお、それぞれのフィールドを等価に1バイトずつ割り当てた場合では、タグの領域のうち、lengthとnameとに対応する領域の2バイト分はすべてのタグで同じ値となり、実質的に表現できるタグの値は2(=4−2)バイトになり、タグの衝突が起きやすくなる。
【0043】
以上の実施の形態では、重みに応じてフィールドを割り当てるようにしたが、例えば、データ型など別の情報に応じてハッシュ関数を変更するようにしてもよい。
【0044】
以上のようにして作成されたタグを元にして、索引生成手段14が索引(第1の識別子集合に対する索引)を生成する。
次に、第2の識別子集合が入力された場合の同定処理について説明する。
【0045】
第2の識別子集合が入力されると、識別子分割手段12は、第1の識別子集合の場合と同様の分割方法により、第2の識別子集合に属している各識別子を分割する。タグ生成手段13も前述の場合と同様の処理によりタグを生成する。
【0046】
同一タグ存在判定手段15は、第1の識別子集合に対する索引を参照することにより、同一のタグが存在しているか否かを判定する。
その結果、同一のタグが存在していると判定された場合には、識別子同一性判定手段16は、これらのタグに対応する識別子が同一であるか否かを判定する。即ち、識別子同一性判定手段16は、偶然にタグが同一になった識別子であるか、同一の識別子であるかを判定する。
【0047】
識別子同一性判定手段16は、先ず、データ構造情報記録手段20から識別子の構造情報を取得し、フィールドの比較順序を決める。即ち、値のばらつきの多いフィールドや、バイト数が少ないなど比較処理コストの小さいフィールドから比較する。また、固定値を持つ(すべての識別子において同じ値を有する)フィールドは比較対象にしない。いまの例では、「number」に対応するフィールドのばらつき度が大きいので、このフィールドを優先して比較処理を行う。そして、このフィールドにおいて同一性が検出されなかった場合には、次に、「unknown 」に対応するフィールドを比較する。なお、「length」および「name」は固定値であるため、これらのフィールドは比較対象としない。フィールドが1つでも異なっていれば、その時点で2つの識別子が異なるものであると判定する。一方、比較対象となるすべてのフィールドが同一であれば、識別子も同一であると判定する。
【0048】
なお、識別子同一性の判定処理では、ばらつき度によるフィールド判定は複数の識別子を判定する場合であっても一度でよい。
以上の実施の形態によれば、識別子のデータ構造に応じて、ばらつきの大きい部分に対して、タグのデータ領域をより多く割り当てるようにしたためタグの衝突を低減した。さらに、同定処理において、同一のタグがあると判定された場合には、データ構造を参照して、同一性が低い部分、比較コストが低い部分から優先的に比較処理を行うようにしたので、同定処理を高速に実行することが可能となる。
【0049】
次に、図10を参照して本発明の第3の実施の形態について説明する。なお、この図において、図6の場合と対応する部分には同一の符号を付してあるのでその説明は省略する。
【0050】
この実施の形態においては、構造記述データ入力手段30、構造記述データ解析手段31、および、書き込み手段32が新たに追加されている。なお、その他の構成は、図6の場合と同様である。
【0051】
構造記述データ入力手段30は、識別子の構造を記述したデータである構造記述データ(図11参照)を入力する。
構造記述データ解析手段31は、構造記述データ入力手段30から入力された構造記述データを解析し、識別子の構造情報(前述の図7および図8参照)を生成する。
【0052】
書き込み手段32は、構造記述データ解析手段31によって得られた識別子の構造情報をデータ構造情報記録手段20に書き込んで記録させる。
次に、以上の実施の形態の動作について説明する。なお、以下の説明では、前述の場合と同様に、第1および第2の識別子集合の同定処理を例に挙げて説明を行う。また、前述の場合と同様の処理については説明を省略する。
【0053】
この実施例では、ユーザが識別子のデータ構造を知っているとき、そのデータ構造が記述された構造記述データを入力し、この構造記述データを解析して構造情報を生成し、データ構造情報記録手段20に書き込む。そして、この構造情報を参照して、第2の実施の形態の場合と同様の処理により、タグの生成処理や同定処理を行う構成とされている。なお、識別子の同定方法は第2の実施の形態の場合と同様であるため、以下では、構造情報の登録手順についてのみ説明する。
【0054】
例えば、図7に示す構造情報を有する識別子に対する構造記述データは、図11のようになる。この例の第1行目に示されている「int length 4*1 const;」は、このフィールドが、整数型(int )であり、4バイト(4*1 )の長さを持ち、また、固定値(const )を有することを示している。このように、構造記述データは、データ型、フィールド名、データ長、ばらつき度を示している。
【0055】
同様にして、「string」は文字列型を、「bin 」はバイナリ型を、「change」はばらつきが小さいことを、「volatile」はばらつきが大きいことを表す。
また、図12は、図8に示す構造情報を有する識別子に対する構造記述データの一例である。この例では、第4行目に、データの「区切り」を示す「bound 」が示されている。この「bound 」は「区切り」であることを指している。なお、構造記述データのシンタックスは問わない。構造記述データによって構造情報を表現できればよい。
【0056】
このような構造記述データは、例えば、テキストエディタなどにより作成し、構造記述データ入力手段30から入力する。
入力された構造記述データは、構造記述データ解析手段31によって解析される。即ち、構造記述データ解析手段31は、入力された構造記述データをパーズ(構造解析)し、構造情報を有する解析木を作成する。そして、パーズによって得られた解析木から構造情報を作成する。
【0057】
以上のようにして作成された構造情報は、書き込み手段32によってデータ構造情報記録手段20の所定の領域に書き込まれる。
このようにして作成された構造情報は、第2の実施の形態において説明したように、タグの作成処理と同定処理において参照されることになる。
【0058】
次に、図13を参照して、本発明の第4の実施の形態の構成例について説明する。なお、この図において、図10の場合と対応する部分には同一の符号を付してあるのでその説明は省略する。
【0059】
この実施の形態においては、データ構造解析手段40、指示情報付与手段41、および、候補絞り込み手段42が新たに追加されており、また、識別子同一性判定手段16の処理が異なっている。その他の構成は、図10の場合と同様である。
【0060】
データ構造解析手段40は、識別子入力手段11から入力された複数の識別子のデータ構造を統計的な手法により解析する。
指示情報付与手段41は、同一タグ存在判定手段15によって同一のタグが存在すると判定された場合には、そのタグに対応する識別子と新たに入力された識別子とを比較し、これらの間で異なる部分を特定し、特定した部分を指示する指示情報を索引に対して付与する。
【0061】
候補絞り込み手段42は、同一タグ存在判定手段15によって同一のタグが複数存在すると判定された場合には、指示情報付与手段41によって付与された指示情報を参照して、異なる部分のみを比較することにより、候補を絞り込む。
【0062】
識別子同一性判定手段16は、絞り込まれた候補と新たに入力された識別子との同一性を識別子のデータ構造を参照して判定する。
次に、以上の実施の形態の動作について説明する。なお、以下の説明では、前述の場合と同様に、第1および第2の識別子集合の同定処理を例に挙げて説明を行う。また、前述の場合と同様の処理については説明を省略する。
【0063】
データ構造解析手段40は、識別子入力手段11から入力された複数の識別子を統計的手法により解析し、識別子の構造情報を生成する。図14は、データ構造解析手段40において実行される処理の一例を説明するフローチャートである。このフローチャートが開始されると、以下の処理が実行されることになる。
[S41]識別子入力手段11から解析しようとする識別子を入力する。
【0064】
ここでは、100個の識別子を入力したものとする。
[S42]識別子入力手段11から入力されたすべての識別子を処理に適する大きさのセグメントに分割する。
【0065】
この分割の様子を図15に示す。各識別子は、それぞれが4バイトからなるn個のセグメントに分割される。なお、インデックスは、各セグメントを特定するために割り振った番号である。
[S43]すべてのセグメントからセグメントごとの統計情報を得る。
【0066】
即ち、第i(1≦i≦n)番目のセグメントの値の分布を調べ、同一の値がいくつ存在しているかを検出する。そして、これをまとめて解析結果とする。
解析結果の一例を図16に示す。この例では、インデックスの1から4までは、値の種類(値の分布)が1種類だけである(100個全てのセグメントが同一の値を有している)。また、インデックスの261から272までは、値の種類は7種類であり、また、同一の値の最大個数は79個であることが分かる。
[S44]ステップS43での解析結果に基づいて構造情報を生成する。
【0067】
即ち、各セグメントの値の偏り具合から、データ型と値のばらつき度を推定する。このとき、隣接するセグメントのデータ型とばらつき度が同一であったら、ひとまとめにする。なお、ここでは、たとえば、ばらつき度は「大きい」と「中程度」の境界を値の種類数20とし、また、「小さい」と「中程度」の境界を種類数5とする。
【0068】
例えば、図16に示す解析結果を対象として、前後のインデックスのばらつき度が同一である場合にはそのインデックスをまとめる処理を実行すると、図17に示すような構造情報を得ることができる。
[S45]データ構造解析手段40は、生成された構造情報を書き込み手段32に対して出力する。
【0069】
以上の処理により、識別子の構造が未知の場合においても、複数の識別子から構造情報を推定することが可能となる。これらの処理は、識別子集合の同定処理と同時ではなく事前に実行し、構造情報を得ることができる。
【0070】
次に、図18を参照して、タグおよび索引の生成処理について説明する。このフローチャートが開始されると以下の処理が実行されることになる。
[S61]タグ生成手段13は、データ構造情報記録手段20に記録されている構造情報に基づいて、入力された識別子からタグを生成する。
[S62]同一タグ存在判定手段15は、索引を参照し、同一のタグが存在しているか否かを判定する。その結果、同一のタグが存在している場合にはステップS63に進み、存在していない場合にはステップS65に進む。
[S63]指示情報付与手段41は、衝突しているタグに対応する識別子を比較し、異なっている部分を特定する。
[S64]指示情報付与手段41は、ステップS63において特定された識別子の異なる部分を指示する指示情報を索引に付与する。
[S65]タグ生成手段13は、全ての識別子に対するタグの生成処理が終了したか否かを判定する。その結果、タグの生成が終了した場合には処理を完了し、また、終了していないと判定した場合にはステップS61に戻る。
【0071】
以上の処理により、タグの衝突が発生した場合には、それらのタグに対応する識別子が比較され、異なっている部分が特定される。そして、特定された部分を指示する指示情報が索引に付加されることになる。
【0072】
次に、以上のようにして作成された索引を参照して、識別子を同定する場合の処理について説明する。
図19は、図18の処理によって作成された、指示情報が付与された索引を参照して、識別子を同定する場合の処理の一例を説明するフローチャートである。このフローチャートが開始されると、以下の処理が実行されることになる。
[S81]同一タグ存在判定手段15は、索引を参照し、比較の対象となる識別子のタグと同一のタグを取得する。
[S82]同一タグ存在判定手段15は、同一のタグが1つだけ存在しているか否かを判定する。その結果、同一のタグが1つだけ存在している場合にはステップS85に進み、また、複数存在している場合にはステップS83に進む。
[S83]候補絞り込み手段42は、索引から指示情報を取得する。
[S84]候補絞り込み手段42は、取得した指示情報を参照し、識別子の異なる部分だけを比較して、候補を1つに絞る。
[S85]識別子同一性判定手段16は、データ構造情報記録手段20に記録されている構造情報を参照して、識別子を比較する部分を特定する。
[S86]識別子同一性判定手段16は、候補絞り込み手段42によって絞り込まれた候補の識別子と、比較の対象となる識別子との相違を、ステップS85において特定された部分を比較することによって判定する。
【0073】
以上の処理によれば、索引作成時、同一タグを持つ識別子間において、異なる値を有するフィールドを示す情報を索引に持たせ、識別子の同定時には、構造情報ではなく、この情報をもとに識別子を比較するようにしたので、タグの衝突によって複数の識別子が同一の識別子の候補として現われても、少ない比較処理によって1つの識別子に絞り込むことができる。
【0074】
なお、以上の実施の形態は、1つの識別子集合に対して索引を作成し、いくつもの識別子集合と演算する場合や、タグが衝突しやすい場合(たとえば、識別子に未知の部分が多く、処理があまり最適化されていない場合)に有効である。
【0075】
次に、以上の実施の形態をファイルのコピー管理に適用した場合について説明する。以下では、2つのデータ管理装置において、一方のデータ管理装置Aのデータをもう一方のデータ管理装置Bへコピー(転写)して、そのデータ間の一貫性を管理するために、その対応関係を管理している場合について考える。
【0076】
データ管理装置Aからの検索結果となる識別子集合Aと、データ管理装置Bからの検索結果となる識別子集合Bとがあるとき、識別子集合Aの要素である識別子aと識別子集合Bの要素である識別子bとが同じデータ( オリジナルデータとコピーされたデータ) を示している可能性がある。このため、検索結果をそのままマージしたのでは、コピーされているデータが重複することになる。同時に利用する管理システムが多くなるほど、また、データのコピーが多くなるほど、このような問題は深刻になる。
【0077】
そのような場合に対処するための処理の一例を図20に示す。このフローチャートが開始されると、以下の処理が実行されることになる。
[S101]データ管理装置Aからの検索結果として識別子集合Aを、また、データ管理装置Bからの検索結果として識別子集合Bを得る。
[S102]オリジナルデータとコピーデータの識別子の対応表を利用して、識別子集合Bの要素を対応するオリジナルのデータの識別子に変換する。
[S103]ステップS102において、オリジナルデータに変換できなかった識別子集合を識別子集合B’とする。一方、変換できた識別子集合を識別子集合B”とする。
[S104]図2、図6、図10、または、図13の実施の形態により、識別子集合Aと識別子集合B”の重複する識別子をチェックする。
[S105]図2、図6、図10、または、図13の実施の形態により、識別子集合Aと識別子集合B”の論理和を算出する。
[S106]ステップS105において得られた結果と、識別子集合B’とをマージする。
【0078】
このような処理によれば、重複のない検索結果を得ることができる。
以上に示したように、本発明を利用した結果である識別子集合の論理和を利用すると、簡単な処理で複数のデータ管理装置にわたってデータの重複のない検索結果を得ることができる。
【0079】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、データ管理装置が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。
【0080】
コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場を流通させる場合には、CD−ROM(Compact Disk Read Only Memory) やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【0081】
【発明の効果】
以上説明したように本発明では、識別子入力手段から識別子を入力し、識別子分割手段は、入力された識別子を、識別子よりも短い所定のデータ長の複数のセグメントに分割し、タグ生成手段は、得られた複数のセグメント間において排他的論理和を演算することにより、所定のデータ長のタグを生成し、索引生成手段は、タグ生成手段によって生成されたタグを元にして索引を生成するようにしたので、同一のタグをもつ識別子を効率よくまとめることができ、識別子の同定処理を高速に実行することが可能となる。
また、本発明では、識別子入力手段から識別子を入力し、識別子分割手段は、入力された識別子を、識別子を構成するフィールド毎に分割し、タグ生成手段は、得られた個々のフィールドの値から、取り得る値の個数が多いフィールドほど桁数の大きいハッシュ値を計算し、複数のハッシュ値を結合して、識別子よりもデータ長の短いタグを生成し、索引生成手段は、タグ生成手段によって生成されたタグを元にして、索引を生成するようにしたので、タグの衝突をより低減でき、識別子の同定処理を高速に実行することが可能となる。
【図面の簡単な説明】
【図1】本発明の原理を示す原理図である。
【図2】本発明の第1の実施の形態の構成例を示す図である。
【図3】図2に示す実施の形態において実行される処理の一例を説明するフローチャートである。
【図4】図2に示す実施の形態において生成される索引の一例を示す図である。
【図5】図2に示す実施の形態において実行される同定処理の一例を説明するフローチャートである。
【図6】本発明の第2の実施の形態の構成例を示す図である。
【図7】図6に示す実施の形態において使用される構造情報の一例を示す図である。
【図8】構造情報の他の一例を示す図である。
【図9】ばらつきと重みとの関係を示す図である。
【図10】本発明の第3の実施の形態の構成例を示す図である。
【図11】図10に示す実施の形態において使用される構造記述データの一例を示す図である。
【図12】図10に示す実施の形態において使用される構造記述データの他の一例を示す図である。
【図13】本発明の第4の実施の形態の構成例を示す図である。
【図14】図13に示す実施の形態において実行される処理の一例を示す図である。
【図15】図13に示す実施の形態によってセグメントに分割された識別子の様子を示す図である。
【図16】図13に示す実施の形態によって解析されたセグメントの情報の一例を示す図である。
【図17】図16に示す解析結果から生成された構造情報の一例を示す図である。
【図18】図13に示す実施の形態において実行される処理の一例を説明するフローチャートである。
【図19】図13に示す実施の形態において実行される処理の他の一例を説明するフローチャートである。
【図20】データのコピー管理に本発明を適用した場合の処理の一例を説明するフローチャートである。
【符号の説明】
1 識別子入力手段
2 識別子分割手段
3 タグ生成手段
4 索引生成手段
11 識別子入力手段
12 識別子分割手段
13 タグ生成手段
14 索引生成手段
15 同一タグ存在判定手段
16 識別子同一性判定手段
20 データ構造情報記録手段
30 構造記述データ入力手段
31 構造記述データ解析手段
32 書き込み手段
40 データ構造解析手段
41 指示情報付与手段
42 候補絞り込み手段
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data management device and a recording medium, and more particularly, to a data management device and a recording medium that manage data using identifiers.
[0002]
[Prior art]
When managing a plurality of data recorded in a recording device, it is often necessary to perform arithmetic processing on a data set.
[0003]
In general, in an arithmetic process for a data set, a data identification process for determining that the data is the same is frequently used.
Conventionally, data and an identifier for uniquely identifying the data are managed in association with each other, and the identity of the identifier is determined by comparing the identifier to identify the data.
[0004]
Usually, since the data length of the identifier is very small compared to the data length of the data itself, the data identification process using the identifier is efficient.
However, when the number of data to be managed becomes large, for example, when the data management system is operated in a distributed environment, the data length representing the identifier for identifying the data has gradually increased.
[0005]
Therefore, a method for designating a position where the data (file) is recorded by a path name has been proposed. That is, in such a method, data called a file is identified by a path name.
[0006]
By the way, in order to give the user a name that can be easily recognized by the user, the length of the path name (the data length of the path name) tends to increase as the number of files to be managed increases. Therefore, increasing the file hierarchy will inevitably result in longer path names. At this time, since the file (data) identification process is a path name (character string) comparison process, the processing cost increases as the path name becomes longer.
[0007]
As a method for solving such a problem, there is JP-A-4-338844 "File path name management control system". In the present invention, an ID corresponding to the path name is created, and this ID is used instead of the path name. When creating an ID, care should be taken that the ID has a smaller number of bytes than the path name and that the correspondence between the ID and the path name is unique. By using this ID instead of the path name, it becomes possible to save memory and speed up the processing. As a result, comparing the IDs with each other compared to the case where the path name is used The file can be identified quickly.
[0008]
On the other hand, “try” is known as an efficient search method for a key having a long data length. In the trie, a character included in a long character string is associated with a tree-structured node as an index. The target character string can be searched by comparing the character string to be searched for each node of this tree structure.
[0009]
For example, in Japanese Patent Laid-Open No. 5-2607 “High-speed search method based on a tree-structured data structure”, by dividing a long identifier into compact blocks, a character string is replaced with an identifier, and a character is replaced with a block. Applicable. That is, the cost of comparison processing is reduced by expressing blocks as nodes of tree-structured data that are indexes and comparing block strings instead of comparing identifiers.
[0010]
By the way, in the search using the B-tree, it is necessary to compare the entire identifier several times for each node of the tree. In the method disclosed in Japanese Patent Laid-Open No. 5-2607, the cost of the comparison process is reduced as compared with each block having a small data length.
[0011]
[Problems to be solved by the invention]
However, in the method disclosed in Japanese Patent Laid-Open No. 4-338844, since it is necessary to extract the path name from the ID in order to access the file, a table and management means for managing (associating) the path name and the ID are provided. It is necessary to provide it. Since this table naturally needs to include all path names, the size of the correspondence table between path names and IDs increases in proportion to the number of files. Therefore, there is a problem in that the occupied memory capacity increases as the number of files increases.
[0012]
On the other hand, in the method disclosed in Japanese Patent Laid-Open No. 5-2607, the number of comparisons of identifiers is reduced in the search processing using a tree structure, and the identifier comparison processing itself is not made efficient. The original purpose of this method is to increase the efficiency of search processing when a key having a long data length is used. Therefore, it is difficult to use this method as it is in a scene where it is necessary to repeatedly execute identifier comparison processing many times, such as set operation processing.
[0013]
However, if it is intentionally used for set operation processing, a method is adopted in which a tree structure serving as an index is created from the identifier set to be calculated, and elements of another identifier set are searched one by one. For this reason, since an index that has been created for the entire identifier cannot be used, a process for creating the index on the spot is required, and as a result, the processing speed is reduced.
[0014]
The present invention has been made in view of the above points, and even for identifiers having a long data length, the identity of identifiers can be quickly determined from a plurality of identifiers in the scene of data set operation processing, and data can be obtained. A data management apparatus capable of identifying
[0015]
[Means for Solving the Problems]
  In the present invention, in order to solve the above problem, in a data management apparatus for managing data by an identifier,SaidAn identifier input means for inputting an identifier, and an inputSaidIdentifierA predetermined data length shorter than the identifierIdentifier dividing means for dividing into a plurality of segments, and obtainedMultiple saidsegmentCompute exclusive OR betweenByOf the predetermined data lengthTag generation means for generating a tag and generated by the tag generation meansSaidThere is provided a data management device comprising index generation means for generating an index based on a tag.
  Here, an identifier is input from the identifier input means. The identifier dividing unit divides the input identifier into a plurality of segments having a predetermined data length shorter than the identifier. The tag generation means generates a tag having a predetermined data length by calculating an exclusive OR between the obtained plurality of segments. The index generation means generates an index based on the tag generated by the tag generation means.
[0016]
  In order to solve the above problem, in a data management apparatus that manages data using an identifier, an identifier input means for inputting the identifier, and an identifier for dividing the input identifier for each field constituting the identifier From the value of each field obtained, the dividing means calculates a hash value having a larger number of digits as the number of possible values increases, and combines the plurality of hash values to obtain data more than the identifier. There is provided a data management device comprising: a tag generation unit that generates a short tag; and an index generation unit that generates an index based on the tag generated by the tag generation unit. .
  Here, an identifier is input from the identifier input means. The identifier dividing unit divides the input identifier for each field constituting the identifier. The tag generation means calculates a hash value having a larger number of digits as the number of possible values increases from the values of the obtained individual fields, combines a plurality of hash values, and has a shorter data length than the identifier. Generate tags. The index generation means generates an index based on the tag generated by the tag generation means.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a principle diagram for explaining the principle of the data management apparatus of the present invention. In this figure, an identifier for identifying data is input from the identifier input means 1. The identifier dividing unit 2 divides the input identifier into a plurality of segments and outputs the divided segments. The tag generation means 3 generates a tag having a shorter data length than the identifier by performing a predetermined logical operation on the obtained segment. The index generation unit 4 generates, for example, an index having a tree structure based on the generated tag.
[0018]
Next, an example of an embodiment of the present invention will be described with reference to FIG.
In this figure, an identifier for identifying data is input from the identifier input means 11. The identifier dividing unit 12 divides the input identifier into a plurality of segments having the same length as the tag and outputs the divided segments. The tag generation means 13 generates a tag having a shorter data length than the identifier by calculating an exclusive OR between the obtained segments. The index generation means 14 generates an index having a tree structure based on the generated tag. When a new identifier is input, the same tag presence determination unit 15 determines whether a tag corresponding to the identifier already exists in the index. When the same tag presence determining unit 15 determines that the same tag already exists, the identifier identity determining unit 16 compares the identifier corresponding to the tag with the newly input identifier and compares them. Are the same, and the result is output.
[0019]
Next, the operation of the above embodiment will be described.
Hereinafter, when the first and second identifier sets are input, the operation will be described with an example of identification processing for identifying identifiers between them.
[0020]
Such identification processing is used when calculating a logical sum or logical product between identifier sets.
FIG. 3 is a flowchart for explaining an example of processing executed when the identification processing is performed in the embodiment shown in FIG. When this flowchart is started, the following processing is executed.
[S1] The identifier input means 11 inputs a first identifier set.
[S2] The identifier dividing unit 12 and the tag generating unit 13 generate a tag.
[0021]
That is, the identifier dividing unit 12 acquires only one identifier from the input identifier set, and divides the acquired identifier into segments having the same data length as the tag. The tag generation unit 13 calculates an exclusive OR between a plurality of segments obtained from one identifier, and uses the obtained result as a tag of the identifier.
[0022]
Note that other hash functions may be used instead of the exclusive OR.
[S3] The index generation unit 14 generates an index based on the generated tag.
That is, the index generation unit 14 generates an index (binary tree) corresponding to the first identifier set using the generated tag. FIG. 4 shows an example of an index generated by the above processing. In this example, the leftmost index is a part created by the above processing. This index is composed of n1 to n7 nodes, and information necessary for branching is given to each node. Such binary trees are described in detail in Iwanami Lecture Information Science 11 “Data Management Arithmetic”, P33.
[0023]
At least one tag is associated with each node (n4 to n7) at the right end of the index. In this example, tags t1 and t2 are associated with the node n4, and tags t3 to t5 are associated with the nodes n5 to n7, respectively. Furthermore, an identifier is associated with each tag. In this example, identifiers i1 to i5 are associated with the tags t1 to t5, respectively. In the present embodiment, an index, a tag, and an identifier as shown in FIG. 4 are stored in a memory or the like inside the index generation unit 14.
[0024]
By using such an index, among the identifiers belonging to the first identifier set, identifiers having the same tag (identifiers in which tags collide) can be efficiently collected. The actually created index is larger than that in the case of FIG.
[S4] The identifier input means 11 inputs the second identifier set.
[S5] The identifier dividing unit 12 and the tag generating unit 13 generate a tag corresponding to each identifier belonging to the input second identifier set by the same process as described above.
[S6] The same tag presence determination means 15 and the identifier identity determination means 16 cooperate to execute an identifier identification process. That is, the same tag presence determination means 15 refers to the index to determine whether or not the same tag exists, and as a result, if it is determined that the same tag exists, the identifier identity The determination means 16 further determines whether or not those identifiers are the same. Details of this processing will be described later with reference to FIG.
[S7] The identifier identity determination means 16 determines whether or not identification of all identifiers has been completed. As a result, if the identification of all identifiers is completed, the process is completed, and if not completed, the process returns to step S6. Next, details of the identification process shown in FIG. 3 will be described with reference to FIG.
[0025]
This flowchart is called and executed when the “identification process” in step S6 shown in FIG. 3 is started. When this flowchart is started, the following processing is executed.
[S21] The same tag presence determination unit 15 selects one tag corresponding to the identifier belonging to the second identifier set generated by the tag generation unit 13, and the first identifier set generated by the index generation unit 14 By searching the index corresponding to, it is searched whether or not the same tag exists.
[S22] If the same tag presence determination means 15 determines that the same tag exists as a result of the process in step S21, the process proceeds to step S23, and determines that the same tag does not exist. If so, the process proceeds to step S25.
[S23] If the same tag exists, the identifier identity determination means 16 is an object corresponding to the identifier corresponding to the tag (identifier belonging to the first identifier set). The identifiers (identifiers belonging to the second identifier set) are compared as binary data to determine whether or not they are the same. As a result, when it is determined that these identifiers are the same, the process proceeds to step S24, and when it is determined that they are not the same, the process proceeds to step S25.
[0026]
If it is determined in step S22 that a plurality of tags are the same as the tag to be processed, it is compared with the first identifier, and if it is not the same, it has the next same tag. Compare identifiers. If they are the same, this is determined as the same identifier, and the remaining identifiers having the same tag are ignored.
[S24] The identifier identity determination means 16 saves the identified identifiers as a third identifier set.
[S25] The same tag presence determination unit 15 determines whether there is still a tag (tag to be identified) that belongs to the second identifier set. As a result, if it is determined that there are still tags, the process returns to step S21, and identification processing for the next tag is performed. If it is determined that there is no tag, the process returns to FIG.
[0027]
According to the above processing, after determining at high speed whether or not the same tag exists using the index, if the same tag exists, the corresponding identifiers are compared with each other. Therefore, the number of identifiers having the same tag is sufficiently smaller than the number of elements in the identifier set, so that the identification process can be executed quickly.
[0028]
The third identifier set generated as described above is the logical product of the input first identifier set and second identifier set. In addition, since the second identifier set obtained by removing identifiers that overlap with the first identifier set has no identifier duplication, the first identifier set and the second identifier set are simply combined with each other. A logical OR of the second set of identifiers can be created.
[0029]
Next, a configuration example of the second embodiment of the present invention will be described with reference to FIG. In this figure, portions corresponding to those in FIG. 2 are denoted by the same reference numerals, and the description thereof is omitted.
[0030]
In this embodiment, a data structure information recording unit 20 is newly added as compared with the case of FIG. 2, and the processing in the identifier dividing unit 12, the tag generating unit 13, and the identifier identity determining unit 16 is performed. Are different. Other configurations are the same as those in FIG.
[0031]
The data structure information recording unit 20 records information related to the data structure of the identifier. When requested, the data structure information recording unit 20 stores the necessary information in the identifier dividing unit 12, the tag generating unit 13, or the identifier identity determining unit. 16 is supplied.
[0032]
The identifier dividing unit 12 divides the identifier according to the data structure.
The tag generation means 13 refers to the information recorded in the data structure information recording means 20 and assigns more tag data areas to the portions where the variation of the identifier value is large, thereby reducing the number of collision tags. Is generated.
[0033]
When the same tag exists, the identifier identity determination unit 16 refers to the information recorded in the data structure information recording unit 20 and sequentially compares the identifiers from the portion with the lower comparison cost.
[0034]
Next, the operation of the above embodiment will be described. In the following process, as in the case described above, the identification process of the first and second identifier sets will be described as an example. In addition, description of the same processing as in the above case is omitted.
[0035]
When the identifier is input, the identifier dividing unit 12 refers to the structure information recorded in the data structure information recording unit 20 and divides the identifier for each area having the same attribute.
[0036]
The tag generation unit 13 generates a corresponding tag from all input identifiers. That is, the tag generation unit 13 refers to the structure information of the identifier recorded in advance in the data structure information recording unit 20 and generates a tag according to the structure of the identifier. For example, by assigning more tag data areas to portions where identifier values vary greatly (statistical variations), optimization is performed so that tags generated from different identifiers are unlikely to overlap.
[0037]
Consider a case where a tag is generated with reference to structure information as shown in FIG. In this example, the identifier is composed of the following data.
(A) length ... 4-byte integer data, and all identifiers have the same value (fixed value).
(B) name ... A character string having a fixed value.
(C) unknown... 2048-byte binary data having a specific value.
(D) number ... array data in which 16 pieces of 4-byte data are arranged, and each piece of data represents all numerical values that can be represented by 4 bytes.
[0038]
In addition, it is also possible to use structure information as shown in FIG. 8 instead of the above structure information. That is, in the case of such structure information, an identifier that is variable-length data can be expressed by determining the length of another field based on the “length” or “separator” of “role”.
(A) length ... This is a 4-byte integer representing the length of name.
(B) name... Is a character string, and the data length is represented by the aforementioned length.
(C) unknown1... Binary data, and the end of the data is determined by the field “boundary”.
(D) boundary ... It is a 4-byte integer and its value is 0. Represents the separation of the data before and after.
(E) unknown2 ... It is binary data, and the head of the data is determined by the field "boundary".
[0039]
Here, the structure information shown in FIG. 7 will be discussed. In this example, as shown in the item of variation, the variation of “length” and “name” is a fixed value, so it is desirable to allocate a tag area only to the other fields.
[0040]
Therefore, first, the identifier dividing unit 12 divides the identifier into four areas of “length”, “name”, “unknown”, and “number” according to the structure information. Then, the tag generation means 13 refers to the “variation degree” of the structure information, assigns many areas to the tag portion corresponding to the number field, and generates a tag for the field corresponding to length or name having a fixed value. Do not use. Here, assuming that the tag data length is 4 bytes and the variation weight is as shown in FIG. 9, the total weight is 5 (= 4 + 1).
[0041]
As a result, unknown becomes 4 × 1 ÷ 5 = 0.8, while number becomes 4 × 4 ÷ 5 = 3.2, and 1 byte and 3 bytes are allocated by rounding off. Then, for example, unknown is converted to a 1-byte hash value and number is converted to a 3-byte hash value by a hash function.
[0042]
By determining the tag generation method using the structure information in this way, tag collision can be reduced.
In addition, when each field is assigned with 1 byte equivalent, 2 bytes of the area corresponding to length and name in the tag area have the same value in all tags, and the tag can be substantially expressed. The value is 2 (= 4-2) bytes, and tag collision is likely to occur.
[0043]
In the above embodiment, the field is assigned according to the weight. However, for example, the hash function may be changed according to other information such as a data type.
[0044]
Based on the tags created as described above, the index generation means 14 generates an index (index for the first identifier set).
Next, an identification process when a second identifier set is input will be described.
[0045]
When the second identifier set is input, the identifier dividing unit 12 divides each identifier belonging to the second identifier set by the same dividing method as in the case of the first identifier set. The tag generation means 13 also generates a tag by the same process as described above.
[0046]
The same tag presence determination means 15 determines whether or not the same tag exists by referring to the index for the first identifier set.
As a result, when it is determined that the same tag exists, the identifier identity determination means 16 determines whether or not the identifiers corresponding to these tags are the same. In other words, the identifier identity determination means 16 determines whether the identifiers coincide with each other by chance or are the same identifiers.
[0047]
The identifier identity determination means 16 first acquires the structure information of the identifier from the data structure information recording means 20 and determines the field comparison order. That is, the comparison is made from a field with a large value variation or a field with a small comparison processing cost such as a small number of bytes. A field having a fixed value (having the same value in all identifiers) is not compared. In the present example, since the degree of variation of the field corresponding to “number” is large, the comparison process is performed with priority on this field. If no identity is detected in this field, the field corresponding to “unknown” is compared. Since “length” and “name” are fixed values, these fields are not compared. If even one field is different, it is determined that the two identifiers are different at that time. On the other hand, if all the fields to be compared are the same, it is determined that the identifiers are also the same.
[0048]
In the identifier identity determination process, field determination based on the degree of variation may be performed once even when a plurality of identifiers are determined.
According to the above embodiment, tag collisions are reduced because more tag data areas are allocated to portions with large variations according to the data structure of identifiers. Furthermore, in the identification process, when it is determined that there is the same tag, the comparison process is preferentially performed from the part with low identity and the part with low comparison cost with reference to the data structure. The identification process can be executed at high speed.
[0049]
Next, a third embodiment of the present invention will be described with reference to FIG. In this figure, parts corresponding to those in FIG. 6 are denoted by the same reference numerals, and the description thereof is omitted.
[0050]
In this embodiment, structure description data input means 30, structure description data analysis means 31, and writing means 32 are newly added. Other configurations are the same as those in FIG.
[0051]
The structure description data input means 30 inputs structure description data (see FIG. 11) which is data describing the structure of the identifier.
The structure description data analysis unit 31 analyzes the structure description data input from the structure description data input unit 30 and generates the structure information of the identifier (see FIGS. 7 and 8 described above).
[0052]
The writing means 32 writes the structure information of the identifier obtained by the structure description data analyzing means 31 in the data structure information recording means 20 for recording.
Next, the operation of the above embodiment will be described. In the following description, as in the case described above, the identification processing of the first and second identifier sets will be described as an example. In addition, description of the same processing as in the above case is omitted.
[0053]
  In this embodiment, when the user knows the data structure of the identifier, the structure description data in which the data structure is described is input, the structure description data is analyzed to generate structure information,dataWrite to the structure information recording means 20. Then, with reference to this structure information, a tag generation process and an identification process are performed by the same process as in the second embodiment. Since the identifier identification method is the same as that in the second embodiment, only the structure information registration procedure will be described below.
[0054]
For example, the structure description data for the identifier having the structure information shown in FIG. 7 is as shown in FIG. "Int length 4 * 1 const;" shown in the first line of this example is that this field is of type integer (int), has a length of 4 bytes (4 * 1), and It has a fixed value (const). As described above, the structure description data indicates the data type, field name, data length, and variation degree.
[0055]
Similarly, “string” represents a character string type, “bin” represents a binary type, “change” represents a small variation, and “volatile” represents a large variation.
FIG. 12 is an example of structure description data for an identifier having the structure information shown in FIG. In this example, “bound” indicating “delimitation” of data is shown in the fourth line. This “bound” indicates that it is “delimited”. The syntax of the structure description data does not matter. It is sufficient that the structure information can be expressed by the structure description data.
[0056]
Such structure description data is created by, for example, a text editor and is input from the structure description data input means 30.
The inputted structure description data is analyzed by the structure description data analysis means 31. That is, the structure description data analysis means 31 parses the input structure description data (structure analysis) to create an analysis tree having structure information. Then, structure information is created from the analysis tree obtained by parsing.
[0057]
The structure information created as described above is written into a predetermined area of the data structure information recording means 20 by the writing means 32.
The structure information created in this way is referred to in the tag creation processing and identification processing as described in the second embodiment.
[0058]
Next, a configuration example of the fourth exemplary embodiment of the present invention will be described with reference to FIG. In this figure, parts corresponding to those in FIG. 10 are denoted by the same reference numerals, and description thereof is omitted.
[0059]
In this embodiment, a data structure analyzing unit 40, an instruction information providing unit 41, and a candidate narrowing unit 42 are newly added, and the processing of the identifier identity determining unit 16 is different. Other configurations are the same as those in FIG.
[0060]
The data structure analyzing unit 40 analyzes the data structures of a plurality of identifiers input from the identifier input unit 11 by a statistical method.
When the same tag presence determining unit 15 determines that the same tag exists, the instruction information providing unit 41 compares the identifier corresponding to the tag with the newly input identifier, and the difference is between them. A part is specified, and instruction information indicating the specified part is given to the index.
[0061]
The candidate narrowing means 42 refers to the instruction information given by the instruction information giving means 41 and compares only different parts when the same tag existence judging means 15 judges that there are a plurality of the same tags. To narrow down the candidates.
[0062]
The identifier identity determination means 16 determines the identity between the narrowed candidates and the newly input identifier with reference to the data structure of the identifier.
Next, the operation of the above embodiment will be described. In the following description, as in the case described above, the identification processing of the first and second identifier sets will be described as an example. In addition, description of the same processing as in the above case is omitted.
[0063]
The data structure analysis unit 40 analyzes the plurality of identifiers input from the identifier input unit 11 using a statistical method, and generates the structure information of the identifier. FIG. 14 is a flowchart for explaining an example of processing executed in the data structure analyzing means 40. When this flowchart is started, the following processing is executed.
[S41] An identifier to be analyzed is input from the identifier input means 11.
[0064]
Here, it is assumed that 100 identifiers have been input.
[S42] All identifiers input from the identifier input means 11 are divided into segments having a size suitable for processing.
[0065]
The state of this division is shown in FIG. Each identifier is divided into n segments each consisting of 4 bytes. The index is a number assigned to identify each segment.
[S43] Statistical information for each segment is obtained from all segments.
[0066]
That is, the distribution of values of the i-th (1 ≦ i ≦ n) th segment is examined to detect how many identical values exist. Then, this is collectively used as an analysis result.
An example of the analysis result is shown in FIG. In this example, from index 1 to index 4, there is only one type of value (value distribution) (all 100 segments have the same value). In addition, it can be seen that there are seven types of values for indexes 261 to 272, and the maximum number of identical values is 79.
[S44] Structure information is generated based on the analysis result in step S43.
[0067]
That is, the variation of the data type and the value is estimated from the degree of deviation of the value of each segment. At this time, if the data types of adjacent segments and the degree of variation are the same, they are grouped together. Here, for example, the boundary between “large” and “medium” in the degree of variation is the number of value types 20, and the boundary between “small” and “medium” is the number of types 5.
[0068]
For example, for the analysis result shown in FIG. 16, when the degree of variation of the preceding and following indexes is the same, by executing the process of collecting the indexes, the structure information shown in FIG. 17 can be obtained.
[S45] The data structure analyzing means 40 outputs the generated structure information to the writing means 32.
[0069]
With the above processing, even when the structure of an identifier is unknown, it is possible to estimate structure information from a plurality of identifiers. These processes can be executed in advance, not at the same time as the identifier set identification process, to obtain structural information.
[0070]
Next, tag and index generation processing will be described with reference to FIG. When this flowchart is started, the following processing is executed.
[S61] The tag generation unit 13 generates a tag from the input identifier based on the structure information recorded in the data structure information recording unit 20.
[S62] The same tag presence determination means 15 refers to the index and determines whether or not the same tag exists. As a result, if the same tag exists, the process proceeds to step S63, and if not, the process proceeds to step S65.
[S63] The instruction information giving means 41 compares the identifiers corresponding to the colliding tags, and specifies the different parts.
[S64] The instruction information assigning means 41 assigns instruction information indicating the different part of the identifier specified in step S63 to the index.
[S65] The tag generation means 13 determines whether or not the tag generation processing for all identifiers has been completed. As a result, when the tag generation is completed, the process is completed, and when it is determined that the tag generation is not completed, the process returns to step S61.
[0071]
With the above processing, when tag collisions occur, identifiers corresponding to these tags are compared, and different portions are specified. Then, the instruction information indicating the specified part is added to the index.
[0072]
Next, processing for identifying an identifier with reference to the index created as described above will be described.
FIG. 19 is a flowchart for explaining an example of processing in the case of identifying an identifier with reference to an index to which instruction information is added, created by the processing in FIG. When this flowchart is started, the following processing is executed.
[S81] The same tag presence determination unit 15 refers to the index and acquires the same tag as the tag of the identifier to be compared.
[S82] The same tag presence determination means 15 determines whether only one identical tag exists. As a result, if there is only one identical tag, the process proceeds to step S85, and if there are a plurality of tags, the process proceeds to step S83.
[S83] The candidate narrowing means 42 obtains instruction information from the index.
[S84] The candidate narrowing means 42 refers to the acquired instruction information, compares only the portions with different identifiers, and narrows the candidates to one.
[S85] The identifier identity determination means 16 refers to the structure information recorded in the data structure information recording means 20 and specifies a part for comparing identifiers.
[S86] The identifier identity determination means 16 determines the difference between the candidate identifier narrowed down by the candidate narrowing means 42 and the identifier to be compared by comparing the part specified in step S85.
[0073]
According to the above processing, when creating an index, the index has information indicating fields having different values between identifiers having the same tag, and when identifying the identifier, the identifier is based on this information, not the structure information. Thus, even if a plurality of identifiers appear as candidates for the same identifier due to a tag collision, the identifiers can be narrowed down to one identifier with a small number of comparison processes.
[0074]
In the above embodiment, when an index is created for one identifier set and calculation is performed with a number of identifier sets, or when tags are likely to collide (for example, there are many unknown parts in the identifier and processing is difficult). This is useful when not very optimized).
[0075]
Next, a case where the above embodiment is applied to file copy management will be described. In the following, in two data management devices, in order to copy (transfer) the data of one data management device A to the other data management device B and manage the consistency between the data, Consider the case of managing.
[0076]
When there is an identifier set A that is a search result from the data management device A and an identifier set B that is a search result from the data management device B, these are the identifier a and the elements of the identifier set B that are elements of the identifier set A The identifier b may indicate the same data (original data and copied data). For this reason, if the search results are merged as they are, the copied data will be duplicated. The more management systems that are used at the same time, and the more copies of the data, the more serious these problems are.
[0077]
An example of a process for dealing with such a case is shown in FIG. When this flowchart is started, the following processing is executed.
[S101] An identifier set A is obtained as a search result from the data management apparatus A, and an identifier set B is obtained as a search result from the data management apparatus B.
[S102] Using the correspondence table between the identifiers of the original data and the copy data, the elements of the identifier set B are converted into the corresponding identifiers of the original data.
[S103] The identifier set that could not be converted to the original data in step S102 is defined as an identifier set B '. On the other hand, the converted identifier set is referred to as an identifier set B ″.
[S104] According to the embodiment of FIG. 2, FIG. 6, FIG. 10, or FIG.
[S105] The logical sum of the identifier set A and the identifier set B ″ is calculated according to the embodiment of FIG. 2, FIG. 6, FIG. 10, or FIG.
[S106] The result obtained in step S105 is merged with the identifier set B '.
[0078]
According to such processing, search results without duplication can be obtained.
As described above, by using the logical sum of the identifier set that is the result of using the present invention, it is possible to obtain a search result without data duplication across a plurality of data management devices by a simple process.
[0079]
The above processing functions can be realized by a computer. In this case, the processing contents of the functions that the data management apparatus should have are described in a program recorded on a computer-readable recording medium, and the above processing is realized by the computer by executing the program by the computer. Is done.
[0080]
Examples of the computer-readable recording medium include a magnetic recording device and a semiconductor memory. When distributing the market, store the program in a portable recording medium such as a CD-ROM (Compact Disk Read Only Memory) or floppy disk, or store it in a storage device of a computer connected via a network. In addition, it can be transferred to another computer through the network. When executed by a computer, the program is stored in a hard disk device or the like in the computer, loaded into the main memory and executed.
[0081]
【The invention's effect】
  As described above, in the present invention, the identifier is input from the identifier input means, and the identifier dividing means converts the input identifier.A predetermined data length shorter than the identifierDividing into multiple segments, the tag generation means was obtainedpluralsegmentCompute exclusive OR betweenByOf a given data lengthSince the tag is generated, the index generation means generates the index based on the tag generated by the tag generation means., Identifiers with the same tag can be efficiently combinedThe identifier identification process can be executed at high speed.
  In the present invention, the identifier is input from the identifier input means, the identifier dividing means divides the input identifier for each field constituting the identifier, and the tag generating means A field having a larger number of possible values calculates a hash value having a larger number of digits, combines a plurality of hash values, generates a tag having a data length shorter than the identifier, and the index generation means uses the tag generation means Since the index is generated based on the generated tag, the collision of the tag can be further reduced, and the identifier identification process can be executed at high speed.
[Brief description of the drawings]
FIG. 1 is a principle diagram showing the principle of the present invention.
FIG. 2 is a diagram illustrating a configuration example of a first embodiment of the present invention.
FIG. 3 is a flowchart for explaining an example of processing executed in the embodiment shown in FIG. 2;
4 is a diagram showing an example of an index generated in the embodiment shown in FIG.
FIG. 5 is a flowchart for explaining an example of identification processing executed in the embodiment shown in FIG. 2;
FIG. 6 is a diagram illustrating a configuration example of a second embodiment of the present invention.
FIG. 7 is a diagram showing an example of structure information used in the embodiment shown in FIG.
FIG. 8 is a diagram showing another example of structure information.
FIG. 9 is a diagram illustrating a relationship between variation and weight.
FIG. 10 is a diagram illustrating a configuration example of a third embodiment of the present invention.
11 is a diagram showing an example of structure description data used in the embodiment shown in FIG.
12 is a diagram showing another example of structure description data used in the embodiment shown in FIG.
FIG. 13 is a diagram illustrating a configuration example of a fourth embodiment of the present invention.
14 is a diagram showing an example of processing executed in the embodiment shown in FIG.
FIG. 15 is a diagram showing a state of identifiers divided into segments according to the embodiment shown in FIG. 13;
16 is a diagram showing an example of segment information analyzed by the embodiment shown in FIG. 13. FIG.
17 is a diagram showing an example of structure information generated from the analysis result shown in FIG.
FIG. 18 is a flowchart for explaining an example of processing executed in the embodiment shown in FIG. 13;
FIG. 19 is a flowchart illustrating another example of processing executed in the embodiment shown in FIG. 13;
FIG. 20 is a flowchart for explaining an example of processing when the present invention is applied to data copy management;
[Explanation of symbols]
1 Identifier input means
2 Identifier dividing means
3 Tag generation means
4 index generation means
11 Identifier input means
12 Identifier dividing means
13 Tag generation means
14 Index generation means
15 Same tag presence determination means
16 Identifier identity determination means
20 Data structure information recording means
30 Structure description data input means
31 Structure description data analysis means
32 Writing means
40 Data structure analysis means
41 Instruction information giving means
42 Candidate refinement means

Claims (11)

識別子によりデータを管理するデータ管理装置において、
前記識別子が入力される識別子入力手段と、
入力された前記識別子を、前記識別子よりも短い所定のデータ長の複数のセグメントに分割する識別子分割手段と、
得られた複数の前記セグメント間において排他的論理和を演算することにより、前記所定のデータ長のタグを生成するタグ生成手段と、
前記タグ生成手段によって生成された前記タグを元にして、索引を生成する索引生成手段と、
を有することを特徴とするデータ管理装置。
In a data management device that manages data by an identifier,
An identifier input means for the identifier is input,
An input the identifier, the identifier dividing means for dividing into a plurality of segments of short predetermined data length than the identifier,
Tag generating means for generating a tag of the predetermined data length by calculating exclusive OR between the plurality of obtained segments;
Based on the tags generated by the tag generation means, and index generation means for generating an index,
A data management apparatus comprising:
識別子によりデータを管理するデータ管理装置において、In a data management device that manages data by an identifier,
前記識別子が入力される識別子入力手段と、Identifier input means for inputting the identifier;
入力された前記識別子を、前記識別子を構成するフィールド毎に分割する識別子分割手段と、Identifier dividing means for dividing the input identifier for each field constituting the identifier;
得られた個々の前記フィールドの値から、取り得る値の個数が多い前記フィールドほど桁数の大きいハッシュ値を計算し、複数の前記ハッシュ値を結合して、前記識別子よりもデータ長の短いタグを生成するタグ生成手段と、A tag having a shorter data length than the identifier by calculating a hash value having a larger number of digits for the field having a larger number of possible values from the obtained values of the individual fields and combining the hash values. Tag generation means for generating
前記タグ生成手段によって生成された前記タグを元にして、索引を生成する索引生成手段と、Index generating means for generating an index based on the tag generated by the tag generating means;
を有することを特徴とするデータ管理装置。A data management apparatus comprising:
前記識別子のデータ構造に関する情報を記録するデータ構造情報記録手段を更に有し、Further comprising data structure information recording means for recording information relating to the data structure of the identifier;
前記識別子分割手段と前記タグ生成手段は、前記データ構造情報記録手段に記録されている情報を参照して処理を行うことを特徴とする請求項2記載のデータ管理装置。  3. The data management apparatus according to claim 2, wherein the identifier dividing unit and the tag generating unit perform processing with reference to information recorded in the data structure information recording unit.
前記識別子のデータ構造を記述した構造記述データが入力される構造記述データ入力手段と、Structure description data input means for inputting structure description data describing the data structure of the identifier;
入力された前記構造記述データを解析して前記識別子のデータ構造に関する情報を生成する構造記述データ解析手段と、  A structure description data analyzing means for analyzing the input structure description data and generating information on the data structure of the identifier;
得られた前記識別子のデータ構造に関する情報を前記データ構造情報記録手段に書き込む書き込み手段と、  Writing means for writing information on the data structure of the obtained identifier to the data structure information recording means;
を更に有することを特徴とする請求項3記載のデータ管理装置。The data management apparatus according to claim 3, further comprising:
前記識別子入力手段から入力された複数の前記識別子のデータ構造を統計的な手法により解析するデータ構造解析手段と、Data structure analyzing means for analyzing a plurality of identifier data structures input from the identifier input means by a statistical method;
得られた前記識別子のデータ構造に関する情報を前記データ構造情報記録手段に書き込む書き込み手段と、  Writing means for writing information on the data structure of the obtained identifier to the data structure information recording means;
を更に有することを特徴とする請求項3記載のデータ管理装置。  The data management apparatus according to claim 3, further comprising:
新たに入力された識別子に対応する前記タグが前記タグ生成手段によって生成された場合に、前記索引生成手段によって生成された前記索引を参照し、同一の前記タグが存在するか否かを判定する同一タグ存在判定手段と、When the tag corresponding to a newly input identifier is generated by the tag generation unit, the index generated by the index generation unit is referred to determine whether the same tag exists. Same tag presence determination means,
同一の前記タグが存在すると判定された場合には、判定された前記タグに対応する前記識別子と前記新たに入力された識別子とが同一であるか否かを判定する識別子同一性判定手段と、  When it is determined that the same tag exists, identifier identity determination means for determining whether or not the identifier corresponding to the determined tag and the newly input identifier are the same;
を更に有することを特徴とする請求項2記載のデータ管理装置。  The data management apparatus according to claim 2, further comprising:
前記識別子同一性判定手段は、前記識別子のデータ構造を参照して、比較コストが小さい部分から前記識別子を順次比較することを特徴とする請求項6記載のデータ管理装置。7. The data management apparatus according to claim 6, wherein the identifier identity determination unit sequentially compares the identifiers from a portion with a low comparison cost with reference to the data structure of the identifiers. 前記同一タグ存在判定手段によって同一の前記タグが存在すると判定された場合には、判定された前記タグに対応する前記識別子と前記新たに入力された識別子とを比較してこれらの間で異なる部分を特定し、特定した部分を指示する指示情報を前記索引に対して付与する指示情報付与手段を更に有することを特徴とする請求項6記載のWhen the same tag presence determining means determines that the same tag exists, the identifier corresponding to the determined tag is compared with the newly input identifier, and the difference between them 7. The information processing apparatus according to claim 6, further comprising instruction information adding means for specifying the specified part and giving instruction information for specifying the specified part to the index. データ管理装置。Data management device. 前記同一タグ存在判定手段によって同一の前記タグが複数存在すると判定された場合には、前記指示情報付与手段によって付与された前記指示情報を参照して前記識別子の異なる部分のみを比較することにより、前記識別子の候補を絞り込む候補絞り込み手段を更に有し、When it is determined by the same tag presence determining means that there are a plurality of the same tags, by comparing only the different parts of the identifier with reference to the instruction information given by the instruction information giving means, Further comprising candidate narrowing means for narrowing down the identifier candidates,
前記識別子同一性判定手段は、絞り込まれた前記候補と前記新たに入力された識別子との同一性を前記識別子のデータ構造を参照して判定することを特徴とする請求項8記載のデータ管理装置。  9. The data management apparatus according to claim 8, wherein the identifier identity determination unit determines the identity between the narrowed-down candidate and the newly input identifier with reference to a data structure of the identifier. .
識別子によりデータをコンピュータに管理させるためのデータ管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、In a computer-readable recording medium recording a data management program for causing a computer to manage data by an identifier,
前記識別子が入力される識別子入力手段、  Identifier input means for inputting the identifier;
入力された前記識別子を、前記識別子よりも短い所定のデータ長の複数のセグメントに分割する識別子分割手段、  Identifier dividing means for dividing the input identifier into a plurality of segments having a predetermined data length shorter than the identifier;
得られた複数の前記セグメント間において排他的論理和を演算することにより、前記所定のデータ長のタグを生成するタグ生成手段、  Tag generating means for generating a tag of the predetermined data length by calculating an exclusive OR between the plurality of obtained segments;
前記タグ生成手段によって生成された前記タグを元にして、索引を生成する索引生成手段、  Index generating means for generating an index based on the tag generated by the tag generating means;
としてコンピュータを機能させるためのデータ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。  A computer-readable recording medium on which a data management program for causing a computer to function is recorded.
識別子によりデータをコンピュータに管理させるためのデータ管理プログラムを記録したコンピュータ読み取り可能な記録媒体において、In a computer-readable recording medium recording a data management program for causing a computer to manage data by an identifier,
前記識別子が入力される識別子入力手段、Identifier input means for inputting the identifier;
入力された前記識別子を、前記識別子を構成するフィールド毎に分割する識別子分割手段、Identifier dividing means for dividing the input identifier for each field constituting the identifier;
得られた個々の前記フィールドの値から、取り得る値の個数が多い前記フィールドほど桁数の大きいハッシュ値を計算し、複数の前記ハッシュ値を結合して、前記識別子よりもデータ長の短いタグを生成するタグ生成手段、A tag having a shorter data length than the identifier by calculating a hash value having a larger number of digits for the field having a larger number of possible values from the values of the obtained individual fields and combining the plurality of hash values. Tag generation means for generating
前記タグ生成手段によって生成された前記タグを元にして、索引を生成する索引生成手段、Index generating means for generating an index based on the tag generated by the tag generating means;
としてコンピュータを機能させるためのデータ管理プログラムを記録したコンピュータ読み取り可能な記録媒体。A computer-readable recording medium on which a data management program for causing a computer to function is recorded.
JP00271598A 1998-01-09 1998-01-09 Data management apparatus and recording medium Expired - Fee Related JP3855423B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP00271598A JP3855423B2 (en) 1998-01-09 1998-01-09 Data management apparatus and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP00271598A JP3855423B2 (en) 1998-01-09 1998-01-09 Data management apparatus and recording medium

Publications (2)

Publication Number Publication Date
JPH11203183A JPH11203183A (en) 1999-07-30
JP3855423B2 true JP3855423B2 (en) 2006-12-13

Family

ID=11537013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00271598A Expired - Fee Related JP3855423B2 (en) 1998-01-09 1998-01-09 Data management apparatus and recording medium

Country Status (1)

Country Link
JP (1) JP3855423B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010233083A (en) * 2009-03-27 2010-10-14 Toshiba Corp Network address management device, network address management method and network relay apparatus
JP5671320B2 (en) * 2009-12-18 2015-02-18 キヤノン株式会社 Information processing apparatus, control method therefor, and program
KR101501462B1 (en) 2013-06-10 2015-03-11 이용재 Unified Data Object Management System and the Method
BR112019009476A2 (en) * 2016-11-10 2019-07-30 Hewlett Packard Development Co traceability identifier

Also Published As

Publication number Publication date
JPH11203183A (en) 1999-07-30

Similar Documents

Publication Publication Date Title
Yagoubi et al. Massively distributed time series indexing and querying
CA2434081C (en) Data structures utilizing objects and pointers in the form of a tree structure
JP4398988B2 (en) Apparatus, method and program for managing structured document
KR102046692B1 (en) Method and System for Entity summarization based on multilingual projected entity space
CN112148359B (en) Distributed code clone detection and search method, system and medium based on subblock filtering
KR101744892B1 (en) System and method for data searching using time series tier indexing
JP2002024281A (en) Database arithmetic processor
Mohamed et al. MRO-MPI: MapReduce overlapping using MPI and an optimized data exchange policy
JP6434162B2 (en) Data management system, data management method and program
CN113297171A (en) Database migration method and device and database cluster
JP2013045208A (en) Data generation method, device and program, retrieval processing method, and device and program
KR20140076010A (en) A system for simultaneous and parallel processing of many twig pattern queries for massive XML data and method thereof
JP3855423B2 (en) Data management apparatus and recording medium
Cheng et al. A Multi-dimensional Index Structure Based on Improved VA-file and CAN in the Cloud
KR101846347B1 (en) Method and apparatus for managing massive documents
JPH0358249A (en) Access method of file
WO2016117007A1 (en) Database system and database management method
JP6103021B2 (en) Data generation method, apparatus and program, search processing method, apparatus and program
JP2019215713A (en) Information processing device, information processing method, and information processing program
JP5488587B2 (en) Information processing system and method
Nidzwetzki et al. Demo paper: large scale spatial data processing with user defined filters in BBoxDB
JP2008065716A (en) Device, method and program for data management
JP3859044B2 (en) Index creation method and search method
JPWO2005122014A1 (en) Information space processing apparatus, program, and method
JP3639480B2 (en) Similar data retrieval method, similar data retrieval device, and similar data retrieval program recording medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060718

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060904

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100922

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110922

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120922

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130922

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees