JP5407043B2 - バイナリにエンコードされたxmlデータの効率的な区分的アップデート - Google Patents

バイナリにエンコードされたxmlデータの効率的な区分的アップデート Download PDF

Info

Publication number
JP5407043B2
JP5407043B2 JP2009510957A JP2009510957A JP5407043B2 JP 5407043 B2 JP5407043 B2 JP 5407043B2 JP 2009510957 A JP2009510957 A JP 2009510957A JP 2009510957 A JP2009510957 A JP 2009510957A JP 5407043 B2 JP5407043 B2 JP 5407043B2
Authority
JP
Japan
Prior art keywords
xml document
node
binary format
xml
compact
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.)
Active
Application number
JP2009510957A
Other languages
English (en)
Other versions
JP2009537895A5 (ja
JP2009537895A (ja
Inventor
チャンドラセカール,シバンサンカラン
グプタ,ニチン
マーシー,ラビ
アガーワル,ニプン
ゼードラー,エリック
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2009537895A publication Critical patent/JP2009537895A/ja
Publication of JP2009537895A5 publication Critical patent/JP2009537895A5/ja
Application granted granted Critical
Publication of JP5407043B2 publication Critical patent/JP5407043B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

発明の分野
本発明は概して、データ管理に関する。より詳しくは、関係データベース管理システム(RDBMS)における区分的手法において、コンパクトバイナリにエンコードされたXMLデータを効果的にアップデートする技術に関する。
背景
拡張マークアップ言語(XML)を使用することは、あらゆる種類の情報を表現したり交換したりするために、例えば、コンピュータプログラムのアプリケーションやサービスにおいて情報を交換するなどのために、一般的で有用な技術になってきている。よって、効果的かつ効率的にXMLデータを保存および利用することも、同様に、有用で必要なことになってきている。このため、XMLデータの保存および利用ならびにXMLデータに対するアクセスをサポートするために増強されたデータベースもある。データモデルとしてXMLを用いる用途において主に要求されることの一つに、スキーマの柔軟性がある。しかしながら、XMLデータを保存するデータベースは、伝統的に、スキーマの柔軟性に関して最適化されたものではない。そのようなデータベースは、スキーマが提供されてそのスキーマが変化しにくいような場合においては効率的に動作し得るが、スキーマが変わりやすい場合、または、スキーマが大まかにしか構築されていない場合には、これらのデータベースは、XMLをサポートするための適切さを欠いたものになる。
XMLデータは、自己記述的なものである(すなわち、データとともにタグを含んでいる)が、標準的なXMLの並列化フォーマットは、テキストベースのものであり、数字や日付を含んでいる。このため、同じデータを収集する場合でも、XML文書のサイズは、他の独自仕様のフォーマットに比して、著しく増大してしまう結果となる。XML文書のサイズが増大すると、ネットワーク帯域が限られているために、伝送に関する諸経費がかさむうえ、ディスクのI/O帯域幅が限られているために、保存および回復処理の動作が遅くなる。したがって、保存とクエリの利益を提供しつつスキーマの柔軟性を最大化しようとするXMLデータのためのバイナリエンコーディング形式が導入された。このバイナリエンコーディング形式は、Ravi Murthy他により出願された、「効率的な保存および処理のための階層的に組織化されたデータのエンコーディング」と題する米国特許出願第11/182,997号(「Murthy出願」)に記載されており、その全ての内容が、参照することにより、本明細書に完全に記載されているかのように、あらゆる目的のために組み込まれる。
Murthy出願に記載されているエンコーディングフォーマットを用いて、XMLデータがコンパクトバイナリ形式で保存される。コンパクトバイナリ形式は、使用に適した形式のXMLデータの全ての特徴を維持するものである。使用に適した形式とは、例えば、データの基礎となる階層型構造(例えば、データモデルまたはインフォセット)、要素および属性の概念などのものである。このようなコンパクトバイナリフォーマットは、XMLタグに関するオーバーヘッドを著しく最小化する。したがって、エンコードされたXMLは、対応するテキスト文字表現のバイナリ表現に比してコンパクトなものになる。このバイナリフォーマットでは、データが効率的に事前に構文解析(pre−parse)されるので、構文解析よりも効率的に処理できる。
データベース内のXML文書の修正については、新しいノードを挿入することによって
、および、既存のノードを変更するか削除することによって、可能となる。なお、本明細書では、これらについて、まとめてアップデート操作と称することとする。XMLデータを操るアプリケーションの性質しだいでは、これらのタイプの操作を相対的に共通なものにできる。しかしながら、既存のXMLデータ保存システムでは、バイナリにエンコードされたXML文書をアップデートする効率的な手段を得ることはできない。このようなシステムは、典型的には、XML文書の全体を、オブジェクトツリー形式(例えばDOM)でローカルメモリ(例えばRAM)に読み込み、メモリ内でデータを変更し、アップデートされたDOMツリーを変換して、保存に適したバイナリ形式に戻すようになっている。このプロセスは、一般的には非効率的であり、拡張性および性能に関する問題につながる。これは、ひとつには、ローカルメモリ内に、XML文書の全体を実体化する必要があることに起因する。さらに、既存のXMLデータ保存システムのなかには、非常に特殊なXMLスキーマを得ることができた場合には、XMLデータをアップデートするための最適化された技術をもたらし得るものもある。しかしながら、これらのシステムでは、XMLスキーマが極めて非拘束的である場合、または、使用可能なXMLスキーマが無い場合に対しては、適切に対処できない。
したがって、上記した点に基づき、データベースに永続的に保存されているXMLデータを、効率的にアップデートするための技術が必要である。
なお、この項目内で記述されるアプローチは、実行可能なアプローチであるが、過去に想到されたり実行されたりしたアプローチであるとは限らない。このため、別途に示すことのないかぎり、この項目内で記述されたアプローチのいずれについても、この項目に記載されているという理由で、ただの従来技術であると決めつけてはならない。
図面の簡単な説明
本発明を、添付の図面の個々の図に示された例を用いて、これらに限定されることなく説明する。なお、これらの図面では、同様の部材については同様の参照番号を付している。
図1は、本発明の実施形態に関し、XML文書に対する要求された修正に対応するタプル変更を生成する処理を示すフロー図であり、このXML文書は、コンパクトバイナリ形式でデータベース内に永続的に保存されているものである。 図2は、本発明の実施形態に関し、コンパクトバイナリにエンコードされたXMLデータに対するアップデートを、対応するタプル変更において表現する方法の例を示す図である。 図3は、本発明の実施形態を実施することが可能なコンピュータシステムを示すブロック図である。
発明の実施形態の詳細な説明
以下の記載では、説明のために、多数の個々の詳細を記述する。これは、本発明を深い理解をもたらすためである。しかしながら、本発明は当然、これらの個々の詳細がなくとも実施できるものである。他の例では、周知の構造および装置をブロック図の形で示している。これは、本発明が不明瞭になってしまうことを回避するためである。
本発明における機能の概要
本明細書に、データベースに保存されたXMLデータをアップデートするための技術について説明する。既存の技術では、使用に適した形式のXMLデータの全特徴を維持するようなコンパクトバイナリ形式を用いることで、XML文書を表現し解釈することが可能
である。このようなXMLのコンパクトバイナリ表現については、次いでラージオブジェクト(例えばバイナリ・ラージ・オブジェクト(binary large object、すなわちBLOB)として、永続的に(例えばディスクに)保存してよい。コンパクトバイナリ形式で保存されているXML文書に対して要求された修正(例えば、挿入、削除、ノードのアップデート)に応じて、要求された修正に関する特定の表現が演算される。これは、この特定の表現をXML文書のバイナリ形式に対して直接に適用するためである。したがって、要求された修正は、永続的に保存されているバイナリ形式に対して直接適用される。このとき、XML文書のオブジェクトツリー(例えばDOM)を構築することもないし、および/または、XML文書を対応するテキスト形式に構築または実体化することもない。
実際に変更を必要としているXML文書におけるノードが特定される。この被影響ノード(affected node)の特定には、バイナリ表現中のどこにこの実際の変更を行う必要があるのか、例えば、実際の変更が始まるのは何バイトからなのか、の特定が含まれる。したがって、実際の変更が始まるのは何バイトからなのかを、「宛先オフセット」パラメータとして、要求された修正の表現内に含めることになる。しかしながら、XMLデータ用として適切なコンパクトバイナリ形式を用いる場合、バイナリ表現中のどこから実際の変更が開始するのかを特定することは、被影響ノードまたはノードが表現されている範囲(またはバイト数の範囲)を単純に特定することほど簡単ではない。これは、適切なバイナリ形式が、個々のXML文書における既知の構造的特質および制限を有効に利用しているためである。この構造的な特徴および制限としては、例えば、対応するXMLスキーマによって文書に付与されているものが挙げられる。この付与は、XML文書をコンパクト化する目的であり、概してタグによるトークン化(tokenization
of tags)、によって、および、OPコードを使用することによってなされる。例えば、同じタグが複数回繰り返される場合、または、XMLスキーマが要素の次数(order of elements)を制約している場合、適切なバイナリ形式を用いることで、対応するトークンIDを回避することが可能となる。したがって、バイナリ表現中のどこにこの実際の変更を行う必要があるのかについての演算では、XML文書がエンコードされたコンパクトバイナリ形式の性質を考慮するようにしてもよい。Murthy出願には、XMLデータをエンコードするコンパクトバイナリ形式の非限定的な好ましい実施例に関する非常に詳細な記述があるので、これを参照されたい。
上記宛先オフセットパラメータに加えて、要求された修正の表現には、XML文書のバイナリ形式に実際の変更をインターリーブ(交互配置)するために十分な情報が含まれている。例えば、個々のアップデートノードに対応する特定の一連のバイトについて、XML文書全体を上書きすることなく、変更、追加または削除することが可能である。
環境ストレージシステムの操作
データベースシステムは、典型的には、1以上のクライアントを含んでいる。このクライアントは、データベースサーバに対して通信可能に接続されている。このデータベースサーバは、共用のデータベースに接続されている。「データベースサーバ」とは、サーバインスタンスおよびインスタンスが実行されているサーバマシンの一団をひっくるめた表現である。概して、サーバは、統合型ソフトウェアコンポーネントと、計算資源に関する記憶割当てとの組み合わせである。この計算資源とは、例えば、メモリ、ノード、および、統合型ソフトウェアコンポーネントをプロセッサにおいて実行するためのノード上のプロセスなどである。このようなソフトウェアと計算資源との組み合わせは、サーバのクライアントの利益になるような特種の機能を提供するために設けられているものである。
データベース管理の他の機能の中には、特定のデータベースにアクセスしたいというクライアントの要求を処理するにあたって、データベースサーバが、そのデータベースへの
アクセスを制御および促進する。クライアントがサーバと情報交換できるように、クライアントのためのセッションが確立される。データベースセッションなどのセッションは、クライアントからデータベースサーバなどのサーバに対して確立される個々の接続のことである。セッションを介して、クライアントは、一連の要求(例えば、データおよび/またはメタデータに対する要求)をデータベースサーバに対して出力できる。
データベースは、データおよびメタデータを含むものである。これらは、ハードディスクの組ような永続的メモリ機構に保存されている。これらのデータおよびメタデータは、論理的には、データベースに保存してもよい。この保存については、例えば、リレーショナルデータベース構成および/またはオブジェクトリレーショナルデータベース構成にしたがって行い得る。データベースアプリケーションは、データベースサーバにコマンドを出力することによって、データベースサーバと情報を交換する。このコマンドは、データベース内に保存されているデータに対する操作を、データベースサーバに実行させるためのものである。データベースアプリケーションからデータベースサーバに送られるデータベースコマンドは、データベースコマンドのオリジナルステートメントを含んでいる。データベースサーバがコマンドを処理できるように、コマンドは、データベースサーバによってサポートされたデータベース言語に準拠したものでなければならない。多くのデータベースサーバによってサポートされているデータベース言語の1つに、ストラクチャード・クエリ・ラングウェッジ(SQL)として知られているものがあるが、これに限られるわけではない。
概して、データは、1以上のデータコンテナ内のデータベースに保存される。各コンテナはレコードを含んでおり、各レコード内のデータは、1以上のフィールドに体系化される。リレーショナルデータベースシステムでは、データコンテナは、概してテーブルと呼ばれ、レコードは行と呼ばれ、フィールドは列と呼ばれる。オブジェクト指向のデータベースでは、データコンテナは一般的にはオブジェクトクラスと呼ばれ、レコードはオブジェクトと呼ばれ、フィールドは属性と呼ばれる。他のデータベース構造は、他の専門用語が使用されるであろう。本発明を実施するシステムは、データコンテナまたはデータベース構造の特定の種類に限定されない。しかしながら、説明の便宜のために、本明細書において用いられる実施例および専門用語については、典型的にリレーショナルデータベースに関連したものとする。このため、データコンテナ、レコードおよびフィールドを示すために、それぞれ「テーブル」、「行」および「列」という用語を本明細書では使用する。
リレーショナルデータベースシステムは、特定の種類のデータに関する保存、管理およびクエリに対する(したがってデータのレポジトリとしての機能に対しても)ネイティブサポートを提供することにまで拡張し得る。例えば、XML文書をデータベースに直接に保存できるような特徴および技術によって、伝統的なリレーショナルデータベースシステムを増補してもよい。また、XML中心の手法(例えば、XPathおよびXQuery照会言語を用いた手法)または関係中心の手法(例えば、SQL照会言語を用いた手法)で、かかるXMLデータにアクセスできるような特徴および技術によって増補してもよい。このようなレポジトリは、XMLレポジトリまたはXMLデータベース(すなわちXDB)と称されることもある。
XML文書のアップデート
XML文書に対するXMLノードの挿入、アップデートおよび/または削除によって、XML文書を修正することができる。XML文書を修正するための要求は、XML文書を特定し、変更されるノードをXPathその他のパスネーム表現によって特定し、新しい値を付与することによって表現できる。要求される可能性のある1組の操作について、以下に示す。
(1)新しいノードの追加;ユーザは、XPathその他のパスネーム表現を用いて、目
的のノードまたは親ノードを特定し、挿入すべき子ノード用の値を定めることができる。XML文書内における新しいノードの挿入位置は、例えば、新しいノードの挿入位置の前にある目的のノードを特定することによって(例えば、insertChild()コマンド)、または、親ノードを特定し、特定された親ノードの最後の子として挿入すべき子ノードを付与することによって(例えば、appendChild()コマンド)、特定することができる。
(2)既存のノードのアップデート:ユーザは、XPathその他のパスネーム表現を用いて目的のノードを特定し、アップデートすべき目的のノード用の値を定めることができる。
(3)ノードの削除:ユーザは、XPathその他のパスネーム表現を用いて、削除の対象である目的のノードを特定することができる。
上記したように、伝統的なXML保存システムは、通常、XML文書の全体を、ローカルメモリにロードして、要求された操作を実行するようになっている。しかしながら、これは動作を遅くする非効率的なプロセスである。このため、一実施形態では、保存されたXML文書のコンパクトバイナリ表現を、XMLデータ修正要求に基づいて、直接アップデートする。すなわち、ローカル揮発性メモリにロードすることなく、XML文書を、永続的な保存装置(例えば、ディスクのような不揮発性メモリ)上で直接的にアップデートしてもよい。または、アップデートのためにXML文書をローカル揮発性メモリにロードするとき、オブジェクトツリーとしてではなく、コンパクトバイナリ表現でロードするようにしてもよい。このコンパクトバイナリ表現は、テキストのXMLを単純にバイナリフォーマットで表現したものに比べてコンパクトである(例えばMurthy出願を参照)。
データベースに保存されたXML文書のアップデートに関する効率的なプロセス
上記したように、XML文書のコンパクトバイナリ形式に対して直接適用するために、XML文書の変更に関する特定の表現が演算される。実施形態にしたがうと、このような変更は、パラメータ値の組によって表現され、本明細書において「タプル変更」と呼ばれる。概して、図1はタプル変更を生成するためのプロセスを示すフロー図である。
図1は、本発明の実施形態にかかる、タプル変更を生成するプロセスを示すフロー図である。このタプル変更は、コンパクトバイナリ形式でデータベース内に永続的に保存されているXML文書に関して要求された修正に対応したものである。図1に示した方法は、1以上の命令のシーケンスを実行することによって遂行することが可能である。命令のシーケンスは、例えばコンピュータシステム(図3におけるコンピュータシステム300)が備えているような、1以上のプロセッサによって実行される。
ブロック102では、コンパクトバイナリ形式でデータベースに保存されているXML文書のコンテキスト内にある、XML文書に対する修正の要求を受信する。例えば、XMLデータの保存および管理をサポートしているデータベースシステム内のデータベースサーバが、SQLまたはSQL/XMLステートメントを受信する。かかるステートメントは、典型的には、(a)アップデート対象のXML文書、(b)特定されたXML文書内の、アップデートされているノードに応じた1以上のパスネーム(例えばXPaths)、(c)アップデートされているノードに対応する新しい値、を特定する。
ブロック104では、XML文書において修正を要求されている1以上のノードを、修正要求に基づいて特定する。修正要求において特定されたパスネームに基づいて被影響ノードを特定するために、データベースに保存されているXMLデータを探すさまざまなアプローチを用いてよい。データベースに保存されているXMLデータを探すアプローチの非限定的な例としては、XMLインデックス、ストリーミングXPath評価(例えば非決定性有限状態オートマトン(例えば、nondeterministic finite state automaton、すなわちNFA)などの使用が挙げられる。さらに、永続的な保存装置に保存されているXML文書のコンパクトバイナリ形式は、究極的には、バイナリ・ラージ・オブジェクト(BLOB)としてもよい。このような場合には、ブロック104は、被影響ノード(単数または複数)が直列バイナリ形式で表現されているBLOB内での正確な位置を特定する工程を含んでもよい。
ブロック106では、要求された修正が1以上のノードにおけるコンパクトバイナリ形式どのように影響を与えるのかについて演算する。例えば、ノード値が「1」から「1000」に変わる場合、コンパクトバイナリ形式ではどのように「1000」を表現するのか、について演算する。さらに他の例を挙げると、ノード値が整数型の「1」からフロート型の「1000」に変わる場合、コンパクトバイナリ形式ではどのようにフロート型の「1000」を表現するのか、について演算する。これは、コンパクトバイナリ形式では、Murthy出願に記載されているように、そのネイティブなデータタイプを用いて値を保存している可能性があるからである。一実施形態では、コンパクトバイナリ形式で表現された1以上のノードのための「新しい値」を演算し、XML文書に対する要求された修正に関する特定の表現(例えばタプル変更)を用いて、パラメータとして表現する。これは、例えばブロック110において実施される。一実施形態では、前記新しい値は、要求された修正が特定された1以上のノードに与える直接の効果を越えた、要求された修正がコンパクトバイナリ形式に与えるあらゆる効果について考慮に入れている。これについては、より詳しく後述する。このように、新しい値は、古い値を交換するためにコンパクトバイナリ形式のバイトストリングに挿入された、一連のバイトにおける正味の値を表現したものである。
さらに、「1000」を表現することは、「1」を表現するよりも、おそらく多くのバイト数を必要とする。このため、「新しい値の長さ」を、ブロック106の一部において演算するようにしてもよい。一実施形態では、1以上のノードのための新しい値の長さを演算し、XML文書に対する要求された修正に対応するタプル変更におけるパラメータとして表現する。これは、例えば、ブロック110において実施される。一実施形態では、前記新しい値は、要求された修正が特定された1以上のノードに与える直接の効果を超えた、要求された修正がコンパクトバイナリ形式に与えるあらゆる効果について考慮に入れている。これについては、より詳しく後述する。
コンパクトバイナリ形式(すなわち、文字ベースのXML内容に関する単純なバイナリ表現ではない)で保存されているXML文書に関しては、1つのノードに対する変更が、その1つのノードに対する直接の効果を越えて、コンパクトバイナリ表現に対しても影響することがある。例えば、Murthy出願は「アレイモード最適化(array mode optimization)」と呼ばれる技術について記載している。この技術によれば、同一のタグが複数回繰り返されている場合には、対応するトークンIDを繰り返さないようになっている。このように、ノードを追加または削除することで、タグシーケンスに影響を与え得る。そして、これにより、コンパクトバイナリエンコーディングのスキームにおけるアレイモード最適化成分にも影響を与え得る。例えば、Murthy出願は、「スキーマシーケンシャル最適化」と呼ばれる技術について記載している。これによれば、メタデータ(例えば、XMLスキーマ)に関連する構造により、要素の順序が、特定の順序となるように強制される。このため、エンコーディングにおいて、XMLデータモデルを利用することによるトークンIDを不要にすることができる。このように、XMLスキーマに対する変更(例えばDDL操作を介するもの)により、XML文書に、これに対応する変更が誘発される。これは、スキーマへの準拠を維持するためである。XMLスキーマに対するこのような変更と、その結果生ずる対応するXML文書に対する変更は、究極的には、ドキュメントにおける要素の順序に影響を及ぼし得る。したがって、コン
パクトバイナリエンコーディングのスキームにおけるスキーマシーケンシャル最適化成分にも影響を与え得る。
そこで、ブロック108では、要求された修正が1以上の特定されたノードに与える効果を越えて、要求された修正がXML文書のコンパクトバイナリ形式にどのように影響するのか、について演算する。一実施形態では、要求された特定の修正に関してコンパクトバイナリ形式に与えられるこのような正味の効果の全体を、コンパクトバイナリ形式に挿入するための「新しい値」として表現する。このため、要求された特定の修正に関してコンパクトバイナリ形式に及ぼされる全体的な効果に関する新しい値を演算し、要求された修正に対応するタプル変更におけるパラメータとして表現する。これは、例えば、ブロック110において実施される。同様に、コンパクトバイナリ形式に対するこのような影響全体を、要求された修正に対応するタプル変更において、対応する「新しい値の長さ」のパラメータとして表現する。これは、例えば、ブロック110において実施される。つまり、要求された修正がコンパクトバイナリ形式に与える直接的な効果および間接的な効果は、たとえあったとしても、演算され、「新しい値」および「新しい値の長さ」という対応するパラメータとして、対応するタプル変更において共に表現される。
要求された修正による効果の表現
ブロック110では、要求された修正がXML文書のコンパクトバイナリ形式に与える実際の効果を表現するパラメータを演算し、例えば対応するタプル変更を用いて表現する。次いで、このタプル変更は、データベースに永続的に保存されている、または揮発性メモリにローカルに保存されている、XML文書のコンパクトバイナリ形式に適用することが可能である。一実施形態では、XML文書のコンパクトバイナリ形式に対する要求された修正による効果が、<destOffset,changedLen,newValue,newValueLen>のようなタプル変更の形式で表現される。上述のタプル変更パラメータを指すために用いられる名称は、実施状況に応じて異なる可能性がある。このように、タプル変更の成分については、上述のパラメータ名に限定されない。
BLOBの性質が実施状況に応じて異なることには注意すべきである。このため、XML文書のコンパクトバイナリ表現を保存しているBLOBには、挿入および削除に対応している種類のものもある一方で、他のタイプのBLOBは対応していない。言い換えると、BLOB内のどこにおいても、必ずしも残余バイトを最後まで書き換える必要なく隣接するバイトからなる群を挿入または削除することの可能なBLOBもある、ということである。これに対して、挿入/削除ポイントの開始後にBLOBの全体を上書きしなければ、隣接するバイトからなる群を挿入または削除することの不可能なBLOBもある。本明細書において記載した技術は、BLOBの性質に関わらず、タプル変更パラメータの演算時に、BLOBの特徴を明確化することの可能なものである。
図2は、本発明の実施形態に関し、コンパクトバイナリにエンコードされたXMLデータに対するアップデートが、対応するタプル変更においてどのように表現されるか、についての例を示す図である。
要求された修正による効果の生じたポイントを表現するために、コンパクトバイナリ形式における「destOffset(宛先オフセット)」というパラメータを使用する。このように、この宛先オフセットは、要求された修正を介してアップデートされている、少なくとも第1アトミックノード(バイナリ形式で現れる)については、要求された修正の開始されるコンパクトバイナリ形式におけるオフセット位置を特定する。一実施形態では、この宛先オフセットを、コンパクトバイナリ形式の先頭からのバイト数として表現する。上記したように、宛先オフセットは、要求された修正の影響を直接受ける特定されたノードにおける、現実の開始位置でなくてもよい。むしろ、宛先オフセットは、コンパク
トバイナリ形式の性質を考慮して、コンパクトバイナリ形式に対する現実の変更の開始される位置を特定する。例えば、要求された修正がバイナリ形式に与える実際の効果は、バイナリ形式において、ノード値の位置より前の位置から開始され得る。
図2に示した例では、1つのノードのみがアップデートされており、そのノードの古い値が、コンパクトバイナリ形式で、16バイト、すなわち、バイト227〜243で表現されていると仮定している。さらに、アップデートされたノードのためのタグ名が変更されて、コンパクトバイナリエンコーディングのスキームにおける関連するアレイモード最適化成分が変更されることになる、ということも前提としている。例えば、第5の<lineltem>タグが、対応するXML階層における同一の位置で、他の何らかのタグに変更されることにより、5つの連続した<lineltem>タグが分離される。このため、このノードに対する変更は、ノードの変更だけにとどまらず、コンパクトバイナリ形式に影響を与える。すなわち、アレイモード最適化における変更を反映して、前記ノードの前の数バイトが変更される必要がある。他のバイトに対するこのような効果のために、バイナリ形式に対する正味の効果は、実際には、バイト227からではなくバイト222から開始される。このように、このアップデートに関する宛先オフセットは、バイトストリングにおいてバイナリ形式に対する変更が開始されるバイト222を示す222である。
「changedLen(変更された長さ)」というパラメータは、アップデートされたノードにおける変更された、すなわち古い値を、そのコンパクトバイナリ形式で表現するために用いられる。上記したように、この例では、そのノードの古い値は、16バイトのコンパクトバイナリ形式で表現される。このため、このアップデートについて変更された長さは16バイトである。
「newValue(新しい値)」というパラメータは、ノードのアップデートに起因するコンパクトバイナリ形式に対する変更全体に関する新しい値を表現するために用いられる。この新しい値は、対応するコンパクトバイナリ形式で表現されており、アップデートされたノードを超えてバイナリ形式にまで及んでいるあらゆる効果を含んでいる。「newValueLen(新しい値の長さ)」というパラメータは、ノードのアップデートに起因するコンパクトバイナリ形式に対する変更全体に関する新しい値の長さを、バイトで表現するために用いられるものである。この新しい値は、対応するコンパクトバイナリ形式で表現されている。したがって、このアップデートに関する新しい値の長さは21バイト、すなわち、宛先オフセットバイト222からノードの終端のあるバイト234までである。この例では、16バイトで記述された古いノード値を表現するバイトのストリングは、新しいノード値およびこのノード値によるバイナリ形式の残部に対する効果を表現する、21バイトの新しいストリングと入れ替えられる。
一人のユーザがアップデート操作をすると、修正要求に含まれているXPathによって特定されるノードの数に基づいて、多数のタプル変更のなされる可能性がある。一実施形態では、これら一揃いのタプル変更は、本明細書において「atom−diff−XML」と称されるXML変更文書によって表現される。この「atom」は、初歩的な変更操作を意味する。上記したように、この「atom−diff−XML」は、コンパクトバイナリ形式に対する修正要求から生ずる変更を表現するものであり、対応する保存容量に基づく基本記憶領域に適用することができる。例えば、この記憶領域が区分的アップデートをサポートしている場合、「atom−diff−XML」において表現される初歩的な変更操作は、根本的な基本記憶領域の構成に直接変換される。この記憶領域が上書き能力しかサポートしていない場合(長さを増やしたり減らしたりできない場合)、第1の変更(文書の順序に基づく変更)を超えて全てが上書きされることにより、「atom−diff−XML」によって表現された要求された変更の全てが、根本的な基本記憶領域
の構成に適用される。
図2を参照して記載した例のようなノードアップデート操作に加えて、ノードを挿入したり削除したりしてもよい。新しいノードをXML文書に挿入すると、コンパクトバイナリ形式にバイトが追加される。周囲のノードおよび周囲のノードの対応するバイナリ表現に対する新しいノードによる効果があれば、それを考慮しながら、宛先オフセットにより、バイトストリング内のどこに新しいノードを挿入するのかを特定する。同様に、ノード挿入操作に対応する新しい値および新しい値の長さにも、新しいノードおよび新しいノードによるコンパクトバイナリ表現に対する効果全体が考慮される。新しいノードを追加しているとしても、変更された長さのパラメータ(「古い」長さ)に関する対応する値を残すようにしてもよい。これは、新しいノードが、周囲のノードのコンパクトバイナリ表現に影響を与える可能性があるからである。したがって、このような場合、新しいノードの挿入によって影響を受ける周囲のノードに関する古い表現がある場合には、変更された長さのパラメータは、それを表現するものとなる。同様に、新しいバイナリ表現がyバイトで構成されている場合、XML文書からノードを削除してバイト数xをバイト数yで置換するようにしてもよい。これは、ノードを削除すると、他のノードのバイナリ表現に影響を与える可能性があるからである。要約すれば、XML文書に対するノードのアップデート、削除、または追加のいずれにおいても、タプル変更に関する値は、ノードに対する変更とともに、このノードの変更が他のノードのコンパクトバイナリ表現に与える効果を反映する。
したがって、目的のXML文書の全体をDOMツリーとしてメモリ内に実体化することなく、ユーザ・アップデート・ステートメントを適用するための技術が示されている。これにより、他の技術に比して、よりよい性能および拡張性を得ることが可能となる。
ハードウェアの概観
図3は、本発明の実施形態を実現し得るコンピュータシステム300を示すブロック図である。コンピュータシステム300は、バス302または情報通信用の他の通信機構と、情報を処理するためにバス302に接続されているプロセッサ304と、を備える。コンピュータシステム300は、さらにランダムアクセスメモリ(RAM)または他の動的記憶装置などのメインメモリ306を備える。このメインメモリ306は、バス302に接続され、情報およびプロセッサ304により実行される命令を保存する。メインメモリ306は、プロセッサ304により実行される命令の実行中に、一時的な変数または他の中間情報を保存するためにも用いられる。コンピュータシステム300は、読み出し専用メモリ(ROM)308または他の静的記憶装置をさらに備える。これは、バス302に接続され、静的な情報およびプロセッサ304のための命令を保存する。磁気ディスクまたは光ディスクなどの保存装置310が設けられ、バス302に接続され、情報および命令の保存に用いられる。
コンピュータシステム300は、バス302を介して、陰極線管(CRT)などのディスプレイ312に接続されてよい。このディスプレイ312は、コンピュータのユーザに情報を表示するためのものである。入力装置314は、英数字やその他のキーを備えており、バス302に接続され、プロセッサ304に情報およびコマンドの選択を伝達する。カーソル制御装置316は、マウス、トラックボール、またはカーソル移動キーなどの、他の種類のユーザ入力装置である。このカーソル制御装置は、プロセッサ304に方向情報およびコマンドの選択を伝達するとともに、ディスプレイ312上でのカーソルの動きを制御する。この入力装置は、典型的には、第1軸(例えばx)および第2軸(例えばy)からなる2つの軸に関する、2つの自由度を有しており、これにより、同装置が平面内で位置を特定することが可能となる。
本発明は、本明細書に記載した技術を実行するためのコンピュータシステム300の使用に関するものである。本発明の一実施形態にしたがうと、これらの技術は、メインメモリ306に格納されている1以上の命令の1以上のシーケンスをプロセッサ304が実行することに応じて、コンピュータシステム300によって遂行される。これらの命令は、保存装置310などのコンピュータ読み取り可能な他の媒体から、メインメモリ306に読み込むようにしてもよい。メインメモリ306に格納されている命令シーケンスは、プロセッサ304に、本明細書に記載の処理ステップを実行させる。代替の実施形態では、本発明を実施するためのソフトウェア命令に代えて、またはこれと組み合わせて、配線接続された回路を使用してもよい。このように、本発明の実施形態は、ハードウェア回路およびソフトウェアの特定の組み合わせに限定されない。
本明細書において用いている「マシン読み取り可能な媒体」という語は、特定の方法で装置を操作することの可能なデータの供給に関与している、あらゆる媒体を示すものである。コンピュータシステム300を用いて実施される実施形態では、マシン読み取り可能なさまざまな媒体の使用を伴う。例えば、プロセッサ304に命令を与えて実行させることにおいてなどである。このような媒体は多様な形態を取ることが可能であり、例えば、不揮発性の媒体、揮発性の媒体および伝送媒体が挙げられるが、これらに限定されない。不揮発性の媒体としては、例えば、保存装置310のような、光学ディスクまたは磁気ディスクが挙げられる。揮発性の媒体としては、メインメモリ306のような、ダイナミックメモリが挙げられる。伝送媒体としては、同軸ケーブル、銅線、光ファイバーが挙げられる。この伝送媒体には、バス302を構成するワイヤも含まれる。伝送媒体は、無線および赤外線データ通信中に生成されるような、音波または光波の形態を取ることも可能である。
マシン読み取り可能な媒体における一般的な形態としては、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または他の磁気媒体、CD−ROM、他のあらゆる光媒体、パンチカード、紙テープ、穴のパターンを有する他のあらゆる物理的媒体、RAM、PROM、EPROM、フラッシュ−EPROM、他のあらゆるメモリチップまたはメモリカートリッジ、後述するような搬送波、または、コンピュータが読み取れる他のあらゆる媒体、が挙げられる。
1以上の命令に関する1以上のシーケンスをプロセッサ304に伝えて実行するには、さまざまな形態のマシン読み取り可能な媒体を用いてよい。例えば、リモートコンピュータの磁気ディスクに対して、最初に命令を伝送する構成としてもよい。リモートコンピュータは、モデムを利用した電話線を介して、ダイナミックメモリに命令をロードできるとともに、この命令を送信することが可能である。コンピュータシステム300に配されたモデムは、電話線を介してデータを受信し、赤外線送信装置を用いてデータを赤外線信号に変換することが可能である。この赤外線信号で運ばれるデータは、赤外線検出器によって受信することが可能であるとともに、適切な回路によってバス302に置くことができる。バス302は、メインメモリ306にデータを運ぶ。プロセッサ304は、そこから命令を取り出して実行する。メインメモリ306によって受信された命令は、プロセッサ304によって実行される前または実行された後に、光学的に保存装置310に保存してよい。
コンピュータシステム300は、バス302に接続された通信インターフェイス318も備える。通信インターフェイス318は、ネットワークリンク320を介した双方向データ通信を可能とするものである。このネットワークリンク320は、ローカルネットワーク322に接続されている。例えば、通信インターフェイス318は、総合デジタル通信網(ISDN)カード、または、電話線の種類に応じたデータ通信接続を可能とするモデムであってよい。他の例として、通信インターフェイス318は、ローカルエリアネッ
トワーク(LAN)に適したデータ通信接続を可能とするLANカードであってもよい。また、ワイヤレスリンクを実装してもよい。このようなあらゆる実施において、通信インターフェイス318は、さまざまな種類の情報を表現するディジタル・データ・ストリームを搬送するための、電気信号、電磁信号、または光信号を送受信するようになっている。
ネットワークリンク320は、典型的に、1以上のネットワークを介して、他のデータ装置に対するデータ通信を行う。例えば、ネットワークリンク320は、ローカルネットワーク322を介してホストコンピュータ324との間で、または、インターネット・サービス・プロバイダ(ISP)326によって操作されるデータ装置との間で、接続を確立してもよい。そして、ISP326は、全世界的なパケットデータ通信ネットワークを介して、データ通信サービスを提供するものである。このパケットデータ通信ネットワークは、現在では、一般に「インターネット」328と呼ばれるものである。ローカルネットワーク322およびインターネット328は、ともに、ディジタル・データ・ストリームを搬送する電気信号、電磁信号、または光信号を利用する。さまざまなネットワークを介して得られる信号、および、通信インターフェイス318を介して得られるネットワークリンク320上の信号は、コンピュータシステム300に対してディジタルデータを入出力するものであり、情報を移送する搬送波の典型的な形態である。
コンピュータシステム300は、プログラムコードを含むメッセージおよび受信データを送信することも可能である。この送信は、ネットワーク、ネットワークリンク320および通信インターフェイス318を介してなされる。インターネットを用いた例では、サーバ330が、インターネット328、ISP326、ローカルネットワーク322および通信インターフェイス318を介して、アプリケーションプログラムのために要求されたコードを送信することも可能である。
受信されたコードは、受信されたままの状態でプロセッサ304によって実行するようにしてもよいし、および/または、後で実行するために、保存装置310または他の不揮発性保存装置に記憶するようにしてもよい。この方法では、コンピュータシステム300は、搬送波の形態をなしているアプリケーションコードを得てもよい。
上記した明細書においては、本発明の実施形態を、実施ごとに異なり得る多数の個々の詳細を参照しながら説明してきた。したがって、本発明が何なのか、および、出願人が発明であると意図しているものは何なのか、についての唯一かつ排他的な指標は、後に補正される部分も含む本願における一連の請求項であり、これらは、請求項に由来する特定の形態で記載されている。かかる請求項に含まれている用語に関して本明細書において明確に説明した全ての定義は、請求項において使用されているようなこれらの用語の意味を規定している。よって、請求項に明確に記載されていない限定、要素、特質、特徴、長所または属性は、いかなる方法であっても、かかる請求項の範囲を限定しない。このため、明細書および図面は、限定的意味ではなく、例示的であるとみなされるべきである。

Claims (7)

  1. プログラムであって、前記プログラムはコンピュータに、
    コンパクトバイナリ形式でデータベースに保存されているXML文書に対する修正要求を受信するステップと、
    要求に基づき、要求された修正の対象であるXML文書の1以上のノードを特定するステップと、
    要求された修正の対象であるXML文書の1以上のノードの特定に基づいて、XML文書のコンパクトバイナリ形式に対する変更を特徴づけるパラメータを演算するステップと、
    前記パラメータに基づいて、前記XML文書のコンパクトバイナリ形式に対して要求された修正を施すステップとを実行させ
    前記パラメータを演算するステップは、
    コンパクトバイナリ形式における第1の変更が適用されるべき開始地点を特定するステップと、
    前記開始地点を特定する宛先オフセットパラメータを演算するステップとを含み、
    前記開始地点は、前記XML文書のコンパクトバイナリ形式の先頭からのオフセットバイト数として特定されプログラム。
  2. 前記XML文書に対する修正は、少なくとも1つのノードを挿入する操作、または、ノードをアップデートする操作を含み、
    前記パラメータを演算するステップは、
    前記宛先オフセットパラメータと、
    ノードを挿入する操作またはノードをアップデートする操作の対象となるノードに関連する古いバイナリ値であって、ノードを挿入する操作またはノードをアップデートする操作の結果として入れ替えられる古いバイナリ値を表現するのに使用されるXML文書のコンパクトバイナリ形式のバイト数を特定する、変更された長さのパラメータと、
    ノードを挿入する操作またはノードをアップデートする操作の結果として生じる新しいバイナリ値であって、XML文書のコンパクトバイナリ形式における古いバイナリ値と入れ替わる新しいバイナリ値を表現する新しい値のパラメータと、
    前記XML文書のコンパクトバイナリ形式の部分の新しい値を表現するためのバイト数を特定する新しい値の長さのパラメータと、を演算するステップを含む、請求項に記載のプログラム。
  3. XML文書のコンパクトバイナリ形式を変更するステップは、古い値を前記開始地点から始まる前記新しい値によって入れ替えるステップを含む、請求項に記載のプログラム。
  4. 前記パラメータを演算するステップは、
    要求された修正が、要求内のパスネーム表現に基づいたアップデートのためにXML文書から特定される1以上のノードを表現するバイトに対して及ぼす効果を超えて、要求された修正がXML文書のコンパクトバイナリ形式にどのように影響するのか、を演算するステップを含む、請求項1〜3のいずれか1項に記載のプログラム。
  5. 前記XML文書のコンパクトバイナリ形式に対して要求された修正を施すステップは、要求された修正を、永続的な保存装置に保存されているコンパクトバイナリ形式に対して直接に施すステップを含む、請求項1〜4のいずれか1項に記載のプログラム。
  6. 前記XML文書のコンパクトバイナリ形式に対して要求された修正を施すステップは、要求された修正を、XML文書のオブジェクトツリーを構築することなく実行するステップを含む、請求項に記載のプログラム。
  7. 前記パラメータを演算するステップは、1以上のノードの全てに対する修正を特徴づける単一のXML文書を演算するステップを含む、請求項1〜6のいずれか1項に記載のプログラム。
JP2009510957A 2006-05-18 2007-04-24 バイナリにエンコードされたxmlデータの効率的な区分的アップデート Active JP5407043B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/437,512 2006-05-18
US11/437,512 US9460064B2 (en) 2006-05-18 2006-05-18 Efficient piece-wise updates of binary encoded XML data
PCT/US2007/010163 WO2007136507A1 (en) 2006-05-18 2007-04-24 Efficient piece-wise updates of binary encoded xml data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013150500A Division JP5699381B2 (ja) 2006-05-18 2013-07-19 バイナリにエンコードされたxmlデータの効率的な区分的アップデート

Publications (3)

Publication Number Publication Date
JP2009537895A JP2009537895A (ja) 2009-10-29
JP2009537895A5 JP2009537895A5 (ja) 2010-07-01
JP5407043B2 true JP5407043B2 (ja) 2014-02-05

Family

ID=38529632

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009510957A Active JP5407043B2 (ja) 2006-05-18 2007-04-24 バイナリにエンコードされたxmlデータの効率的な区分的アップデート
JP2013150500A Active JP5699381B2 (ja) 2006-05-18 2013-07-19 バイナリにエンコードされたxmlデータの効率的な区分的アップデート

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013150500A Active JP5699381B2 (ja) 2006-05-18 2013-07-19 バイナリにエンコードされたxmlデータの効率的な区分的アップデート

Country Status (7)

Country Link
US (1) US9460064B2 (ja)
EP (1) EP2021957B1 (ja)
JP (2) JP5407043B2 (ja)
CN (1) CN101443766B (ja)
AU (1) AU2007254441C1 (ja)
CA (1) CA2651637C (ja)
WO (1) WO2007136507A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930277B2 (en) 2004-04-21 2011-04-19 Oracle International Corporation Cost-based optimizer for an XML data repository within a database
US8073841B2 (en) 2005-10-07 2011-12-06 Oracle International Corporation Optimizing correlated XML extracts
US7933928B2 (en) 2005-12-22 2011-04-26 Oracle International Corporation Method and mechanism for loading XML documents into memory
US8255790B2 (en) * 2006-09-08 2012-08-28 Microsoft Corporation XML based form modification with import/export capability
US7933935B2 (en) 2006-10-16 2011-04-26 Oracle International Corporation Efficient partitioning technique while managing large XML documents
US7797310B2 (en) 2006-10-16 2010-09-14 Oracle International Corporation Technique to estimate the cost of streaming evaluation of XPaths
US7739251B2 (en) * 2006-10-20 2010-06-15 Oracle International Corporation Incremental maintenance of an XML index on binary XML data
US8010889B2 (en) * 2006-10-20 2011-08-30 Oracle International Corporation Techniques for efficient loading of binary XML data
US9953103B2 (en) * 2006-11-16 2018-04-24 Oracle International Corporation Client processing for binary XML in a database system
US7886223B2 (en) * 2006-11-17 2011-02-08 International Business Machines Corporation Generating a statistical tree for encoding/decoding an XML document
US7974993B2 (en) * 2006-12-04 2011-07-05 Microsoft Corporation Application loader for support of version management
US8499238B2 (en) * 2007-07-11 2013-07-30 International Business Machines Corporation Manipulating design models by editing generated reports
US20090037386A1 (en) * 2007-08-03 2009-02-05 Dietmar Theobald Computer file processing
US8260770B2 (en) * 2007-09-21 2012-09-04 Universities Space Research Association Systems and methods for an extensible business application framework
US7831540B2 (en) * 2007-10-25 2010-11-09 Oracle International Corporation Efficient update of binary XML content in a database system
US8145794B2 (en) * 2008-03-14 2012-03-27 Microsoft Corporation Encoding/decoding while allowing varying message formats per message
US8868482B2 (en) * 2008-03-20 2014-10-21 Oracle International Corporation Inferring schemas from XML document collections
US8595263B2 (en) * 2008-06-02 2013-11-26 Microsoft Corporation Processing identity constraints in a data store
US7925643B2 (en) * 2008-06-08 2011-04-12 International Business Machines Corporation Encoding and decoding of XML document using statistical tree representing XSD defining XML document
US20100030727A1 (en) * 2008-07-29 2010-02-04 Sivasankaran Chandrasekar Technique For Using Occurrence Constraints To Optimize XML Index Access
US8650182B2 (en) * 2009-02-24 2014-02-11 Oracle International Corporation Mechanism for efficiently searching XML document collections
US9965453B2 (en) * 2009-10-15 2018-05-08 Microsoft Technology Licensing, Llc Document transformation
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
CA2702137A1 (en) 2010-05-14 2010-07-28 Ibm Canada Limited - Ibm Canada Limitee Update and serialization of xml documents
US10756759B2 (en) 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression
US9294307B2 (en) * 2011-10-07 2016-03-22 Microsoft Technology Licensing, Llc Synchronization of conversation data
US8812523B2 (en) 2012-09-28 2014-08-19 Oracle International Corporation Predicate result cache
CA2815156C (en) * 2013-05-06 2020-05-05 Ibm Canada Limited - Ibm Canada Limitee Document order management via relaxed node indexing
KR101974341B1 (ko) * 2014-01-23 2019-05-02 한화정밀기계 주식회사 계층적 데이터 분석 방법 및 그 프로그램이 기록된 기록 매체
CN104063488B (zh) * 2014-07-07 2017-09-01 成都安恒信息技术有限公司 一种半自动化学习式的表单特征提取方法
US9626336B2 (en) 2014-08-22 2017-04-18 Microsoft Technology Licensing, Llc Remote management of a graphical user interface
CN106886566B (zh) * 2017-01-12 2019-11-15 北京航空航天大学 压缩文件的修改方法与装置

Family Cites Families (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061697A (en) * 1996-09-11 2000-05-09 Fujitsu Limited SGML type document managing apparatus and managing method
US6414610B1 (en) * 1997-02-24 2002-07-02 Rodney J Smith Data compression
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6674924B2 (en) * 1997-12-30 2004-01-06 Steven F. Wright Apparatus and method for dynamically routing documents using dynamic control documents and data streams
US6671853B1 (en) * 1999-07-15 2003-12-30 International Business Machines Corporation Method and system for selectively streaming markup language documents
US6721727B2 (en) * 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
US6598055B1 (en) * 1999-12-23 2003-07-22 International Business Machines Corporation Generic code for manipulating data of a structured object
US7031956B1 (en) * 2000-02-16 2006-04-18 Verizon Laboratories Inc. System and method for synchronizing and/or updating an existing relational database with supplemental XML data
US6675355B1 (en) * 2000-03-16 2004-01-06 Autodesk, Inc. Redline extensible markup language (XML) schema
US6883137B1 (en) * 2000-04-17 2005-04-19 International Business Machines Corporation System and method for schema-driven compression of extensible mark-up language (XML) documents
US6898761B2 (en) * 2000-05-01 2005-05-24 Raytheon Company Extensible markup language genetic algorithm
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
EP1307828B1 (en) * 2000-08-02 2004-06-09 Philipp Kutter Xml-robot
EP1223759A1 (en) * 2001-01-08 2002-07-17 Robert Bosch Gmbh Method for providing an extension code for a binary description for multimedia data
AU2002228506B2 (en) * 2001-01-19 2007-03-29 Javelin Limited Data transfer and/or transformation system and method
JP3894280B2 (ja) * 2001-02-02 2007-03-14 インターナショナル・ビジネス・マシーンズ・コーポレーション Xmlデータの符号化方法、符号化されたxmlデータの復号化方法、xmlデータの符号化システム、符号化されたxmlデータの復号化システム、プログラムおよび記録媒体
JP4615827B2 (ja) * 2001-02-05 2011-01-19 エクスプウェイ 文書の構造化された記述を圧縮するための方法
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US7500017B2 (en) * 2001-04-19 2009-03-03 Microsoft Corporation Method and system for providing an XML binary format
JP3832807B2 (ja) * 2001-06-28 2006-10-11 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理方法及びその手法を用いたエンコーダ、デコーダ並びにxmlパーサ
AU2002332812A1 (en) * 2001-09-04 2003-03-18 Soft2B Llc Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization
US20030069881A1 (en) * 2001-10-03 2003-04-10 Nokia Corporation Apparatus and method for dynamic partitioning of structured documents
US6879986B1 (en) 2001-10-19 2005-04-12 Neon Enterprise Software, Inc. Space management of an IMS database
US20030093626A1 (en) * 2001-11-14 2003-05-15 Fister James D.M. Memory caching scheme in a distributed-memory network
US7143343B2 (en) * 2002-04-11 2006-11-28 International Business Machines Corporation Dynamic creation of an application's XML document type definition (DTD)
US7454760B2 (en) * 2002-04-22 2008-11-18 Rosebud Lms, Inc. Method and software for enabling n-way collaborative work over a network of computers
US7434163B2 (en) 2002-05-31 2008-10-07 Sap Aktiengesellschaft Document structures for delta handling in server pages
AU2003276815A1 (en) * 2002-06-13 2003-12-31 Cerisent Corporation Xml-db transactional update system
US6996571B2 (en) * 2002-06-28 2006-02-07 Microsoft Corporation XML storage solution and data interchange file format structure
DE60314806T2 (de) * 2002-06-28 2008-03-13 Nippon Telegraph And Telephone Corp. Extrahierung von Information aus strukturierten Dokumenten
US7340673B2 (en) * 2002-08-29 2008-03-04 Vistaprint Technologies Limited System and method for browser document editing
US7080094B2 (en) * 2002-10-29 2006-07-18 Lockheed Martin Corporation Hardware accelerated validating parser
KR100636909B1 (ko) * 2002-11-14 2006-10-19 엘지전자 주식회사 확장성 표기 언어 기반의 전자문서 버전 매김 및 버전을이용한 갱신 문서 제공 방법
US7090318B2 (en) * 2002-11-26 2006-08-15 Tci Supply, Inc. System for a sliding door with a camber
US6976340B2 (en) * 2002-12-05 2005-12-20 Venturedyne Ltd. Universal access port
US7350199B2 (en) * 2003-01-17 2008-03-25 Microsoft Corporation Converting XML code to binary format
US20040148278A1 (en) 2003-01-22 2004-07-29 Amir Milo System and method for providing content warehouse
US6843423B2 (en) * 2003-03-13 2005-01-18 Stmicroelectronics, Inc. Smart card that can be configured for debugging and software development using secondary communication port
US6836778B2 (en) * 2003-05-01 2004-12-28 Oracle International Corporation Techniques for changing XML content in a relational database
JP2004342029A (ja) * 2003-05-19 2004-12-02 Hitachi Ltd 構造化文書圧縮方法及び装置
US7366729B2 (en) * 2003-06-11 2008-04-29 Wtviii, Inc. Schema framework and a method and apparatus for normalizing schema
US7519577B2 (en) * 2003-06-23 2009-04-14 Microsoft Corporation Query intermediate language method and system
US7219330B2 (en) * 2003-06-26 2007-05-15 Microsoft Corporation Extensible metadata
US7113942B2 (en) * 2003-06-27 2006-09-26 Microsoft Corporation Scalable storage and processing of hierarchical documents
US7302489B2 (en) * 2003-08-01 2007-11-27 Sap Ag Systems and methods for synchronizing data objects among participating systems via asynchronous exchange of messages
JP2005056363A (ja) * 2003-08-07 2005-03-03 Media Fusion Co Ltd Xml情報送信装置
US7349913B2 (en) * 2003-08-21 2008-03-25 Microsoft Corporation Storage platform for organizing, searching, and sharing data
US8150818B2 (en) * 2003-08-25 2012-04-03 International Business Machines Corporation Method and system for storing structured documents in their native format in a database
US7571391B2 (en) * 2003-10-17 2009-08-04 Sap Ag Selective rendering of user interface of computer program
US7634498B2 (en) * 2003-10-24 2009-12-15 Microsoft Corporation Indexing XML datatype content system and method
US7315852B2 (en) * 2003-10-31 2008-01-01 International Business Machines Corporation XPath containment for index and materialized view matching
US7165063B2 (en) * 2003-11-19 2007-01-16 International Business Machines Corporation Context quantifier transformation in XML query rewrite
US7991786B2 (en) * 2003-11-25 2011-08-02 International Business Machines Corporation Using intra-document indices to improve XQuery processing over XML streams
US7318063B2 (en) * 2004-02-19 2008-01-08 Microsoft Corporation Managing XML documents containing hierarchical database information
US7440954B2 (en) * 2004-04-09 2008-10-21 Oracle International Corporation Index maintenance for operations involving indexed XML data
US7493305B2 (en) * 2004-04-09 2009-02-17 Oracle International Corporation Efficient queribility and manageability of an XML index with path subsetting
JP4724177B2 (ja) * 2004-04-09 2011-07-13 オラクル・インターナショナル・コーポレイション Xmlデータにアクセスするためのインデックス
US7366735B2 (en) * 2004-04-09 2008-04-29 Oracle International Corporation Efficient extraction of XML content stored in a LOB
US7877356B1 (en) * 2004-05-24 2011-01-25 Apple Inc. Retaining intermediate states of shared groups of objects and notification of changes to shared groups of objects
US7769904B2 (en) * 2004-06-09 2010-08-03 L-3 Communications Integrated Systems L.P. Extensible binary mark-up language for efficient XML-based data communications and related systems and methods
US7260580B2 (en) * 2004-06-14 2007-08-21 Sap Ag Binary XML
US7516121B2 (en) * 2004-06-23 2009-04-07 Oracle International Corporation Efficient evaluation of queries using translation
DE102004034004A1 (de) * 2004-07-14 2006-02-09 Siemens Ag Verfahren zum Codieren eines XML-Dokuments, sowie Verfahren zum Decodieren, Verfahren zum Codieren und Decodieren, Codiervorrichtung, Decodiervorrichtung und Vorrichtung zum Codieren und Decodieren
US7627589B2 (en) * 2004-08-10 2009-12-01 Palo Alto Research Center Incorporated High performance XML storage retrieval system and method
US7403940B2 (en) 2004-08-31 2008-07-22 Yahoo! Inc. Optimal storage and retrieval of XML data
US7310648B2 (en) * 2004-09-15 2007-12-18 Hewlett-Packard Development Company, L.P. System for compression of physiological signals
US7464082B2 (en) * 2004-11-29 2008-12-09 International Business Machines Corporation Methods for de-serializing data objects on demand
WO2010049742A1 (en) * 2004-12-01 2010-05-06 Computer Associates Think, Inc. Managing elements residing on legacy systems
US7586839B2 (en) * 2004-12-16 2009-09-08 Lenovo Singapore Pte. Ltd. Peer to peer backup and recovery
US20060136508A1 (en) * 2004-12-16 2006-06-22 Sam Idicula Techniques for providing locks for file operations in a database management system
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US20060167912A1 (en) * 2005-01-25 2006-07-27 Microsoft Corporation Method and system for use of subsets in serialized documents
US7441185B2 (en) * 2005-01-25 2008-10-21 Microsoft Corporation Method and system for binary serialization of documents
US8346737B2 (en) * 2005-03-21 2013-01-01 Oracle International Corporation Encoding of hierarchically organized data for efficient storage and processing
US7730399B2 (en) * 2005-04-22 2010-06-01 Microsoft Corporation Journal file reader
US8103880B2 (en) * 2005-06-03 2012-01-24 Adobe Systems Incorporated Method for communication between computing devices using coded values
US7739586B2 (en) * 2005-08-19 2010-06-15 Microsoft Corporation Encoding of markup language data
US20070067461A1 (en) * 2005-09-21 2007-03-22 Savchenko Vladimir S Token streaming process for processing web services message body information
US20070079234A1 (en) * 2005-09-30 2007-04-05 Microsoft Corporation Modeling XML from binary data
US8073841B2 (en) * 2005-10-07 2011-12-06 Oracle International Corporation Optimizing correlated XML extracts
US7774321B2 (en) * 2005-11-07 2010-08-10 Microsoft Corporation Partial XML validation
US20080077606A1 (en) * 2006-09-26 2008-03-27 Motorola, Inc. Method and apparatus for facilitating efficient processing of extensible markup language documents
US7844632B2 (en) * 2006-10-18 2010-11-30 Oracle International Corporation Scalable DOM implementation
US7627566B2 (en) * 2006-10-20 2009-12-01 Oracle International Corporation Encoding insignificant whitespace of XML data
US8010889B2 (en) * 2006-10-20 2011-08-30 Oracle International Corporation Techniques for efficient loading of binary XML data
US7739251B2 (en) * 2006-10-20 2010-06-15 Oracle International Corporation Incremental maintenance of an XML index on binary XML data
US8965864B2 (en) * 2006-10-31 2015-02-24 Sap Se Method and system for efficient execution and rendering of client/server interactive applications
US8032499B2 (en) * 2007-05-21 2011-10-04 Sap Ag Compression of tables based on occurrence of values
US7769729B2 (en) * 2007-05-21 2010-08-03 Sap Ag Block compression of tables with repeated values
HUE042697T2 (hu) 2007-09-24 2019-07-29 Hasso Plattner Inst Fuer Digital Engineering Ggmbh ETL kisebb nulla redundancia rendszer és eljárás OLTP adatok jelentésére
EP2043313B1 (en) * 2007-09-28 2013-08-14 Alcatel Lucent Circuit emulation service method and telecommunication system for implementing the method
US7836037B2 (en) * 2007-10-04 2010-11-16 Sap Ag Selection of rows and values from indexes with updates
US7831540B2 (en) * 2007-10-25 2010-11-09 Oracle International Corporation Efficient update of binary XML content in a database system
US7840554B2 (en) * 2008-03-27 2010-11-23 International Business Machines Corporation Method for evaluating a conjunction of equity and range predicates using a constant number of operations
US8108361B2 (en) * 2008-07-31 2012-01-31 Microsoft Corporation Efficient column based data encoding for large-scale data storage
US20100088309A1 (en) 2008-10-05 2010-04-08 Microsoft Corporation Efficient large-scale joining for querying of column based data encoded structures
US8521705B2 (en) 2011-07-11 2013-08-27 Dell Products L.P. Accelerated deduplication
US10756759B2 (en) * 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression

Also Published As

Publication number Publication date
AU2007254441A1 (en) 2007-11-29
JP5699381B2 (ja) 2015-04-08
CA2651637A1 (en) 2007-11-29
CA2651637C (en) 2015-08-11
AU2007254441B2 (en) 2011-02-03
AU2007254441C1 (en) 2011-06-16
WO2007136507A1 (en) 2007-11-29
EP2021957B1 (en) 2015-01-21
US20070271305A1 (en) 2007-11-22
EP2021957A1 (en) 2009-02-11
JP2014002757A (ja) 2014-01-09
CN101443766B (zh) 2013-05-01
CN101443766A (zh) 2009-05-27
US9460064B2 (en) 2016-10-04
JP2009537895A (ja) 2009-10-29

Similar Documents

Publication Publication Date Title
JP5407043B2 (ja) バイナリにエンコードされたxmlデータの効率的な区分的アップデート
US7386567B2 (en) Techniques for changing XML content in a relational database
US7024425B2 (en) Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system
US7386568B2 (en) Techniques for partial rewrite of XPath queries in a relational database
US6785685B2 (en) Approach for transforming XML document to and from data objects in an object oriented framework for content management applications
US7668806B2 (en) Processing queries against one or more markup language sources
US7353222B2 (en) System and method for the storage, indexing and retrieval of XML documents using relational databases
US7873649B2 (en) Method and mechanism for identifying transaction on a row of data
JP5320438B2 (ja) Xmlデータ記憶、クエリー再書込、ビジュアライゼーション、マッピング、および参照のための方法および装置
US20070016605A1 (en) Mechanism for computing structural summaries of XML document collections in a database system
US7577642B2 (en) Techniques of XML query optimization over static and dynamic heterogeneous XML containers
US20110184969A1 (en) Techniques for fast and scalable xml generation and aggregation over binary xml
US8073843B2 (en) Mechanism for deferred rewrite of multiple XPath evaluations over binary XML
US8200702B2 (en) Independently variably scoped content rule application in a content management system
US8650204B2 (en) Techniques for efficiently supporting XQuery update facility in SQL/XML
Wang et al. A space efficient XML DOM parser
US7103872B2 (en) System and method for collecting and transferring sets of related data from a mainframe to a workstation
JP4309818B2 (ja) 構造化文書管理装置、検索装置、記憶方法、検索方法及びプログラム
US20050154715A1 (en) Dynamic return type generation in a database system
US7321900B1 (en) Reducing memory requirements needed to represent XML entities
JP4289022B2 (ja) 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体
JP2009187528A (ja) 改善された階層型xmlデータベースの方法
AU2007229359B2 (en) Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100422

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130719

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130801

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131010

R150 Certificate of patent or registration of utility model

Ref document number: 5407043

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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