JP3560043B2 - Xmlデータの格納方法及び格納装置、並びにプログラムおよびプログラムを記録した記録媒体 - Google Patents
Xmlデータの格納方法及び格納装置、並びにプログラムおよびプログラムを記録した記録媒体 Download PDFInfo
- Publication number
- JP3560043B2 JP3560043B2 JP2002341210A JP2002341210A JP3560043B2 JP 3560043 B2 JP3560043 B2 JP 3560043B2 JP 2002341210 A JP2002341210 A JP 2002341210A JP 2002341210 A JP2002341210 A JP 2002341210A JP 3560043 B2 JP3560043 B2 JP 3560043B2
- Authority
- JP
- Japan
- Prior art keywords
- column
- data
- information
- stored
- xml data
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、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データの格納方法および格納装置、並びにプログラムおよびプログラムを記録した記録媒体、さらに表形式のXMLデータの格納構造及びデータを格納した記録媒体を提供することにある。
【0010】
【課題を解決するための手段】
上記目的を達成するために、本発明のXMLデータの格納方法は、記憶装置のデータベース領域に格納すべきXMLデータのスキーマ情報に基づいてエレメント毎に一つのテーブルを作成し、テーブルに前記スキーマ情報に従ったデータを格納することを特徴とする。
XMLデータとは、周知のXMLで記述された階層構造を有するデータであり、エレメント(要素)を単位とし、エレメントはデータにその内容を示すタグを付けて記述される。エレメントをグループ化することによってエレメントの階層構造が表現され、全体として木構造(ツリー構造)のモデルで表現できるデータである。
【0011】
使用するエレメントやデータ内容、エレメントの属性、エレメント間の親子兄弟関係等の規則をスキーマとして設計される。スキーマの記述方法としては、たとえばDTD等が定められているが、DTDに即した記述に限定されるものではなく、XML Schema等、種々の言語を用いることができる。
XMLデータはDTDの記述を不要にすることができるが、この発明では、スキーマ情報が記述されていることが前提であり、スキーマ情報に基づいてテーブルを作成し、同じスキーマ情報に基づくXMLデータを格納するようにしたものである。
テーブルには、エレメントの内容および属性情報を入れるカラム、データ間の親子関係情報を入れるカラムを作成する。
【0012】
データの格納は、ルートエレメントから順にたどって各テーブルに格納し、格納したデータには出現順序情報を付加する。
各テーブルにはダウングリップカラムとアップグリップカラムを作成し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係をつけたことを特徴とする。
各テーブルはルートエレメントからの階層の深さを表すレベルカラムを作成し、レベルカラムにレベル値を格納することが好適である。
エレメント間の親子関係情報を、前記テーブルとは別に記憶装置に保存することが好ましい。
テータベース領域に作成されたフォルダ内にスキーマ情報とテーブルが保存される構成とする。異なるスキーマ情報に応じて別のフォルダを作成しておけば、複数のスキーマ情報に対応可能である。
【0013】
本発明は、上記XMLデータの格納方法を実施する上で好適なデータ格納装置も提供する。
すなわち、本発明のデータ格納装置は、XMLデータを読み込み、読み込んだXMLデータのスキーマ情報に基づいて、記憶装置のデータベース領域にエレメント毎に一つのテーブルを作成し、作成したテーブルにデータを登録する処理手段を備えていることを特徴とする。
テーブルには、エレメントの内容および属性情報を入れるカラム、データ間の親子関係情報を入れるカラムを作成する。
【0014】
データの格納は、ルートエレメントから順にたどって各テーブルに格納し、格納したデータには出現順序情報を付加する。
各テーブルにはダウングリップカラムとアップグリップカラムを作成し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係がつけられる。
各テーブルにはルートエレメントからの階層の深さを表すレベルカラムを作成し、該レベルカラムにレベル値を格納する。
処理手段は、エレメント間の親子関係情報を、前記テーブルとは別に記憶装置上に記憶するようにしてもよい。
また、データが保存されるテーブルを、テータベース領域に作成されたフォルダ内にスキーマ情報と共に保存するようにし、さらに、異なるスキーマ情報に応じて別のフォルダを作成することが好適である。
【0015】
本発明は、上記XMLデータの格納方法をコンピュータに実行させるためのプログラムおよびこのプログラムを記録したコンピュータ読取可能な記録媒体も提供する。
すなわち、記憶装置のデータベース領域に格納すべきXMLデータのスキーマ情報に基づいてエレメント毎に一つのテーブルを作成するステップと、テーブルに前記スキーマ情報に従ったデータを格納するステップとを有する。
テーブルを作成する際に、エレメントの内容および属性情報を入れるカラム、また、データ間の親子関係情報を入れるカラムを作成する。
データの格納は、ルートエレメントから順にたどって各テーブルに格納し、格納したデータには出現順序情報を付加する。
【0016】
各テーブルにはダウングリップカラムとアップグリップカラムを作成し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係をつける。
また、テーブルを作成する際に、ルートエレメントからの階層の深さを表すレベルカラムを作成し、該レベルカラムにレベル値を格納することが好適である。
また、エレメント間の親子関係情報を、前記テーブルとは別に記憶装置上に記憶するステップを有する。
記憶装置のデータベース領域にフォルダを作成し、該フォルダにテーブルとスキーマ情報とを保存する。異なるスキーマ情報に応じて別のフォルダを作成する。
【0017】
さらに、本発明は、上記XMLデータの格納方法を用いて格納された表形式のXMLデータの格納構造および表形式のXMLデータを記録したコンピュータ読取可能な記録媒体についても提供する。
すなわち、本発明の表形式のXMLデータの格納構造は、記憶装置のデータベース領域にデータ格納すべきXMLデータのスキーマ情報に基づいてエレメント毎に一つのテーブルを作成され、該テーブルに前記スキーマ情報に従ったデータが格納された構造となっている。
テーブルは、エレメントの内容および属性情報を入れるカラムを有する。
テーブルには、データ間の親子関係情報を入れるカラムを有する。
【0018】
データは、ルートエレメントから順にたどって各テーブルに格納され、格納したデータには出現順序情報が付加されている。
各テーブルにはダウングリップカラムとアップグリップカラムが作成され、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係がつけられていることを特徴とする。
各テーブルはルートエレメントからの階層の深さを表すレベルカラムが作成され、該レベルカラムにレベル値が格納されている。
エレメント間の親子関係情報が、前記テーブルとは別に記憶装置に保存されている。
テータベース領域に作成されたフォルダ内にスキーマ情報とテーブルが保存されている。また、異なるスキーマ情報に応じて別のフォルダが作成されている。
【0019】
【発明の実施の形態】
以下に本発明を図示の実施の形態に基づいて説明する。
図1(A)は、本発明のXMLデータを格納方法が適用される装置構成を概念的に示している。
このXMLデータ格納装置は、データを記憶するデータベース領域401を備えた記憶装置400と、XMLデータ100のスキーマ情報が記述されたDTD101(文書型定義;Document Type Definition)で定義されているエレメント毎に記憶装置400のデータベース領域401にテーブル200,201,202を作成し、実際のタグ付きデータが記述されたデータ本体部102のデータを対応する各テーブル200,201,202に振り分けて格納するようにプログラムされたコンピュータの主制御部300とを備えた構成となっている。テータベース領域401にはフォルダ402が作成され、このフォルダ402内にDTD101と共に各テーブル200,201,202が作成される。
主制御部300は、特に図示しないが、通常のコンピュータのマイクロプロセッサ(CPU)とRAM等の主記憶装置を含む構成で、主記憶装置に読み込まれたプログラムに従ってデータが処理される。プログラムは一般的にはハードディスク等の補助記憶装置に記憶され、処理実行時に主記憶装置に読み出されて実行される。
テーブル200,・・・が作成される記憶装置400についてもRAM等の主記憶装置が用いられる。
【0020】
図示例では、親子関係にあるルート(root),チャイルド(child),グランドチャイルド(grchild)の3つのエレメントに対応して、3つのテーブル200,201,202が作成される場合が示されている。
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のデータ出現順に出現順序情報として順番号が割り当てられる。
アップグリップ(up−grip)カラムC4には、対応する親エレメントのダウングリップの値が格納される。
ネーム(name)カラムC5は、XML文書のドキュメント名であり、ルートエレメントにのみ記載される。
親(parent)要素カラムC6には、親要素のエレメント名を格納する。
レベルカラム(level)C7には、ルートエレメントからの階層の深さを表すレベル値が格納される。ルートエレメントであれば0、ルートエレメントの子であれば1となる。
【0022】
図2(A),(B)には、XMLデータのデータ各テーブルへの格納例が示されており、この格納手順を図9のフローチャートを参照して説明する。
XMLデータの格納手順は、まず、DTDを指定してフォルダ402内にテーブルを作成し、当該DTDに従うXMLデータをフォルダ内のテーブルに順次格納していく。
まず、フォルダ作成手順を説明する(図9(A)参照)。
すなわち、フォルダ作成開始を指示すると、処理装置300のプログラムが実行されて、登録すべきDTD101を検索してDTD101を解析し(S−1)、DTD101に基づいて、記憶装置400のデータベース領域401にエレメント毎にテーブルを作成する(S−2)。次いで、テーブルの親子関係を設定し(S−3)、フォルダ作成が終了する。
たとえば、テーブルは、図2に示すように、ルートテーブル200,チャイルドテーブル201およびグランドチャイルドテーブル202が生成され、データベース領域401にはフォルダ402が作成され、フォルダ402にDTD101と各テーブル200,201,202が作成される。
ルートテーブル200には、アップグリップカラムC4、ダウングリップカラムC3、名前カラムC5、親要素カラムC6、レベルカラムC7が作成され、チャイルドテーブル201には、アップグリップカラムC4、ダウングリップカラムC3、テキストカラムC2、親要素カラムC6、レベルカラムC7が作成される。また、グランドチャイルドテーブル202には、アップグリップカラムC4、ダウングリップカラムC3、属性カラムC1、親要素カラムC6、レベルカラムC7が作成される。
【0023】
テーブルを作成した後、XMLデータ登録を行う(図9(B)参照)。
すなわち、登録開始を指示すると、処理装置300のプログラムが実行され、格納すべきXMLデータ100を解析し(S−11)、エレメントを取得してエレメントと属性のデータを対応するテーブルに格納する(S−12,S−13)。
エレメントの取得とテーブルへの格納は、XMLデータのデータ本体部102のデータをルートからたどり、タグ名を参照して対応するテーブルを選択し、属性値があれば属性値を属性カラムに格納し、テキストデータがあればテキストカラムに格納する
ダウングリップカラムには、エレメント出現順に若い値から割り当てる。すべてのエレメントに対して一意の値となる。アップグリップカラムには、当該エレメントの親エレメントに割り当てられたダウングリップの値となる。同じ値のアップグリップを持つエレメントが複数存在する場合、それらの出現順はダウングリップの若い順となっている。
ダウングリップに対応するアップグリップを持つ子エレメントが存在しない場合には、子が無いことを表す。
次に全エレメントが終了したかどうかを判断し(S−14)、全エレメントの格納が終了していなければ次のエレメントを取得し、データ格納手順を繰り返す。
全エレメントのデータの格納が終了した場合には、登録すべき全XMLデータの格納が終了したがどうかが判断され(S−15)、全XMLデータの格納が終了していなければ次のXMLデータを解析して(S−11)、データの格納手順を繰り返す。全XMLデータの格納が終了した場合には、登録処理を終了する。
【0024】
図2に示す例では、1行目のルートタグからルートテーブル200を選択し、ルートテーブル200のダウングリップカラムに”0”、アップグリップカラムC4に対応する親エレメントが無いことを示す”−1”を格納し、さらに名前カラムC5に文書名として”family.xml”、レベルカラムC7に”0”を格納する。
次に、2行目のチャイルドタグからチャイルドテーブル201を選択し、このチャイルドテーブル201のダウングリップカラムC3に”1”、アップグリップカラムC4に”0”を記入し、テキストカラムC2に”Smith”、親エレメントカラムC6に”root”、レベルカラムC7に”1”を記入する。
【0025】
次に、3行目のグランドチャイルドタグからグランドチャイルドテーブル202を選択し、このグランドチャイルドテーブル202のダウングリップカラムC3に”2”、属性カラムC1に”10”、テキストカラムC2に”Bob”、親エレメントカラムに”child”、レベルカラムC7に”2”を記入する。
次に、4行目のグランドチャイルドタグからグランドチャイルドテーブル202を選択し、このグランドチャイルドテーブル202のダウングリップカラムC3に”3”、属性カラムC1に”8”、テキストカラムC2に”May”、親エレメントカラムに”child”、レベルカラムC7に”2”を記入する。
データ本体部102のデータを全てたどり終えると、登録処理を終了する。
【0026】
このように、フォルダに格納したXMLデータは、エレメントの内容、属性、階層構造、エレメントの出現順序等の情報がすべて登録されることになり、フォルダに保存された表形式のデータを、XMLデータに再現することも可能である。
なお、XMLデータ100を登録する前に、DTDによる妥当性検証(Validiation)を行うようにしてもよい。
【0027】
以上の格納方法を実行するためのプログラムは、一般的にはコンピュータのハードディスク等の記憶装置に格納され、処理実行時にコンピュータの主記憶装置に読み込まれて実行される。
プログラムは、CD−ROM,CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RW等、種々の記録媒体に格納することができるし、ネットワークを介して配信することもできる。
【0028】
エレメント間の親子関係については、データテーブルとは別にメモリ上に格納する。
図7にはエレメントの親子関係を付ける一例を示している。
図示例は、テーブル500にリンク関係を記憶した例で、テーブル500には、エレメント名カラム501と、テーブル名に一連の番号を順番に付けるテーブル番号カラム502と、各テーブルに対して親となるテーブルの番号を格納する親カラム503と、各テーブルの子となるテーブルの番号を格納する子カラム504とが設けられている。この親子関係のデータは、各フォルダ402に対応付けられて管理されている。
【0029】
図示例では、エレメント名カラム501に”ルート(root)”、”チャイルド(child)”、”グランドチャイルド(grchild)”を格納し、その横の番号カラムに、0、1、2と固有の番号を付ける。
そして、テーブルの1行目のルートエレメントについては、親カラムに”0”、子カラムに”1”を格納する。
テーブル500の2行目のチャイルドエレメントについては、親カラムに”1”、子カラムに”2”を格納する。
テーブルの3行目のグランドチャイルドエレメントについては、親カラムに”1”、子カラムに”3”(不図示の次のエレメント)を格納する。
このようにすれば、各テーブル間の親子関係を付けることができる。
【0030】
図3乃至図5には、より具体的なXMLデータの格納例を例示している。
図3はテーブル作成工程を示している。
すなわち、DTD101のスキーマ情報に基づいて、ウェザデータエレメント(weather_data)に対応するウェザデータテーブル210と、ウェザエレメント(weather)に対応するウェザテーブル211が作成される。
【0031】
ウェザデタテーブル210には、アップグリップ(up−grip)カラムC4,ダウングリップ(down−grip)カラムC3、名前(name)カラムC5、親要素(parent)カラムC6、レベル(level)カラムC7の5つのカラムが作成される。
ウェザテーブル211には、属性−日(attr−day)カラムC11、属性−月(attr−month)カラムC12、テキスト(text)カラムC2、アップグリップ(up−gri)カラムC4、ダウングリップ(down−grip)カラムC3、親要素(parent)カラムC6、レベル(level)カラムC7の7つのカラムが作成される。
【0032】
図4は、XMLデータの格納状態を示している。
すなわち、XMLデータのデータ本体部102をルートから順にたどり、各エレメントについて、対応するテーブルに格納する。
まず、タグ付きデータが記載された1行目のエレメントのルートタグからウェザデータテーブル210を選択し、ウェザデータテーブル210のダウングリップカラムに”0”、アップグリップカラムC4に対応する親エレメントが無いことを示す(−1)を記入し、さらに名前カラムC5に文書名として”wather_data.xml”、レベルカラムC7に”0”を記入する。
第2行はウェザエレメントなので、ウェザテーブル211にデータを格納する。
すなわち、属性−月カラムC12が”3”、属性−日カラム11の値が”1”、テキストカラムC2に”晴れ”(Fine)、アップグリップとして”0”、ダウングリップとして”1”、親要素カラムC6にウェザデータ(weather_data)、レベルカラムC7にレベル値として1を格納する。
【0033】
第3行もウェザエレメントなので、ウェザテーブルにデータを格納する。
属性−月の値が”3”、属性−日の値が”2”、テキスト値として”曇り”(Cloud)、アップグリップとして”0”、ダウングリップとして”2”、親要素カラムC6に”ウェザデータ”、レベルカラムに”1”を格納する。
以下、第4行から第9行までウェザエレメントであり、同様にしてウェザテーブル211の次の行に順番に格納する。
ダウングリップカラムC3には、エレメント出現順に1から9まで割り当てられており、すべてのエレメントに対して一意の値となる。アップグリップは、当該エレメントの親エレメントであるウェザデータエレメント210に割り当てられたダウングリップの値(0)である。
ダウングリップC3に対応するアップグリップを持つ子エレメントが存在しない場合には、子が無いことを表す。
図5は、DTDを共通とする別のXMLデータを追加する場合を示している。
図ではデータは記載していないが、ウェザデータテーブルの2行目に、ダウングリップが”10”として、文書名(wather2.xml)が入り、以下、不図示のデータが各テーブルに追加される。
【0034】
図6は、XMLデータに再帰的に同じ名前のエレメントが現れる場合のテーブル格納例である。このような再帰的な構造の場合、レベルカラムが有効となる。
図示例では、図6(A)に示すように、チャイルドエレメントが再帰的に現れる構成となっている。
特に、DTDを記載しないが、テーブルはDTDに基づいて作成する点は上記した例と同様であり、ルート(root)テーブル220と、チャイルド(child)テーブル221と、ネーム(name)テーブル222とが作成される(同図(B),(C),(D)参照)。カラムについては、図1(B)に示したカラムが作成される。説明を分かりやすくするために、図6(A)にはダウングリップの値を付し、図6(E)にツリー構造を示す。
【0035】
まず、1行目のルートタグからルートテーブル200を選択し、ルートテーブル200のダウングリップカラムに”0”、アップグリップカラムC4に対応する親エレメントが無いことを示す”−1”を記入する。レベルカラムは”0”である。
次に、2行目のチャイルドタグからチャイルドテーブル201を選択し、このチャイルドテーブル201のダウングリップカラムC3に1、アップグリップカラムC4に0を格納する。
次に、3行目の名前タグから名前テーブルを選択し、名前テーブルの1行目のダウングリップカラムに”2”、アップグリップカラムに”1”、テキストカラムに”Bob”、親エレメントカラムに”root”、レベルカラムC7に”1”を格納する。
【0036】
次に、4行目のチャイルドタグからチャイルドテーブル201を選択し、このチャイルドテーブル202の2行目に、ダウングリップカラムC3に”3”、アップグリップカラムC4に”1”、レベルカラムに”2”を格納する。
次に、5行目の名前タグから名前テーブルを選択し、名前テーブルの2行目のダウングリップカラムに”4”、アップグリップカラムに”3”、テキストカラムに”Smith”、レベルカラムC7に”3”を格納する。
次に、7行目のチャイルドタグからチャイルドテーブル201を選択し、このチャイルドテーブル202の3行目の、ダウングリップカラムC3に”5”、アップグリップカラムC4に”1”、レベルカラムに”2”を格納する。
【0037】
次に、8行目の名前タグから名前テーブルを選択し、名前テーブルの3行目のダウングリップカラムC3に”6”、アップグリップカラムに”5”、テキストカラムに”Mary”、レベルカラムC7に”3”を格納する。
次に、9行目のチャイルドタグからチャイルドテーブル201を選択し、このチャイルドテーブル202の4行目の、ダウングリップカラムC3に”7”、アップグリップカラムC4に”5”、レベルカラムC7に”3”を格納する。
次に、10行目の名前タグから名前テーブルを選択し、名前テーブルの4行目のダウングリップカラムC3に”8”、アップグリップカラムに”7”、テキストカラムに”Beth”、レベルカラムC7に”4”を格納する。
このXMLデータの場合には、チャイルドエレメントの中に何階層同じものがでてくるのか分からないような構造であり、レベルカラムC7が無いと、チャイルドテーブルの各データの階層がルートエレメントからどの深さにあるかは、同一テーブル内のダウングリップカラムとアップグリップカラムをすべてたどらないと分からない。レベルカラC7ムを設けておけば、着目するデータの階層が直ぐに判定できる。
【0038】
なお、上記実施の形態では、一つのスキーマに従ったXMLデータを格納する場合について説明したが、異なるスキーマ情報を有するXMLデータについても、記憶装置に専用のテーブルを作成することによって格納することができる。
図8には、スキーマ情報の異なるXMLデータ100A,100Bの格納構成例を示している。
すなわち、異なるスキーマ情報に応じて別のフォルダ402A,402Bを作成し、それぞれのフォルダ402A,402BにDTD(A),DTD(B)と共に作成したテーブルセット200A,200Bが保存される。
【0039】
【発明の効果】
以上説明したように、本発明によれば、記憶装置のデータベース領域に格納すべきXMLデータのスキーマ情報に基づいてデータの単位となるエレメント毎に一つのテーブルを作成し、テーブルに前記スキーマ情報に従ったデータを格納するようになっているので、同じスキーマのXMLデータは過不足なくすべて格納することができる。
テーブルに、エレメントの内容および属性情報を入れるカラムの他に、データ間の親子関係情報を入れるカラムを有する構成としておけば、XMLデータの特徴である階層構造についてもテーブルに格納することができる。
データの格納は、ルートエレメントから順にたどって各テーブルに格納し、格納したデータには出現順序情報を付加する構成としておけば、データの出現順序についてもテーブルに格納可能となる。
【0040】
特に、各テーブルにダウングリップカラムとアップグリップカラムを作成し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係をつけたので、データ間の階層関係までテーブルに格納できる。
また、各テーブルはルートエレメントからの階層の深さを表すレベルカラムを作成し、レベルカラムにレベル値を格納するようにすれば、同じエレメント内でデータが階層関係になっている場合でも、ダウングリップおよびアップグリップをたどることなく、ルートからのレベルが直ぐに判定できる。
【0041】
エレメント間の親子関係情報を、前記テーブルとは別に記憶装置に保存しておけば、エレメント間の親子関係情報を利用して迅速に検索処理が可能となる。
テータベース領域に作成されたフォルダ内にスキーマ情報とテーブルを保存しておけば、登録するXMLデータがスキーマに合致しているかどうかの検証ができる。
異なるスキーマ情報に応じて別のフォルダを作成しておけば、スキーマの異なるXMLデータを整理して保存できる。
【図面の簡単な説明】
【図1】図1(A)は本発明の実施の形態に係るXMLデータの格納装置の概略構成を示す図、図1(B)は同図(A)の記憶装置のテーブルに形成されるカラムの種類を示す図である。
【図2】図2(A)はDTDのデータとテーブルの関係を示す図、同図(B)はXMLデータのデータ内容とテーブルのデータ格納状態を示す図である。
【図3】図3は他のXMLデータのDTDとテーブルの関係を示す図である。
【図4】図4はXMLデータのテーブルへの格納状態を示す図である。
【図5】図5は図4のテーブルへ、さらに追加のXMLデータを追加する場合の説明図である。
【図6】図6はレベルカラムの機能の説明で、同図(A)はXMLのデータ内容を示す図、同図(B)乃至(D)は各テーブルへのデータ格納状態を示す図、同図(E)はXMLデータのツリー構造を示す図である。
【図7】図7はテーブル間の親子関係を示すテーブル構成例を示す図である。
【図8】図8は、図1の装置の異なるDTDを有するXMLデータの格納状態を示す図である。
【図9】図9(A),(B)は図1の格納装置の処理手順を示すフローチャートである。
【符号の説明】
100 XMLデータ
101 DTD
102 データ本体部
200,201,202 テーブル
300 処理装置
400 記憶装置
C1 属性カラム
C2 テキストカラム
C3 ダウングリップカラム
C4 アップグリップカラム
C5 ネームカラム
C6 親要素カラム
C7 レベルカラム
Claims (30)
- 記憶装置のデータベース領域に格納すべきXMLデータのスキーマ情報に基づいてエレメント毎に一つのテーブルを作成し、該テーブルにスキーマ情報に従ったデータを格納する方法であって、
データの格納は、ルートエレメントから順にたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、各テーブルにはダウングリップカラムとアップグリップカラムを作成し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係をつけたことを特徴とするXMLデータの格納方法。 - テーブルには、エレメントの内容および属性情報を入れるカラムを作成する請求項1に記載のXMLデータの格納方法。
- テーブルは、データ間の親子関係情報を入れるカラムを有する請求項1に記載のXMLデータの格納方法。
- 各テーブルはルートエレメントからの階層の深さを表すレベルカラムを作成し、該レベルカラムにレベル値を格納する請求項1乃至3のいずれかの項に記載のXMLデータの格納方法。
- エレメント間の親子関係情報を、前記テーブルとは別に記憶装置に保存する請求項1に記載のXMLデータの格納方法。
- テータベース領域に作成されたフォルダ内にスキーマ情報とテーブルが保存される請求項1乃至4のいずれかの項に記載のXMLデータの格納方法。
- 異なるスキーマ情報に応じて別のフォルダを作成する請求項6に記載のXMLデータの格納方法。
- XMLデータを読み込み、読み込んだXMLデータのスキーマ情報に基づいて、記憶装置のデータベース領域にエレメント毎に一つのテーブルを作成し、作成したテーブルにデータを登録する処理手段を備え、
該処理手段によるデータの登録は、ルートエレメントから順にたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、各テーブルにはダウングリップカラムとアップグリップカラムを作成し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係をつけたことを特徴とするXMLデータの格納装置。 - テーブルには、エレメントの内容および属性情報を入れるカラムを作成する請求項8に記載のXMLデータの格納装置。
- テーブルは、データ間の親子関係情報を入れるカラムを有する請求項8に記載のXMLデータの格納装置。
- 各テーブルはルートエレメントからの階層の深さを表すレベルカラムを作成し、該レベルカラムにレベル値を格納する請求項8乃至10のいずれかの項に記載のXMLデータの格納装置。
- 処理手段は、エレメント間の親子関係情報を、前記テーブルとは別に記憶装置上に記憶する請求項8に記載のXMLデータの格納装置。
- 処理手段は、データが保存されるテーブルを、テータベース領域に作成されたフォルダ内にスキーマ情報と共に保存する請求項8乃至11のいずれかの項に記載のXMLデータの格納装置。
- 異なるスキーマ情報に応じて別のフォルダを作成する請求項13に記載のXMLデータの格納装置。
- 記憶装置のデータベース領域に格納すべきXMLデータのスキーマ情報に基づいてエレメント毎に一つのテーブルを作成するステップと、
該テーブルに前記スキーマ情報に従ったデータを格納するステップとを有し、
データの格納は、ルートエレメントから順にたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、各テーブルにはダウングリップカラムとアップグリップカラムを作成し、前記ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係をつけることを特徴とするXMLデータの格納方法をコンピュータに実行させるためのプログラム。 - テーブルを作成する際に、エレメントの内容および属性情報を入れるカラムを作成する請求項15に記載のプログラム。
- テーブルを作成する際に、データ間の親子関係情報を入れるカラムを作成する請求項15または16に記載のプログラム。
- テーブルを作成する際に、ルートエレメントからの階層の深さを表すレベルカラムを作成し、該レベルカラムにレベル値を格納する請求項15乃至17のいずれかの項に記載のプログラム。
- エレメント間の親子関係情報を、前記テーブルとは別に記憶装置上に記憶するステップを有する請求項15に記載のプログラム。
- 記憶装置のデータベース領域にフォルダを作成し、該フォルダにテーブルとスキーマ情報とを保存する請求項15乃至18のいずれかの項に記載のプログラム。
- 異なるスキーマ情報に応じて別のフォルダを作成する請求項15乃至18のいずれかの項に記載のプログラム。
- 請求項15乃至21のいずれかの項に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
- 記録装置のデータベース領域に格納すべきXMLデータのスキーマ情報に基づいてエレメント毎に一つのテーブルを作成され、該テーブルに前記スキーマ情報に従ったデータが格納され、
データの格納は、ルートエレメントから順にたどって各テーブルに格納し、格納したデータにはすべてのエレメントに対して一意の値となるように出現順序情報を付加し、各テーブルにはダウングリップカラムとアップグリップカラムを作成し、ダウングリップカラムに前記出現順序情報を入れ、前記アップグリップカラムには当該データと親子関係にある親データのダウングリップカラムの出現順序情報を割り当ててデータ間のリンク関係をつけたことを特徴とする表形式のXMLデータの格納構造。 - テーブルは、エレメントの内容および属性情報を入れるカラムを有する請求項23に記載の表形式のXMLデータの格納構造。
- テーブルには、データ間の親子関係情報を入れるカラムを有する請求項23または24に記載のXMLデータの格納構造。
- 各テーブルはルートエレメントからの階層の深さを表すレベルカラムが作成され、該レベルカラムにレベル値が格納されている請求項23乃至25のいずれかの項に記載の表形式のXMLデータの格納構造。
- エレメント間の親子関係情報が、前記テーブルとは別に記憶装置に保存されている請求項23に記載の表形式のXMLデータの格納構造。
- テータベース領域に作成されたフォルダ内にスキーマ情報とテーブルが保存されている請求項23乃至26のいずれかの項に記載の表形式のXMLデータの格納構造。
- 異なるスキーマ情報に応じて別のフォルダを作成されている請求項28に記載の表形式のXMLデータの格納構造。
- 請求項23乃至29のいずれかの項に記載の構造の表形式のXMLデータを記録したコンピュータ読取可能の記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002341210A JP3560043B2 (ja) | 2002-11-25 | 2002-11-25 | Xmlデータの格納方法及び格納装置、並びにプログラムおよびプログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002341210A JP3560043B2 (ja) | 2002-11-25 | 2002-11-25 | Xmlデータの格納方法及び格納装置、並びにプログラムおよびプログラムを記録した記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004178084A JP2004178084A (ja) | 2004-06-24 |
JP3560043B2 true JP3560043B2 (ja) | 2004-09-02 |
Family
ID=32703643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002341210A Expired - Fee Related JP3560043B2 (ja) | 2002-11-25 | 2002-11-25 | Xmlデータの格納方法及び格納装置、並びにプログラムおよびプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3560043B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7937413B2 (en) | 2004-05-04 | 2011-05-03 | International Business Machines Corporation | Self-adaptive prefix encoding for stable node identifiers |
JP4796970B2 (ja) * | 2004-11-17 | 2011-10-19 | 株式会社ターボデータラボラトリー | ツリーデータの検索・集計・ソート方法及びプログラム |
US7529726B2 (en) | 2005-08-22 | 2009-05-05 | International Business Machines Corporation | XML sub-document versioning method in XML databases using record storages |
US8543614B2 (en) | 2005-08-22 | 2013-09-24 | International Business Machines Corporation | Packing nodes into records to store XML XQuery data model and other hierarchically structured data |
US8572125B2 (en) | 2005-08-22 | 2013-10-29 | International Business Machines Corporation | Scalable storage schemes for native XML column data of relational tables |
JP4821287B2 (ja) * | 2005-11-28 | 2011-11-24 | Kddi株式会社 | 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造 |
JP2007265384A (ja) | 2006-01-31 | 2007-10-11 | Victor Co Of Japan Ltd | 構造化データ格納装置、構造化データ格納プログラム、及び構造化データ格納方法 |
AU2008302144B2 (en) * | 2007-09-20 | 2014-09-11 | Ab Initio Technology Llc | Managing data flows in graph-based computations |
JP5162215B2 (ja) * | 2007-11-22 | 2013-03-13 | 株式会社エヌ・ティ・ティ・データ | データ処理装置、データ処理方法、および、プログラム |
JP2011221682A (ja) * | 2010-04-07 | 2011-11-04 | Seiko Epson Corp | 情報処理装置 |
CN110765123A (zh) * | 2018-07-09 | 2020-02-07 | 株式会社日立制作所 | 基于树形结构的材料数据的存储方法、装置和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3508623B2 (ja) * | 1999-05-21 | 2004-03-22 | 日本電気株式会社 | 構造化文書管理システム及び方法並びに記録媒体 |
JP3492246B2 (ja) * | 1999-07-16 | 2004-02-03 | 富士通株式会社 | Xmlデータ検索処理方法および検索処理システム |
JP2001195406A (ja) * | 2000-01-06 | 2001-07-19 | Media Fusion Co Ltd | データベース管理システム |
JP2001282856A (ja) * | 2000-03-31 | 2001-10-12 | Toshiba Corp | インデックス作成方法、インデックス表示方法、インデックス検索方法及びインデックス作成装置 |
JP2001318935A (ja) * | 2000-05-09 | 2001-11-16 | Komakkusu:Kk | 情報処理装置及び方法、情報処理用ソフトウェアを記録した記録媒体並びにリレーショナルデータベース |
JP3607182B2 (ja) * | 2000-08-25 | 2005-01-05 | 日本電信電話株式会社 | 文書情報抽出装置、方法、及びそのプログラムを記録した記録媒体 |
-
2002
- 2002-11-25 JP JP2002341210A patent/JP3560043B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004178084A (ja) | 2004-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103823824B (zh) | 一种借助互联网自动构建文本分类语料库的方法及系统 | |
JP4997749B2 (ja) | 文書処理方法、プログラム及びシステム | |
US8209352B2 (en) | Method and mechanism for efficient storage and query of XML documents based on paths | |
JP4561150B2 (ja) | 階層データ形式のためのデータベースモデル | |
US20080313196A1 (en) | Method, Information Processing Apparatus, and Program For Generating Array | |
JP2002297605A (ja) | 構造化文書検索方法および構造化文書検索装置およびプログラム | |
CN100587673C (zh) | 排列的生成方法以及排列生成装置 | |
JP3560043B2 (ja) | Xmlデータの格納方法及び格納装置、並びにプログラムおよびプログラムを記録した記録媒体 | |
JP2008052662A (ja) | 構造化文書管理システム及びプログラム | |
JP4146479B2 (ja) | 構造化文書検索装置、構造化文書検索方法および構造化文書検索プログラム | |
JP4045400B2 (ja) | 検索装置及び検索方法 | |
JP4247108B2 (ja) | 構造化文書検索方法、構造化文書検索装置、及びプログラム | |
US20090019067A1 (en) | Method, apparatus, and program for inserting node | |
US20090063554A1 (en) | Method and apparatus for converting between data sets and xml documents | |
Catania et al. | Lazy XML updates: laziness as a virtue, of update and structural join efficiency | |
CN102087666A (zh) | 一种基于节点与关键字覆盖关系的索引及其构建方法和查询方法 | |
JP4398664B2 (ja) | Xmlデータの検索方法及び検索装置、並びにプログラムおよびプログラムを記録した記録媒体 | |
JP3842572B2 (ja) | 構造化文書管理方法および構造化文書管理装置およびプログラム | |
JP2002297662A (ja) | 構造化文書編集方法および構造化文書編集装置および端末装置およびプログラム | |
Yin et al. | A template-based method for theme information extraction from web pages | |
JP3842574B2 (ja) | 情報抽出方法および構造化文書管理装置およびプログラム | |
Lim et al. | Integrating HTML tables using semantic hierarchies and meta-data sets | |
Bruno et al. | An xml environment for multistructured textual documents | |
Carter et al. | Working with Hierarchical Data and HierarchyID | |
Marin-Castro et al. | VR-Tree: A novel tree-based approach for modeling Web Query Interfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040324 |
|
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: 20040420 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040517 |
|
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: 20080604 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080604 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
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: 20080604 Year of fee payment: 4 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080604 Year of fee payment: 4 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080604 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
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: 20080604 Year of fee payment: 4 |
|
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: 20100604 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110604 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120604 Year of fee payment: 8 |
|
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: 20130604 Year of fee payment: 9 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
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 |