JP4398664B2 - XML data search method and search apparatus, program, and recording medium recording the program - Google Patents

XML data search method and search apparatus, program, and recording medium recording the program Download PDF

Info

Publication number
JP4398664B2
JP4398664B2 JP2003099941A JP2003099941A JP4398664B2 JP 4398664 B2 JP4398664 B2 JP 4398664B2 JP 2003099941 A JP2003099941 A JP 2003099941A JP 2003099941 A JP2003099941 A JP 2003099941A JP 4398664 B2 JP4398664 B2 JP 4398664B2
Authority
JP
Japan
Prior art keywords
record
search
column
data
element table
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
JP2003099941A
Other languages
Japanese (ja)
Other versions
JP2004310249A (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.)
SEC Co Ltd
Original Assignee
SEC Co Ltd
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 SEC Co Ltd filed Critical SEC Co Ltd
Priority to JP2003099941A priority Critical patent/JP4398664B2/en
Publication of JP2004310249A publication Critical patent/JP2004310249A/en
Application granted granted Critical
Publication of JP4398664B2 publication Critical patent/JP4398664B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、XML(拡張可能なマーク付け言語;Extensible Markup Language)で記述された階層構造を有するXMLデータのデータベースに関するもので、特に、表形式のテーブルに格納したXMLデータの検索技術に関する。
【0002】
【従来の技術】
XMLデータをデータベース管理システムに格納し、また格納したデータを高速に検索する仕組みは、従来から様々な手法がとられてきた。
XMLデータをリレーショナルモデルに基づき格納する場合は、基本的に3つの方法が考えられる。
【0003】
第1は、一つのXMLデータを一つの文字列データとして格納する方法である。
この場合、基本的にはXMLデータを格納するために設けたテーブルの特定のカラムに、XMLデータ全体が一つの文字列データとして格納される。
また、主に検索性能を向上させる目的で、XMLデータを文字列として格納するカラムとは別に同じテーブルに検索用のカラムを用意し、検索に使用するXMLデータ中のエレメントまたは属性の値をあらかじめ抽出して当該カラムに格納しておく手法なども、同時に用いられることがある。
【0004】
第2は、XMLデータの各エレメントと属性を分解し、あらかじめターゲットとなるXML専用に設計し作成してある複数のテーブルの各カラムに、それぞれ対応させて格納する方法である。
この場合、全てのエレメント・属性の値を分解して格納する方法のほか、必要なエレメント・属性の値のみを抽出して格納する方法がある。後者の場合は、第1の方法と組み合わせて使用する場合もある。
【0005】
第3は、XMLデータのエレメントまたは属性の情報を格納するテーブルと、エレメント間の親子関係を表わすリンク情報を格納するテーブルに分ける方法である。
リレーショナルデータベースにおいては、検索を高速化するために、検索対象となるエレメントまたは属性の値のインデックス情報を別途作成しておき、検索の際には最初にインデックス情報を参照して目的のデータを探す手法が一般的に用いられる。
【0006】
【発明が解決しようとする課題】
第1の方法の問題点は、データベースにおいてはXMLデータ全体を一つの文字列情報として扱うため、検索を高速化するためには特殊なインデックスなどをあらかじめ作成しておく必要があり、一つでも情報が変化した場合はインデックスを作成しなおす必要がある。
また、特定の位置にあるエレメントまたは属性の値についての範囲検索や集計などを高速に処理することが困難であるほか、エレメントや属性の値のデータ型が文字型に限定されてしまうなどの問題がある。
【0007】
第2の方法の問題点は、格納対象となるXMLデータの構造にしたがってあらかじめデータベースを設計しておく必要があるため、XMLデータの構造が変化すると設計からやり直す必要があり、XMLデータの持つ自由度や柔軟性を大きく阻害してしまうことである。
また、一般的に木構造を持つXMLデータをリレーショナルモデルに対応付けることは技術的にも難しく、その結果として検索性能を向上させることも難しいものになる。
【0008】
第3の方法の問題点は、特定の位置にあるエレメントまたは属性の情報を探すために毎回リンク情報を辿って行く必要があることで、XMLデータ構造や検索内容によってはリンクを何度も辿る必要があり、一般的に高速な検索処理を行うことが難しい。また第1の方法と同様に比較的多くのXMLデータ構造に柔軟に対応できる半面、数値型や文字型などデータ型のバリエーションを持たせることは困難である。
その他の関連する技術としては、たとえば、特開2002−73589号、特開2001−34618号、特開2001−318935号、特開2001−282856号、特開2001−195406号公報等がある。
【0009】
本発明は、上記した従来技術の課題を解決するためになされたもので、その目的とするところは、表形式に格納したXMLデータを効率的に検索するXMLデータの検索方法および検索装置、並びにプログラムおよびプログラムを記録した記録媒体を提供することにある。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明のXMLデータの検索方法は、
記憶装置のデータベース領域に、格納すべきXMLデータのスキーマ情報に基づいてエレメント毎にエレメントテーブルを作成し、
各エレメントテーブルには、エレメントの個別データを入れるカラムと、ダウングリップカラムと、アップグリップカラムを作成し、
前記データの格納は、ルートエレメントから順をたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係を付けた状態で、一行のレコードとして格納したXMLデータをXMLデータの検索装置を用いて検索する方法である。
【0011】
XMLデータとは、周知のXMLで記述された階層構造を有するデータであり、エレメント(要素)を単位とし、エレメントはデータにその内容を示すタグを付けて記述される。エレメントをグループ化することによってエレメントの階層構造が表現され、全体として木構造(ツリー構造)のモデルで表現できる。
【0012】
使用するエレメントやデータ内容、エレメントの属性、エレメント間の親子兄弟関係等の規則はスキーマとして設計される。スキーマの記述方法としては、たとえばDTD等が定められているが、DTDに即した記述に限定されるものではなく、XML Schema等、種々の言語を用いることができる。
【0013】
前記XMLデータの検索装置は、検索条件を含む一連のエレメントの検索指定を読み込み、
前記検索条件に対応するエレメントテーブルを検索し、
検索されたエレメントテーブルに格納された個別データのうち検索条件に合致する個別データのレコードを選択し、
前記レコードの選択情報を出発点とし、現在のエレメントテーブルの選択レコードのアップグリップカラムと上位のエレメントテーブルのダウングリップカラムが一致するレコードを結合し、前記上位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索条件が付随する検索起点エレメントのエレメントテーブルまで繰り返すことにより検索起点エレメントのエレメントテーブルについて検索条件を反映したレコードを選択し、
検索指定の先頭のエレメントに進み、
現在のエレメントテーブルのレコードまたは選択レコードのダウングリップカラムと下位のエレメントテーブルのレコードまたは選択レコードのアップグリップカラムが一致す
るレコードを結合し、下位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索指定の最後のエレメントのエレメントテーブルまで繰り返すことにより最後のエレメントテーブルについて検索条件を反映したレコードを選択する処理を実行することを特徴とする。
【0014】
また、前記XMLデータの検索装置は、検索指定の最後のエレメントテーブルについて選択されたレコードに基づいてXMLデータを復元する処理を実行することを特徴とする。
【0015】
本発明のXMLデータの検索装置は、記憶装置のデータベース領域に、格納すべきXMLデータのスキーマ情報に基づいてエレメント毎にエレメントテーブルを作成し、各エレメントテーブルには、エレメントの個別データを入れるカラムと、ダウングリップカラムと、アップグリップカラムを作成し、前記データの格納は、ルートエレメントから順をたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係を付けた状態で、一行のレコードとして格納したXMLデータの検索装置である。
【0016】
すなわち、検索条件を含む一連のエレメントの検索指定を読み込み、前記検索条件に対応するエレメントテーブルを検索し、検索されたエレメントテーブルに格納された個別データのうち検索条件に合致する個別データのレコードを選択し、
前記レコードの選択情報を出発点とし、現在のエレメントテーブルの選択レコードのアップグリップカラムと上位のエレメントテーブルのダウングリップカラムが一致するレコードを結合し、前記上位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索条件が付随する検索起点エレメントのエレメントテーブルまで繰り返すことにより検索起点エレメントのエレメントテーブルについて検索条件を反映したレコードを選択し、
検索指定の先頭のエレメントに進み、現在のエレメントテーブルのレコードまたは選択レコードのダウングリップグリップカラムと下位のエレメントテーブルのレコードまたは選択レコードのアップグリップカラムが一致するレコードを結合し、下位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索指定の最後のエレメントのエレメントテーブルまで繰り返すことにより最後のエレメントテーブルについて検索条件を反映したレコードを選択する手順を実行する処理手段を備えたことを特徴とする。
処理手段は、検索指定の最後のエレメントテーブルについて選択されたレコードに基づいてXMLデータを復元する。
【0017】
本発明は、上記XMLデータの検索方法をコンピュータに実行させるためのプログラムおよびこのプログラムを記録したコンピュータ読取可能な記録媒体も提供する。
すなわち、このプログラムは、記憶装置のデータベース領域に、格納すべきXMLデータのスキーマ情報に基づいてエレメント毎にエレメントテーブルを作成し、
各エレメントテーブルには、エレメントの個別データを入れるカラムと、ダウングリップカラムと、アップグリップカラムを作成し、
前記データの格納は、ルートエレメントから順をたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係を付けた状態で、一行のレコードとして格納したXMLデータの検索プログラムであって、
検索条件を含む一連のエレメントの検索指定を読み込み、前記検索条件に対応するエレメントテーブルを検索し、検索されたエレメントテーブルに格納された個別データのうち検索条件に合致する個別データのレコードを選択し、
前記レコードの選択情報を出発点とし、現在のエレメントテーブルの選択レコードのアップグリップカラムと上位のエレメントテーブルのダウングリップカラムが一致するレコードを結合し、前記上位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索条件が付随する検索起点エレメントのエレメントテーブルまで繰り返すことにより検索起点エレメントのエレメントテーブルについて検索条件を反映したレコードを選択し、検索指定の先頭のエレメントに進み、現在のエレメントテーブルのレコードまたは選択レコードのダウングリップカラムと下位のエレメントテーブルのレコードまたは選択レコードのアップグリップカラムが一致するレコードを結合し、下位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索指定の最後のエレメントのエレメントテーブルまで繰り返すことにより最後のエレメントテーブルについて検索条件を反映したレコードを選択する手順をコンピュータに実行させることを特徴とする。
【0018】
【発明の実施の形態】
以下に本発明を図示の実施の形態に基づいて説明する。
図1(A)は、本発明のXMLデータ検索装置を含むデータベースの装置構成を概念的に示している。
データベースは、データを記憶するデータベース領域401を備えた記憶装置400と、XMLデータ100のスキーマ情報が記述されたDTD101(文書型定義;Document Type Definition)で定義されているエレメント毎に記憶装置400のデータベース領域401にテーブル200,…を作成し、実際のタグ付きデータが記述されたデータ本体部102のデータを対応する各テーブル200,201,202に振り分けて格納するようにプログラムされた格納処理部300と、各テーブル200、…に格納されたデータを検索する検索処理部500とを備えている。また、検索処理部500に対して検索条件を入力する入力操作部501と、検索処理部500による検索結果を出力する表示部502を備えている。
テータベース領域401にはフォルダ402が作成され、このフォルダ402内にDTD101と共に各テーブル200,…が作成される。
【0019】
まず、前提となるデータ格納について説明し、その後にデータ検索について説明する。
格納処理部300および検索処理部500は、特に図示しないが、通常のコンピュータのマイクロプロセッサ(CPU)とRAM等の主記憶装置を含む構成で、主記憶装置に読み込まれたプログラムに従ってデータが処理される。
テーブル200,・・・が作成される記憶装置400についてもRAM等の主記憶装置が用いられる。
プログラムは一般的にはハードディスク等の補助記憶装置に記憶され、処理実行時に主記憶装置に読み出されて実行される。 プログラムは、CD−ROM,CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RW等種々の記録媒体に格納することができるし、ネットワークを介して配信することもできる。
【0020】
XMLはスキーマ情報としてDTD等の記載を不要とすることができる構造化データ記述言語であるが、本発明で扱うXMLデータ100は、スキーマ情報を必要とする。スキーマ情報としては、DTD101に限定されるものではなく、XML SchemaやRELAX NGなどの他のスキーマ言語を用いた情報でもよい。図1(A)において、DTD101が必要となるのは、最初にフォルダ402を作成する際のみで、XMLデータを格納する際には不要である。
【0021】
図1(B)には、テーブルに作成されるカラムが例示されている。
属性(attr-)カラムC1は個別データの内容に関するカラムの一つで、属性値が格納される。属性省略時にはNULL値を格納する。
テキスト(text)カラムC2も個別データの内容に関するカラムの一つで、エレメントの個別データの内容のテキスト値が格納される。このテキストカラムは、テキスト値を持つ場合のみ記入される。
ダウングリップ(down−grip)カラムC3には、データ本体部102のデータ出現順に出現順序情報として順番号が割り当てられる。
【0022】
アップグリップ(up−grip)カラムC4には、対応する親エレメントのダウングリップの値が格納される。ダウングリップに対応する、アップグリップを持つ子エレメントが存在しない場合には、子となるデータが無いことを表示する。
【0023】
XMLデータの格納は、まず、DTDを指定してフォルダ402内にテーブルを作成し、当該DTDに従うXMLデータについて、ルートエレメントから順に、個別データをそれぞれ対応するエレメントテーブルのカラムに格納すると共に格納していく。格納は、個別データの出現順序情報をダウングリップカラムに、個別データの親に当たる個別データのダウングリップカラムの出現順序情報をアップグリップカラムに割り当てて、個別データ間にリンク関係を付けた状態で1行のレコードとして格納する。
すなわち、登録開始を指示すると、主制御部300のプログラムが実行され、格納すべきXMLデータ100を解析し、エレメントを取得してエレメントと属性のデータを対応するテーブルに格納する。
エレメントの取得とテーブルへの格納は、XMLデータのデータ本体部102のデータをルートからたどり、タグ名を参照して対応するテーブルを選択し、属性値があれば属性値を属性カラムに格納し、テキストデータがあればテキストカラムC2に格納する
【0024】
ダウングリップカラムC3に、エレメント出現順に若い値から割り当てる。すべてのエレメントに対して一意の値となる。アップグリップカラムC4には、当該エレメントの親エレメントに割り当てられたダウングリップの値となる。同じ値のアップグリップを持つエレメントが複数存在する場合、それらの出現順はダウングリップの若い順となっている。
ダウングリップに対応するアップグリップを持つ子エレメントが存在しない場合には、子が無いことを表す。
次に全エレメントが終了したかどうかを判断し、全エレメントの格納が終了していなければ次のエレメントを取得し、データ格納手順を繰り返す。
全エレメントのデータの格納が終了した場合には、登録すべき全XMLデータの格納が終了したがどうかが判断され、全XMLデータの格納が終了していなければ次のXMLデータを解析して、データの格納手順を繰り返す。全XMLデータの格納が終了した場合には、登録処理を終了する。
【0025】
図2(A),(C)に、XMLデータとこのXMLデータを格納したエレメントテーブルの格納例を示している。分かりやすくするために、XMLデータのツリー構造を示し(図2(B)参照)、XMLデータの個別データおよびツリー表示の各個別データ(ノード)にダウングリップの値を付した。
XMLデータのエレメントテーブルへの格納は次のようになされる。
1行目のルートタグからルートテーブル200を選択し、ルートテーブル200のダウングリップカラムに”0”、アップグリップカラムC4に対応する親エレメントが無いことを示す”−1”を格納する。
【0026】
2行目のメンバータグからメンバーテーブル201を選択し、このチャイルドテーブル201のダウングリップカラムC3に”1”、アップグリップカラムC4に”0”を記入する。
3行目のネームタグからネームテーブル202を選択し、このネームテーブル202のダウングリップカラムC3に”2”、アップグリップカラムC4に”1”を記入し、属性カラムC1に”09900”、テキストカラムC2に”Nancy”を記入する。
4行目のカンパニータグからカンパニーテーブル203を選択し、このカンパニーテーブル203のダウングリップカラムC3に”3”、アップグリップカラムC4に”1”を記入し、テキストカラムC2に”SEC”を記入する。
【0027】
6行目のメンバータグからメンバーテーブル201を選択し、このチャイルドテーブル201の2行目にダウングリップカラムC3に”4”、アップグリップカラムC4に”0”を記入する。
7行目のネームタグからネームテーブル202を選択し、このネームテーブル202のダウングリップカラムC3に”5”、アップグリップカラムC4に”4”を記入し、属性カラムC1に”10027”、テキストカラムC2に”John”を記入する。
8行目のカンパニータグからカンパニーテーブル203を選択し、このカンパニーテーブル203のダウングリップカラムC3に”6”、アップグリップカラムC4に”4”を記入し、テキストカラムC2に”SEC”を記入する。
【0028】
10行目のメンバータグからメンバーテーブル201を選択し、このチャイルドテーブル201の3行目にダウングリップカラムC3に”7”、アップグリップカラムC4に”0”を記入する。
11行目のネームタグからネームテーブル202を選択し、このネームテーブル202のダウングリップカラムC3に”8”、アップグリップカラムC4に”7”を記入し、属性カラムC1に”12469”、テキストカラムC2に”Tom”を記入する。
12行目のカンパニータグからカンパニーテーブル203を選択し、このカンパニーテーブル203のダウングリップカラムC3に”9”、アップグリップカラムC4に”7”を記入し、テキストカラムC2に”HAL”を記入する。
データ本体部102のデータを全てたどり終えると、登録処理を終了する。
【0029】
このように、フォルダに格納したXMLデータは、エレメントの内容、属性、階層構造、エレメントの出現順序等の情報がすべて登録されることになり、フォルダに保存された表形式のデータを、XMLデータに再現することが可能である。
【0030】
エレメント間の親子関係については、テーブルとは別にメモリ上に格納する。
図3にはエレメントの親子関係を付ける一例を示している。
図示例は、リンク関係を表形式で記憶した例で、テーブル600には、エレメント名カラム601と、テーブル名に一連の番号を順番に付けるテーブル番号カラム602と、各テーブルに対して親となるテーブルの番号を格納する親カラム603と、各テーブルの子となるテーブルの番号を格納する複数の子カラム604とが設けられている。この親子関係のデータは、各フォルダ402に対応付けられて管理されている。
【0031】
図示例では、エレメント名カラム601に”ルート(root)”、”メンバー(member)”、”ネーム(name)” 、”カンパニー(company)”を格納し、その横の番号カラムに、0、1、2、3と固有の番号を付ける。
そして、テーブルの1行目のルートエレメントについては、親カラムに”−1”(親エレメント無し)、子カラムに”1”を格納する。
テーブル600の2行目のメンバーエレメントについては、親カラムに”0”、子カラムに”2”, ”3”を格納する。
テーブルの3行目のネームエレメントについては、親カラムに”1”、子カラムに”−1”(子エレメント無し)を格納する。
テーブルの4行目のカンパニーエレメントについても、親カラムに”1”、子カラムに”−1”(子エレメント無し)を格納する。
【0032】
次に、本発明のXMLデータの検索装置について説明する。
図4には、検索処理手順のフローチャートを示している。
まず、検索条件を含む一連のエレメントの検索指定を読み込み、検索指定を解析する(S1)。
検索指定は、たとえばXPath等によって指定するもので、たとえばルートエレメントから結果として取得するエレメントまで指定され、各エレメントについて必要に応じて適宜検索条件が指定される。
次に、検索条件に対応するエレメントテーブルを検索し(S2)、 検索されたエレメントテーブルに格納された個別データのうち検索条件に合致する個別データのレコードを選択する(S3)。
【0033】
この選択されたレコードの選択情報を出発点とし、現在のエレメントテーブルの選択レコードのアップグリップカラムと上位のエレメントテーブルのダウングリップカラムが一致するレコードを結合し(S5)、前記上位のエレメントテーブルで結合対象となったレコードを選択する手順を(S6)、検索条件が付随する検索起点エレメントのエレメントテーブルまで繰り返すことにより検索起点エレメントのエレメントテーブルについて検索条件を反映したレコードを選択する(S4〜S6)。 次に、検索指定の先頭のエレメントに進み(S7)、現在のエレメントテーブルのレコードまたは選択レコードのダウングリップグリップカラムと下位のエレメントテーブルのレコードまたは選択レコードのアップグリップカラムが一致するレコードを結合し(S9)、下位のエレメントテーブルで結合対象となったレコードを選択する手順を(S10)、検索指定の最後のエレメントのエレメントテーブルまで繰り返すことにより最後のエレメントテーブルについて検索条件を反映したレコードを選択する(S8〜S10)。
この最後のエレメントテーブルについて選択されたレコードに基づいてXMLデータを復元して表示する(S11)。
【0034】
次に、図5乃至図7を参照して、XMLデータの具体的な検索例1乃至3について説明する。XMLデータは図2に示す表形式で格納されたデータであり、図5乃至図7中、各エレメントテーブルでは、各行のレコード番号(No),カラムアップグリップカラムおよびダウングリップカラムのみを表示している。
検索の指定はXPathに準拠した形で指定する。
XPathの指定は、次の2つの部分に分かれる。
指定1.ドキュメントのルートから、結果として取得するエレメントまでの一連のエレメントのパスを指定する。
指定2.検索条件を表す述語を記載する。
【0035】
この指定に対して、次のように処理する。
処理1.
XPathの各ステップについて、述語(検索条件)が指定されていたら、対応するエレメントテーブルの検索を実行し、条件に合致するレコードを選択する。
1a.述語内で最も下のパスにあるエレメントテーブルで絞り込みを行い、レコードの選択情報を作成する。
1b.直上のパスのエレメントテーブルとジョインを行い、その結果を直上のエレメントテーブルで、ジョイン対象となったレコードを選択する。
この処理を検索条件が付随する検索起点エレメントに対応するエレメントテーブルまで繰り返し、検索起点エレメントのエレメントテーブルについて検索条件を反映させたレコードを選択する。
検索起点エレメントとは、たとえば、XPathの表現においては、検索条件を表す述語の直前(直上)に記述されたエレメントのことであり、検索条件(述語)が付随している。
ジョインとは、下位のエレメントテーブルの選択レコードのアップグリップカラムと上位のエレメントテーブルのダウングリップカラムが一致するレコードを結合する処理である。
処理2.
検索起点エレメントのエレメントテーブルについて検索条件が反映されたレコードが選択されたら、ドキュメントのルートから順に、直下のステップのエレメントテーブルのレコードまたは選択レコードとのジョインをし、下位のエレメントテーブルで結合対象となったレコードを選択する手順を、最後のエレメントテーブルまで繰り返し、最後のエレメントテーブルに検索条件を反映させたレコードを選択する。
【0036】
検索例1
図5は、検索例1を示している。
検索指定は次の通りである。
/root/member[name/@id=‘10027’]
すなわち、一連のエレメントの指定はroot,memberであり、検索条件は括弧内の述語である。先頭のエレメントはルートエレメント(root)、最後のエレメントはメンバーエレメント(member)であり、検索起点エレメントのエレメントテーブルは検索条件の直上に位置するメンバーエレメント(member)である。検索条件はネームエレメント(name)の属性が10027のレコードである。
【0037】
処理1a
この例では、2番目のステップの述語中で最も下のパスにあるエレメントのネームテーブル202を検索し、ネームテーブル203の属性カラム、attr−id=‘10027’に合致するレコードを選択し、選択情報としてたとえば選択レコード番号(2)を記憶する。
選択情報としては、その他、テーブルの該当する個別データが格納されたレコードに、他のレコードと区別する情報を付けるようにしてもよい。
処理1b
次に、現在のネームテーブル202の選択レコード(2)のアップグリップカラム(4)と直上のメンバーテーブル201のダウングリップカラムが一致するレコードをジョインし、メンバーテーブル201でジョイン対象となったレコード(2)を選択する。
このメンバーテーブル201は検索起点エレメントに対応するエレメントテーブルであり、処理1bはこれで終了する。
【0038】
処理2
ルートエレメントのルートテーブル200のレコードのダウングリップカラム(0)と、メンバーテーブル201の処理1―bで選択された選択レコード2のアップグリップカラムが一致するレコードを結合し、下位のメンバーテーブルでジョイン対象となったレコードを選択する(選択レコード(2))。
メンバーテーブル201は最後のエレメントに対応しており、処理2は終了する。。
処理2で選択された選択レコード(2)より、子エレメントを再帰的に復元し、元のXMLデータの断片である次のデータが検索結果となる。

Figure 0004398664
【0039】
検索例2について
図6は、検索例2を示している。
この検索例2の指定は次の通りである。
例2
/root/member[company=‘SEC’]/ name
この指定は、一連のエレメントの指定はルートエレメント(root),メンバーエレメント(member),ネームエレメント(name)であり、検索条件は括弧内の述語である。先頭のエレメントはルートエレメント(root)、最後のエレメントはネームエレメント(name)であり、検索起点エレメントは検索条件の直上に位置するメンバーエレメント(member)である。検索条件はカンパニーエレメント(company)がSECであることが条件となっている。
【0040】
処理1a
この例では、2番目のステップの述語中で最も下のパスにあるエレメントのカンパニーテーブル203を検索し、カンパニーテーブル203のテキストカラムが‘SEC’に合致するレコードを選択し、選択情報として選択レコード番号(1,2)を記憶する。
処理1b
次に、現在のカンパニーテーブル203の選択レコード(1,2)のアップグリップカラム(1,4)と直上のメンバーテーブル201のダウングリップカラム(1,4)が一致するレコードをジョインし、メンバーテーブル201でジョイン対象となったレコード(1,2)を選択する。
このメンバーテーブル201は検索起点エレメントに対応するエレメントテーブルであり、処理1bはこれで終了する。
【0041】
処理2
ルートエレメントのルートテーブル200のレコードのダウングリップカラム(0)と、メンバーテーブル201の処理1―bで選択された選択レコード(1,2)のアップグリップカラム(0,0)が一致するレコードを結合し、下位のメンバーテーブル201でジョイン対象となったレコードを選択する(選択レコード(1,2))。
メンバーテーブル201は検索指定の最後のエレメントテーブルではないので、さらに処理を続行する。
すなわち、現在のメンバーテーブル201の選択レコード(1,2)のダウングリップカラム(1,4)と、ネームテーブル202のレコードのアップグリップカラム(1,4)が一致するレコードを結合し、下位のネームテーブル202でジョイン対象となったレコードを選択する(選択レコード(1,2))。
ネームテーブル202は最後のエレメントに対応しており、処理2は終了する。
処理2で選択されたネームテーブル202の選択レコード(1,2)より、子エレメントを再帰的に復元し、元のXMLデータの断片である次のデータが検索結果となる。
<name id=“09900”>Nancy</name>
<name id=“10027”>John</name>
【0042】
検索例3について
図7は、検索例3を示している。
この検索例3の指定は次の通りである。
/root/member
この指定は、一連のエレメントの指定はルートエレメント(root),メンバーエレメント(member)の2エレメントであり、検索条件は無い。先頭のエレメントはルートエレメント(root)、最後のエレメントはメンバーエレメント(member)である。
処理1a、1b
この例では、検索条件に対応するエレメントテーブルは無いので、処理1a,1bに相当する処理はない。
【0043】
処理2
ルートエレメントのルートテーブル200のレコードのダウングリップカラム(0)と、メンバーテーブル201のレコードのアップグリップカラムが一致するレコードを結合し、下位のメンバーテーブル201でジョイン対象となったレコードを選択する(選択レコード(1,2,3))。
メンバーテーブル201は検索指定の最後のエレメントテーブルなので処理2は終了する。
処理2で選択されたメンバーテーブル201の選択レコード(1,2,3)より、子エレメントを再帰的に復元し、元のXMLデータの断片である次のデータが検索結果となる。
Figure 0004398664
【0044】
この検索例3では、メンバーエレメントの個別要素はすべて選択されることになるが、次の検索例4に示すように、XMLデータの構造によっては一部が除外される。
【0045】
図8は、検索例4を示している。
この検索例4のXMLデータは、メンバーエレメント(member)と並列にエー・エレメント(a)があり、このエー・エレメントの子要素としてメンバーエレメント(member)がつながっている構造である(図8(A),(B)参照)。
この場合のエレメントテーブルは、図8(C)に示す通り、エー・エレメントの子要素であるメンバーエレメントの個別データのアップグリップカラムは、エー・テーブルのダウングリップの値4が入れられる。
このようなXMLデータについて、次の検索指定をする。
/root/member
一連のエレメントの指定はルートエレメント(root),メンバーエレメント(member)の2エレメントであり、検索条件は無い。先頭のエレメントはルートエレメント(root)、最後のエレメントはメンバーエレメント(member)である。
【0046】
処理1a、1b
この例では、検索条件に対応するエレメントテーブルは無いので、処理1a,1bに相当する処理はない。
処理2
ルートエレメントのルートテーブル200のレコードのダウングリップカラム(0)と、メンバーテーブル201のレコードのアップグリップカラムが一致するレコードを結合し、下位のメンバーテーブル201でジョイン対象となったレコードを選択する(選択レコード(1,2,3))。
メンバーテーブル201は検索指定の最後のエレメントテーブルなので処理2は終了する。
処理2で選択されたメンバーテーブル201の選択レコード(1,2,3)より、子エレメントを再帰的に復元し、元のXMLデータの断片である次のデータが検索結果となり、aの子要素のメンバーエレメントの個別要素はジョイン処理によって除外される。
<member> … </member>
<member> … </member>
<member> … </member>
【0047】
上記各検索例では、検索指定(XPath)の検索条件(述語)内にエレメントが一つしか無いが、XML文書の内容や検索指定によって、検索条件として述語内にエレメントが複数記載される場合がある。
たとえば、
/root[member/company = “SEC”]という指定の場合には、検索条件に対応するエレメントはカンパニー(company)であり、検索起点エレメントはルート(root)である。
【0048】
他の実施の形態
上記実施の形態では、検索の指定をXPathに準拠した形で指定するようにしたが、XPathに準拠する必要はなく、検索条件を含む一連のエレメントを指定できればよい。
【0049】
【発明の効果】
以上説明したように、本発明によれば、検索条件がある場合には検索条件に合致する個別データのレコードを選択し、この選択した情報を検索条件が付随する検索起点エレメントに対応するエレメントテーブルまで反映させておき、次いで指定した先頭のエレメントから最後のエレメントまで結合処理とと結合結果のレコードの選択を繰り返すことにより、最後のエレメントテーブルについて、検索条件を反映したレコードを選択するようにしたので、
ダウングリップとアップグリップの値を利用して機械的に結合、レコードの選択を繰り返すだけで、取得すべきエレメントの個別データを検索することができる。
【0050】
取得すべきエレメントの個別データおよびその子孫に当たるエレメントの個別データをXMLデータとして復元することにより、XMLデータとして利用できる。
【図面の簡単な説明】
【図1】図1(A)は本発明の実施の形態に係るXMLデータの検索装置を含むデータベースの概略構成を示す図、図1(B)は同図(A)の記憶装置のテーブルに形成されるカラムの種類を示す図である。
【図2】図2(A)はXMLデータの一例を示す図、同図(B)は同図(A)のデータのリンク関係をツリー構造にして示した図、同図(C)は同図(A)のデータを格納したテーブルのデータ格納状態を示す図である。
【図3】図3はテーブル間の親子関係情報を記憶するテーブル構成を示す図である。
【図4】図4は検索手順のフローチャートの一例である。
【図5】図2のXMLデータの検索例1の検索手順を模式的に示す説明図である。
【図6】図2のXMLデータの検索例2の検索手順を模式的に示す説明図である。
【図7】図2のXMLデータの検索例3の検索手順を模式的に示す説明図である。
【図8】図2と異なる構造のXMLデータの検索例4の説明図である。
【符号の説明】
100 XMLデータ
101 DTD
102 データ本体部
200,201,202 テーブル
300 格納処理部
400 記憶装置
500 検索処理部
C1 属性カラム
C2 テキストカラム
C3 ダウングリップカラム
C4 アップグリップカラム[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a database of XML data having a hierarchical structure described in XML (Extensible Markup Language), and more particularly to a technique for retrieving XML data stored in a table in a table format.
[0002]
[Prior art]
Conventionally, various methods have been adopted for storing XML data in a database management system and for searching the stored data at high speed.
When storing XML data based on a relational model, there are basically three methods.
[0003]
The first is a method of storing one XML data as one character string data.
In this case, the entire XML data is basically stored as one character string data in a specific column of a table provided for storing XML data.
Also, mainly for the purpose of improving the search performance, a search column is prepared in the same table separately from the column storing the XML data as a character string, and the element or attribute value in the XML data used for the search is set in advance. A method of extracting and storing in the column may be used at the same time.
[0004]
The second method is a method of disassembling each element and attribute of the XML data and storing it in correspondence with each column of a plurality of tables designed and created in advance for the target XML.
In this case, there is a method of extracting and storing only necessary element / attribute values in addition to a method of decomposing and storing all element / attribute values. In the latter case, it may be used in combination with the first method.
[0005]
The third method is to divide the table into an XML data element or attribute information table and a table storing link information representing the parent-child relationship between elements.
In relational databases, in order to speed up the search, index information of the element or attribute value to be searched is created separately, and the target data is searched by referring to the index information first when searching. Techniques are commonly used.
[0006]
[Problems to be solved by the invention]
The problem with the first method is that the entire XML data is handled as one character string information in the database, so it is necessary to create a special index in advance in order to speed up the search. If the information changes, it is necessary to recreate the index.
In addition, it is difficult to perform high-speed range search and aggregation on the value of an element or attribute at a specific position, and the data type of the element or attribute value is limited to the character type. There is.
[0007]
The problem with the second method is that it is necessary to design the database in advance according to the structure of the XML data to be stored. Therefore, if the structure of the XML data changes, it is necessary to start over from the design. This greatly hinders the degree and flexibility.
In general, it is technically difficult to associate XML data having a tree structure with a relational model, and as a result, it is difficult to improve search performance.
[0008]
The problem with the third method is that the link information needs to be traced every time in order to search for information on an element or attribute at a specific position. Depending on the XML data structure and search contents, the link is traced many times. In general, it is difficult to perform a high-speed search process. Further, like the first method, it is difficult to provide data type variations such as numerical types and character types, while being able to flexibly deal with a relatively large number of XML data structures.
Other related technologies include, for example, Japanese Patent Application Laid-Open Nos. 2002-73589, 2001-34618, 2001-318935, 2001-282856, and 2001-195406.
[0009]
The present invention has been made to solve the above-described problems of the prior art, and an object of the present invention is to provide an XML data search method and search apparatus for efficiently searching XML data stored in a table format, and To provide a program and a recording medium on which the program is recorded.
[0010]
[Means for Solving the Problems]
  To achieve the above object, the XML data search method of the present inventionIs
  Create an element table for each element based on the schema information of the XML data to be stored in the database area of the storage device,
In each element table, create a column to store the individual data of the element, a down grip column, and an up grip column,
  The data is stored in each table in order from the root element. Appearance order information is added to the stored data so that all elements have unique values, and the appearance appears in the downgrip column. Enter the order information, and assign the appearance information of the downgrip column of the parent data that has a parent-child relationship with the data to the upgrip column, and store it as a one-line record with the link relationship between the data.XML dataUsing XML data search deviceSearchhow toIt is.
[0011]
The XML data is data having a hierarchical structure described in the well-known XML, and is described with an element (element) as a unit, and a tag indicating the content is attached to the element. By grouping elements, the hierarchical structure of the elements is expressed, and can be expressed as a tree structure (tree structure) model as a whole.
[0012]
Rules such as elements to be used, data contents, element attributes, and parent-child relationships between elements are designed as schemas. For example, DTD is defined as a schema description method, but the description method is not limited to description according to DTD, and various languages such as XML Schema can be used.
[0013]
  The XML data search device includes:Read a search specification for a set of elements including search criteria,
  Search the element table corresponding to the search condition,
  Select the record of individual data that matches the search condition from the individual data stored in the searched element table,
  A record in which the upgrip column of the selected record of the current element table and the downgrip column of the upper element table match are joined using the selection information of the record as a starting point, and the record becomes a join target in the upper element table Select the record that reflects the search condition for the element table of the search origin element by repeating the procedure of selecting to the element table of the search origin element accompanied by the search condition,
  Go to the first element of the search specification,
  Downgrid current element table record or selected recordPukaThe upgrip column of the ram and the lower element table record or selected record match.
Select the record that reflects the search condition for the last element table by repeating the procedure for selecting the records to be joined in the lower element table up to the element table of the last element specified for search.Execute the processIt is characterized byThe
[0014]
  Also,The XML data search device includes:Restore XML data based on the record selected for the last element table specified for searchExecute the processIt is characterized by that.
[0015]
  The XML data retrieval apparatus of the present invention creates an element table for each element based on the schema information of the XML data to be stored in the database area of the storage device, and each element table has a column for storing individual data of the element. Create a down grip column and an up grip column,The data is stored in each table in order from the root element. Appearance order information is added to the stored data so that all elements have unique values, and the appearance appears in the downgrip column. Put the order information, assign the appearance information of the downgrip column of the parent data that has a parent-child relationship with the data to the upgrip column and attach the link relationship between the data,This is a search device for XML data stored as a one-line record.
[0016]
That is, a search specification of a series of elements including a search condition is read, an element table corresponding to the search condition is searched, and individual data records that match the search condition are stored among the individual data stored in the searched element table. Selected,
A record in which the upgrip column of the selected record of the current element table and the downgrip column of the upper element table match are joined using the selection information of the record as a starting point, and the record becomes a join target in the upper element table Select the record that reflects the search condition for the element table of the search origin element by repeating the procedure of selecting to the element table of the search origin element accompanied by the search condition,
Go to the first element of the search specification, and join the records that match the downgrip grip column of the record of the current element table or the selected record and the record of the lower element table or the upgrip column of the selected record. It is provided with processing means for executing a procedure for selecting a record reflecting a search condition for the last element table by repeating the procedure for selecting the record to be combined up to the element table of the last element specified for search. Features.
The processing means restores the XML data based on the record selected for the last element table specified for search.
[0017]
  The present invention also provides a program for causing a computer to execute the XML data search method and a computer-readable recording medium storing the program.
  That is, this program creates an element table for each element based on the schema information of the XML data to be stored in the database area of the storage device,
  In each element table, create a column to store the individual data of the element, a down grip column, and an up grip column,
  The data is stored in each table in order from the root element. Appearance order information is added to the stored data so that all elements have unique values, and the appearance appears in the downgrip column. XML data stored as a one-line record with order information entered and the up-grip column assigned with the appearance order information of the down-grip column of the parent data that has a parent-child relationship with the data, and linked with the data. Search program,
  Read the search specification of a series of elements including the search condition, search the element table corresponding to the search condition, and select the record of individual data that matches the search condition from the individual data stored in the searched element table ,
  A record in which the upgrip column of the selected record of the current element table and the downgrip column of the upper element table match are joined using the selection information of the record as a starting point, and the record becomes a join target in the upper element table Select the record that reflects the search condition for the element table of the search origin element by repeating the procedure for selecting to the element table of the search origin element with the search condition, and go to the first element of the search specification. A record in which the downgrip column in the table record or selected record matches the record in the lower element table or the upgrip column in the lower element table, and the record to be merged in the lower element table The procedure for selecting a procedure for selecting a record that reflects the search for the last element table by repeating until the element table of the last element of the search specificationLet computer runIt is characterized by that.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
The present invention will be described below based on the illustrated embodiments.
FIG. 1A conceptually shows an apparatus configuration of a database including the XML data search apparatus of the present invention.
The database includes a storage device 400 having a database area 401 for storing data, and a storage device 400 for each element defined by DTD 101 (Document Type Definition) in which schema information of XML data 100 is described. A storage processing unit programmed to create a table 200,... In the database area 401 and distribute and store the data of the data main body unit 102 in which the actual tagged data is described in the corresponding tables 200, 201, 202. 300, and a search processing unit 500 that searches data stored in each table 200,... Further, an input operation unit 501 for inputting a search condition to the search processing unit 500 and a display unit 502 for outputting a search result by the search processing unit 500 are provided.
A folder 402 is created in the database area 401, and the tables 200,... Are created in the folder 402 together with the DTD 101.
[0019]
First, the premise data storage will be described, and then the data search will be described.
Although not particularly shown, the storage processing unit 300 and the search processing unit 500 are configured to include a normal computer microprocessor (CPU) and a main storage device such as a RAM, and data is processed according to a program read into the main storage device. The
A main storage device such as a RAM is also used for the storage device 400 in which the tables 200,.
The program is generally stored in an auxiliary storage device such as a hard disk, and is read into the main storage device and executed when processing is executed. The program can be stored in various recording media such as a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-R, and a DVD-RW, and can be distributed via a network.
[0020]
XML is a structured data description language that can eliminate the need for description such as DTD as schema information, but the XML data 100 handled by the present invention requires schema information. The schema information is not limited to the DTD 101, and may be information using another schema language such as XML Schema or RELAX NG. In FIG. 1A, the DTD 101 is required only when the folder 402 is first created, and is not required when storing XML data.
[0021]
FIG. 1B illustrates the columns created in the table.
The attribute (attr-) column C1 is one of the columns related to the contents of the individual data, and stores attribute values. When the attribute is omitted, a NULL value is stored.
A text (text) column C2 is one of the columns related to the content of the individual data, and stores the text value of the content of the individual data of the element. This text column is entered only if it has a text value.
An order number is assigned to the down-grip column C3 as appearance order information in the order of appearance of data in the data body 102.
[0022]
The up grip (up-grip) column C4 stores the value of the down grip of the corresponding parent element. When there is no child element having an up grip corresponding to the down grip, it is displayed that there is no data to be a child.
[0023]
To store XML data, first create a table in the folder 402 by specifying the DTD, and store and store the individual data in the corresponding element table column in order from the root element for the XML data according to the DTD. To go. The storage is performed by assigning the appearance order information of the individual data to the down grip column, assigning the appearance order information of the down grip column of the individual data corresponding to the parent of the individual data to the up grip column, and establishing a link relationship between the individual data. Store as a row record.
That is, when the registration start is instructed, the program of the main control unit 300 is executed, the XML data 100 to be stored is analyzed, the elements are acquired, and the element and attribute data are stored in the corresponding tables.
To obtain an element and store it in the table, follow the data in the data body 102 of the XML data from the root, select the corresponding table by referring to the tag name, and if there is an attribute value, store the attribute value in the attribute column. If there is text data, store it in text column C2
[0024]
The values are assigned to the down grip column C3 from the youngest values in the element appearance order. A unique value for all elements. In the up grip column C4, the value of the down grip assigned to the parent element of the element is set. If there are multiple elements with the same value up grip, the order of their appearance is the descending order of the down grip.
When there is no child element having an up grip corresponding to the down grip, this means that there is no child.
Next, it is determined whether or not all elements have been completed. If storage of all elements has not been completed, the next element is acquired and the data storage procedure is repeated.
When storage of all element data is completed, it is determined whether storage of all XML data to be registered has been completed. If storage of all XML data has not ended, the next XML data is analyzed, Repeat the data storage procedure. When the storage of all the XML data is finished, the registration process is finished.
[0025]
2A and 2C show storage examples of XML data and an element table storing the XML data. For the sake of clarity, a tree structure of XML data is shown (see FIG. 2B), and a value of down grip is assigned to individual data of XML data and each individual data (node) of the tree display.
The XML data is stored in the element table as follows.
The route table 200 is selected from the route tag in the first row, and “0” is stored in the down grip column of the route table 200, and “−1” indicating that there is no parent element corresponding to the up grip column C4 is stored.
[0026]
The member table 201 is selected from the member tags in the second row, and “1” is written in the down grip column C3 and “0” is written in the up grip column C4 of the child table 201.
The name table 202 is selected from the name tags on the third line, "2" is entered in the down grip column C3, "1" is entered in the up grip column C4, "09900" is entered in the attribute column C1, and the text column C2 is entered. Enter "Nancy" in
The company table 203 is selected from the company tag in the fourth row, “3” is entered in the down grip column C3, “1” is entered in the up grip column C4, and “SEC” is entered in the text column C2. .
[0027]
The member table 201 is selected from the member tags in the sixth row, and “4” is written in the down grip column C3 and “0” is written in the up grip column C4 in the second row of the child table 201.
The name table 202 is selected from the name tag on the seventh line, "5" is entered in the down grip column C3 of the name table 202, "4" is entered in the up grip column C4, "10027" in the attribute column C1, and text column C2 Enter "John" in
The company table 203 is selected from the company tag in the eighth row, “6” is entered in the down grip column C3, “4” is entered in the up grip column C4, and “SEC” is entered in the text column C2. .
[0028]
The member table 201 is selected from the member tags in the 10th row, and “7” is entered in the downgrip column C3 and “0” is entered in the upgrip column C4 in the 3rd row of the child table 201.
The name table 202 is selected from the name tag on the eleventh line, “8” is entered in the down grip column C3, “7” is entered in the up grip column C4, “12469” is entered in the attribute column C1, and the text column C2 is entered. Enter "Tom" in
The company table 203 is selected from the company tag on the 12th line, “9” is entered in the down grip column C3, “7” is entered in the up grip column C4, and “HAL” is entered in the text column C2. .
When all the data in the data main body 102 is traced, the registration process is terminated.
[0029]
As described above, the XML data stored in the folder stores all the information such as the element contents, attributes, hierarchical structure, and the appearance order of the elements, and the tabular data stored in the folder is stored in the XML data. Can be reproduced.
[0030]
The parent-child relationship between elements is stored in memory separately from the table.
FIG. 3 shows an example in which the parent-child relationship of elements is added.
The illustrated example is an example in which link relationships are stored in a table format. The table 600 includes an element name column 601, a table number column 602 that sequentially assigns a series of numbers to the table name, and a parent for each table. A parent column 603 for storing the table number and a plurality of child columns 604 for storing the number of the table that is a child of each table are provided. This parent-child relationship data is managed in association with each folder 402.
[0031]
In the illustrated example, “root”, “member”, “name”, and “company” are stored in the element name column 601, and 0, 1 are stored in the number column next to the element name column 601. Numbers 2 and 3 are unique.
For the root element in the first row of the table, “−1” (no parent element) is stored in the parent column, and “1” is stored in the child column.
For the member element in the second row of the table 600, “0” is stored in the parent column, and “2” and “3” are stored in the child column.
For the name element in the third row of the table, “1” is stored in the parent column and “−1” (no child element) is stored in the child column.
For the company element in the fourth row of the table, “1” is stored in the parent column and “−1” (no child element) is stored in the child column.
[0032]
Next, the XML data search apparatus of the present invention will be described.
FIG. 4 shows a flowchart of the search processing procedure.
First, a search specification for a series of elements including a search condition is read and the search specification is analyzed (S1).
The search designation is specified by, for example, XPath, for example, from the root element to the element acquired as a result, and the search condition is appropriately specified for each element as necessary.
Next, the element table corresponding to the search condition is searched (S2), and the record of the individual data that matches the search condition is selected from the individual data stored in the searched element table (S3).
[0033]
Using the selection information of the selected record as a starting point, records in which the upgrip column of the selected record of the current element table matches the downgrip column of the upper element table are combined (S5), and the upper element table The procedure for selecting the record to be combined (S6) is repeated up to the element table of the search starting element accompanied by the search condition, thereby selecting the record reflecting the search condition for the element table of the search starting element (S4 to S6). ). Next, the process proceeds to the first element of the search specification (S7), and joins the records in which the down grip grip column of the current element table record or selected record matches the up grip column of the lower element table or selected record. (S9), selecting the record that reflects the search condition for the last element table by repeating the procedure for selecting the record to be combined in the lower element table (S10) and repeating to the element table of the last element specified for search (S8 to S10).
Based on the record selected for the last element table, the XML data is restored and displayed (S11).
[0034]
Next, specific search examples 1 to 3 of XML data will be described with reference to FIGS. XML data is data stored in the table format shown in FIG. 2. In FIGS. 5 to 7, each element table displays only the record number (No) of each row, the column up grip column, and the down grip column. Yes.
The search is specified in a form compliant with XPath.
The designation of XPath is divided into the following two parts.
Specification 1. Specifies the path of a series of elements from the document root to the resulting element.
Specification 2. Write a predicate representing the search condition.
[0035]
In response to this specification, the following processing is performed.
Process 1.
If a predicate (search condition) is specified for each step of XPath, the corresponding element table is searched and a record that matches the condition is selected.
1a. Narrow down the element table in the lowest path in the predicate and create record selection information.
1b. Perform join with the element table of the path directly above, and select the record to be joined in the element table directly above.
This process is repeated up to the element table corresponding to the search starting element accompanied by the search condition, and a record reflecting the search condition is selected for the element table of the search starting element.
For example, in the XPath expression, the search origin element is an element described immediately before (above) a predicate representing a search condition, and is accompanied by a search condition (predicate).
Joining is a process of combining records in which the up grip column of the selected record in the lower element table matches the down grip column of the upper element table.
Process 2.
When a record that reflects the search condition is selected for the element table of the search origin element, join the element table record or the selected record in the step immediately below in order from the document root, and select the join target in the lower element table. The procedure of selecting the record that has become is repeated until the last element table, and the record that reflects the search condition in the last element table is selected.
[0036]
Search example 1
FIG. 5 shows search example 1.
The search specification is as follows.
/ root / member [name / @ id = ’10027’]
That is, the specification of a series of elements is root and member, and the search condition is a predicate in parentheses. The first element is a root element (root), the last element is a member element (member), and the element table of the search origin element is a member element (member) located immediately above the search condition. The search condition is a record whose attribute of the name element (name) is 10027.
[0037]
Process 1a
In this example, the name table 202 of the element in the lowest path in the predicate of the second step is searched, and a record that matches the attribute column of the name table 203, atr-id = '10027' is selected and selected. For example, the selected record number (2) is stored as information.
As the selection information, information for distinguishing from other records may be added to the record storing the corresponding individual data in the table.
Process 1b
Next, a record in which the up grip column (4) of the selected record (2) of the current name table 202 matches the down grip column of the member table 201 immediately above is joined, and the record ( 2) is selected.
This member table 201 is an element table corresponding to the search starting element, and the process 1b is completed here.
[0038]
Process 2
A record in which the down grip column (0) of the record of the route table 200 of the root element matches the up grip column of the selected record 2 selected in the process 1-b of the member table 201 is joined, and the join is performed in the lower member table. The target record is selected (selected record (2)).
The member table 201 corresponds to the last element, and the process 2 ends. .
The child element is recursively restored from the selected record (2) selected in the process 2, and the next data that is a fragment of the original XML data becomes the search result.
Figure 0004398664
[0039]
About search example 2
FIG. 6 shows search example 2.
The designation of this search example 2 is as follows.
Example 2
/ root / member [company = ‘SEC’] / name
In this specification, a series of elements are a root element (root), a member element (member), and a name element (name), and a search condition is a predicate in parentheses. The first element is a root element (root), the last element is a name element (name), and the search origin element is a member element (member) located immediately above the search condition. The search condition is that the company element (company) is SEC.
[0040]
Process 1a
In this example, the company table 203 of the element in the lowest path in the predicate of the second step is searched, the record whose text column of the company table 203 matches “SEC” is selected, and the selected record is selected information. The number (1, 2) is stored.
Process 1b
Next, a record in which the up grip column (1, 4) of the selected record (1, 2) of the current company table 203 matches the down grip column (1, 4) of the member table 201 immediately above is joined, and the member table In 201, the record (1, 2) to be joined is selected.
This member table 201 is an element table corresponding to the search starting element, and the process 1b is completed here.
[0041]
Process 2
A record in which the down grip column (0) of the record of the route table 200 of the root element matches the up grip column (0, 0) of the selected record (1, 2) selected in the process 1-b of the member table 201 is selected. The records to be joined and selected in the lower member table 201 are selected (selected records (1, 2)).
Since the member table 201 is not the last element table specified for search, the processing is further continued.
That is, a record in which the down grip column (1, 4) of the selected record (1, 2) of the current member table 201 matches the up grip column (1, 4) of the record of the name table 202 is joined. A record to be joined in the name table 202 is selected (selected record (1, 2)).
The name table 202 corresponds to the last element, and the process 2 ends.
The child element is recursively restored from the selected record (1, 2) of the name table 202 selected in the process 2, and the next data that is a fragment of the original XML data becomes the search result.
<name id = “09900”> Nancy </ name>
<name id = “10027”> John </ name>
[0042]
About search example 3
FIG. 7 shows search example 3.
The designation of this search example 3 is as follows.
/ root / member
In this designation, a series of elements are designated by two elements, a root element (root) and a member element (member), and there is no search condition. The first element is a root element (root), and the last element is a member element (member).
Process 1a, 1b
In this example, since there is no element table corresponding to the search condition, there is no process corresponding to the processes 1a and 1b.
[0043]
Process 2
A record in which the downgrip column (0) of the record of the route table 200 of the root element matches the upgrip column of the record of the member table 201 is joined, and the record to be joined in the lower member table 201 is selected ( Selection record (1, 2, 3)).
Since the member table 201 is the last element table specified for search, the process 2 ends.
The child elements are recursively restored from the selected record (1, 2, 3) of the member table 201 selected in the process 2, and the next data that is a fragment of the original XML data becomes the search result.
Figure 0004398664
[0044]
In this search example 3, all the individual elements of the member elements are selected, but some are excluded depending on the structure of the XML data, as shown in the following search example 4.
[0045]
FIG. 8 shows search example 4.
The XML data of this search example 4 has a structure in which there is an element A (a) in parallel with a member element (member), and member elements (member) are connected as child elements of the element A (FIG. 8 ( (See A) and (B)).
In the element table in this case, as shown in FIG. 8C, the up grip column of the individual data of the member element which is a child element of the A element is set with the value 4 of the down grip of the A table.
The following search is designated for such XML data.
/ root / member
A series of elements are designated by two elements, a root element (root) and a member element (member), and there is no search condition. The first element is a root element (root), and the last element is a member element (member).
[0046]
Process 1a, 1b
In this example, since there is no element table corresponding to the search condition, there is no process corresponding to the processes 1a and 1b.
Process 2
A record in which the downgrip column (0) of the record of the route table 200 of the root element matches the upgrip column of the record of the member table 201 is joined, and the record to be joined in the lower member table 201 is selected ( Selection record (1, 2, 3)).
Since the member table 201 is the last element table specified for search, the process 2 ends.
The child element is recursively restored from the selected record (1, 2, 3) of the member table 201 selected in the process 2, and the next data that is a fragment of the original XML data becomes the search result, and the child element of a Individual elements of the member elements are excluded by the join process.
<member>… </ member>
<member>… </ member>
<member>… </ member>
[0047]
In each of the above search examples, there is only one element in the search condition (predicate) of the search specification (XPath). However, depending on the content of the XML document and the search specification, a plurality of elements may be described in the predicate as the search condition. is there.
For example,
When / root [member / company = “SEC”] is specified, the element corresponding to the search condition is a company, and the search start element is a root.
[0048]
Other embodiments
In the above embodiment, the search specification is specified in a form that conforms to XPath. However, it is not necessary to conform to XPath, and it is sufficient that a series of elements including search conditions can be specified.
[0049]
【The invention's effect】
As described above, according to the present invention, when there is a search condition, an individual data record that matches the search condition is selected, and this selected information is used as an element table corresponding to the search origin element accompanied by the search condition. Then, the record that reflects the search condition is selected for the last element table by repeating the join process and the join result record selection from the specified first element to the last element. So
By simply combining and selecting records using the down grip and up grip values, individual data of elements to be acquired can be searched.
[0050]
The individual data of the element to be acquired and the individual data of the element corresponding to the descendant are restored as XML data, and can be used as XML data.
[Brief description of the drawings]
FIG. 1A is a diagram showing a schematic configuration of a database including an XML data search device according to an embodiment of the present invention, and FIG. 1B is a table of a storage device in FIG. It is a figure which shows the kind of column formed.
2A is a diagram showing an example of XML data, FIG. 2B is a diagram showing a data link relation of FIG. 2A in a tree structure, and FIG. It is a figure which shows the data storage state of the table which stored the data of FIG.
FIG. 3 is a diagram showing a table configuration for storing parent-child relationship information between tables.
FIG. 4 is an example of a flowchart of a search procedure.
FIG. 5 is an explanatory diagram schematically showing a search procedure of XML data search example 1 in FIG. 2;
6 is an explanatory diagram schematically showing a search procedure of XML data search example 2 in FIG. 2; FIG.
7 is an explanatory view schematically showing a search procedure of XML data search example 3 in FIG. 2; FIG.
8 is an explanatory diagram of search example 4 for XML data having a structure different from that in FIG. 2; FIG.
[Explanation of symbols]
100 XML data
101 DTD
102 Data body
200, 201, 202 tables
300 Storage processing unit
400 storage device
500 Search processing part
C1 attribute column
C2 text column
C3 down grip column
C4 Upgrip column

Claims (6)

記憶装置のデータベース領域に、格納すべきXMLデータのスキーマ情報に基づいてエレメント毎にエレメントテーブルを作成し、
各エレメントテーブルには、エレメントの個別データを入れるカラムと、ダウングリップカラムと、アップグリップカラムを作成し、
前記データの格納は、ルートエレメントから順をたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係を付けた状態で、一行のレコードとして格納したXMLデータをXMLデータの検索装置を用いて検索する方法であって、
前記XMLデータの検索装置は、検索条件を含む一連のエレメントの検索指定を読み込み、
前記検索条件に対応するエレメントテーブルを検索し、
検索されたエレメントテーブルに格納された個別データのうち検索条件に合致する個別データのレコードを選択し、
前記レコードの選択情報を出発点とし、現在のエレメントテーブルの選択レコードのアップグリップカラムと上位のエレメントテーブルのダウングリップカラムが一致するレコードを結合し、前記上位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索条件が付随する検索起点エレメントのエレメントテーブルまで繰り返すことにより検索起点エレメントのエレメントテーブルについて検索条件を反映したレコードを選択し、
検索指定の先頭のエレメントに進み、
現在のエレメントテーブルのレコードまたは選択レコードのダウングリップカラムと下位のエレメントテーブルのレコードまたは選択レコードのアップグリップカラムが一致するレコードを結合し、下位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索指定の最後のエレメントのエレメントテーブルまで繰り返すことにより最後のエレメントテーブルについて検索条件を反映したレコードを選択する処理を実行することを特徴とするXMLデータの検索方法。
Create an element table for each element based on the schema information of the XML data to be stored in the database area of the storage device,
In each element table, create a column to store the individual data of the element, a down grip column, and an up grip column,
The data is stored in each table in order from the root element. Appearance order information is added to the stored data so that all elements have unique values, and the appearance appears in the downgrip column. XML data stored as a one-line record with order information entered and the up-grip column assigned with the appearance order information of the down-grip column of the parent data that has a parent-child relationship with the data, and linked with the data. Is a method for searching for data using a search device for XML data ,
The XML data search apparatus reads a search specification of a series of elements including a search condition,
Search the element table corresponding to the search condition,
Select the record of individual data that matches the search condition from the individual data stored in the searched element table,
A record in which the upgrip column of the selected record of the current element table and the downgrip column of the upper element table match are joined using the selection information of the record as a starting point, and the record becomes a join target in the upper element table Select the record that reflects the search condition for the element table of the search origin element by repeating the procedure of selecting to the element table of the search origin element accompanied by the search condition,
Go to the first element of the search specification,
To merge records that match the downgrip column of the current element table record or selected record with the upgrip column of the lower element table or selected record, and select the record to be merged in the lower element table The XML data search method is characterized by executing a process of selecting a record reflecting the search condition for the last element table by repeating the above to the element table of the last element designated for search.
前記XMLデータの検索装置は、検索指定の最後のエレメントテーブルについて選択されたレコードに基づいてXMLデータを復元する処理を実行する請求項1に記載のXMLデータの検索方法。The XML data search method according to claim 1, wherein the XML data search apparatus executes processing for restoring XML data based on a record selected for a last element table specified for search. 記憶装置のデータベース領域に、格納すべきXMLデータのスキーマ情報に基づいてエレメント毎にエレメントテーブルを作成し、
各エレメントテーブルには、エレメントの個別データを入れるカラムと、ダウングリップカラムと、アップグリップカラムを作成し、
前記データの格納は、ルートエレメントから順をたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係を付けた状態で、一行のレコードとして格納したXMLデータの検索装置であって、
検索条件を含む一連のエレメントの検索指定を読み込み、
前記検索条件に対応するエレメントテーブルを検索し、
検索されたエレメントテーブルに格納された個別データのうち検索条件に合致する個別データのレコードを選択し、
前記レコードの選択情報を出発点とし、現在のエレメントテーブルの選択レコードのアップグリップカラムと上位のエレメントテーブルのダウングリップカラムが一致するレコードを結合し、前記上位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索条件が付随する検索起点エレメントのエレメントテーブルまで繰り返すことにより検索起点エレメントのエレメントテーブルについて検索条件を反映したレコードを選択し、
検索指定の先頭のエレメントに進み、現在のエレメントテーブルのレコードまたは選択レコードのダウングリップカラムと下位のエレメントテーブルのレコードまたは選択レコードのアップグリップカラムが一致するレコードを結合し、下位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索指定の最後のエレメントのエレメントテーブルまで繰り返すことにより最後のエレメントテーブルについて検索条件を反映したレコードを選択する手順を実行する処理手段を備えたことを特徴とするXMLデータの検索装置。
Create an element table for each element based on the schema information of the XML data to be stored in the database area of the storage device,
In each element table, create a column to store the individual data of the element, a down grip column, and an up grip column,
The data is stored in each table in order from the root element. Appearance order information is added to the stored data so that all elements have unique values, and the appearance appears in the downgrip column. XML data stored as a one-line record with order information entered and the up-grip column assigned with the appearance order information of the down-grip column of the parent data that has a parent-child relationship with the data, and linked with the data. Search device,
Read a search specification for a set of elements including search criteria,
Search the element table corresponding to the search condition,
Select the record of individual data that matches the search condition from the individual data stored in the searched element table,
A record in which the upgrip column of the selected record of the current element table and the downgrip column of the upper element table match are joined using the selection information of the record as a starting point, and the record becomes a join target in the upper element table Select the record that reflects the search condition for the element table of the search origin element by repeating the procedure of selecting to the element table of the search origin element accompanied by the search condition,
Go to the first element of the search specification, and combine the downgrip column of the current element table record or selected record with the record that matches the lower element table record or the upgrip column of the selected record, and combine them in the lower element table It is provided with processing means for executing a procedure for selecting a record reflecting a search condition for the last element table by repeating the procedure for selecting a target record up to the element table of the last element specified for search. XML data retrieval device.
処理手段は、検索指定の最後のエレメントテーブルについて選択されたレコードに基づいてXMLデータを復元する請求項3に記載のXMLデータの検索装置。  4. The XML data search apparatus according to claim 3, wherein the processing means restores the XML data based on the record selected for the last element table specified for search. 記憶装置のデータベース領域に、格納すべきXMLデータのスキーマ情報に基づいてエレメント毎にエレメントテーブルを作成し、
各エレメントテーブルには、エレメントの個別データを入れるカラムと、ダウングリップカラムと、アップグリップカラムを作成し、
前記データの格納は、ルートエレメントから順をたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係を付けた状態で、一行のレコードとして格納したXMLデータの検索プログラムであって、
検索条件を含む一連のエレメントの検索指定を読み込み、前記検索条件に対応するエレメントテーブルを検索し、検索されたエレメントテーブルに格納された個別データのうち検索条件に合致する個別データのレコードを選択し、
前記レコードの選択情報を出発点とし、現在のエレメントテーブルの選択レコードのアップグリップカラムと上位のエレメントテーブルのダウングリップカラムが一致するレコ
ードを結合し、前記上位のエレメントテーブルで結合対象となったレコードを選択する手順を、検索条件が付随する検索起点エレメントのエレメントテーブルまで繰り返すことにより検索起点エレメントのエレメントテーブルについて検索条件を反映したレコードを選択し、検索指定の先頭のエレメントに進み、現在のエレメントテーブルのレコードまたは選択レコードのダウングリップカラムと下位のエレメントテーブルのレコードまたは選択レコードのアップグリップカラムが一致するレコードを結合し、下位のエレメントーブルで結合対象となったレコードを選択する手順を、検索指定の最後のエレメントのエレメントテーブルまで繰り返すことにより最後のエレメントテーブルについて検索条件を映したレコードを選択する手順をコンピュータに実行させることを特徴とするXMLデータの検索プログラム。
Create an element table for each element based on the schema information of the XML data to be stored in the database area of the storage device,
In each element table, create a column to store the individual data of the element, a down grip column, and an up grip column,
The data is stored in each table in order from the root element. Appearance order information is added to the stored data so that all elements have unique values, and the appearance appears in the downgrip column. XML data stored as a one-line record with order information entered and the up-grip column assigned with the appearance order information of the down-grip column of the parent data that has a parent-child relationship with the data, and linked with the data. Search program,
Read the search specification of a series of elements including the search condition, search the element table corresponding to the search condition, and select the record of the individual data that matches the search condition from the individual data stored in the searched element table ,
A record in which the upgrip column of the selected record of the current element table and the downgrip column of the upper element table match are joined, and the record to be joined in the upper element table is based on the selection information of the record. Select the record that reflects the search condition for the element table of the search origin element by repeating the procedure for selecting to the element table of the search origin element with the search condition, and go to the first element of the search specification. combine records up grip columns of a record or selected records down grip columns and the lower element table table records or selected records match, was the binding partner at a lower element tables record The procedure for selecting, searching specification of XML data retrieval program, characterized in that to execute the last of the last element table by repeating until the element table of the elements of the procedure for selecting a record search conditions reflect the computer.
請求項5に記載のプログラムを記録したコンピュータ読取可能な記録媒体。  A computer-readable recording medium on which the program according to claim 5 is recorded.
JP2003099941A 2003-04-03 2003-04-03 XML data search method and search apparatus, program, and recording medium recording the program Expired - Fee Related JP4398664B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003099941A JP4398664B2 (en) 2003-04-03 2003-04-03 XML data search method and search apparatus, program, and recording medium recording the program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003099941A JP4398664B2 (en) 2003-04-03 2003-04-03 XML data search method and search apparatus, program, and recording medium recording the program

Publications (2)

Publication Number Publication Date
JP2004310249A JP2004310249A (en) 2004-11-04
JP4398664B2 true JP4398664B2 (en) 2010-01-13

Family

ID=33464211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003099941A Expired - Fee Related JP4398664B2 (en) 2003-04-03 2003-04-03 XML data search method and search apparatus, program, and recording medium recording the program

Country Status (1)

Country Link
JP (1) JP4398664B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100678123B1 (en) 2006-02-10 2007-02-02 삼성전자주식회사 Method for storing xml data in relational database
JP4854542B2 (en) 2007-02-27 2012-01-18 株式会社東芝 Document search system and document search method
WO2009095981A1 (en) * 2008-01-28 2009-08-06 Turbo Data Laboratories Inc. Method and device for building tree-structured data from table
JP5374456B2 (en) * 2010-07-28 2013-12-25 日本電信電話株式会社 Method of operating document search apparatus and computer program for causing computer to execute the same

Also Published As

Publication number Publication date
JP2004310249A (en) 2004-11-04

Similar Documents

Publication Publication Date Title
US8209352B2 (en) Method and mechanism for efficient storage and query of XML documents based on paths
US7363581B2 (en) Presentation generator
US7293018B2 (en) Apparatus, method, and program for retrieving structured documents
US7962494B2 (en) Method, information processing apparatus, and program for generating array
JP4997749B2 (en) Document processing method, program, and system
JP4045399B2 (en) Structured document management apparatus and structured document management method
JP3492247B2 (en) XML data search system
US20030018646A1 (en) Production and preprocessing system for data mining
JP2004240954A (en) Method for presenting hierarchical data
US20090077009A1 (en) System and method for storage, management and automatic indexing of structured documents
JPWO2006038498A1 (en) Array generation method and array generation program
JP2003162545A (en) File search device, index file creation device and file search program
JP4045400B2 (en) Search device and search method
JP4398664B2 (en) XML data search method and search apparatus, program, and recording medium recording the program
JP2004178084A (en) Method, device and program for storing xml data, and recording medium with program recorded thereon
JP3914081B2 (en) Access authority setting method and structured document management system
US7895232B2 (en) Object-oriented twig query evaluation
JP3842576B2 (en) Structured document editing method and structured document editing system
JP2002297601A (en) Method and device for structured document management, and program
JP2004118543A (en) Method for retrieving structured document, and method, device and program for supporting retrieval
JP4242701B2 (en) Storage search device, storage search program, and storage search program recording medium
Manolescu et al. Path Sequence-Based XML Query Processing.
JP2006018584A (en) Structured document management system, and method and program for generating value-index
JP2001134596A (en) Managing device and retrieving method for structured document
JP2004348479A (en) Retrieval apparatus, retrieval method, retrieval program, and retrieval program recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090909

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: 20091006

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091023

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

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20151030

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees