JP4289022B2 - 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体 - Google Patents
構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体 Download PDFInfo
- Publication number
- JP4289022B2 JP4289022B2 JP2003145414A JP2003145414A JP4289022B2 JP 4289022 B2 JP4289022 B2 JP 4289022B2 JP 2003145414 A JP2003145414 A JP 2003145414A JP 2003145414 A JP2003145414 A JP 2003145414A JP 4289022 B2 JP4289022 B2 JP 4289022B2
- Authority
- JP
- Japan
- Prior art keywords
- structured document
- database
- statement
- stored
- xml
- 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 - Lifetime
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体に係り、特に、データーベースを利用した構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体に関する。
【0002】
【従来の技術】
XML(eXtensible Markup Language)は、ネットワーク上で交換される文書やデータの記述形式を規定するために、W3C(World Wide Web Consortium)が制定した規準規格である。XMLは、構造化文書の国際標準であるSGML(Standard Generalized Markup Language)の拡張可能性とHTML(HyperText Language)のインターネット利用性を併せ持った形式として期待されている。例えば、EC(Electronic Commerce)やKM(Knowledge Management)で交換されるデータの記述や電子図書館の蔵書カタログの記述にもXMLは利用できる。そして、このような利用例では、XMLの交換性という要件を超えて、大量のXML文書を格納し、検索、更新できるという要件が重要になってくる。この要件を満たすためには、データーベース技術の適用・開発が必要となる。これには、大きく2つの方式がある。
【0003】
(1)まず、1つの方式として、ネイティブXMLデーターベースの開発がある。当該方式は、XML文書をそのまま格納し、検索、更新も可能なデーターベースを新たに開発する。Tamino(ソフトウェアAG),eXcelon(エクセロン)、Yggdrasill(メディアフュージョン)などが挙げられる。
【0004】
(2)2つ目の方式として、既存データーベースの機能拡張がある。既存のRDB(リレーショナルデーターベース)等に対し、XML文書を格納したり、取得したデータをXML化する機能を拡張する。Oracle9i(オラクル)、SQL Server2000(マイクロソフト)、DB2(IBM)など主要なデーターベースはXML対応となっている。
【0005】
上記の(1)は、XML文書をそのまま扱えるのが大きな利点である。しかし、現在、ほとんどのデータがRDBに格納されており、これら既存データとの連携、活用には(2)が適している。(2)でXML文書の格納、検索、更新を行う場合、XML文書とRDBとのマッピング方法が重要となる。XMLをRDBにマッピングし、格納するには、大きく2つの方法がある。
【0006】
a)XML文書全体を1カラムに格納する方法:
RDBのCLOB(Character Large Object)やVarchar等のデータ型を利用することで、XML文書全体をそのまま1カラムに格納する。XML文書内のデータだけでなく、XML文書自体の文書構造を保持する場合に有効な方法である。例えば、新聞や雑誌の記事をアーカイブとして残す場合が当てはまる。この場合、指定された要素(日時や記者名等)のみ別カラムとし、インデックスを作成することで検索可能となる。
【0007】
b)XML文書をデータ項目に分解して複数カラムに格納する方法:
元となるXML文書の要素や属性をデータ項目として分解し、RDBの複数のカラムに格納する。元のXML文書自体は保存されないため、RDB上に文書構造は保持されない。しかし、RDB上のデータとして扱うため、当該データを複数のアプリケーションで共用する場合に有効な格納方法である。また、RDBからXMLへのマッピング方法を決めておくことで、既存のRDBに蓄積したデータをXML文書として取得(出版)する(このような技術をXML Publishingと呼ぶ)こともできる。
【0008】
これらの格納方法をXML−RDB間のマッピング定義情報により実現する技術も開発されている(例えば、非特許文献1参照)。
【0009】
【非特許文献1】
IBM,DB2XMLExtender:http://www-6.ibm.com/jp/sofuware/data/developer/colum/kantanextend/05xmlextender/01/html
【0010】
【発明が解決しようとする課題】
しかし、格納方法をXML−RDB間のマッピング定義情報により実現する技術では、不十分な点も多い。
【0011】
(1) XMLに対する標準的な問い合わせで検索,追加、更新することが困難であるという問題(機能的要件): W3Cによって開発が進められている標準的な検索言語XQuery(http:///www.w3.org/TR/xquery/)では、検索結果XMLの構造を再構成、変換するといった柔軟な記述が可能となっている。また、追加、更新に関してもXupdate(http://www.xmldb.org/xupdate/)というXMLに対応した言語が提案されている。しかし、従来の方法では、格納されたデータは、RDB上のデータとして扱われる。そして、検索、追加、更新に用いられるクエリは、一般的にXML拡張したSQLが用いられる。また、XMLPublishingにおける、RDBからXMLへのマッピングも固定的である。つまり、従来の方法では、格納されたデータをRDB上のデータとして扱うため、XMLに対する標準的なクエリで検索、追加、更新することが困難である。
【0012】
(2) 検索の高速性と追加、更新の高速性を両立することが困難(性能的要件): 一般的に、XML文書全体を検索、取得するだけなら、上記従来のa)がb)に比べて高速である。一方、XML文書中の要素の追加、更新頻度が高い場合、b)がa)に比べて高速である。そして、XML文書の利用形態によっては、検索の高速性と追加、更新の高速性の両方が求められる場合がある。つまり、応用によってはこれらの格納方法を組み合わせることが必要となる。しかし、従来のXML−RDB間のマッピング定義情報では、a)とb)の2つの格納方法を柔軟に組み合わせて、検索の高速性と追加、更新の高速性を両立させることが困難である。
【0013】
本発明は、上記の点に鑑みなされたもので、XML文書を、当該XML文書の階層構造に基づき、重複を許した部分XML文書に分割してRDBと対応付けるマッピング定義情報及び当該定義に則って、入力されたXMLに対する標準的な問い合わせをSQLへ変換することにより、検索の高速性と追加、更新の高速性の両立を実現するデーターベースを利用した構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体を提供することを目的とする。
【0014】
【課題を解決するための手段】
図1は、本発明の原理を説明するための図である。
【0015】
本発明は、データベースを利用して構造化文書の格納、検索、更新及び削除の操作を行う構造化文書処理方法において、
入力された構造化文書に対する問い合わせを解析し、該問い合わせの要求している操作が挿入か、更新か、削除か、検索かを判定する操作判定ステップ(ステップ1)と、
記憶手段に格納されている、構造化文書の階層構造に基づいて、分割した部分文書同士の重複を許して、構造化文書を部分文書に分割してデータベースと対応付けるマッピング定義情報を参照して、操作判定ステップの判定に基づいて、入力された問い合わせを、該データベースに対し、挿入/更新/削除/検索のいずれかの操作を行う命令文に変換する命令文生成ステップ(ステップ2)と、
変換された命令文をデータベースに送信し、操作を実行させる操作指示ステップ(ステップ3)と、
命令文が挿入/更新/削除操作のいずれかであれば、該命令文を実行した文書件数を取得する文書件数取得ステップ(ステップ4)と、
命令文が検索操作であれば、マッピング定義情報を参照して、データベースの検索結果を構造化文書として出力する構造化文書出力ステップ(ステップ5)と、を行う。
【0023】
図2は、本発明の原理構成図である。
【0024】
本発明(請求項1)は、データベースを利用して構造化文書の格納、検索、更新及び削除の操作を行う構造化文書処理装置であって、
入力された構造化文書に対する問い合わせを解析し、該問い合わせの要求している操作が挿入か、更新か、削除か、検索かを判定する操作判定手段120と、
記憶手段に格納されている前記構造化文書全体、及び、該構造化文書の階層構造に基づいて分割される当該構造化文書の一部をデータベース300と対応付けるマッピング定義情報170と、
マッピング定義情報170を参照して、操作判定手段の判定に基づいて、入力された問い合わせを、データベース300に対し、挿入/更新/削除/検索のいずれかの操作を行う命令文に変換する命令文生成手段130と、
変換された命令文をデータベース300に送信し、操作を実行させる操作指示手段140と、
命令文が挿入/更新/削除操作のいずれかであれば、該命令文を実行した文書件数を取得する文書件数取得手段150と、
命令文が検索操作であれば、マッピング定義情報170を参照して、データベース300の検索結果を構造化文書として出力する構造化文書出力手段160と、を備え、
命令文生成手段130は、
挿入/更新操作用の構造化文書の構造が正当かを判定する手段と、
構造化文書全体を挿入する問い合わせか、あるいは、既に格納されている構造化文書に対し、構造化文書の一部を挿入または構造化文書の全体を更新または構造化文書の一部を更新する問い合わせかを判定する手段と、
構造化文書の一部を挿入または構造化文書の全体を更新または構造化文書の一部を更新する問い合わせであれば、マッピング定義情報を参照して、該構造化文書の一部に対応する要素の先祖要素がデータベース300に格納されているかを判定する手段と、
先祖要素が、データベース300に格納されていれば、該先祖要素の更新を行うための命令文を生成する更新命令生成手段と、
マッピング定義情報170を参照して、構造化文書の一部に対応する要素の子孫要素がデータベース300に格納されているかを判定する手段と、
子孫要素がデータベース300に格納されていれば、該子孫要素の更新を行うための命令文を生成する子孫要素更新命令生成手段と、を含む。
【0025】
本発明(請求項2)は、データベースを利用して構造化文書の格納、検索、更新及び削除の操作を行う構造化文書処理装置であって、
入力された構造化文書に対する問い合わせを解析し、該問い合わせの要求している操作が挿入か、更新か、削除か、検索かを判定する操作判定手段120と、
記憶手段に格納されている構造化文書全体、及び、該構造化文書の階層構造に基づいて分割される当該構造化文書の一部をデータベース300と対応付けるマッピング定義情報170と、
マッピング定義情報170を参照して、操作判定手段の判定に基づいて、入力された問い合わせを、該データベース300に対し、挿入/更新/削除/検索のいずれかの操作を行う命令文に変換する命令文生成手段130と、
変換された命令文をデータベース300に送信し、操作を実行させる操作指示手段140と、
命令文が挿入/更新/削除操作のいずれかであれば、該命令文を実行した文書件数を取得する文書件数取得手段150と、
命令文が検索操作であれば、マッピング提示情報170を参照して、データベース300の検索結果を構造化文書として出力する構造化文書出力手段160と、を備え、
命令文生成手段130は、
マッピング定義情報170を参照して、構造化文書の一部に対応する要素の先祖要素がデータベースに格納されているかを判定する手段と、
先祖要素がデータベース300に格納されていれば、該先祖要素から対応要素までの更新を行うための命令文を生成する更新命令生成手段と、
マッピング定義情報170を参照して、構造化文書の一部に対応する要素の子孫要素がデータベースに格納されているかを判定する手段と、
子孫要素がデータベース300に格納されていれば、該子孫要素の更新を行うための命令文を生成する子孫要素更新命令生成手段と、を含む。
【0026】
また、本発明(請求項3)は、上記の命令文生成手段130において、
挿入/更新操作用の構造化文書の構造が正当かを判定する手段と、
構造化文書全体を挿入する問い合わせか否かを判定する手段と、
構造化文書全体を挿入する問い合わせであれば、同一の構造を持った複数の構造化文書を識別するための識別子を払い出し、マッピング定義情報170を参照して、データベースに対し挿入を行う命令文へと変換する手段を含む。
【0029】
また、本発明(請求項4)は、上記の更新命令生成手段において、
更新対象のデータを取得するための命令文を生成、実行する手段と、
取得した更新対象のデータを更新する手段と、
更新したデータを再度、挿入するための命令文を生成する手段と、
データベースに格納されている先祖要素について問い合わせで指定した要素まで、上記の各手段を制御して各手段による処理を繰り返させる制御手段と、を含む。
【0030】
また、本発明(請求項5)は、上記の子孫要素更新命令生成手段において、
マッピング定義情報170を参照して、更新対象の同一要素のデータがデータベース300上で複数行に別々に格納されているのか、一行にまとめて格納されているのかを判定する手段と、
複数行に別々に格納されている場合、データを一旦削除する命令文を生成、実行し、既に更新済みの先祖要素を格納しているデータを元に、該データを再度挿入するための命令文を該データを格納している全子孫要素について生成する手段と、
一行にまとめて格納されている場合に、更新対象のデータを取得するための命令文を生成、実行する手段と、
取得した更新対象のデータを更新する手段と、
更新したデータを再度、挿入するための命令文を生成する手段と、
データベースに格納されている子孫要素について問い合わせで指定した要素まで、上記の各手段を制御して各手段による処理を繰り返させる制御手段と、を含む。
【0031】
また、本発明(請求項6)は、上記の命令文生成手段130において、
マッピング定義情報170を参照して、問い合わせに含まれる問い合わせ結果指定部分に対応する要素がそのまま前記データベースに格納されているか否かを判定する手段と、
そのままデータベースに格納されていれば、その所在を取得する手段と、
そのままデータベースに格納されていなければ、検索結果が出現するまで、問い合わせに含まれる問い合わせ結果指定部分に対応する要素の子孫要素を辿りその所在を取得する手段と、
取得した所在と、入力された問い合わせから検索のための命令文を生成する手段と、を含む。
【0032】
本発明(請求項7)は、請求項1乃至2のいずれか1項に記載の構造化文書処理装置を構成する各手段としてコンピュータを機能させるための構造化文書処理プログラムである。
【0033】
本発明(請求項8)は、請求項7に記載のプログラムを格納した記憶媒体である。
【0034】
上記のように、本発明は、入力されたXMLに対する標準的な問い合わせを解析し、当該問い合わせの要求している操作が挿入か、更新か、削除か、検索かを判定し、XML−RDB間のマッピング定義情報(XML文書の階層構造に基づき、重複を許したXML文書に分割して、RDBと対応付けるマッピング定義情報)に則って、入力された問い合わせをSQLをRDB上で実行し、挿入/更新/削除であれば、当該操作を実行した文書件数を取得し、検索であれば、XML−RDB間のマッピング定義情報を参照し、RDBの検索結果をXML文書として出力するものである。XMLに対する標準的な問い合わせを解析し、XML−RDB間のマッピング定義情報を参照することで、当該問い合わせを用いたRDBへのXML文書の挿入、更新、削除、検索が可能となる。また、当該マッピング定義情報は、XML文書の階層構造に基づき、重複を許して部分XML文書に分割して、RDBと対応付けることで、検索の高速性と追加、更新の高速性を両立することができる。
【0035】
【発明の実施の形態】
以下、図面と共に本発明の実施の形態を説明する。
【0036】
図3は、本発明の一実施の形態における構造化文書処理装置の構成を示す。
【0037】
構造化文書処理装置100は、アプリケーションプログラムインタフェース部110と、XML問い合わせ文解析部120、RDB−XMLマッピング定義情報170、SQL文生成部130、RDB管理システムインタフェース部140、DOM操作部150、問い合わせ結果生成部160から構成される。
【0038】
アプリケーションプログラムインタフェース部110は、アプリケーションプログラムと通信網400とを介してユーザから入力されたXML問い合わせ文を受け付ける。XML問い合わせ文は、変数バインド部分、問い合わせ条件指定部分、問い合わせ結果指定部分から構成される。
【0039】
XML問い合わせ解析部120は、アプリケーションプログラムインタフェース部110が受け付けたXML問い合わせ文の構文を解析し、XML問い合わせ文解析情報を出力する。
【0040】
図4は、本発明の一実施の形態におけるRDB−XMLマッピング定義情報に含まれる情報の概要を示す。RDB−XMLマッピング定義情報170には、RDBにアクセスするための情報171と、SQL−DDLを生成するために必要なテーブル生成情報172と、XML文書の情報とRDBに格納された情報との対応関係をマッピングするためのルート情報173が含まれる。なお、当該RDB−XMLマッピング定義情報170は、ハードディスク装置等の記憶媒体に格納される。
【0041】
SQL文生成部130では、XML問い合わせ文解析情報とRDB−XMLマッピング定義情報からSQL文を生成し、RDB管理システムインタフェース部140と通信網400を介してRDB管理システム300に送信する。そして、SQL結果をRDB管理システム300から取得する。RDB管理システムインタフェース部140は、生成したSQL文の受け付け、RDB管理システム300への接続、SQL結果の取得を行う。
【0042】
DOM操作部150は、問い合わせ結果指定部分の先祖/子孫要素がRDBに格納されている際、当該要素を取得し、DOM(Document Object Model:XML操作のための標準APIの1つ)に展開した後、DOM操作により、問い合わせ結果指定部分に対し更新を行う。
【0043】
問い合わせ結果生成部160では、取得したSQL結果と読み出したRDB−XMLマッピング定義情報から問い合わせ結果を生成する。問い合わせ結果とは、挿入・更新・削除の場合は操作を実行したXML文書件数であり、検索の場合は、返却されるXML文書を指す。
【0044】
次に、本発明の構造化文書処理装置100の処理手順の概要について説明する。
【0045】
図5は、本発明の一実施の形態における構造化文書処理装置の全体の概要動作のフローチャートである。
【0046】
構造化文書処理装置100は、準備フェーズ(ステップ1000)と操作フェーズ(ステップ2000)の順で処理が行われる。準備フェーズ(ステップ1000)では、RDB−XMLマッピング定義情報170中のテーブル生成情報を元にSQL−DDLを出力し、RDB上にテーブルを生成する。操作フェーズ(ステップ2000)では、生成されたテーブルに対し、XML文書の挿入・更新・削除・検索を行う。
【0047】
図6は、本発明の一実施の形態における準備フェーズのフローチャートである。
【0048】
準備フェーズでは、まず、RDB−XMLマッピング定義情報を作成し、記憶手段に格納する(ステップ1010)。SQL文生成部130では、当該RDB−XMLマッピング定義情報170中のテーブル生成情報を元に、SQL−DDLを出力する(ステップ1020)。RDB管理システムインタフェース部140では、当該RDB−XMLマッピング定義情報170中のRDBアクセス情報を元に、RDB管理システム300へ接続し、SQL−DDLをRDB管理システム300へ送信する(ステップ1030)。RDB管理システム300では、送信されたSQL−DDLに基づいてテーブルを生成する(ステップ1040)。
【0049】
図7〜図9は、本発明の一実施の形態における操作フェーズのフローチャートである。
【0050】
操作フェーズでは、まず、アプリケーションプログラムインタフェース部110が、アプリケーションプログラム200を介して入力されたXML問い合わせ文を受理する(ステップ2010)。問い合わせは、図3に示すように、変数バインド部分、問い合わせ条件指定部分、問い合わせ結果指定部分から構成される。
【0051】
XML問い合わせ文解析部120は、XML問い合わせ文を解析し、XML問い合わせ文解析情報を出力する(ステップ2020)。このXML問い合わせ文解析情報から、受理したXML問い合わせ文が検索操作を行うため構文か否かを判定する(ステップ2030)。同様に、挿入/更新操作を行うための構文か削除操作を行う構文かを判定する(ステップ2031)。
【0052】
挿入/更新操作を行うための構文であれば、挿入/更新用XML文書の構造が正当かを判定する(ステップ2040)。正当でなければエラーを出力して操作フェーズを終了する。正当であれば、全XML文書の挿入を行うための構文かを判定する(ステップ2041)。全XML文書の挿入を行うための構文であれば、1つ1つのXML文書を識別するための文書キーを払い出し(ステップ2042)、SQL文生成部130は、RDB−XMLマッピング定義情報170とXML問い合わせ文解析情報を参照し、全XML文書挿入用SQLを生成する(ステップ2043)。生成したSQL文をRDB管理システム300で実行し(ステップ2044)、挿入を実行した文書件数を取得し(ステップ2070)、これを問い合わせ結果として出力する(ステップ2087)。
【0053】
全XML文書の挿入を行うための構文でなければ(ステップ2041)、部分XML文書の挿入あるいは、全/部分XML文書の更新を行う構文である。以降の処理は、部分XML文書挿入/更新/削除で同一となる。まず、問い合わせ結果指定部分に対応する要素の先祖要素がRDBに格納されているかを判定する(ステップ2050)。格納されていれば、SQL文生成部130は、RDB−XMLマッピング定義情報170とXML問い合わせ文解析情報を参照し、テーブル名とカラム名を取得し、更新対象データ取得用SQLを生成する(ステップ2051)。生成したSQLを実行し、更新対象データを取得する(ステップ2052)。
【0054】
DOM操作部150は、取得したデータをDOM(Document Object Model:XML操作のための標準APIの一つ)に展開した後、DOM操作により、問い合わせ結果指定部分に対し更新を行い、再び、XML化する(ステップ2053)。SQL文生成部130は、挿入用SQLを生成し、更新を行ったXMLをデーターベースに再挿入する(ステップ2054)。ステップ2051からステップ2054までを問い合わせ結果指定部分で指定された要素まで繰り返す。
【0055】
次に、問い合わせ結果指定部分に対応する要素の子孫要素がRDBに格納されているかを判定する(ステップ2060)。格納されていれば、同一パスのN個の要素がN行に別々に格納されているのか、1行にまとめて格納されているのかを判定する(ステップ2061)。1行にまとめて格納されている場合、先程のステップ2051からステップ2054と同様に、更新対象データを取得し、DOM展開し、更新を行い、XML化してデーターベースに再挿入する(ステップ2064からステップ2067)。N行に別々に格納されている場合、先祖要素の更新時に取得した文書キーでデータ削除用SQLを生成し、実行(ステップ2062)した後、既に更新済みの先祖要素を格納している列のデータを元にデータ挿入用SQLを生成し、実行する(ステップ2063)。
【0056】
ステップ2060からステップ2066までをRDBに格納されているすべての子孫要素に対して行う。部分XML文書挿入/更新/削除を実行した文書件数を取得し(ステップ2070)、これを問い合わせ結果として出力する(ステップ2087)。
【0057】
検索操作を行うための構文であれば(ステップ2030)、RDB−XMLマッピング定義情報170を参照して、問い合わせ結果指定部分に対応する要素がRDBに格納されているかを判定する(ステップ2080)。格納されていれば、当該要素が格納されているRDBのテーブル名、カラム名を取得する(ステップ2083)。格納されていない場合、格納されている要素が出現するまで、当該要素の子孫要素を辿り、格納されているRDBのテーブル名、カラム名を取得する(ステップ2082)。これを全ての子孫要素に対して繰り返し、全てのテーブル名、カラム名を取得する(ステップ2081)。
【0058】
取得したテーブル名、カラム名と問い合わせ条件指定部分から得られた解析情報を元にSQLを生成/実行する(ステップ2084)。RDB−XMLマッピング定義情報170を参照して、問い合わせ結果指定部分に対応する要素がRDBに格納されているかを判定することで、XML再構築が必要かを判定する(ステップ2085)。必要であればRDB−XMLマッピング定義情報170を参照して、SQLの検索結果からXML文書を問い合わせ結果として生成し(ステップ2086)、出力する(ステップ2087)。再構築が必要でない場合は、該当する要素がRDBに格納されているので、それを問い合わせ結果として出力する(ステップ2087)。
【0059】
【実施例】
以下、図面と共に本発明の実施例を説明する。
【0060】
最初に、準備フェーズについて説明する。
【0061】
(1)テーブル生成(準備フェーズ):
図10は、本発明の一実施例のRDB−XMLマッピング定義情報の詳細を示す図である。図11は、本発明の一実施例のRDBアクセス情報と記述例を示す。図12は、本発明の一実施例のテーブル生成情報と記述例を示す。図13〜図15は、本発明の一実施例のルート情報と記述例を示す。
RDB−XMLマッピング定義情報170は、XML形式で規定された定義であり、図4に示したように、RDBアクセス情報171(図11)、テーブル生成情報172(図12),ルート情報173(図13〜図15)が含まれる。
【0062】
(2)RDB−XMLマッピング定義情報(図10):
RDB−XMLマッピング定義情報170のルート要素である。Target属性により対象のRDB管理システム種別を定義する。version属性の値により、RDB−XMLマッピング定義情報170の識別を行う。
【0063】
(3)RDBアクセス情報(図11):
RDBの接続先毎の情報を定義する要素である。
【0064】
・access要素
RDB管理システムインタフェース部140を経由してRDBに接続するための情報を定義する要素である。接続時に必要な接続先urlをurl要素へ、接続時に必要なユーザ名やパスワードをproperty要素に定義する。
【0065】
(a)url要素
RDB管理システムインタフェース部140を経由してRDBに接続する際に指定するURLを定義する要素である。
【0066】
(b)property要素
RDB管理システムインタフェース部140を経由してRDBに接続する際に指定するプロパティ情報(ユーザ名、パスワード等)を指定する要素である。name属性によりプロパティ名を定義する。
【0067】
(2)テーブル生成情報(図11)
SQL文生成部130にて、RDBのテーブル生成用SQL−DDLを生成するために必要な情報を定義する。
【0068】
(a)table要素
個々のテーブルに対する情報を定義する。name属性に対し、テーブル名を記述する。
【0069】
(b)column要素
親要素のtable要素のname属性に指定したテーブルに持たせるカラムの情報を定義する。name属性に対し、カラム名を記述し、type属性に対し、RDBで定義されるデータ型を記述する。
【0070】
(c)constraint要素
親要素がtable要素の場合、表定義としての制約をSQLと同じ形式で記述する。また、親要素がcolumn要素の場合は行定義としての制約をSQLと同じ形式で記述する。
【0071】
(d) charactoristics要素
親要素のtable要素で指定されるテーブルに対しての物理特性やテーブル特性を定義する。SQLのCREATE文におけるphisical_propertis及びtable_propertiesに相当する部分をSQLと同じ形式で記述する。
【0072】
図12にテーブル生成の記述例を示す。
【0073】
(3)ルート情報(図13)
入出力されるXML文書とRDB内に格納されているデータとの関連をマッピングするための情報を定義する。element情報、attribute要素、text要素は、それぞれ元XML文書の要素,属性,テキストに相当し、元XMLと同じ階層構造について記述する。
【0074】
ルート情報に定義する項目を図15に示す。
【0075】
(a)element要素
XML文書の要素に対応する要素である。各種属性にてRDBとのマッチング情報を定義する。各属性の内容を以下に示す。
【0076】
・name属性
XML文書の要素名を定義する。
【0077】
・table属性
格納先のテーブル名を定義する。なお、すべての要素に定義されるわけではなく、定義は子孫の要素に次のtable属性が定義されるまでを有効範囲とする。
【0078】
・column属性
格納先のカラム名を定義する。対象のテーブルは、上記のテーブル属性で定義された対象の(ansector-or-selfの内で直近のtable属性に定義された)テーブルとなり、対応するXMLのデータの格納先が特定される。
【0079】
・ratio属性
本属性は、table属性に付随して定義され、n個の要素が存在する場合に、複数の格納先テーブル間の関係を定義する。
【0080】
“1:1”の場合、本属性を持つ1もしくはn個の要素を1タプルに格納する。
【0081】
“1:n”もしくは“1:N”の場合、本属性を持つ1つもしくは、N個の要素をNタプルに格納する。
【0082】
なお、本属性が省略された場合“1:1”として扱う。
【0083】
・minOccurs属性
本属性の定義された要素が持つことのできる要素の最小数を“0”か“1”で定義する。
【0084】
・maxOccurs属性
本属性の定義された要素が持つことのできる要素の最大数を“1”か“unbounded”(制限なし)で定義する。
【0085】
・docID属性
XML文書を識別するための文書IDに該当する要素に対し、本属性に“yes”を定義する。
【0086】
・type属性
本属性は、column属性に付随して定義され、格納先のカラムのデータ型を定義する。XMLデータ格納の際に参照され、入力のデータとデータがたの整合性を判断する。
【0087】
・size属性
本属性は、column属性に付随して定義され、格納先のカラムのサイズを定義する。XMLデータ格納の際に参照され、入力のデータのサイズが格納可能かを判断する。
【0088】
・pkey属性
本属性は、table属性に付随して定義され、table属性に定義されたテーブルの主キーとなるカラム名を定義する。省略された場合は、DocKey(文書キー)を主キーと見做す。
【0089】
・parent-fkey属性
本属性は、table属性に付随して定義され、該当のテーブルの主キーに対しての外部キーとなるカラム名を定義する。本属性で指定した列は、直近の先祖要素に定義されているテーブルの列として定義されるものとする。
【0090】
・exts属性
拡張機能であるユーザ定義関数名を記述する。本属性を定義することによりユーザ定義関数と本属性が定義されたパスとの関連付けを定義する。
【0091】
(b)attribute要素
XML文書の属性に対応する要素である。各種属性にてデーターベースとのマッピング情報を定義する。属性は、element要素と同じ属性をもつが、その他にattribute要素固有の属性としてmeta属性を持つ。
【0092】
・meta属性
追加属性を識別するための属性である。本属性に“yes”が指定された要素を追加属性と見做す。XML問い合わせ文で操作する場合は、直接本属性が定義された要素を問い合わせ結果指定部分(do節/return節)に指定しない限り、操作を行えないものとする。直接指定せずに操作を行おうとした場合、更新時には例外、検索時には、検索対象外とする。
【0093】
(c)text属性
XML文書の属性に対応する要素である。各種属性にてRDBとのマッピング情報を定義する。属性は、element要素と同じ属性を持つ。
【0094】
上記の項目を用いたXML文書例、ルート情報の記述例を図15に示す。本発明のXML−RDB間のマッピング定義情報170(ルート情報)は、XML文書を部分XML文書に分割してRDBへ格納する。分割は、階層的に行い、重複も許している。図16には、この格納の重複関係を階層構造(格納構造木)で示している。
【0095】
準備フェーズでは、まず、RDBアクセス情報171(図11)、テーブル生成情報172(図12)、ルート情報173(図13〜図15)を含むRDB−XMLマッピング定義情報170(図10)を作成する(ステップ1010)。SQL文生成部130では、当該RDB−XMLマッピング定義情報170中のテーブル生成情報(図12)を元に、SQL−DDLを出力する(ステップ1020)。RDB管理システムインタフェース部140では、当該RDB−XMLマッピング定義情報170中のRDBアクセス情報(図11)を元に、RDB管理システム300へ接続し、SQL−DDLをRDB管理システム300へ送信する(ステップ1030)。
【0096】
RDB管理システム300では、送信されたSQL−DDLに基づいてテーブルを生成する(ステップ1040)。SQL−DDLの出力例及びテーブルの生成例を図16に示す。
【0097】
次に、操作フェーズについて説明する。
【0098】
(1) XML文書挿入(操作フェーズ)
入力されたXML問い合わせ文を元にRDB−XMLマッピング定義情報170を参照して、RDBに対して全XML文書または、部分XML文書の挿入を行う。図17(a),(b)に示す問い合わせがアプリケーションプログラム200から発行された場合を例に具体的に説明する。
【0099】
まず、問い合わせを受理し(図7、ステップ2010)、XML問い合わせ文解析部120は、XML問い合わせ文を解析し、XML問い合わせ文解析情報を出力する(図7、ステップ2020)。挿入/更新/削除のXML問い合わせ文は、XMLUpdate、検索のXML問い合わせ文は、XQueryの構文に基づいている。
【0100】
XML問い合わせ解析情報から問い合わせ結果指定部分がdo節なので検索操作を行う構文ではなく(図7、ステップ2030)、また、append関数が指定されているので挿入操作を行う構文と判定される(図7、ステップ2031)。XML−RDBマッピング定義情報170のルート情報を元に挿入用XML文書構造のチェックを行う(図8、ステップ2040)。変数バインド部分のfor節からroot関数の引数であるroot名を取得し、XML−RDBマッピング定義情報170の該当するroot名を持つroot要素を特定する。また、for節に指定するバインド位置で、全XML文書挿入であるか部分XML文書挿入であるかを判定する。バインド指定でパスが指定されていない場合は、全XML文書挿入とみなし、ルート要素が指定されていた場合、部分XML文挿入とみなす(図8、ステップ2041)。これは、本実施例でぇあ、図17(c)に示す格納モデルを想定しているためである。
【0101】
全XML文書挿入であれば(図17(b))、文書キーを払い出し(図8、ステプ2042)、SQL文生成部130は、RDB−XMLマッピング定義情報170とXML問い合わせ文解析情報を参照し、全XML文書挿入用SQLを生成する(図8、ステップ2043)。
【0102】
具体的には、RDB−XMLマッピング定義情報170のルート情報173を参照し、最上位階層の要素から順次階層を辿り、table属性が存在した場合、定義されたテーブル名と、その有効範囲に存在するすべてのcolumn属性に定義された列名を取得し、SQL文を生成する。なお、table属性に付随してratio属性が定義されていた場合、以下のルールに従いSQL文を生成する。
【0103】
・“1:1”の場合:
本属性を持つテーブルに格納する1もしくはN個の要素を1行に格納する。
【0104】
・“1:N”の場合:
本属性を持つテーブルに格納する1もしくはN個の要素をN行に格納する。
【0105】
SQL生成イメージを図18に示す。生成したSQL文をRDB管理システム300で実行し(図8、ステップ2044)、挿入を実行した文書件数を取得し(図8、ステップ2070)、これを問い合わせ結果として出力する(図9、ステップ2087)。
【0106】
部分XML文書挿入であれば(図17(a))、do節に指定されたパスに対応する要素の先祖要素にcolumn属性を持っている要素が存在する場合は、更新対象とみなす(図8、ステップ2050)。RDB−XMLマッピング定義情報170を参照し、テーブル名とカラム名を取得し、問い合わせ条件指定部分(where節)の解析で取得したデータと合わせてSQLを生成する(図8、ステップ2051)。SQL生成イメージを図19に示す。生成したSQLを実行し、更新対象のデータを取得する(図8、ステップ2052)。取得したデータは、DOM木に展開した後、DOM操作によりdo節で指定されたパスに対し挿入を行い、再度XML化する(図8、ステップ2053)。
【0107】
SQL文生成部130は、挿入用SQLを生成し、更新を行ったXMLをデーターベースに再格納する(OracleJBDCドライバの更新可能ResultSet使用)。上記操作をdo節で指定されたパスの要素まで繰り返す(図8、ステップ2050〜ステップ2054)。
【0108】
次に、do節に指定されたパスに対応する要素が子孫要素を持っており、その子孫要素にcolumn属性が定義されていた場合、RDBに格納されていると判断する(図8、ステップ2060)。更新対象のtable属性に対し、ratio属性が“1:1”で定義してある場合(図8、ステップ2061の判定)は、先祖要素と同じ方法で更新を行う(図8、ステップ2064〜ステップ2067)。また、ratio属性が“1:n”もしくは、“1:N”である場合(図8、ステップ2061の判定)は該当するカラムに対して対象のデータを一旦削除した後に挿入を行う。先祖要素の更新時の取得した文書キーでDELETE文を生成し、実行した(図8、ステップ2062)後、既に更新済みの先祖要素を格納しているカラムのデータを元にINSERT文を生成し、実行する(図8、ステップ2063)。SQLの生成イメージを図20に示す。ステップ2060からステップ2066までをRDBに格納されている全ての子孫要素に対して行う。部分XML文書挿入/更新/削除を実行した文書件数を取得し(図8、ステップ2070)、これを問い合わせ結果として出力する(図9、ステップ2087)。
【0109】
(2) XML文書更新(操作フェーズ)
入力されたXML問い合わせ文を元にRDB−XMLマッピング定義情報170を参照してRDBに対してXML文書の更新を行う。図21(a)に示す問い合わせがアプリケーションプログラム200から発行された場合を考える。
【0110】
問い合わせの受理(図7、ステップ2010)、XML問い合わせ文解析(図7、ステップ2020)は、前述の(1)XML文書挿入と同様である。問い合わせ結果指定部分がdo節なので検索操作を行う構文ではなく(図7、ステップ2030)、update関数が指定されているので更新操作を行う構文と判断される(図7、ステップ2031)。XML−RDBマッピング定義情報170のルート情報173を元に挿入用XML文書構造のチェックを行う(図7、ステップ2040)。全XML文書挿入でなく、更新なので(図8、ステップ2041)、以降の処理は、前述の(1)文書挿入で説明したステップ2050からステップ2087と同様であるため、その説明は省略する。
【0111】
(3) XML文書削除(操作フェーズ)
入力されたXML問い合わせ文を元にRDB−XMLマッピング定義情報170を参照して、RDBに対してXML文書の更新を行う。図22(a)(b)に示す問い合わせがアプリケーションプログラム200から発行された場合を考える。
【0112】
問い合わせの受理(図7、ステップ2010)、XML問い合わせ文の解析(図7、ステップ2020)は、前述の(1)XML文書挿入、(2)XML文書更新と同様である。問い合わせ結果指定部分がdo節なので検索操作を行う構文ではなく(図7、ステップ2030)、remove関数が指定されているので削除操作を行う構文と判断される(図7、ステップ2031)。以降の処理は(1)XML文書挿入、(2)XML文書更新したステップ2050からステップ2087と同様であるため、説明を省略する。
【0113】
なお、更新済みの先祖要素を格納しているカラムのデータ内にMDのルート情報で更新対象と見做す要素が存在しなかった場合は、INSERT文生成時に値を指定しない(NULLを挿入する)。本実施例では、図22(a)に示すXML問い合わせ文による削除処理(図23(a))が対応する。また、更新対象の要素がタグのみでテキストノードが存在しなかった場合は、空値(“”)を指定してINSERT文を生成する。本実施例では、図22(b)に示すXML問い合わせ文による削除処理(図23(b))が対応する。
【0114】
(4) XML文書検索(操作フェーズ)
入力されたXML問い合わせ文を元にRDB−XMLマッピング定義情報170を参照してRDBに対してXML文書の検索を行う。図24(a)に示す問い合わせがアプリケーションプログラム200から発行された場合を考える。
【0115】
問い合わせの受理(図7、ステップ2010)、XML問い合わせ文の解析(図7、ステップ2020)は、前述の(1)XML文書挿入、(2)XML文書更新、(3)XML文書削除と同様であるので、その説明を省略する。
【0116】
問い合わせ結果指定部分が、return節なので、検索操作を行う構文と判断される(図7、ステップ2030)。RDB−XMLマッピング定義情報170を参照して、問い合わせ結果指定部分のパスに対応する要素にcolumn属性が存在するので、当該要素はRDBに格納されていると判断される(図9、ステップ2080)。当該要素が格納されているRDBのテーブル名と、カラム名を取得する(図9、ステップ2083)。取得したテーブル名、カラム名と問い合わせ条件指定部分から得られた解析情報を元にSQLを生成/実行する(図9、ステップ2084)。問い合わせ結果指定部分に対応する要素がRDBに格納されているため、XML再構築は不要と判断される(図9、ステップ2085)。該当する要素がRDBに格納されているので、それを問い合わせ結果として出力する(図9、ステップ2087)。
【0117】
図25(a)に示す問い合わせがアプリケーションプログラム200から発行された場合を考える。
【0118】
問い合わせの受理(図7、ステップ2010)から検索操作を行う構文との判定(図7、ステップ2030)までは先程の例と同様である。RDB−XMLマッピング定義情報170を参照して、問い合わせ結果指定部分のパスに対応する要素にcolumn属性が存在しないので、当該要素は、RDBに格納されていないと判断される(図9、ステップ2080)。当該要素の子孫要素を辿り、column属性が存在する要素が出現するまで、子孫要素を辿ってテーブル名、カラム名を取得する(図9、ステップ2082)。これを全ての子孫要素に対して繰り返し、全てのテーブル名、カラム名を取得する(図9、ステップ2081)。取得したテーブル名、カラム名と問い合わせ条件指定部分から得られた解析情報を元に、SQLを生成/実行する(ステップ2084)。問い合わせ結果指定部分に対応する要素がRDBに格納されていないため、XML再構築は必要と判定される(ステップ2085)。図26に示すように、RDB−XMLマッピング定義情報170を参照して、SQLの検索結果からXML文書を問い合わせ結果として生成し(図9、ステップ2086)、出力する(ステップ2087)。
【0119】
なお、上記の準備フェーズ及び操作フェーズをプログラムとして構築し、構造化文書処理装置として利用されるコンピュータにインストールしておき、CPU等の制御手段により実行する、または、ネットワークを介して流通させることも可能である。
【0120】
また、構築されたプログラムを、構造化文書処理装置として利用されるコンピュータに接続される、ハードディスク装置や、フレキシブルディスク、CD−ROM等の可搬記憶媒体に格納しておき、実行時に、コンピュータにインストールして実行させることも可能である。
【0121】
なお、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【0122】
【発明の効果】
上述のように、本発明によれば、XML文書の階層構造に基づいて、重複を許した部分XML文書に分割してRDBと対応付けるマッピング定義情報及び当該定義に則って、入力されたXMLに対する標準的な問い合わせをSQLへ変換することにより、検索の頻度が高いのか、挿入/更新の頻度が高いのかという個々のXML文書の利用形態に応じて、
(1)XML文書全体/部分をRDBの1カラムに格納する。
(2)データ項目毎に分解して複数カラムに格納する。
という2つの格納方法を組み合わせることが可能となる。
【0123】
即ち、RDBを利用してXML文書を扱う際に、検索の高速性と、追加、更新の高速性を両立することが可能となる。
【図面の簡単な説明】
【図1】本発明の原理を説明するための図である。
【図2】本発明の原理構成図である。
【図3】本発明の一実施の形態における構造化文書処理装置の構成図である。
【図4】本発明の一実施の形態におけるRDB−XMLマッピング定義情報に含まれる情報の概要を示す図である。
【図5】本発明の一実施の形態における構造化文書処理装置の全体の概要動作フローチャートである。
【図6】本発明の一実施の形態における準備フェーズのフローチャートである。
【図7】本発明の一実施の形態における操作フェーズのフローチャート(その1)である。
【図8】本発明の一実施の形態における操作フェーズのフローチャート(その2)である。
【図9】本発明の一実施の形態における操作フェーズのフローチャート(その3)である。
【図10】本発明の一実施例のRDB−XMLマッピング定義情報の詳細を示す図である。
【図11】本発明の一実施例のRDBアクセス情報と記述例を示す図である。
【図12】本発明の一実施例のテーブル生成情報と記述例である。
【図13】本発明の一実施例のルート情報と記述例(その1)である。
【図14】本発明の一実施例のルート情報と記述例(その2)である。
【図15】本発明の一実施例のルート情報と記述例(その3)である。
【図16】本発明の一実施例のSQL−DDLの出力例及びテーブルの生成例である。
【図17】本発明の一実施例の操作フェーズにおいて使用する問い合わせと格納モデルである。
【図18】本発明の一実施例の操作フェーズにおけるSQL生成イメージ(その1)である。
【図19】本発明の一実施例の操作フェーズにおけるSQL生成イメージ(その2)である。
【図20】本発明の一実施例の操作フェーズにおけるSQL生成イメージ(その3)である。
【図21】本発明の一実施例の操作フェーズにおいて使用する問い合わせとRDB−XMLマッピング定義情報を示す図(その1)である。
【図22】本発明の一実施例の操作フェーズにおいて使用する問い合わせとRDB−XMLマッピング定義情報を示す図(その2)である。
【図23】本発明の一実施例の操作フェーズのXML文書削除処理において生成するSQLを示す図である。
【図24】本発明の一実施例の操作フェーズにおけるXML文書検索において使用する問い合わせとRDB−XMLマッピング定義情報と生成するSQLを示す図である。
【図25】本発明の一実施例の操作フェーズにおけるXML文書検索において使用する問い合わせとRDB−XMLマッピング定義を生成するSQLを示す図である。
【図26】本発明の一実施例の操作フェーズのXML文書検索において使用する問い合わせとRDB−XMLマッピング定義情報とSQL結果と問い合わせ結果を示す図である。
【符号の説明】
100 構造化文書処理装置
110 アプリケーションプログラムインタフェース部
120 操作判定手段、XML問い合わせ文解析部
130 命令文生成手段、SQL文生成部
140 操作指示手段、RDB管理システムインタフェース部
150 文書件数取得手段、DOM操作部
160 構造化文書出力手段、問い合わせ結果生成部
170 マッピング定義情報、RDB−XMLマッピング定義情報
171 RDBアクセス情報
172 テーブル生成情報
173 ルート情報
200 アプリケーションプログラム
300 データーベース、RDB管理システム
Claims (8)
- データベースを利用して構造化文書の格納、検索、更新及び削除の操作を行う構造化文書処理装置であって、
入力された構造化文書に対する問い合わせを解析し、該問い合わせの要求している操作が挿入か、更新か、削除か、検索かを判定する操作判定手段と、
記憶手段に格納されている前記構造化文書全体、及び、該構造化文書の階層構造に基づいて分割される当該構造化文書の一部をデータベースと対応付けるマッピング定義情報と、
前記マッピング定義情報を参照して、前記操作判定手段の判定に基づいて、入力された前記問い合わせを、前記データベースに対し、挿入/更新/削除/検索のいずれかの操作を行う命令文に変換する命令文生成手段と、
変換された命令文を前記データベースに送信し、操作を実行させる操作指示手段と、
前記命令文が挿入/更新/削除操作のいずれかであれば、該命令文を実行した文書件数を取得する文書件数取得手段と、
前記命令文が検索操作であれば、前記マッピング定義情報を参照して、前記データベースの検索結果を構造化文書として出力する構造化文書出力手段と、を備え、
前記命令文生成手段は、
挿入/更新操作用の構造化文書の構造が正当かを判定する手段と、
前記構造化文書全体を挿入する問い合わせか、あるいは、既に格納されている構造化文書に対し、構造化文書の一部を挿入または構造化文書の全体を更新または構造化文書の一部を更新する問い合わせかを判定する手段と、
前記構造化文書の一部を挿入または構造化文書の全体を更新または構造化文書の一部を更新する問い合わせであれば、前記マッピング定義情報を参照して、該構造化文書の一部に対応する要素の先祖要素が前記データベースに格納されているかを判定する手段と、
前記先祖要素が、前記データベースに格納されていれば、該先祖要素の更新を行うための命令文を生成する更新命令生成手段と、
前記マッピング定義情報を参照して、前記構造化文書の一部に対応する要素の子孫要素が前記データベースに格納されているかを判定する手段と、
前記子孫要素が前記データベースに格納されていれば、該子孫要素の更新を行うための命令文を生成する子孫要素更新命令生成手段と、を含む
ことを特徴とする構造化文書処理装置。 - データベースを利用して構造化文書の格納、検索、更新及び削除の操作を行う構造化文書処理装置であって、
入力された構造化文書に対する問い合わせを解析し、該問い合わせの要求している操作が挿入か、更新か、削除か、検索かを判定する操作判定手段と、
記憶手段に格納されている前記構造化文書全体、及び、該構造化文書の階層構造に基づいて分割される当該構造化文書の一部をデータベースと対応付けるマッピング定義情報と、
前記マッピング定義情報を参照して、前記操作判定手段の判定に基づいて、入力された前記問い合わせを、前記データベースに対し、挿入/更新/削除/検索のいずれかの操作を行う命令文に変換する命令文生成手段と、
変換された命令文を前記データベースに送信し、操作を実行させる操作指示手段と、
前記命令文が挿入/更新/削除操作のいずれかであれば、該命令文を実行した文書件数を取得する文書件数取得手段と、
前記命令文が検索操作であれば、前記マッピング提示情報を参照して、前記データベースの検索結果を構造化文書として出力する構造化文書出力手段と、を備え、
前記命令文生成手段は、
前記マッピング定義情報を参照して、前記構造化文書の一部に対応する要素の先祖要素が前記データベースに格納されているかを判定する手段と、
前記先祖要素が前記データベースに格納されていれば、該先祖要素から対応要素までの更新を行うための命令文を生成する更新命令生成手段と、
前記マッピング定義情報を参照して、前記構造化文書の一部に対応する要素の子孫要素が前記データベースに格納されているかを判定する手段と、
前記子孫要素が前記データベースに格納されていれば、該子孫要素の更新を行うための命令文を生成する子孫要素更新命令生成手段と、
を含むことを特徴とする構造化文書処理装置。 - 前記命令文生成手段は、
挿入/更新操作用の構造化文書の構造が正当かを判定する手段と、
前記構造化文書全体を挿入する問い合わせか否かを判定する手段と、
前記構造化文書全体を挿入する問い合わせであれば、同一の構造を持った複数の構造化文書を識別するための識別子を払い出し、前記マッピング定義情報を参照して、前記データベースに対し挿入を行う命令文へと変換する手段を含む
請求項1または2記載の構造化文書処理装置。 - 前記更新命令生成手段は、
更新対象のデータを取得するための命令文を生成、実行する手段と、
取得した更新対象のデータを更新する手段と、
更新したデータを再度、挿入するための命令文を生成する手段と、
前記データベースに格納されている先祖要素について問い合わせで指定した要素まで、上記の各手段を制御して各手段による処理を繰り返させる制御手段と、
を含む請求項1または2記載の構造化文書処理装置。 - 前記子孫要素更新命令生成手段は、
前記マッピング定義情報を参照して、更新対象の同一要素のデータが前記データベース上で複数行に別々に格納されているのか、一行にまとめて格納されているのかを判定する手段と、
複数行に別々に格納されている場合、データを一旦削除する命令文を生成、実行し、既に更新済みの先祖要素を格納しているデータを元に、該データを再度挿入するための命令文を該データを格納している全子孫要素について生成する手段と、
一行にまとめて格納されている場合に、更新対象のデータを取得するための命令文を生成、実行する手段と、
取得した更新対象のデータを更新する手段と、
更新したデータを再度、挿入するための命令文を生成する手段と、
前記データベースに格納されている子孫要素について問い合わせで指定した要素まで、上記各手段を制御して各手段による処理を繰り返させる制御手段と、
を含む請求項1または2記載の構造化文書処理装置。 - 前記命令文生成手段は、
前記マッピング定義情報を参照して、前記問い合わせに含まれる問い合わせ結果指定部分に対応する要素がそのまま前記データベースに格納されているか否かを判定する手段と、
そのまま前記データベースに格納されていれば、その所在を取得する手段と、
そのまま前記データベースに格納されていなければ、検索結果が出現するまで、前記問い合わせに含まれる問い合わせ結果指定部分に対応する要素の子孫要素を辿りその所在を取得する手段と、
前記取得した所在と、入力された問い合わせから検索のための命令文を生成する手段と、
を含む請求項1また2記載の構造化文書処理装置。 - 請求項1乃至6のいずれか1項に記載の構造化文書処理装置を構成する各手段としてコンピュータを機能させるための構造化文書処理プログラム。
- 請求項7に記載のプログラムを格納したことを特徴とする記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003145414A JP4289022B2 (ja) | 2003-05-22 | 2003-05-22 | 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003145414A JP4289022B2 (ja) | 2003-05-22 | 2003-05-22 | 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004348485A JP2004348485A (ja) | 2004-12-09 |
JP4289022B2 true JP4289022B2 (ja) | 2009-07-01 |
Family
ID=33532595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003145414A Expired - Lifetime JP4289022B2 (ja) | 2003-05-22 | 2003-05-22 | 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4289022B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100714693B1 (ko) | 2005-06-07 | 2007-05-04 | 삼성전자주식회사 | 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법 |
JP5506548B2 (ja) * | 2010-06-01 | 2014-05-28 | 日本電信電話株式会社 | Xmlデータベース管理システム及び方法及びプログラム |
WO2012011915A1 (en) * | 2010-07-22 | 2012-01-26 | Hewlett-Packard Development Company, L.P. | Sql enumerator |
JP6339932B2 (ja) * | 2014-12-26 | 2018-06-06 | エヌ・ティ・ティ・コムウェア株式会社 | データ管理装置、データ管理方法及びデータ管理プログラム |
CN114357051B (zh) * | 2022-01-11 | 2024-08-20 | 天津大学 | 基于原生JSON的SQL与NoSQL数据转换方法 |
-
2003
- 2003-05-22 JP JP2003145414A patent/JP4289022B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004348485A (ja) | 2004-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7318063B2 (en) | Managing XML documents containing hierarchical database information | |
US7386567B2 (en) | Techniques for changing XML content in a relational database | |
US7634498B2 (en) | Indexing XML datatype content system and method | |
US6959416B2 (en) | Method, system, program, and data structures for managing structured documents in a database | |
US8001151B2 (en) | Querying markup language data sources using a relational query processor | |
US7353222B2 (en) | System and method for the storage, indexing and retrieval of XML documents using relational databases | |
JP4352079B2 (ja) | 分散データベースから情報を検索するシステム、装置、および方法 | |
JP5320438B2 (ja) | Xmlデータ記憶、クエリー再書込、ビジュアライゼーション、マッピング、および参照のための方法および装置 | |
US7844633B2 (en) | System and method for storage, management and automatic indexing of structured documents | |
US20020143742A1 (en) | Apparatus, method, and program for retrieving structured documents | |
KR20090028758A (ko) | 정보 재사용 방법, 정보 제공 방법, 편집 가능한 문서, 및 문서 편집 시스템 | |
JP2005190163A (ja) | 構造化データ検索方法、構造化データ検索装置およびプログラム | |
EP1192561A1 (en) | Database management system with capability of fine-grained indexing and querying | |
JP4289022B2 (ja) | 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体 | |
US20050060307A1 (en) | System, method, and service for datatype caching, resolving, and escalating an SQL template with references | |
JP3671765B2 (ja) | 異種情報源問い合わせ変換方法及び装置及び異種情報源問い合わせ変換プログラムを格納した記憶媒体 | |
JP2006031377A (ja) | 構造化文書管理装置、検索装置、記憶方法、検索方法及びプログラム | |
Yu et al. | Metadata management system: design and implementation | |
JP2005056085A (ja) | データ構造変換プログラム | |
JP4724177B2 (ja) | Xmlデータにアクセスするためのインデックス | |
Al-Wasil et al. | Establishing an XML metadata klnowledge base to assist integration of structured and semi-structured databases | |
JP3842574B2 (ja) | 情報抽出方法および構造化文書管理装置およびプログラム | |
JP2004348593A (ja) | 格納検索装置、格納検索方法、格納検索プログラム、および格納検索プログラム記録媒体 | |
Garcia | Business information integration from XML and relational databases sources | |
Chen et al. | Efficient processing of XPath queries using indexes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080722 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080910 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090213 |
|
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: 20090310 |
|
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: 20090323 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4289022 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120410 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130410 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140410 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |