JP2005505058A - オブジェクト−リレーショナルデータベースシステムにxmlスキーマをマッピングするための機構 - Google Patents

オブジェクト−リレーショナルデータベースシステムにxmlスキーマをマッピングするための機構 Download PDF

Info

Publication number
JP2005505058A
JP2005505058A JP2003533163A JP2003533163A JP2005505058A JP 2005505058 A JP2005505058 A JP 2005505058A JP 2003533163 A JP2003533163 A JP 2003533163A JP 2003533163 A JP2003533163 A JP 2003533163A JP 2005505058 A JP2005505058 A JP 2005505058A
Authority
JP
Japan
Prior art keywords
xml schema
xml
schema
database
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.)
Pending
Application number
JP2003533163A
Other languages
English (en)
Other versions
JP2005505058A5 (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 JP2005505058A publication Critical patent/JP2005505058A/ja
Publication of JP2005505058A5 publication Critical patent/JP2005505058A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

ユーザによる、データベースシステムへのXMLスキーマ登録を可能にするための方法およびシステムを提供する。データベースシステムは、登録されたXMLスキーマに基づき、XMLスキーマに準拠するXML文書をデータベースシステム内にどのように格納すべきかを決定する。この決定は、XMLスキーマで定義された構成体を、データベースシステムがサポートする構成体にマッピングすることに関わる。このような構成体は、データ型、および要素、制約、継承等の間の階層的な関係を含み得る。マッピングが決定されると、後に受信される、登録されたXMLスキーマに準拠するXML文書をどのように格納するかを決定するために、このマッピングはデータベースシステムによって格納および使用される。

Description

【技術分野】
【0001】
関連出願
この出願は、以下の米国仮特許出願、すなわち、
2001年9月28日に出願された、エリック・セドラー(Eric Sedlar)およびビスワナサン・クリシュナマーシー(Viswanathan Krishnamurthy)による「データベースシステムが設けられたファイルベースのアクセス(File Based Access Provided With a Database System)」と題された米国仮特許出願第60/326,052号、および
2002年5月7日に出願された、ニプン・アガーウォル(Nipun Agarwal)、ラビ・マーシー(Ravi Murthy)、エリック・セドラー、シバサンカラン・チャンドラセカー(Sivasankaran Chandrasekar)、フェイ・ジー(Fei Ge)、シアム・パンナラ(Syam Pannala)、ニーマ・ジャラリ(Neema Jalali)、およびムラリドハー・クリシュナプラサド(Muralidhar Krishnaprasad)による「ファイルシステム抽象化をもたらす、データへのSQLアクセス(SQL Access to Data that Provides a File System Abstraction)」と題された米国仮特許出願第60/378,800号から優先権を主張する。これらの内容の全体は、この明細書においてあらゆる目的のために引用によって援用される。
【0002】
また、この出願は、以下の米国特許出願、すなわち、
本願と同日に出願された、ニプン・アガーウォル、ラビ・マーシー、エリック・セドラー、シバサンカラン・チャンドラセカー、およびフェイ・ジーによる「リレーショナルシステム内の階層データにアクセスするための演算子(OPERATORS FOR ACCESSING HIERARCHICAL DATA IN A RELATIONAL SYSTEM)」と題された米国特許出願連続番号第 号(代理人事件整理番号第50277−1975号)、
本願と同日に出願された、ニプン・アガーウォル、エリック・セドラー、ラビ・マーシー、およびナミット・ジャイン(Namit Jain)による「リレーショナルデータの一貫した階層的抽象化の提供(PROVIDING A CONSISTENT HIERARCHICAL ABSTRACTION OF RELATIONAL DATA)」と題された米国特許出願連続番号第 号(代理人事件整理番号第50277−1976号)、
本願と同日に出願された、ニプン・アガーウォル、エリック・セドラー、およびラビ・マーシーによる「データベースシステム内のバージョン化されたデータを効率よく管理するためのインデックス付け(INDEXING TO EFFICIENTLY MANAGE VERSIONED DATA IN A DATABASE SYSTEM)」と題された米国特許出願連続番号第 号(代理人事件整理番号第50277−1978号)、
本願と同日に出願された、ラビ・マーシー、エリック・セドラー、ニプン・アガーウォル、およびニーマ・ジャラリによる「階層的に組織されたリソースのコンテントおよびプロパティを格納するための機構(MECHANISMS FOR STORING CONTENT AND PROPERTIES OF HIERARCHICALLY ORGANIZED RESOURCES)」と題された米国特許出願連続番号第 号(代理人事件整理番号第50277−1979号)、
本願と同日に出願された、ラビ・マーシー、エリック・セドラー、ニプン・アガーウォル、サム・イディキュラ(Sam Idicula)、およびニコラス・モントヤ(Nicolas Montoya)による「データベースシステムにおける一様なアクセス制御のための機構(MECHANISM FOR UNIFORM ACCESS CONTROL IN A DATABASE SYSTEM)」と題された米国特許出願連続番号第 号(代理人事件整理番号第50277−1980号)、
本願と同日に出願された、シアム・パンナラ、エリック・セドラー、ブシャン・クハラドカー(Bhushan Khaladkar)、ラビ・マーシー、シバサンカラン・チャンドラセカー、およびニプン・アガーウォルによる「XML文書の遅延実現化のためのローダブルユニット(LOADABLE UNITS FOR LAZY MANIFESTATION OF XML DOCUMENTS)」と題された米国特許出願連続番号第 号(代理人事件整理番号第50277−1981号)、および
本願と同日に出願された、ニーマ・ジャラリ、エリック・セドラー、ニプン・アガーウォル、およびラビ・マーシーによる「リレーショナルデータベースシステムにおいて階層的アクセスを提供する、構造化データに効率よくインデックス付けする機構(MECHANISM TO EFFICIENTLY INDEX STRUCTURED DATA THAT PROVIDES HIERARCHICAL ACCESS IN A RELATIONAL DATABASE SYSTEM)」と題された米国特許出願連続番号第 号(代理人事件整理番号第50277−1982号)にも関連する。これらの内容の全体は、あらゆる目的のためにこの明細書において引用によって援用される。
【0003】
発明の分野
この発明はデータベースシステムにXMLデータを格納するための技術に関する。
【背景技術】
【0004】
発明の背景
データは、リレーショナルデータベースシステム内でさまざまな種類のデータコンテナに格納される。このようなデータコンテナは、一般に構造を有する。コンテナの構造は、コンテナが含むデータに課される。たとえば、テーブルは行列に編成されている。データがテーブルに格納される際に、そのデータ内の個々のデータアイテムが特定の行および列に格納され、したがってそのデータに構造を課す。
【0005】
一般に、データに課される構造は、データ内の論理関係に対応する。たとえば、一般にテーブルの所定の行内に格納されたすべての値は互いに何らかの論理関係を有する。たとえば、従業員テーブルの所定の行内の値はすべて、同一の従業員に対応し得る。
【0006】
データベースシステムの外で電子データが構造化される程度は、データの特性に基づいて大きく異なり得る。たとえば、スプレッドシートに格納されたデータは概して高度に構造化されているが、視覚イメージを表わすデータは概してそれほど高度に構造化されていない。
【0007】
XML(拡張可能なマークアップ言語(eXtensible Markup Language))は、あらゆる形のデータを記述して格納するためのフォーマットとしてますます一般的になっている。したがって、XML文書の格納、探索および処理に対するサポートの提供は、今日のデータ管理システムにとって極めて重要な課題である。
【0008】
特定の型のXML文書の構造に関する情報は、「XMLスキーマ」と呼ばれる文書で特定できる。たとえば、特定の型のXML文書に対するXMLスキーマは、その特定の型のXML文書に含まれるデータアイテムに対する名前と、その型のXML文書に含まれるデータアイテム間、その特定の型のXML文書に含まれるデータアイテムのデータ型間等の階層関係とを特定できる。
【0009】
残念なことに、XML文書が構造化されているものの、データベースシステムを用いてXML文書を格納する際に、データベースシステムはXML文書の構造をほとんど無視してしまう。たとえば、複数の属性に対する複数の値を含んで高度に構造化されたXML文書が、テーブルの1つのCLOB列における、区別されていない原子的なデータ片であるかのように単に格納されてしまうおそれがある。XML文書がこのように格納されると、データベースの性能およびスケーラビリティの特徴を十分に活用してXMLデータにアクセスすることができない。
【0010】
この発明は、同様の参照番号が同様の要素を指す添付の図面において、限定としてではなく例示として示される。
【発明を実施するための最良の形態】
【0011】
発明の実施例の詳細な説明
オブジェクト−リレーショナルデータベースシステムにXMLスキーマをマッピングするための方法およびシステムを説明する。以下の説明では、多数の特定の詳細を説明のために明示して、この発明が完全に理解されるようにしている。しかしながら、このような特定の詳細なしにこの発明を実施できることは明らかである。他の例では、周知の構造および装置をブロック図の形で示し、この発明を必要以上に分かりにくくすることを避けている。
【0012】
機能的な概観
この明細書では、データを保持するために用いられるデータベースコンテナがデータに課す構造と、そこからデータが生じるXML文書の構造との間の相関関係を高める態様で、XMLデータをデータベースシステム内で管理するためのさまざまな技術を説明する。一局面によると、データベースシステムのユーザがデータベースシステムにXMLスキーマを登録可能にする機構が設けられる。XMLスキーマは、明示的に(API呼出しを介して)、または暗黙的に(XMLスキーマに準拠するインスタンス文書がデータベース内に最初に挿入される際に)登録され得る。
【0013】
データベースシステムは、所定のXMLスキーマに対する登録プロセス中に、(1)XMLスキーマに対する適切なデータベース表現、および(2)マッピング情報を決定する。「適切なデータベース表現」の決定とは、XMLスキーマに準拠するデータがデータベースシステムによってどのように管理されるべきかについての決定である。所定のXMLスキーマに対する適切なデータベース表現の決定は、たとえば、データベースのオブジェクト、集合型、および制約の決定、ならびに所定のXMLスキーマに準拠するXML文書からのデータを格納するためにデータベースシステムが用いるべきインデックスの決定さえも含み得る。
【0014】
マッピング情報は、XMLスキーマに含まれる構成体と適切なデータベース表現に含まれる構成体との間のマッピングを示す。マッピング情報は、たとえば、XMLスキーマの特定の要素に関連するデータが、適切なデータベース表現の一部として生成されたテーブルの特定の列に格納されるべきであることを示し得る。一般に、適切なデータベース表現およびマッピング情報は、XMLスキーマに記述されている構造と、XMLデータが格納されているデータベースコンテナがデータに課す構造との間に高い相関関係を生じるように生成される。
【0015】
システムの概観
図1は、オブジェクト−リレーショナルデータベースシステムにXMLスキーマをマッピングするための機構を含むシステムのブロック図である。具体的に、データベースサーバ104(この明細書では「XDB」とも呼ばれる)は、XMLスキーママッパー106を含む。XMLスキーマ102がデータベースサーバ104に登録されると、XMLスキーママッパー106は、XMLスキーマ102に準拠する文書に対して適切なデータベース表現108を決定して、XMLスキーマの要素と適切なデータベース表現108の要素との間の相関関係を示すマッピング情報110を生成する。
【0016】
一実施例によると、データベースサーバ104は、
・W3C準拠の任意のXMLスキーマを登録し、
・登録されたXMLスキーマに対してXML文書の妥当性検証を行ない、
・ローカルスキーマおよびグローバルスキーマの両方を登録し、
・オブジェクト型からXMLスキーマを生成し、
・(手動によるスキーマ進化のための機構として)XMLスキーマの再登録をサポートし、
・或るAPI(FTP、HTTP等)を介して文書が挿入される際にXMLスキーマの暗黙的な登録をサポートし、
・別のユーザが所有するスキーマをユーザが参照できるようにし、
・同じ名前を有するローカルスキーマが存在している場合、ユーザがグローバルスキーマを明示的に参照できるようにし、
・XMLスキーマの進化をサポートするように構成される。
【0017】
一実施例によると、XMLスキーママッパー106は、
・構造化されたデータベースマッピングを(一般にスキーマ登録中に)XMLスキーマから生じるように構成され、このことは、たとえば、SQLオブジェクト型、集合型等の生成と、スキーマ注釈を介したマッピング情報の入手とを含むことが考えられ、XMLスキーママッパー106はさらに、
・複数の正当なマッピングが存在する場合に、ユーザが特定のSQL型マッピングを特定できるようにし、
・登録されたXMLスキーマに基づいてXMLTypeのテーブルおよび列を作成し、
・スキーマベースのXMLTypeテーブルに対するDMLおよびクエリーのサポートを行なうように構成される。
【0018】
XMLスキーマ登録
一実施例によると、XMLスキーマは、データベースサーバ104内で使用または参照され得る前に、まずデータベースサーバ104に登録されなければならない。登録プロセスが完了した後、このスキーマに準拠する(および、文書内のスキーマURLを介してこのスキーマを参照する)XML文書は、データベースサーバ104によって処理され得る。このスキーマが定義したルートXML要素用のテーブルおよび/または列を作成して、準拠する文書を格納できる。
【0019】
一実施例によると、スキーマは、スキーマ文書およびそのURL(スキーマ位置としても公知)を特定することによってDBMS_XMLSCHEMAパッケージを用いることにより登録される。ここで用いられるURLは、登録されたスキーマをデータベース内で一意に識別する名前にすぎず、スキーマ文書が位置付けられている物理的なURLである必要がないことに注意されたい。さらに、スキーマのターゲット名前空間は、その中で要素および型が宣言された「抽象的な」名前空間を特定する別のURL(スキーマ位置URLとは異なる)である。インスタンス文書は、ルート要素の名前空間と、この要素を定義するスキーマの位置(URL)との両方を特定すべきである。
【0020】
たとえば、以下に示すXMLスキーマを考えられたい。このスキーマは、「PurchaseOrderType」と呼ばれるcomplexTypeと、この型の要素「PurchaseOrder」とを宣言している。
【0021】
【数1】
Figure 2005505058
【0022】
以下のステートメントは、URL「http://www.oracle.com/PO.xsd」にこのスキーマを登録する(docは上述のスキーマのテキストを保持する変数である)。
【0023】
【数2】
Figure 2005505058
【0024】
以下により詳細に説明するように、登録されたXMLスキーマを用いてスキーマベースのXMLTypeのテーブルおよび列を作成できる。以下は、上述のXMLスキーマに準拠するXMLTypeインスタンスである。schemaLocation属性は、スキーマURLを特定する。
【0025】
【数3】
Figure 2005505058
【0026】
この発明の一実施例によると、XMLスキーマ登録は、(1)スキーマの妥当性検証、(2)適切なデータ構造の決定、および(3)マッピング情報の生成を含む。これらの段階の各々を、より詳細に以下に説明する。
【0027】
XMLスキーマの妥当性検証
XMLスキーマは、特定の型のXML文書の構造を記述する。しかしながら、XMLスキーマは、それ自体が、XMLスキーマで特定された構造に準拠しなければならないXML文書である。具体的に、各XMLスキーマは、XMLスキーマ文書型に関連するXMLスキーマ文書に記述された構造に準拠しなければならない。XMLスキーマ登録におけるスキーマの妥当性検証の段階で、登録中のXMLスキーマが検査されて、そのXMLスキーマがXMLスキーマ文書型に関連するXMLスキーマで特定された構造に準拠していることが確認される。
【0028】
適切なデータベース表現の決定
上で述べたように、適切なデータベース表現の決定は、XMLスキーマに準拠するデータがデータベースシステムによってどのように管理されるべきであるかに関する決定である。一実施例によると、適切なデータベース表現は、(1)その中にデータが含まれているXML文書がデータに課す構造と、(2)データベースシステムがデータに課す構造との間に高い相関関係を得るように選択される。
【0029】
高い相関関係を得る能力は、少なくとも部分的に、データベースシステムの機能に依存する。データベースシステムの特定の機能はベンダごとおよびバージョンごとに異なる。或る機能がほとんどのデータベースシステムに一般的なものであっても、他の機能はそうではない。したがって、この明細書では、この発明の実施例を特定の組の機能を有するデータベースシステムという文脈で説明しているが、この発明はそのような特定の機能を有するデータベースシステムに限定されない。
【0030】
一実施例によると、適切なデータベース表現の決定は、XMLスキーマで遭遇し得る構成体の各型を、ターゲットとなるオブジェクト−リレーショナルデータベースシステムがサポートする対応する構成体にどのようにマッピングするかに関してXMLスキーママッパー106の動作を支配する、一組の一般規則に基づいて行なわれる。これらの規則は、XMLスキーママッパー106の論理へとハードコード化され得、または、XMLスキーママッパ
ー106が用いるメタデータで表わされ得る。一実施例によると、一般規則は以下の問題、すなわち、
・ターゲットとなるオブジェクト−リレーショナルデータベースシステムがサポートするデータ型に、XMLがサポートするデータ型をどのようにマッピングするか、
・XMLスキーマが定義する構造を、同様の構造を有するデータベースオブジェクトにどのようにマッピングするか、
・ターゲットとなるオブジェクト−リレーショナルデータベースシステムがサポートする制約実行機構に、XMLがサポートする制約をどのようにマッピングするか、
・ターゲットとなるオブジェクト−リレーショナルデータベースシステムにおいて、XMLスキーマが別のXMLスキーマから継承していることをどのように反映するか、
・ターゲットとなるオブジェクト−リレーショナルデータベースシステムにおいて、XMLがサポートする他の構成体、たとえばinclude要素およびimport要素を介した外部参照、ワイルドカード、単純コンテント(内容)、置換えグループ等をどのように反映するか、に対処する。
【0031】
オブジェクト−リレーショナルデータ型へのXMLデータ型のマッピング
XMLスキーマは一組の基本型を宣言する。一実施例によると、XMLスキーママッパー106が用いる規則は、ターゲットのデータベースシステムがサポートして、かつ、XMLデータ型の各々が対応するデータ型を定義する。たとえば一実施例において、XMLデータ型「string(文字列)」は、VARCHARまたはCLOBのいずれかのSQLデータ型にマッピングする。この例において、XMLスキーママッパー106は、たとえばXMLスキーマで文字列要素に対して宣言され得る任意の長さの制約に基づいて、特定の文字列要素をVCHARまたはCLOBのいずれにマッピングすべきであるかを選択できる。XMLスキーママッパー106が用い得るデータ型対データ型のマッピング規則の多数の例を以下に示し、付録Iで説明する。
【0032】
データベースオブジェクトへのXML構造のマッピング
SQLスキーマは、その中に現われ得る要素および属性に関して、要素の構造を記述する。データベースオブジェクトにXML構造をマッピングする規則は、XMLスキーマ内で定義されたXMLの属性および要素に対応する属性を有するSQLオブジェクト型をどのようにマッピングすべきかを示す。たとえば、属性Xならびに要素YおよびZを含むXML要素Aは、3つの属性、すなわちX、YおよびZを有するオブジェクト型にマッピングする。
【0033】
データベース制約へのXML制約のマッピング
XMLスキーマは、さまざまな形の制約を特定することができる。XMLスキーママッパー106がこのような制約に遭遇すると、このような制約はSQLの適切な制約機構にマッピングされる。たとえば、XMLスキーマで定義された「文字列」属性に対する長さの制約は、maxLength=「20」であり得る。一実施例によると、このような制約により、この文字列属性はデータ型VARCHAR2(20)にマッピングされる。
【0034】
XML要素に適用され得る別の種類の制約が、要素が出現する最大回数を特定する制約である。最大回数が1よりも大きい場合、ターゲットのデータベースシステムがサポートするアレイ型(VARRAY等)に要素をマッピングできる。XML制約に対して特定された出現の回数は、VARRAYのカーディナリティを規定する。
【0035】
XMLスキーマの要素に対して特定され得、適切なデータベース表現内の対応する制約に反映され得る他の種類の制約には、一意性の制約、参照一貫性の制約、not nullの制約等が含まれる。
【0036】
継承のマッピング
XMLスキーマモデルは複合型の継承を可能にする。一実施例によると、XMLスキーマが継承の構成体を用いる場合、その継承は、ターゲットのデータベースシステムがサポートするSQLオブジェクトの継承機構にマッピングされる。たとえば、XMLスキーマ内において、XMLcomplexTypeの「USAddress」を別のcomplexTypeの「Address」の拡張子として宣言できる。それに応答して、適切なデータベース表現内では、「Address」に対応するSQLオブジェクト型の部分型としてSQLオブジェクト型「USAddress」が宣言される。
【0037】
ローカルスキーマおよびグローバルスキーマ
XMLスキーマは、デフォルトにより、登録を行なうユーザに属する。XMLスキーマ文書への参照は、ディレクトリ/sys/schemas/<username>/...内のXDB階層内に格納される。たとえば、ユーザSCOTTが上述のスキーマを登録した場合、それはファイル/sys/schemas/SCOTT/www.oracle.com/PO.xsdにマッピングされる。このようなスキーマは、ローカルスキーマと呼ばれる。一般にこれらのスキーマは、そのスキーマが属するユーザによってのみ使用可能である。インスタンスXML文書に現われるスキーマ位置が単にURLであるため、スキーマURLをデータベースのユーザ名で適格化するという概念が存在しないことに注目されたい。したがって、スキーマの所有者のみが、XMLTypeのテーブル、列またはビュー、妥当性検証済文書等を定義する際にそのスキーマを用いることができる。
【0038】
ローカルスキーマとは対照的に、特権を与えられたユーザは、dbms_xmlschema登録関数に対する引数を特定することによって、XMLスキーマをグローバルスキーマとして登録できる。グローバルスキーマを全ユーザが見ることができ、これらはXDB階層内の/sys/schemas/PUBLIC/...のディレクトリ下に格納される。このディレクトリへのアクセスがACLによって制御され、デフォルトによってDBAによってのみ書込可能であることに注意されたい。ユーザは、グローバルスキーマの登録を可能にするために、このディレクトリに関する書込特権を有する必要がある。
【0039】
ユーザは、既存のグローバルスキーマと同じURLを有するローカルスキーマを登録することができる。ローカルスキーマは、同じ名前(URL)を有するどのようなグローバルスキーマをも常に隠している。
【0040】
ユーザは、可能性として他のユーザが所有する既存のスキーマへのリンクを登録できる。スキーマリンクは、そのURLによって識別される。そこで、スキーマリンクURLは、スキーマURLが期待されるたびに、たとえばxmltypeテーブルを作成するたびに用いられ得る。スキーマリンクへの参照は、参照時に下位のスキーマへと翻訳される。ユーザがグローバルスキーマと同じ名前を有するローカルスキーマを有する場合、ユーザによるグローバルスキーマへの明示的な参照を可能にする機構が存在する。ユーザはグローバルスキーマへのリンク(異なる名前を有する)を登録できる。
【0041】
XMLスキーマの削除
一実施例によると、dbms_xmlschema.deleteSchema手順を用いることにより、XMLスキーマを削除することができる。ユーザがスキーマを削除しようとする場合、データベースサーバはまず、その従属子が存在するかどうかをチェックする。従属子が存在する場合はデータベースサーバがエラーを生じ、削除動作は行われない。スキーマを削除する間にFORCEオプションが与えられ、ユーザがこのFORCEオプションを特定する場合、スキーマ削除は、たとえ従属性のチェックに合格していなくても進展する。このモードでは、スキーマ削除がスキーマの従属子のすべてを妥当ではないものとしてマークする。
【0042】
XMLスキーマに対する従属性のモデル
一実施例によると、以下のオブジェクトは登録されたXMLスキーマに「従属する」。
【0043】
・このスキーマ内の何らかの要素に準拠するXMLType列を有するTable/View。
【0044】
・それらの定義の一部としてこのスキーマを含むかまたはインポートするXMLスキーマ。
【0045】
・たとえばXMLGEN演算子内でスキーマ名を参照するカーソル(注:これらは純粋に一時的なオブジェクトである)。
【0046】
以下の動作により、XMLスキーマオブジェクトに従属性が加えられる。
【0047】
・スキーマ登録:含まれる/インポートされるスキーマのすべてに従属性を加える。
【0048】
Table/View/Cursor作成:参照されたXMLスキーマオブジェクトにテーブル/ビュー/カーソルからの従属性を加える。
【0049】
トランザクショナルな挙動
一実施例によると、スキーマの登録は非トランザクショナルなものであり、他のSQL DDLの動作と同様に自動的に遂行される。登録が成功すると、動作は自動的に遂行される。しかしながら、登録が失敗すると、データベースは登録開始前の状態にロールバックされる。スキーマ登録プロセスが潜在的にオブジェクト型およびテーブルの作成を含むため、エラーの回復は、作成されたこのようなテーブルおよび型のどのようなものも落とすことを含む。したがって、スキーマ登録の全体が原子的であるように保証される。すなわち、スキーマ登録の全体が成功するか、またはデータベースが登録開始前の状態に修復されるかのいずれかである。
【0050】
XMLスキーマの進化
ユーザは、登録されたXMLスキーマを再登録して新規のXMLスキーマ文書を与えることにより、その登録されたXMLスキーマを進化させることができる。dbms_XMLschema.registerSchema関数を用いてXMLスキーマを再登録することができる。このスキーマに従属するXMLTypeテーブルが存在しない場合(XMLTypeビューは可能)、この動作は常に成功する。一実施例によると、従属するXMLTypeテーブルが存在する場合、データベースサーバ104は、入力されるスキーマ文書が完全なSQLマッピング注釈を含んで、かつ、それらがこのようなXMLTypeテーブルのすべてに適用され得る妥当なマッピングを表わすことを要求する。
【0051】
例−要素名または属性名の変更:ユーザは登録されたスキーマ文書を取出して、必要な変更を行なってそれを再登録する。この変更が下位のテーブルに影響を及ぼさないことに注意されたい。
【0052】
例−新規の要素または属性の追加:この変更は下位のテーブルに影響を及ぼすため、複数のステップで行われなければならない。ユーザはまず、ALTER TYPEおよび/またはALTER TABLEのコマンドを用いて下位のテーブルを進化させる。これにより、XMLスキーマは妥当でないものとしてマークされる。次に、ユーザはXMLスキーマ文書を適宜変更して、それを再登録する。
【0053】
一実施例によると、1ステップのXMLスキーマ進化がもたらされる。すなわち、ユーザが新規のXMLスキーマを入力するだけで、下位の型およびテーブルの変更がすべて暗黙的に決定される。
【0054】
XMLスキーマの暗黙的な登録
インスタンス文書がHTTPまたはFTP等のプロトコルを介してXDBに挿入されると、インス
タンス文書が準拠するスキーマ(特定されている場合)が、まだ登録されていない場合には暗黙的に登録される。スキーマ登録は常に自動的に遂行されるため、暗黙的な登録は自律的なトランザクション内で行なわれる。
【0055】
XMLTypeテーブル
XMLスキーマの「適切なデータベース表現」の一部であるテーブルおよび列を、この明細書では「スキーマベースの」テーブルおよび列と呼ぶ。一実施例によると、スキーマベースのXMLTypeのテーブルおよび列は、(登録されたスキーマの)スキーマURLとルート要素名とを参照することによって作成できる。スキーマ位置および要素名の両方を含む1つのURLを提供する際に、XPointer記法の部分集合(以下に示す)も用いることができる。
【0056】
【数4】
Figure 2005505058
【0057】
スキーマベースのXMLTypeは、デフォルトにより、下位の(隠された)オブジェクト型の列に格納される。スキーマの登録プロセス中に、SQLオブジェクト型を(任意に)作成することができる。XMLからSQLのオブジェクト型および属性へのマッピングは、追加の注釈、すなわちXDBが定義した新規の属性として、XMLスキーマ文書内にそれ自体が格納される。
【0058】
スキーマベースのXMLTypeは、下位の1つのLOB列にも格納できる。
【0059】
【数5】
Figure 2005505058
【0060】
SQLオブジェクト型の作成
一実施例によると、XMLスキーマが登録されるとき、データベースサーバ104は、このスキーマに準拠するXML文書の構造化された格納を可能にする適切なSQLオブジェクト型を作成する。SQLオブジェクト型はすべて、現時点でのユーザのスキーマにおいて(デフォルトによって)作成される。たとえば、PO.xsdが登録されている場合、以下のSQL型が作成される。
【0061】
【数6】
Figure 2005505058
【0062】
上述のオブジェクトの型および属性の名前は、実際にシステムにより生成可能である。スキーマが、記入されたSQLName属性を既に含んでいる場合、この名前がオブジェクトの属性名として用いられる。そうでない場合、長さまたは矛盾の理由から使用できない場合を除き、名前はXML名から導出される。SQLSchema属性が記入されている場合、オラクル(Oracle)は、特定されたスキーマに型を作成しようとする。現時点でのユーザはこの動作を行なうために、何らかの必要な特権を有していなければならない。
【0063】
オブジェクト型へのXMLスキーマへのマッピング−詳細な例
以下の章は、XMLスキーマ情報からSQLオブジェクト型をどのようにして生成できるかについての詳細を示す。上で述べたように、実際のマッピング規則は、さまざまな要因に基づいて実現例ごとに異なり得る。このような要因の1つが、ターゲットのデータベースシステムの機能である。以下の詳細な例では、ターゲットのデータベースシステムが、現在オラクル・コーポレイション(Oracle Corporation)から入手可能なOracle 9iR2で現在利用可能なデータ型およびオブジェクト型付けの機構をサポートするものと考える。
【0064】
単純型のマッピング
一実施例によると、XML基本型は、最も近いSQLデータ型にマッピングされる。たとえば、decimal、positive Integer、およびfloatは、すべてSQLNUMBERにマッピングされる。XMLのenumeration(列挙)型は、1つのRAW(n)属性を有するオブジェクト型にマッピングされる。ここで、nの値は列挙宣言内で考えられる値の数によって決定される。XMLのリストまたはunionデータ型は、SQLの文字列(VARCHAR2/CLOB)データ型にマッピングされる。
【0065】
【表1】
Figure 2005505058
【0066】
【表2】
Figure 2005505058
【0067】
複合型のマッピング
一実施例によると、複合型がオブジェクト型にマッピングされる。complexType内で宣言されたXML属性は、オブジェクト属性にマッピングする。そして、XML属性を定義するsimpleTypeは、対応する属性のSQLデータ型を決定する。complexType内で宣言されたXML要素もまた、オブジェクト属性にマッピングされる。オブジェクト属性のデータ型は、XML要素を定義するcomplexTypeまたはsimpleTypeによって決定される。
【0068】
XML要素がmaxOccurs属性の値>1で宣言された場合、この要素はSQLの集合属性にマッピングされる。集合は、(maintainOrder属性がFALSEに設定された場合)VARRAY(デフォルト)または入れ子構造のテーブルのいずれかであり得る。さらに、VARRAYのデフォルト格納は、LOBではなくテーブル(OCT)[OCT-FS]に存在する。そして、ユーザはstoreAsLob属性をTRUEに設定することによってLOB格納を選択できる。
【0069】
一般に、SQL属性の名前は、以下のアルゴリズムを用い、XMLの要素または属性の名前から生成される。
【0070】
1.XMLの要素/属性の名前を用いよ(30文字に短縮される)。
【0071】
2.違法なSQL文字が発見された場合、それを下線('_')にマッピングせよ。
【0072】
3.この名前が一意ではない場合、シーケンス番号を追加せよ(注:このことは、番号を追加する前に名前の短縮をさらに要求し得る)。
しかしながら、ユーザは、このスキーマ内においてSQLName属性に対する値を与えることによって、SQL属性名を明示的に特定することができる。
【0073】
DOM忠実度
XMLスキーマ内で宣言された要素および属性のすべては、対応するSQLオブジェクト型内の別個の属性にマッピングされる。しかしながら、XMLインスタンス文書には、このような要素/属性によって直接表現されない情報の断片がいくつか存在する。それらの例は、
・コメント
・名前空間宣言
・接頭辞の情報
である。
【0074】
DOMトラバーサル(DOM忠実度と呼ばれる)のために、戻されたXML文書が最初の文書と同一であることを保証するため、生成されたSQLオブジェクト型のすべてにSYS_XDBPD$と呼ばれるバイナリ属性を加える。この属性は、他の属性のどれにも格納できない情報の断片のすべてを格納し、それによってデータベースシステム内に格納されたXML文書のDOM忠実度を確保する。注:SYS_XDBPD$属性は、はっきりさせるために、多くの例で省略される。しかしながら、この属性は、スキーマ登録プロセスによって生成されるSQLオブジェクト型のすべてに存在し得る。
【0075】
SQLのライン外格納
一実施例によると、デフォルトによって、サブ要素は、埋込まれたオブジェクト属性にマッピングされる。しかしながら、ライン外格納がよりよい性能をもたらすシナリオも存在し得る。このような場合、SQLInline属性をFALSEに設定でき、XMLスキーママッパ106は、埋込まれたREF属性を有するオブジェクト型を生成する。REFは、ライン外で格納されるXMLフラグメントに対応するXMLTypeの別のインスタンスを指す。(XMLTypeの)デフォルトテーブルも、ライン外のフラグメントを格納するために作成される。
【0076】

【0077】
【数7】
Figure 2005505058
【0078】
LOBへのXMLフラグメントのマッピング
ユーザは複合要素に対するSQLTypeをLOB(CLOB/BLOB)として特定することができ、その場合、XMLフラグメントの全体がLOB属性に格納される。これは、XML文書の一部がほとんどクエリーされずに1つの断片として大抵は検索および格納されるシナリオにおいて有用である。LOBとしてフラグメントを格納することにより、構文解析/分解/再構成のオーバーヘッドが減じられる。
【0079】

【0080】
【数8】
Figure 2005505058
【0081】
simpleContentのマッピング
simpleContent宣言に基づいたcomplexTypeは、XML属性に対応する属性と、ボディ値に対応する追加のSYS_XDBBODY$属性とを有するオブジェクト型にマッピングされる。ボディ属性のデータ型は、ボディの型を定義するsimpleTypeに基づく。
【0082】

【0083】
【数9】
Figure 2005505058
【0084】
any/anyAttributeのマッピング
any要素宣言およびanyAttribute属性宣言は、オブジェクト型におけるLOBにマッピングされる。LOBはany宣言に整合するXMLフラグメントのテキストを格納する。名前空間の属性を用いて、特定された名前空間に属するようにコンテンツを制約することができる。any要素宣言内のprocessContents属性は、any宣言に整合するコンテンツに対して要求される妥当性のレベルを示す。
【0085】

【0086】
【数10】
Figure 2005505058
【0087】
SQLのvarchar2対CLOBへの文字列のマッピング
XMLスキーマがデータ型を「string」に、かつ、4000未満のmaxLength値に特定した場合、それは特定された長さのvarchar2属性にマッピングされる。しかしながら、maxLength値がXMLスキーマに特定されていない場合、それはLOBにしかマッピングされ得ない。これは、文字列の値の大部分が実際には小さく、それらのうちのごく一部がLOBを必要とするほどの大きさである場合に次善の策である。理想的なSQLデータ型は、小さな文字列に対してはvarcharsのように働きつつ、一層大きな文字列にも対処することのできるvarchar2(*)であろう。さらに、このような列は、インデックス付け、SQL関数等のvarcharの機能性のすべてをサポートすべきである。小さな場合に対して性能および/または機能性を損なうことなく非有界のバイナリ値を保持するためにraw(*)データ型を必要とするため、同様の場合が生じ得る。
【0088】
代替的な実施例によると、非有界の文字列のすべてがCLOBにマッピングされて、非有界のバイナリ要素/属性のすべてがBLOBにマッピングされる。
【0089】
SQLのvarchar2対NVARCHAR2への文字列のマッピング
デフォルトにより、XMLの文字列データ型はSQLのvarchar2にマッピングされる。しかしながら、ユーザは以下の2つの方法でこの挙動をオーバーライドすることができる。
【0090】
1.ユーザは、SQLTypeを、特定の文字列の要素または属性に対してNVARCHAR2となるように特定できる。これにより、NVARCHAR2は特定の要素/属性に対するSQL型として確実に選択される。
【0091】
2.ユーザは、スキーマ宣言の先頭において、mapStringToNCHAR属性を「true」に設定できる。これにより、すべてのXML文字列は、要素レベルで明示的にオーバーライドされない限りNVARCHAR2(またはNCLOB)データ型にマッピングされる。
【0092】
スキーマベースのXMLテーブルの作成
"http://www.oracle.com/PO.xsd"によって識別されるXMLスキーマが既に登録されたものと考えられたい。XMLTypeテーブルを作成して、このスキーマのPurchaseOrder要素に準拠するインスタンスを、オブジェクト−リレーショナルなフォーマットで以下のように格納することができる。
【0093】
【数11】
Figure 2005505058
【0094】
PurchaseOrder要素がマッピングされたオブジェクト型に対応する隠し列が作成される。加えて、名前空間宣言等のトップレベルのインスタンスデータを格納するために、XMLExtraオブジェクト列が作成される。注:XMLDATAは、下位のオブジェクト列への直接のアクセスを可能にするXMLTypeの擬似属性である。
【0095】
格納句(storage clause)の特定
下位の列は、
1.オブジェクト記法:XMLDATA.<attrl>.<attr2>....
2.XML記法:ExtractValue(xmltypecol、'/attr1/attr2')
によって、格納句において参照され得る。
【0096】
【数12】
Figure 2005505058
【0097】
インデックスの作成
上で示したように、XMLtype列の下位にある列は、CREATE INDEXステートメントのオブジェクト記法またはXML記法のいずれかを用いて参照され得る。
【0098】
【数13】
Figure 2005505058
【0099】
制約
オブジェクト記法またはXML記法のいずれかを用いることにより、下位の列に対する制約を特定することができる。
【0100】
【数14】
Figure 2005505058
【0101】
DML
以下のように、新規のインスタンスをXMLTypeテーブル内に挿入できる。
【0102】
【数15】
Figure 2005505058
【0103】
XMLTypeテーブルは、XPathベースのSQL演算子を用いてクエリーされ得る。
【0104】
【数16】
Figure 2005505058
【0105】
クエリー書換機構は、existsNodeおよびextractoperatorsを含むクエリーを書換えて下位の属性の列に直接アクセスし、それによってXMLの構成後にXPathの評価が続くことを避ける。たとえば、上述のクエリーは、以下のものに書換えられる。
【0106】
【数17】
Figure 2005505058
【0107】
クエリー書換
スキーマベースのXMLType列上で演算するXPathベースの演算子(Extract、ExistNode、ExtractValue)は、下位のSQL列に反するように書換えられる。これにより、XMLのオブジェクト−リレーショナルな格納を最大限に利用する、さらなるSQLの最適化が可能になる。以下の種類のXPath式は、下位のSQLクエリーに翻訳され得る。
【0108】
1.単純なXPath式−オブジェクト型の属性のみにわたるトラバーサルに関わり、属性は単純なスカラまたはオブジェクト型自体である。サポートされる軸は、子軸および属性軸のみである。
【0109】
2.集合トラバーサル式−集合式のトラバーサルに関わる。サポートされる軸は、子軸および属性軸のみである。
【0110】
3.*軸に関わる式−結果的に得られるノードのデータ型がすべて強制である場合、ワイルドカード軸に関わるこれらの式を変換する。(たとえばCUST/*/CUSTNAMEは、同一のまたは強制的なデータ型のすべてであるCUSTNAMEを指さなければならない。
【0111】
4.子孫軸(//)に関わる式−結果として得られるノードのデータ型が同一または強制である場合、これらの式を変換する。
【0112】
5.これらの式はすべて、XMLType等に対するREFのような「隠れた」トラバーサルを含む型のキャッシュとともに作業しなければならない(たとえば、xdb$schema_tは、xdb$element_tに対するREFのvarrayを格納しており、このことは、XPath式または結果として得られるXML文書に直接現われない)。
【0113】
これらのXPath式の変形は、ExistsNode、ExtractValue、およびExtract usageのシナリオでサポートされる。
【0114】
XPathのクエリー書換の例
【0115】
【数18】
Figure 2005505058
【0116】
関数書換規則
EXTRACT、EXTRACTVALUE、およびEXISTSNODEは、以下の位置、すなわち、
・選択リスト内のSQLクエリーにおいて句述部のグループ別および順序別の式
・CREATE INDEXステートメントのIndex句
に出現し得る。
【0117】
【数19】
Figure 2005505058
【0118】
これらの場合のすべてにおいて、EXISTSNODEおよびEXTRACTの演算子は、下位の式を定義することによって置き換えられる。XPath式は書換えられるために以前のセクションに記載された条件を満たさなければならない。
【0119】
インデックスの場合において、演算子ツリー全体の置き換えが1つの列を生じる場合、そのインデックスは、関数インデックスではなく、列上のドメインインデックスまたはBTreeインデックスに変化する。
【0120】
オブジェクト/スカラ属性のトラバーサルに対する書換
単純なXPathトラバーサルは、オブジェクト型のアクセス機構に書換えられる。述部は、それらをwhere句に入れることによって処理される。或るオブジェクト型全体にわたるXPathの子のアクセスは、下位のオブジェクト型のオブジェクト属性のアクセスに翻訳される。たとえば、A/Bはa.bにマッピングし、ここでAはオブジェクト型aにマッピングし、XPathのノードBは「a」と名付けられた「b」の属性にマッピングする。
【0121】
この書換は、XPath式のどのようなレベルにおいても、すなわち、XPathトラバーサルが述部内またはロケーションパス変数内のいずれに生じていても一貫している。
【0122】
たとえば、PO/CUSTOMER/CUSTOMERNAMEは"po"."cust"."custname".となる(POが'po'にマッピングする等と考えられたい)。
【0123】
述部は、下位のオブジェクト式の述部式を書換えることによって処理される。
【0124】
EXISTSNODEに対する単純な場合では、主なロケーションパストラバーサルがIS NOT NULL述部になるのに対し、EXTRACTの場合では、これが抽出される実際のノードになる。
【0125】
EXISTNODE(po_col, 'PO/CUSTOMER/CUSTOMERNAME')は、
CASE (WHEN("po"."cust"."custname" IS NOT NULL) then 1 else 0)
となる。
【0126】
述部は同様の態様で処理される。たとえば、以下に与えられた演算子、すなわち
EXISTNODE(po_col, 'PO/CUSTOMER[CUSTOMERNO=20]/CUSTOMERNAME')
において、述部、D=20はユーザが特定したかのように処理され(A/B/D=20)、したがって式全体は、
CASE(WHEN("PO"."CUST"."CUSTNAME"IS NOT NULL
AND("PO"."CUST"."CUSTNO"=20))THEN 1 ELSE 0)
となる。
【0127】
集合トラバーサル
XPath式は、集合構成体にも及び得、クエリーは集合テーブル上のサブクエリーを用いることにより、依然として書換えられる。たとえば、EXISTSNODE(po_col,'/PO/Lineitems[lineitemno=20]')は、購入指示書内に項目が存在するかどうかをチェックし、ここで項目数は20である。これは、
case(when(exists(select*from TABLE("po"."lineitems")where lineitemno=20))then 1 else 0)
となる。
【0128】
デフォルトテーブル
スキーマ登録の一部として、デフォルトテーブルも作成することができる。デフォルトテーブルは、このスキーマに準拠するXMLインスタンス文書が、どのようなテーブル仕様も有さないFTP、HTTP等のAPIを介して挿入される場合に最も有用である。このような場合、XMLインスタンスはデフォルトテーブル内に挿入される。
【0129】
ユーザがdefaultTable属性に値を与えている場合、XMLTypeテーブルはその名前で作成される。または、何らかの内部で生成された名前で作成される。さらに、tableStorage属性として特定されたどのようなテキストも、生成されたCREATETABLEステートメントに追加される。
【0130】
内部メモリデータ型の特定
XMLデータはRDBMSメモリ内のC構造に格納される。一般に、XMLデータのインメモリ表現は、それがロード時間におけるデータ型の変換を避けようとし、かつ、アクセスされたときにのみデータを変換するようなものである。なぜなら、文書の多くの部分は全くアクセスされないことが考えられるためである。スキーマ登録の一部として、インメモリデータ型がXMLデータ型に基づいて選択される。そして、この情報は、memDatatype属性を用いてスキーマ文書内に格納される。しかしながら、アプリケーションが、異なるインメモリ表現を優先させて、デフォルトメモリ型をオーバーライドすることを望み得るいくつかのシナリオがある。
【0131】
たとえば、文字列のデフォルトメモリ表現は、データベースセッションの文字集合に文字列データを保持する「char」である。しかしながら、このデータが固定幅UCS-2ユニコード(Fixed Width UCS-2 Unicode)であることを要求するJava(登録商標)アプリケーションによってのみこのデータが消費される場合、memDatatypeを「Java(登録商標)String」に設定すると、性能を一層高めることができる。これにより、データベースサーバ104は、ユニコードのフォーマットでJava(登録商標)メモリ内に確実にデータを直接保持し、それによってどのようなフォーマットの変換またはコピーも回避する。
【0132】
【表3】
Figure 2005505058
【0133】
マッピング情報の生成
適切なデータベース表現が特定のXMLスキーマに対して決定されると、特定のXMLスキーマで識別された要素と適切なデータベース表現の要素との間の相関関係を示すためにマッピング情報が生成される。たとえば、型「person」に対するXMLスキーマに対する適切なデータベース表現が、personXML文書に含まれるデータアイテムを格納するためのテーブルPERSONを含む場合、マッピング情報は、personXML文書とテーブルPERSONとの間の相関関係を示す。
【0134】
XMLスキーマとデータベーススキーマオブジェクト(テーブル等)との間の一般的な相関関係に加え、マッピング情報は,より一層細かいレベルの細分性で相関関係を反映できる。たとえば、マッピング情報は、PERSONテーブルのどの特定の列が、personXML文書内の特定のデータアイテムの各々を格納するために用いられるべきであるかを示し得る。
【0135】
一実施例によると、SQLマッピングに関する情報自体は、XMLスキーマ文書内に格納される。登録プロセス中に、XMLスキーママッパ106は(上で述べたように)SQL型を生成する。加えて、XMLスキーママッパ106は、マッピング情報を格納するためにXMLスキーマ文書に注釈を加える。注釈は、新規の属性の形をとる。例:以下のスキーマは、SQLType属性およびSQLName属性を介して収集されたSQLマッピング情報を示す。
【0136】
【数20】
Figure 2005505058
【0137】
入力スキーマ文書における、ユーザによって特定された名前
ユーザは、スキーマを登録する前に、SQLName属性およびSQLType属性に記入することによって、SQLオブジェクト型およびその属性の名前を特定することができる。SQLNameおよびSQLTypeの値がユーザによって特定される場合、XMLスキーママッパ106はこれらの名前を用いてSQLオブジェクト型を作製する。これらの属性がユーザによって特定されない場合、内部の名前生成アルゴリズムを用いて名前を生成する。名前生成アルゴリズムに関する詳細は、付録を参照されたい。
【0138】
以下の表は、SQLマッピング情報を収集するためにスキーマ内で用いられる注釈のすべてを記載している。ユーザがこれらの属性のいずれに対しても値を特定する必要のないことに注意されたい。XMLスキーママッパ106はスキーマ登録プロセス中に適切な値を記入する。しかしながら、ユーザが少なくともトップレベルのSQL型の名前を特定して、後にそれらを参照可能にすることが勧められる。注釈はすべて、属性宣言および要素宣言内で特定され得る属性の形をとる。これらの属性は、XDB名前空間である、http://xmlns.oracle.com/xdb/XDBSchema.xsdに属する。
【0139】
【表4】
Figure 2005505058
【0140】
【表5】
Figure 2005505058
【0141】
ハイブリッド格納モデル
一実施例によると、XMLスキーママッパ106は、ハイブリッド格納モデルをサポートするように実現される。このハイブリッド格納モデルにおいて、XMLスキーマ内で定義された或る要素の構造は適切なデータベース表現に維持され、或る要素の構造は維持されない。たとえば、XML文書型の最も頻繁にクエリー/更新される部分はオブジェクト型の属性にマッピングされ得、一方でXML文書の残りの部分はともにCLOB内に格納される。一実施例によると、それに対して構造が維持されるべきであるか、または維持されるべきではない特定の部分は、適切なマッピング指示文でXMLスキーマに予め注釈を付けることによって指定される。
【0142】
XMLスキーマ登録のトランザクショナルな本質
一実施例によると、XMLスキーマ登録は、スキーマ登録動作中にエラーに遭遇すると部分的な作用を取消す補償動作の実行を可能にする態様で、データベースサーバ104のトランザクションサポートを用いて行なわれる。
【0143】
XMLスキーマにおけるサイクル定義の処理
XMLスキーマはサイクルを含み得る。一実施例によると、XMLスキーママッパ106は、SQLオブジェクト型にマッピングする間に、REFを用いることによってこのようなサイクルを検出してそれらを破壊するように構成される。REFをどのように用いてサイクルを破壊するかについての詳細な説明を、付録Iに提示する。
【0144】
マッピング情報に基づいたXML文書の格納
特定の文書型に対するXMLスキーマがデータベースサーバ104に登録された後に、そのスキーマに準拠するXML文書をデータベースサーバ104によってインテリジェントに管理することができる。一実施例によると、データベースサーバ104が管理するデータベースにリソースが格納されなければならないことをプロトコルが示すと、データベースサーバ104が.xml、.xsl、.xsd等に対する文書のファイル名拡張子をチェックする。文書がXMLである場合、予め構文解析するステップが行なわれ、その文書のルート要素のXML schemaLocationおよびnamespaceを決定するために十分なリソースが読出される。この位置は、そのschemaLocation URLを有して登録されたスキーマを探すために用いられる。登録されたスキーマが現在の文書のルート要素に対する定義によって位置付けられている場合、そのリソースの内容を格納するために、その要素に対して特定されたデフォルトテーブルを用いる。
【0145】
一実施例によると、この明細書に記載されたXMLスキーマ登録技術をサポートするデータベースサーバにXML文書が格納されると、データベースサーバは文書の妥当性を検証して、それらの文書が対応するXMLスキーマに準拠することを確認できる。この妥当性検証は、XML文書が用いる構造およびデータ型の両方の妥当性検証を含み得る。
【0146】
この明細書に記載された技術を用いることによって他のさまざまな利点が得られる。たとえば、スキーマ登録プロセスにより、データベースサーバは、XML文書およびそれらを格納するために用いられるテーブルに対して完全性の制約および他の形の制約を実施することができる。加えて、データベースサーバは、XMLデータに基づいてXMLテーブルにインデックスを作成して区画することができる。
【0147】
XML文書からのデータがデータベース内に格納される要領にXML文書の構造が反映されるため、この構造を反映するために一般に用いられるタグ情報は、そのデータとともに格納される必要はない。XMLタグのいくつかまたはすべての格納を回避できることから、格納のオーバーヘッドを著しく減じることができる。なぜなら、XMLタグがXML文書のサイズの大きな部分をなすことが多いためである。
【0148】
他の性能の利点も可能になる。たとえば、XPathクエリーを書換えて下位の列に直接アクセスすることによってクエリーの性能を高めることができる。加えて、更新を書換えて下位の列を直接更新することによって更新の性能を高めることができる。したがって、格納された文書からのXMLデータの一部を更新しても、格納された文書に対してXMLデータ全体の書換えは必ずしも要求されない。
【0149】
ハードウェアの概観
図2は、この発明の一実施例が実現され得るコンピュータシステム200を示すブロック図である。コンピュータシステム200は、バス202または情報を通信するための他の通信機構と、バス202に結合されて情報を処理するためのプロセッサ204とを含む。コンピュータシステム200は、バス202に結合されてプロセッサ204が実行する命令および情報を格納するためのメインメモリ206、たとえばランダムアクセスメモリ(RAM)または他の動的記憶装置も含む。メインメモリ206は、プロセッサ204が実行する命令の実行中に、一時的数値変数または他の中間情報を格納するためにも使用可能である。コンピュータシステム200は、バス202に結合されてプロセッサ204に対する静的情報および命令を格納するための読出専用メモリ(ROM)208または他の静的記憶装置をさらに含む。磁気ディスクまたは光学ディスク等の記憶装置210が設けられてバス202に結合され、情報および命令を格納する。
【0150】
コンピュータシステム200は、コンピュータユーザに情報を表示するためのディスプレイ212、たとえば陰極線管(CRT)に、バス202を介して結合され得る。英数字キーおよび他のキーを含む入力装置214がバス202に結合されて、情報および指令選択をプロセッサ204に通信する。別の種類のユーザ入力装置が、方向情報および指令選択をプロセッサ204に通信してディスプレイ212上のカーソル動作を制御するためのカーソル制御216、たとえばマウス、トラックボール、またはカーソル方向キーである。この入力装置は一般に、2つの軸、すなわち第1の軸(x等)および第2の軸(y等)において2自由度を有し、これによって入力装置は平面上で位置を特定できる。
【0151】
この発明は、この明細書に記載された技術を実現するためにコンピュータシステム200を用いることに関する。この発明の一実施例によると、これらの技術は、メインメモリ206に含まれる1つ以上の命令からなる1つ以上のシーケンスをプロセッサ204が実行することに応答して、コンピュータシステム200により実行される。このような命令は、別のコンピュータ読取可能な媒体、たとえば記憶装置210等からメインメモリ206内に読出すことができる。メインメモリ206に含まれる命令のシーケンスを実行することにより、プロセッサ204はこの明細書に記載された処理のステップを実行する。代替的な実施例では、ソフトウェア命令の代わりに、またはソフトウェア命令と組合せて結線回路を用いて、この発明を実施することができる。したがって、この発明の実施例は、ハードウェア回路およびソフトウェアの任意の特定の組合せに限定されない。
【0152】
この明細書で用いられる「コンピュータ読取可能な媒体」という用語は、プロセッサ204に対して実行のために命令を提供することにかかわる任意の媒体を指す。このような媒体は、不揮発性媒体、揮発性媒体、および伝送媒体を含む多くの形態をとり得るが、これらに限定されない。不揮発性媒体には、たとえば記憶装置210等の光学または磁気ディスクが含まれる。揮発性媒体には、メインメモリ206等の動的メモリが含まれる。伝送媒体には、同軸ケーブル、銅線、および光ファイバが含まれ、バス202を有するワイヤが含まれる。伝送媒体は、電波および赤外線データ通信の際に生成されるもの等の音波または光波の形をとり得る。
【0153】
コンピュータ読取可能な媒体の一般的な形態には、たとえばフロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、孔パターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、FLASH-EPROM、任意の他のメモリチップもしくはカートリッジ、以下に述べる搬送波、またはコンピュータが読出すことのできる任意の他の媒体が含まれる。
【0154】
プロセッサ204に対して実行のために1つ以上の命令からなる1つ以上のシーケンスを運ぶ際に、コンピュータ読取可能な媒体のさまざまな形態が関与し得る。たとえば、命令は、最初に遠隔コンピュータの磁気ディスクで運ばれ得る。遠隔コンピュータはそれらの命令をそれ自体の動的メモリにロードして、それらの命令を、モデムを用いて電話回線経由で送信することができる。コンピュータシステム200に対してローカルなモデムが電話回線上のデータを受信して、赤外線送信機を用いてそのデータを赤外線信号に変換することができる。赤外線信号によって運ばれたデータは赤外線検出器によって受信され得、適切な回路がそのデータをバス202上に出力することができる。バス202はそのデータをメインメモリ206に運び、そこからプロセッサ204が命令を取り出して実行する。メインメモリ206が受信した命令は、プロセッサ204による実行前または実行後のいずれかに、記憶装置210に任意に格納され得る。
【0155】
コンピュータシステム200は、バス202に結合された通信インターフェイス218も含む。通信インターフェイス218は、ローカルネットワーク222に接続されたネットワークリンク220に対する双方向のデータ通信結合をもたらす。たとえば通信インターフェイス218は、対応する種類の電話回線に対するデータ通信接続を設けるためのサービス統合デジタル網(ISDN)カードまたはモデムであり得る。別の例として、通信インターフェイス218は、互換性を有するLANにデータ通信接続を設けるためのローカルエリアネットワーク(LAN)カードであり得る。無線リンクもまた実現することができる。このようなどの実現例においても、通信インターフェイス218は、さまざまな種類の情報を表わすデジタルデータストリームを運ぶ電気的、電磁的、または光学的信号を送受信する。
【0156】
ネットワークリンク220は一般に、1つ以上のネットワーク経由で他のデータ装置に対するデータ通信をもたらす。たとえば、ネットワークリンク220は、ローカルネットワーク222経由でホストコンピュータ224またはインターネットサービスプロバイダ(Internet Service Provider)(ISP)226が作動させるデータ装置に接続をもたらすことができる。ISP226は次いで、現在一般に「インターネット」228と呼ばれるワールドワイドパケットデータ通信網を介してデータ通信サービスを提供する。ローカルネットワーク222およびインターネット228はともに、デジタルデータストリームを運ぶ電気的、電磁的、または光学的信号を用いる。さまざまなネットワークを経由する信号と、ネットワークリンク220上の、コンピュータシステム200との間でデジタルデータを運ぶ通信インターフェイス218経由の信号とは、情報を運搬する搬送波の例示的形態である。
【0157】
コンピュータシステム200は、ネットワーク、ネットワークリンク220、および通信インターフェイス218を介してメッセージを送信してプログラムコードを含むデータを受信することができる。インターネットの例では、サーバ230は、インターネット228、ISP226、ローカルネットワーク222および通信インターフェイス218経由でアプリケーションプログラムに対して要求されたコードを送信することができる。
【0158】
受信されたコードは、受信されたときにプロセッサ204によって実行され得、および/または後の実行のために記憶装置210もしくは他の不揮発性記憶装置に格納され得る。このようにして、コンピュータシステム200は搬送波の形でアプリケーションコードを得ることができる。
【0159】
上述の明細書では、この発明の実施例を実現例ごとに異なり得る多数の特定の詳細を参照して説明してきた。したがって、この発明が何であるか、およびこの発明を目指して出願人が何を意図しているかを独占的に示す唯一ものが、この出願から発生して特有の形態をとった請求項の組である。特有の形態においてこのような請求項は、以降の任意の補正を含んで発生する。このような請求項に含まれる用語に対してこの明細書で明示された任意の定義は、請求項で用いられている通りにこのような用語の意味を支配するものとする。したがって、請求項に明示的に記載されていない限定、要素、特性、特徴、利点または属性は、このような請求項の範囲を決して限定しない。したがって、明細書および図面は限定的な意味ではなく例示的な意味で捉えられるべきである。
【0160】
[付録I]
(Oracle9i XML データベース開発者用ガイド−オラクルXML DB:Oracle9i XML Database Developer's Guide - Oracle XML DB)
・XMLスキーマの紹介
・XMLスキーマおよびオラクルXML DBの紹介
・オラクルXML DBおよびXMLスキーマの使用
・DBMS_XMLSCHEMAの紹介
・オラクルXML DB使用前のXMLスキーマの登録
・DBMS_XMLSCHEMAを使用したXMLスキーマの削除
・登録されたXMLスキーマを使用するための指針
・XMLスキーマ登録中のJava(登録商標)Bean生成
・DBMS_XMLSCHEMA.generateSchema()を使用した、オブジェクトリレーショナル型からのXMLスキーマの生成
・XMLTypeのXMLスキーマに関連する方法
・XMLスキーマの管理および格納
・DOM忠実度
・XMLスキーマに基づいたオラクルXML DBによるXMLTypeテーブルおよび列の作成
・XMLスキーマ登録前にSQLオブジェクト型名を特定するためのSQLName属性およびSQLType属性の使用
・DBMS_XMLSCHEMAを使用した型のマッピング
・XMLスキーマ:SimpleTypeのSQLへのマッピング
・XMLスキーマ:ComplexTypeのSQLへのマッピング
・オラクルXML DB complexTypeの拡張および制限
・XMLスキーマベースのXMLテーブルを作成するためのさらなる指針
・XMLスキーマベースのオブジェクトリレーショナル格納でのクエリー書換
・XMLスキーマ登録中のデフォルトテーブルの作成
・テーブル内順序付き集合(OCT)
・XMLスキーマ間での循環参照
XMLスキーマの紹介
XMLスキーマ勧告は、XMLにおけるXML文書の内容および構造を記述するために、ワールドワイドウェブコンソーシアム(W3C)によって作成された。それは文書型定義(DTD)の全能力を含んでおり、そのため既存のDTDはXMLスキーマに変換可能である。DTDと比較して、XMLスキーマはさらなる能力を有する。
XMLスキーマおよびオラクルXML DBの紹介
XMLスキーマは、XMLで書かれたスキーマ定義言語である。それは、準拠するインスタンス文書の構造およびさまざまな他の意味論を記述するために使用可能である。たとえば、以下のXMLスキーマ定義po.xsdは、注文書XML文書の構造および他の特性を記述している。
【0161】
このマニュアルでは、XMLスキーマ定義をXMLスキーマと呼ぶ。
【0162】
例5−1 XMLスキーマ定義po.xsd
以下は、XMLスキーマ定義po.xsdの一例である。
【0163】
【数21】
Figure 2005505058
【0164】
例5−2 XMLスキーマpo.xsdに準拠するXML文書po.xml
以下は、XMLスキーマpo.xsdに準拠するXML文書の一例である。
【0165】
【数22】
Figure 2005505058
【0166】
注:
ここで使用されるURL‘http://www.oracle.com/PO.xsd'は単に、データベース内の登録されたXMLスキーマを一意的に識別する名前であり、XMLスキーマ文書が配置されている物理的なURLである必要はない。また、XMLスキーマのターゲット名前空間は、その中で要素および型が宣言された抽象的な名前空間を特定する、XMLスキーマ位置URLとは異なる別のURLである。
【0167】
XMLスキーマは随意でターゲット名前空間URLを特定できる。この属性が省略されている場合、XMLスキーマはターゲット名前空間を持たない。注:targetnamespaceは通常、XMLスキーマのURLと同じである。
【0168】
XMLインスタンス文書は、ルート要素の名前空間(XMLスキーマのターゲット名前空間と同じ)と、このルート要素を定義するXMLスキーマの位置(URL)との双方を特定しなければならない。この位置は属性xsi:schemaLocationで特定される。XMLスキーマがターゲット名前空間を持たない場合、XMLスキーマURLを特定するために属性xsi:noNamespaceSchemaLocationを使用する。
オラクルXML DBおよびXMLスキーマの使用
オラクルXML DBは注釈付きのXMLスキーマをメタデータ、つまり、オラクルXML DBによって規定されたいくつかの属性を伴った標準XMLスキーマ定義として使用する。これらの属性は異なる名前空間にあり、インスタンス文書がデータベースにいかにマッピングされるかを制御する。これらの属性はXMLスキーマ名前空間とは異なる名前空間にあるため、そのような注釈付きのXMLスキーマは依然として正当なXMLスキーマ文書である。
【0169】
オラクルXML DBを使用する際、まず自分のXMLスキーマを登録しなければならない。そうすれば、XMLTypeテーブル、列、およびビューを作成する間、そのXMLスキーマURLが使用できる。
【0170】
オラクルXML DBは、以下のタスクのためにXMLスキーマサポートを提供する。
【0171】
・任意のW3C準拠のXMLスキーマを登録すること。
【0172】
・登録されたXMLスキーマ定義に対し、自分のXML文書の妥当性を検証すること。
【0173】
・ローカルおよびグローバルXMLスキーマを登録すること。
【0174】
・オブジェクト型からXMLスキーマを生成すること。
【0175】
・別のユーザが所有するXMLスキーマを参照すること。
【0176】
・ローカルXMLスキーマが同じ名前で存在する場合に、グローバルXMLスキーマを明確に参照すること。
【0177】
・XMLスキーマ登録中に、自分のXMLスキーマから構造化データベースマッピングを生成すること。これは、SQLオブジェクト型、集合型、およびデフォルトテーブルを生成することと、XMLスキーマ属性を用いてマッピング情報を取得することとを含む。
【0178】
・多数の正当なマッピングがある場合に、ある特定のSQL型マッピングを特定すること。
【0179】
・登録されたXMLスキーマに基づいて、XMLTypeテーブル、ビュー、および列を作成すること。
【0180】
・XMLスキーマベースのXMLTypeテーブルに対し、操作(DML)およびクエリーを実行すること。
【0181】
・スキーマベースのXMLインスタンスがFTP、HTTP/WebDavプロトコルおよび他の言語を用いてオラクルXML DBリポジトリに挿入される場合に、データをデフォルトテーブルへ自動的に挿入すること。
XMLスキーマはなぜ必要か?
XMLTypeは、データベース内の列およびテーブルへのXMLの格納を容易にするデータ型である。XMLスキーマは、データベースへのXML列およびテーブルの格納をさらに容易にし、空間性能節約オプションに加え、XMLデータ用のより多くの格納およびアクセスオプションを提供する。
【0182】
たとえば、XMLスキーマを用いて、どの要素および属性が使用可能か、どの種類の要素入れ子化およびデータ型が格納または処理中のXML文書において可能であるかを宣言することができる。
【0183】
XMLスキーマはXMLからSQLへの柔軟なマッピングセットアップを提供する
オラクルXML DBでのXMLスキーマの使用は、XML格納マッピングのための柔軟なセットアップを提供する。たとえば:
・データが高度に構造化されている場合(大部分がXML)、XML文書の各要素はテーブル内の或る列として格納可能である。
【0184】
・データが構造化されていない場合(すべてまたは大部分が非XMLデータ)、データは文字ラージオブジェクト(CLOB)に格納可能である。
【0185】
どの格納方法を選択するかは、自分のデータをどう使用するかに依存し、クエリー可能性、および、自分のデータをクエリーして更新するための自分の要件に依存する。言い換えれば、XMLスキーマの使用により、高度に構造化されたデータ、または構造化されていないデータを格納するためのより一層の柔軟性が与えられる。
【0186】
XMLスキーマはXMLインスタンスの妥当性検証を可能にする
オラクルXML DBでXMLスキーマを使用する別の利点は、XMLスキーマに従い、最高性能のためのオラクルXMLリポジトリ要件を基準にして、XMLインスタンスの妥当性検証を実行できる点である。たとえば、XMLスキーマは、許容されたアイテム発生の許容された構造、型、数、またはアイテムの許容された長さなどの、XMLスキーマにおいて宣言された定義に、すべての入力XML文書が準拠することをチェックできる。
【0187】
また、オラクルXML DBにXMLスキーマを登録することにより、FTPまたはHTTPなどのプロトコルを使用してXMLインスタンスを挿入し、格納する場合に、XMLスキーマ情報はいかに効率よくXMLインスタンスが挿入されるかに影響を与え得る。
【0188】
XMLインスタンスが、それらについての事前情報なしで取扱われなければならない場合、XMLスキーマは、最適な格納、忠実度、およびアクセスを予測する上で有用となり得る。
DBMS_XMLSCHEMAの紹介
オラクルXML DBのXMLスキーマ機能性は、オラクルXML DBアプリケーションによって使用されるXMLスキーマ定義の登録を取扱うサーバ側構成要素のPL/SQL供給パッケージ、DBMS_XMLSCHEMAを介して利用可能である。
【0189】
主なDBMS_XMLSCHEMA関数のうちの2つを以下に挙げる。
【0190】
・registerSchema():これは、以下の事項が与えられたXMLスキーマを登録する。
【0191】
・文字列、LOB、XMLType、およびURITypeを含むさまざまなフォーマットであり得るXMLスキーマソース
・そのスキーマURLまたはXMLSchema名
・deleteSchema():これは、そのURLまたはXMLSchema名によって識別された、以前に登録されたXMLスキーマを削除する。
オラクルXML DB使用前のXMLスキーマの登録
XMLスキーマは、それがオラクルXML DBによって任意のコンテキストにおいて使用または参照され得る前に、登録されなければならない。XMLスキーマは、DBMS_XMLSCHEMA.registerSchema()を使用し、以下の事項を特定することによって登録される:
・VARCHAR、CLOB、XMLType、またはURITypeとしてのXMLスキーマソース文書。
【0192】
・XMLスキーマURL。これは、XMLインスタンス文書内で使用される、それらの文書が準拠するXMLスキーマの位置を特定するためのXMLスキーマ用名前である。
【0193】
登録完了後:
・このXMLスキーマに準拠し、それをXML文書内のXMLスキーマのURLを用いて参照するXML文書は、オラクルXML DBによって処理可能である。
【0194】
・このXMLスキーマによって定義されたルートXML要素のためにテーブルおよび列を作成し、準拠するXML文書を格納することが可能である。
DBMS_XMLSCHEMAを使用したXMLスキーマの登録
DBMS_XMLSCHEMAを使用してXMLスキーマを登録する。これは、XMLスキーマ文書と、XMLスキーマ位置としても公知のそのURLとを特定することを伴う。
【0195】
例5−3 DBMS_XMLSCHEMAを使用した、complexTypeを宣言するXMLスキーマの登録
以下に示すXMLスキーマを考慮されたい。それは、PurchaseOrderTypeと呼ばれるcomplexTypeと、この型の要素PurchaseOrderとを宣言している。このスキーマはPL/SQL可変docに格納される。以下は、XMLスキーマをURL:http://www.oracle.com/PO.xsdに登録する。
【0196】
【数23】
Figure 2005505058
【0197】
登録されたスキーマを用いて、XMLスキーマベースのテーブル、またはXMLスキーマベースの列を作成することができる。たとえば、以下のステートメントは、XMLスキーマベースの列を有するテーブルを作成する。
【0198】
【数24】
Figure 2005505058
【0199】
以下は、上のテーブルに挿入中の前述のXMLスキーマに準拠するXMLTypeインスタンスを示す。schemaLocation属性はスキーマURLを特定する。
【0200】
【数25】
Figure 2005505058
【0201】
ローカルおよびグローバルXMLスキーマ
XMLスキーマは、ローカルまたはグローバルとして登録可能である。
【0202】
・ローカルXMLスキーマ:ローカルスキーマとして登録されたXMLスキーマは、デフォルトにより、所有者しか見ることができない。
【0203】
・グローバルXMLスキーマ:グローバルスキーマとして登録されたXMLスキーマは、デフォルトにより、データベースユーザ全員が見たり使用することができる。
【0204】
あるXMLスキーマを登録する場合、DBMS_XMLSCHEMAは、そのXMLスキーマに対応するオラクルXML DBリソースをオラクルXML DBリポジトリに追加する。XMLスキーマURLは、以下の規則に従って、オラクルXML DBリポジトリにおけるリソースの経路名を判断する。
【0205】
ローカルXMLスキーマ
オラクルXML DBでは、ローカルXMLスキーマリソースは、/sys/schemas/<username>ディレクトリの下で作成される。経路名の残りはスキーマURLから得られる。
【0206】
例5−4 ローカルXMLスキーマ
たとえば、スキーマURL:http://www.myco.com/PO.xsdを有し、スコット(SCOTT)によって登録されたローカルXMLスキーマには、経路名:/sys/schemas/SCOTT/www.myco.com/PO.xsdが与えられる。
【0207】
XMLスキーマをローカルXMLスキーマとして登録するには、データベースユーザは、この経路名でリソースを作成する適切な許可(ACL)を必要とする。
【0208】
デフォルトにより、XMLスキーマは、そのXMLスキーマをオラクルXML DBに登録した後でユーザに属する。XMLスキーマ文書への参照は、オラクルXML DBリポジトリに、ディレクトリ:/sys/schemas/<username>/....に格納される。
【0209】
たとえば、SCOTTが前述のXMLスキーマを登録した場合、それはファイル:/sys/schemas/SCOTT/www.oracle.com/PO.xsdにマッピングされる。
【0210】
そのようなXMLスキーマはローカルと呼ばれる。一般に、それらはそれらが属する者にしか利用できない。
【0211】
注:通常、XMLスキーマを用いてXMLTypeテーブル、列またはビューを定義したり、文書の妥当性を検証したりすることなどができるのは、XMLスキーマの所有者のみである。しかしながら、オラクルは、http://xmlns.oracle.com/xdb/schemas/SCOTT/www.oracle.com/PO.xsdとして特定され得る、十分に適格なXMLスキーマURLをサポートしている。この拡張URLは、特権を与えられたユーザが他のユーザに属するXMLスキーマを特定するために使用可能である。
【0212】
グローバルXMLスキーマ
ローカルスキーマとは対照的に、特権を与えられたユーザは、DBMS_XMLSCHEMA登録関数に対して引数を特定することによって、XMLスキーマをグローバルXMLスキーマとして登録することができる。
【0213】
グローバルスキーマは全ユーザが見ることができ、オラクルXML DBリポジトリ内の/sys/schemas/PUBLIC/ディレクトリの下に格納されている。
【0214】
注:このディレクトリへのアクセスはアクセス制御リスト(ACL)によって制御されており、デフォルトにより、DBAによってのみ書込可能である。グローバルスキーマを登録するには、このディレクトリにおけるWRITE特権が必要である。
【0215】
XDBAdmin関数も、このディレクトリへのWRITEアクセスを、それがデフォルトの「保護された」ACLによって保護されていると仮定して提供する。
既存のグローバルスキーマと同じURLを用いてローカルスキーマを登録することができる。ローカルスキーマは常に、同じ名前(URL)を有するどのグローバルスキーマも隠す。
【0216】
例5−5 グローバルXMLスキーマ
たとえば、SCOTTによって登録され、URL:www.myco.com/PO.xsdを有するグローバルスキーマは、/sys/schemas/PUBLIC/www.myco.com/PO.xsdにおいてオラクルXML DBリポジトリにマッピングされる。
【0217】
XMLスキーマをグローバルとして登録するには、データベースユーザは、このリソースを作成する適切な許可(ACL)を必要とする。
XMLスキーマの登録:オラクルXML DBによる格納およびアクセスインフラストラクチャのセットアップ
XMLスキーマを登録する一環として、オラクルXML DBは、そのXMLスキーマに準拠するXMLインスタンスの格納、アクセスおよび操作を容易にするいくつかの他のステップも実行する。これらのステップは以下の事項を含む。
【0218】
・型の作成:あるXMLスキーマが登録される場合、オラクルは、このXMLスキーマに準拠するXML文書の構造化された格納を可能にする適切なSQLオブジェクト型を作成する。XMLスキーマ文書内のオラクルXML DBが定義した属性を使用して、これらのオブジェクト型がいかに生成されるかを制御することができる。
【0219】
・デフォルトテーブルの作成:XMLスキーマ登録の一環として、オラクルXML DBは、すべてのルート要素のためのデフォルトXMLTypeテーブルを生成する。テーブル作成中に使用される任意の列およびテーブルレベル制約も特定可能である。
【0220】
・Java(登録商標)beanの作成:Java(登録商標)beanは、XMLスキーマ登録中に随意で生成可能である。これらのJava(登録商標)クラスは、アクセサおよびミューテータ方
法を、スキーマ内で宣言された要素および属性に提供する。XMLスキーマが周知である場合、Java(登録商標)beanを用いたアクセスは、XMLを操作するためのより良好な性能を提供する。これは、実行時名前変換を回避するのに役立つ。
DBMS_XMLSCHEMAを使用したXMLスキーマの削除
DBMS_XMLSCHEMA.deleteSchema手順を使用することによって、登録されたXMLスキーマを削除できる。XMLスキーマを削除したい場合、DBMS_XMLSCHEMAは以下の事項をチェックする。
【0221】
・現在のユーザが、オラクルXML DBリポジトリ内のXMLスキーマに対応するリソースを削除する適切な特権(ACL)を有すること。XMLスキーマリソースに対して適切なACLを設定することにより、どのユーザがどのXMLスキーマを削除できるかを制御できる。
【0222】
・従属子について。従属子があれば、それはエラーを起こし、削除動作は失敗する。これは、XMLスキーマを削除するRESTRICT(制限)モードと呼ばれる。
【0223】
FORCE(強制)モード
XMLスキーマの削除中、FORCEモードオプションが提供される。FORCEモードオプションを特定すると、XMLスキーマ削除は、それが従属性チェックに合格しなかった場合でも進行する。このモードでは、XMLスキーマ削除は、その従属子すべてを、妥当でないとしてマークする。
【0224】
CASCADE(カスケード)モード
CASCADEモードオプションは、スキーマを登録する事前の呼出しの一環として、すべての生成された型、デフォルトテーブル、およびJava(登録商標)beanをドロップする。
【0225】
DBMS_XMLSCHEMAについては、Oracle9i XML API リファレンス-XDKおよびXDBの章も参照されたい。
【0226】
例5−6 DBMS_XMLSCHEMAを使用したXMLスキーマの削除
以下の例は、XMLスキーマPO.xsdを削除する。まず、従属テーブルpo_tabがドロップされる。次に、スキーマは、DBMS_XMLSCHEMA.DELETESCHEMAでFORCEおよびCASCADEモードを用いて削除される。
【0227】
【数26】
Figure 2005505058
【0228】
登録されたXMLスキーマを使用するための指針
以下のセクションはXMLスキーマをオラクルXML DBに登録するための指針を説明する。
登録されたXMLスキーマに従属するオブジェクト
以下のオブジェクトは、登録されたXMLスキーマに従属する。
【0229】
・XMLスキーマ内の何らかの要素に準拠するXMLType列を有するテーブルまたはビュー。
【0230】
・このスキーマを定義の一部として含む、またはインポートするXMLスキーマ。
【0231】
・たとえばDBMS_XMLGEN演算子内でXMLスキーマ名を参照するカーソル。なお、これらは純粋に一時的なオブジェクトである。
XMLTypeテーブル、ビューまたは列の作成
XMLスキーマの登録後、それを用いてXMLスキーマベースのXMLTypeテーブル、ビュー、および列を、以下を参照することによって作成することができる。
【0232】
・登録されたXMLスキーマのXMLスキーマURL
・ルート要素の名前
例5−7 XMLTypeテーブルの登録後作成
たとえば、XMLスキーマベースのXMLTypeテーブルを、以下のように作成することができる。
【0233】
【数27】
Figure 2005505058
【0234】
以下のステートメントは、スキーマに準拠するデータを挿入する。
【0235】
【数28】
Figure 2005505058
【0236】
XMLスキーマに対するXMLインスタンスの妥当性検証:schemaValidate()
妥当性検証方法のうちの1つを用いることによって、登録されたXMLスキーマに対してXMLTypeインスタンスの妥当性を検証することができる。
【0237】
例5−8 schemaValidate()を使用したXMLの妥当性検証
以下のPL/SQLの例は、XMLスキーマPO.xsdに対するXMLインスタンスの妥当性を検証する。
【0238】
【数29】
Figure 2005505058
【0239】
(テーブルからフェッチすることにより)xmldocを投入する。
【0240】
【数30】
Figure 2005505058
【0241】
XMLスキーマに対して妥当性を検証する。
【0242】
【数31】
Figure 2005505058
【0243】
十分に適格なXMLスキーマURL
デフォルトにより、XMLスキーマURL名は常に現在のユーザの範囲内で参照される。言い換えれば、データベースユーザがXMLスキーマURLを特定すると、それらはまず、現在のユーザによって所有されるローカルXMLスキーマの名前として解決される。
【0244】
・そのようなXMLスキーマがない場合、それらはグローバルXMLスキーマの名前として解決される。
【0245】
・グローバルXMLスキーマがない場合、オラクルXML DBはエラーを起こす。
【0246】
ユーザが参照できないXMLスキーマ
これらの規則は、デフォルトにより、ユーザが以下の種類のXMLスキーマを参照できないことを意味する。
【0247】
・異なるデータベースユーザによって所有されているXMLスキーマ
・ローカルXMLスキーマと同じ名前を有するグローバルXMLスキーマ
十分に適格なXMLスキーマURLはXMLスキーマURLへの明確な参照を可能にする
これらの場合においてXMLスキーマへの明確な参照を可能にするために、オラクルXML DBは、十分に適格なXMLスキーマURLの概念をサポートしている。この形では、そのようなXMLスキーマURLが以下のようなオラクルXML DB名前空間に属する点を除けば、XMLスキーマを所有するデータベースユーザの名前もXMLスキーマURLの一部として特定される。
【0248】
【数32】
Figure 2005505058
【0249】
例5−9 十分に適格なXMLスキーマURLの使用
たとえば、URL:http://www.example.com/po.xsdを有するグローバルXMLスキーマを考慮されたい。
【0250】
データベースユーザのSCOTTが同じURLを有するローカルXMLスキーマを有すると仮定されたい。
【0251】
ユーザのジョー(JOE)は、SCOTTが所有する以下のようなローカルXMLスキーマを参照できる。
【0252】
http://xmlns.oracle.com/xdb/schemas/SCOTT/www.example.com/po.xsd
同様に、グローバルXMLスキーマについて十分に適格なURLは以下のとおりである。
【0253】
http://xmlns.oracle.com/xdb/schemas/PUBLIC/www.example.com/po.xsd
XMLスキーマ登録のトランザクショナルな挙動
XMLスキーマの登録は非トランザクショナルであり、他のSQL DDL演算と同様に、以下のように自動遂行される。
【0254】
・登録が成功すると、演算は自動遂行される。
【0255】
・登録が失敗すると、データベースは登録開始前の状態にロールバックされる。
【0256】
XMLスキーマ登録は潜在的にオブジェクト型およびテーブルの作成を伴うため、エラー回復は、任意のそのような作成された型およびテーブルをドロップすることを伴う。このため、XMLスキーマ登録全体は原子的であることが保証される。つまり、それは成功するか、またはデータベースが登録開始前の状態に回復されるかのどちらかである。
XMLスキーマ登録中のJava(登録商標)bean生成
Java(登録商標)beanはXMLスキーマ登録中に随意で生成可能であり、アクセサおよびミューテータ方法を、XMLスキーマ内で宣言された要素および属性に提供する。データベース内に格納されたXMLデータへの、Java(登録商標)beanを用いたアクセスは、XMLスキーマが周知で、実行時名前変更を回避することによりほぼ固定されている場合に、XMLデータを操作するためのより良好な性能を提供する。
【0257】
例5−10 XMIスキーマ登録中のJava(登録商標)beanクラスの生成
たとえば、XMLスキーマPO.xsdに対応するJava(登録商標)beanクラスは、以下のアクセサおよびミューテータ方法を有する。
【0258】
【数33】
Figure 2005505058
【0259】
注:オラクルXML DBにおけるJava(登録商標)beanサポートは、XMLスキーマベースのXML文書に対してのみである。スキーマベースでないXML文書は、オラクルXML DB DOM APIを用いて操作可能である。
DBMS_XMLSCHEMA.generateSchema()を使用した、オブジェクトリレーショナル型からのXMLスキーマの生成
XMLスキーマは、デフォルトマッピングを自動的に使用して、オブジェクトリレーショナル型から生成可能である。DBMS_XMLSCHEMAパッケージ内のgenerateSchema()およびgenerateSchemas()関数は、オブジェクト型名を有する文字列と、オラクルXML DB XMLスキーマを有する別のものとを取入れる。
【0260】
・generateSchema()は、あるXMLスキーマを含むXMLTypeを戻す。それは随意で、所与のオブジェクト型により参照された、またはトップレベルの型にのみ制限されたすべての型について、XMLスキーマを生成可能である。
【0261】
・generateSchemas()は、異なる名前空間に各々対応する複数のXMLスキーマのXMLSequenceTypeを戻す点を除けば、同様である。それはまた、好ましいXMLスキーマ位置のルートURL:http://xmlns.oracle.com/xdb/schemas/<schema>.xsdを特定する、さらなる随意の引数を取る。
【0262】
それらは、XMLスキーマをオラクルXML DBに登録するために使用可能な注釈付XMLスキーマを随意で生成することも可能である。
【0263】
例5−11 XMLスキーマの生成:generateSchema()の使用
たとえば以下のオブジェクト型の場合、
【0264】
【数34】
Figure 2005505058
【0265】
この型についてのスキーマは、以下のように生成できる。
【0266】
【数35】
Figure 2005505058
【0267】
これは、型EMPLOYEE_Tに対応するスキーマを戻す。このスキーマは、EMPLOYEE_Tという名前のELEMENTと、EMPLOYEE_TTypeと呼ばれるCOMPLEXTYPEとを宣言する。このスキーマは、http://xmlns.oracle.com/xdbからの他の注釈を含む。
【0268】
【数36】
Figure 2005505058
【0269】
XMLTypeのXMLスキーマに関連する方法
表5−1は、XMLType APIのXMLスキーマに関連する方法を一覧表示している。
【0270】
【表6】
Figure 2005505058
【0271】
XMLスキーマの管理および格納
XMLスキーマ文書はそれら自体、オラクルXML DBにXMLTypeインスタンスとして格納される。XMLスキーマに関連するXMLType型およびテーブルは、オラクルXML DB設置スクリプトcatxdbs.sqlの一部として作成される。
ルートXMLスキーマ XDBSchema.xsd
複数のXMLスキーマのためのXMLスキーマは、ルートXMLスキーマ XDBSchema.xsdと呼ばれる。XDBSchema.xsdは、オラクルXML DBによって登録可能な任意の妥当なXMLスキーマ文書を記述する。XDBSschema.xsdには、オラクルXML DBデポジトリを介して、/sys/schemas/PUBLIC/xmlns.oracle.com/xdb/XDBSchema.xsdでアクセス可能である。
XMLスキーマベースのXMLType構造はどのようにして格納されるか?
XMLスキーマベースのXMLType構造は、以下の方法のうちの1つで格納される。
【0272】
・下位のオブジェクト型の列内。これはデフォルト格納機構である。
【0273】
− XMLスキーマ登録プロセス中、SQLオブジェクト型が随意で作成可能である。
【0274】
− XMLからSQLオブジェクト型および属性へのマッピングはXMLスキーマ文書に別途注釈として、つまり、オラクルXML DBによって定義され、http://xmlns.oracle.com/xdbで定義された属性として格納される。
【0275】
・単一の下位のLOB列内。ここでは、格納選択は、CREATE TABLEステートメントのSTORE AS句において特定される。
【0276】
【数37】
Figure 2005505058
【0277】
格納機構の特定
STORE AS句を使用する代わりに、ある特定のXMLスキーマに基づいたマッピングに従ってテーブルおよび列が格納されるよう特定することができる。そのマッピングに使用されたXMLスキーマのためのURLが特定可能である。
【0278】
XMLスキーマベースではないXMLデータは、CLOBを使用してテーブルに格納できる。しかしながら、インデックス付け、クエリー書換えなどの利点は得られない。
DOM忠実度
文書オブジェクトモデル(DOM)忠実度は、元のXML文書と比較された、検索されたXML文書の構造を、DOMトラバーサルのために保持するという概念である。DOM忠実度は、オラクルXML DBに格納されたXML文書の正確性および完全性を確実にするために必要である。
オラクルXML DBはいかにしてDOM忠実度をXMLスキーマで確実にするか
XMLスキーマにおいて宣言されたすべての要素および属性は、対応するSQLオブジェクト型における別個の属性にマッピングされる。しかしながら、XMLインスタンス文書内の情報の断片の中には、これらの要素または属性によって直接表現されないものもある。例を以下に挙げる。
【0279】
・コメント
・名前空間宣言
・接頭辞情報
たとえば、データベースに格納されたXML文書を再生成する際に、このデータの完全性および正確性を確実にするため、オラクルXML DBは、DOM忠実度と呼ばれるデータ完全性機構を使用する。
【0280】
DOM忠実度は、特にDOMトラバーサルの目的のために、戻されたXML文書が元のXML文書と比較してどれだけ同一かを指す。
DOM忠実度およびSYS_XDBPD$
DOM忠実度が維持されること、および戻されたXML文書が元のXML文書と同一であることをDOMトラバーサルのために保証するために、オラクルXML DBは、システムバイナリ属性SYS_XDBPD$を、作成された各オブジェクト型に追加する。
【0281】
この属性は、他の属性のどれにも格納できない情報の断片すべてを格納し、それにより、オラクルXML DBに格納されたすべてのXML文書のDOM忠実度を確実にする。情報のそのような断片の例は、順序情報、コメント、処理命令、名前空間接頭辞などを含む。
【0282】
これは位置記述子(PD)列にマッピングされる。
【0283】
注:一般に、この情報を設定することはよい考えではない。なぜなら、PD列がなければ、コメント、処理命令などの情報の追加断片がなくなる可能性があるためである。
【0284】
SYS_XDBPD$をいかに抑制するか
DOM忠実度が必要でない場合には、属性maintainDOM=FALSEを設定することにより、XMLスキーマ定義においてSYS_XDBPD$を抑制することができる。
【0285】
注:ここでは明瞭にするため、属性SYS_XDBPD$は多くの例において省略されている。しかしながら、この属性は、XMLスキーマ登録プロセスによって生成されるすべてのSQLオブジェクト型に、位置記述子(PD)列として常に存在する。
XMLスキーマに基づいたオラクルXML DBによるXMLTypeテーブルおよび列の作成
オラクルXML DBは、XMLスキーマベースのXMLTypeテーブルおよび列を、以下を参照して作成する。
【0286】
・登録されたXMLスキーマのXMLスキーマURL
・ルート要素の名前
図3は、XMLTypeテーブルを作成するためのシンタックスを示す。
【0287】
【数38】
Figure 2005505058
【0288】
以下の例に示すXPointer記法のサブセットは、XMLスキーマ位置および要素名を含む単一のURLを提供するためにも使用可能である。
【0289】
例5−12 XMLスキーマベースのXMLTypeテーブルの作成
この例は、XMLスキーマを所与のURLで使用することにより、XMLTypeテーブルpo_tabを作成する。
【0290】
【数39】
Figure 2005505058
【0291】
同等な定義は以下のとおりである。
【0292】
【数40】
Figure 2005505058
【0293】
SQLオブジェクトリレーショナル型はXMLスキーマベースのXMLTypeテーブルを格納する
XMLスキーマが登録される際、オラクルXML DBは、このXMLスキーマに準拠するXML文書の構造化された格納を可能にする適切なSQLオブジェクト型を作成する。SQLオブジェクト型はすべて、デフォルトにより、現在登録されているXMLスキーマに基づいて作成される。
【0294】
例5−13 XMLTypeテーブルを格納するためのSQLオブジェクト型の作成
たとえば、PO.xsdをオラクルXML DBに登録する場合、以下のSQL型が作成される。なお、型の名前は生成名であり、Itemxxx_t、Itemxxx_COLL、およびPurchaseOrderTypexxx_T(式中、xxxは3桁の整数である)に必ずしも整合しない。
【0295】
【数41】
Figure 2005505058
【0296】
注:前述の例におけるオブジェクト型および属性の名前は、システムにより生成可能である。
【0297】
・XMLスキーマが、記入されたSQLName、SQLType、またはSQLColType属性を既に含む場合、この名前がオブジェクト属性の名前として使用される。
【0298】
・XMLスキーマがSQLName属性を含まない場合、名前は、それが長さまたは矛盾による理由のために使用できない場合でない限り、XML名から得られる。
【0299】
SQLSchema属性が使用される場合、オラクルXML DBは、特定されたデータベーススキーマを用いてオブジェクト型を作成しようとする。現在のユーザは、これを実行するのに必要な特権をもっていなければならない。
XMLスキーマ登録前にSQLオブジェクト型名を特定するためのSQLName属性およびSQLType属性の使用
XMLスキーマを登録する前に、生成されたSQLオブジェクトの特定の名前を特定することは、XMLスキーマ定義に属性SQLNameおよびSQLTypeを含める。
【0300】
・SQLNameおよびSQLTypeの値を特定する場合、オラクルXML DBは、これらの名前を使用してSQLオブジェクト型を作成する。
【0301】
・これらの属性を特定しない場合、オラクルXML DBは、システムにより生成された名前を使用する。
【0302】
注:これらの属性のいずれについても、値を特定する必要はない。オラクルXML DBは、XMLスキーマ登録プロセス中に適切な値を記入する。しかしながら、後で参照できるように、少なくともトップレベルのSQL型の名前を特定することが推奨される。
【0303】
すべての注釈は、属性および要素宣言内で特定可能な属性の形をとっている。これらの属性は、オラクルXML DB名前空間:http://xmlns.oracle.com/xdbに属している。
【0304】
表5−2は、要素および属性宣言において特定可能なオラクルXML DB属性を一覧表示する。
【0305】
【表7】
Figure 2005505058
【0306】
【表8】
Figure 2005505058
【0307】
【表9】
Figure 2005505058
【0308】
【表10】
Figure 2005505058
【0309】
登録中、SQLマッピングがXMLスキーマにおいて特定される
SQLマッピングに関する情報は、XMLスキーマ文書に格納される。登録プロセスは、SQL型を生成し、XMLスキーマ文書に注釈を追加して、マッピング情報を格納する。注釈は新しい属性の形をとる。
【0310】
例5−14 SQLType属性およびSQLName属性を使用したSQLマッピングの取得
以下のXMLスキーマ定義は、SQLマッピング情報がSQLType属性およびSQLName属性を使用していかに取得されるかを示す。
【0311】
【数42】
Figure 2005505058
【0312】
図4は、オラクルXML DBが、XML文書、およびXMLスキーマにおいて特定されたマッピングを用いて、XMLスキーマベースのXMLTypeテーブルをいかに作成するかを示している。XMLTypeテーブルがまず作成され、XMLスキーマにおいて格納がいかに特定されているかに依存してXMl文書がマッピングされ、1つのXMLType列にCLOBとして格納されるか、または、オブジェクトリレーショナル的に、テーブルの数行にわたり広がって格納される。
【0313】
XMLTypeテーブルがまず作成され、XMLスキーマにおいて格納がいかに特定されているかに依存してXMl文書がマッピングされ、1つのXMLType列にCLOBとして格納されるか、または、オブジェクトリレーショナル的に、テーブルの数行にわたって広がって格納される。
DBMS_XMLSCHEMAを使用した型のマッピング
DBMS_XMLSCHEMAを使用して、属性および要素についての型情報のマッピングを設定する。
属性マッピング型情報の設定
属性宣言は、以下のうちの1つに関して特定されたその型を有し得る。
【0314】
・基本型
・このXMLスキーマ内、または外部のXMLスキーマにおいて宣言されたグローバルsimpleType
・このXMLスキーマ内、または外部のXMLスキーマにおいて宣言された、グローバル属性への参照(ref=“..”)
・ローカルsimpleType
すべての場合において、SQL型および関連する情報(長さおよび精度)、ならびにメモリマッピング情報は、属性が基づくsimpleTypeに由来する。
【0315】
SQL型のオーバーライド
入力されたXMLスキーマ文書においてSQLType値を明確に特定できる。この場合、特定された型は妥当性が検証される。これにより、以下の特定の形のオーバーライドが可能になる。
【0316】
・デフォルト型がSTRINGである場合、それをCHAR、VARCHARまたはCLOBのいずれかにオーバーライドすることができる。
【0317】
・デフォルト型がRAWである場合、それをRAWまたはBLOBにオーバーライドすることができる。
要素マッピング型情報の設定
要素宣言は、以下のうちの1つに関してその型を特定できる。
【0318】
・ある属性宣言用の型を特定するための方法のいずれか
・このXMLスキーマ文書内、または外部のXMLスキーマにおいて特定されたグローバルcomplexType
・このXMLスキーマ文書内、または外部のXMLスキーマにそれ自体があり得る、グローバル要素への参照(ref=“...”)
・ローカルcomplexType
SQL型のオーバーライド
complexTypeに基づいた要素は、デフォルトにより、サブ要素および属性の各々に対応する属性を含むオブジェクト型にマッピングされる。しかしながら、入力されたXMLスキーマにおけるSQLType属性の値を明確に特定することによって、このマッピングをオーバーライドすることができる。SQLType用の以下の値が、この場合に可能となる。
【0319】
・VARCHAR2
・RAW
・CLOB
・BLOB
これらは、テキスト形式または分解されていない形式のXMLをデータベースに格納することを表わす。以下の特殊な場合が取扱われる。
【0320】
・要素を宣言するために使用されたcomplexType、およびcomplexType内で宣言された要素を処理する一環としてサイクルが検出された場合、SQLInline属性は「偽」にされ、正しいSQLマッピングがREF XMLTYPEにセットされる。
【0321】
・maxOccurs>1の場合、VARRAY型が作成される必要が有り得る。
【0322】
−SQLInline=“true”の場合、前に決定されたSQL型がその要素型であるvarray型が作成される。
【0323】
*VARRAYのカーディナリティは、maxOccurs属性の値に基づいて決定される。
【0324】
*VARRAY型の名前は、SQLCollType属性を使用しているユーザによって明確に特定されるか、要素名を切り刻むことによって得られる。
【0325】
−SQLInline=“false”である場合、SQL型は、XMLTypeへのREFのアレイを表わす予め定義された型であるXDB.XDB$XMLTYPE_REF_LIST_Tに設定される。
【0326】
・要素がグローバル要素である場合、またはSQLInline=“false”である場合、デフォルトテーブルが作成される必要がある。それはテーブル作成コンテキストに追加される。デフォルトテーブルの名前は、ユーザによって特定されているか、または要素名を切り刻むことによって得られる。
XMLスキーマ:SimpleTypeのSQLへのマッピング
このセクションは、XMLスキーマsimpleTypeをSQLオブジェクト型にマッピングするためにXMLスキーマ定義をいかに使用するかについて述べる。
【0327】
表5−5〜表5−8は、XMLスキーマ定義において特定されたような、XMLスキーマsimpleTypeのSQLへのデフォルトマッピングを一覧表示している。たとえば、以下のものが挙げられる。
【0328】
・XML基本型は、最も近いSQLデータ型にマッピングされる。たとえば、DECIMAL、POSITIVEINTEGERおよびFLOATはすべて、SQL NUMBERにマッピングされる。
【0329】
・XML列挙型は、単一のRAW(n)属性を有するオブジェクト型にマッピングされる。nの値は、列挙宣言における可能な値の数によって決定される。
【0330】
・XMLリストまたはユニオンデータ型は、SQLにおける文字列(VARCHAR2/CLOB)データ型にマッピングされる。
【0331】
【表11】
Figure 2005505058
【0332】
【表12】
Figure 2005505058
【0333】
simpleType:XML文字列のSQL VARCHAR2対CLOBへのマッピング
データ型が4000未満のmaxLength値を有する文字列であるとXMLスキーマが特定する場合、それは特定された長さのVARCHAR2属性にマッピングされる。しかしながら、maxLengthがXMLスキーマにおいて特定されていない場合、それはLOBのみにマッピング可能である。これは、文字列値のほとんどが小さく、それらの一部のみがLOBを必要とするほど十分大きいものである場合に、次善の策である。図5を参照されたい。
【0334】
図5−3 オラクルXML DB:XML文字列のSQL VARCHAR2またはCLOBへのマッピング
XMLスキーマ:ComplexTypeのSQLへのマッピング
XMLスキーマを使用して、complexTypeはSQLオブジェクト型に以下のようにマッピングされる。
【0335】
・complexType内で宣言されたXML属性は、オブジェクト属性にマッピングされる。XML属性を定義するsimpleTypeは、対応する属性のSQLデータ型を決定する。
【0336】
・complexType内で宣言されたXML要素も、オブジェクト属性にマッピングされる。オブジェクト属性のデータ型は、XML要素を定義するsimpleTypeまたはcomplexTypeによって決定される。
【0337】
XML要素が属性maxOccurs>1で宣言されている場合、それはSQL内のcollection属性にマッピングされる。maintainOrder属性が偽に設定された場合には、collectionはVARRAY(デフォルト)、または入れ子構造のテーブルとなり得る。さらに、VARRAYのデフォルト格納は、LOBではなくテーブル内順序付集合(OCT)にある。storeAsLob属性を真に設定することによって、LOB格納を選択できる。
【0338】
ページ5−70(原文)の「テーブル内順序付集合(OCT)」も参照されたい。
complexTypeのSQLへのマッピング:ライン外格納のためにSQLInLine属性を偽へ設定
デフォルトにより、サブ要素は、埋込まれたオブジェクト属性にマッピングされる。しかしながら、ライン外格納がより良好な性能を提供する場合があり得る。そのような場合、SQLInLine属性は偽に設定可能であり、オラクルXML DBは、埋込まれたREF属性を有するオブジェクト型を生成する。REFは、ライン外で格納されるXMLフラグメントに対応するXMLTypeの別のインスタンスを指す。デフォルトXMLTypeテーブルも、ライン外フラグメントを格納するために作成される。
【0339】
図6は、ライン外格納のためのcomplexTypeのSQLへのマッピングを示す。
【0340】
例5−15 オラクルXML DB XMLスキーマ:complexTypeマッピング−ライン外格納のために、SQLInLine属性を偽へ設定
ライン外格納のために、属性を偽へ
この例では、要素Addrの属性であるxdb:SQLInLineが偽に設定される。結果として生じるオブジェクト型OBJ_T2は、REF属性が埋込まれた型XMLTypeの列を有する。REF属性は、テーブルAddr_tab内のオブジェクト型OBJ_T1で作成された別のXMLTypeインスタンスを指す。Addr_tabはStreetおよびCityという列を有する。後者のXMLTypeインスタンスはライン外で格納される。
【0341】
【数43】
Figure 2005505058
【0342】
このXMLスキーマを登録する際、オラクルXML DBは、以下の型およびXMLTypeテーブルを生成する。
【0343】
【数44】
Figure 2005505058
【0344】
complexTypeのSQLへのマッピング: XMLフラグメントのラージオブジェクト(LOB)へのマッピング
複合要素についてのSQLTypeを、文字ラージオブジェクト(CLOB)またはバイナリラージオブジェクト(BLOB)として特定することができる。ここでは、XMLフラグメント全体がLOB属性内に格納される。これは、XML文書の一部がほとんどクエリーされず、大抵、単一の断片として検索され、格納される場合に有用である。XMLフラグメントをLOBとして格納することにより、構文解析/分解/再構成オーバーヘッドを節約できる。
【0345】
例5−16 オラクルXML DB XMLスキーマ:XMLフラグメントのLOBへのcompelxTypeマッピング
以下の例では、XMLスキーマは、XMLフラグメントの要素Addrが属性SQLType=“CLOB”を使用していることを特定する。
【0346】
【数45】
Figure 2005505058
【0347】
このXMLスキーマを登録する際、オラクルXML DBは、以下の型およびXMLTypeテーブルを生成する。
【0348】
【数46】
Figure 2005505058
【0349】
図7 complexType XMLフラグメントの文字ラージオブジェクト(CLOB)へのマッピング
オラクルXML DB complexTypeの拡張および制限
XMLスキーマでは、complexTypeは、complexContentおよびsimpleContentに基づいて宣言される。
【0350】
・simpleContentは、simpleTypeの拡張として宣言される。
【0351】
・complexContentは、以下のうちの1つとして宣言される。
【0352】
−ベース型
−complexType拡張
−complexType制限
XMLスキーマにおけるcomplexType宣言:継承の取扱い
complexTypeについて、オラクルXML DBは、XMLスキーマにおける継承を以下のように取扱う。
【0353】
・他のcomplexTypeを拡張するよう宣言されたcomplexTypeについては、ベース型に対応するSQL型が、現在のSQL型についてのスーパー型として特定される。サブ複合型において宣言された追加の属性および要素だけが、サブオブジェクト型に属性として追加される。
【0354】
・他のcomplexTypeを制限するよう宣言されたcomplexTypeについては、サブ複合型用のSQL型が、そのベース型用のSQL型と同じに設定される。これは、SQLが継承機構を介してオブジェクト型の制限をサポートしていないためである。XMLスキーマにおける制限によって、任意の制約が課される。
【0355】
例5−17 XMLスキーマにおける継承:complexTypeの拡張としてのcomplexContent
ベースのcomplexType“Address”と、2つの拡張“USAddress”および“IntlAddress”とを定義するXMLスキーマを考慮されたい。
【0356】
【数47】
Figure 2005505058
【0357】
注:型INTLADDR_Tは最終型として生成される。なぜなら、対応するcomplexTypeが“final”属性を特定するためである。デフォルトにより、すべてのcomplexTypeは、他の型によって拡張および制限可能であり、このため、すべてのSQLオブジェクト型は、非最終型として作成される。
【0358】
【数48】
Figure 2005505058
【0359】
例5−18 XMLスキーマにおける継承:complexTypeにおける制限
ベースのcomplexType Addressと、country属性の特定化を禁止する制限型LocalAddressとを定義するXMLスキーマを考慮されたい。
【0360】
【数49】
Figure 2005505058
【0361】
SQLにおける継承サポートは制限の概念をサポートしないため、制限されたcomplexTypeに対応するSQL型は、親オブジェクト型の空のサブタイプである。上述のXMLスキーマについて、以下のSQL型が生成される。
【0362】
【数50】
Figure 2005505058
【0363】
complexTypeのマッピング:オブジェクト型へのsimpleContent
simpleContent宣言に基づいたcomplexTypeは、XML属性に対応する属性と、ボディ値に対応する別途のSYS_XDBBODY属性とを有するオブジェクト型にマッピングされる。ボディ属性のデータ型は、ボディの型を定義するsimpleTypeに基づく。
【0364】
例5−19 XMLスキーマcomplexType: complexTypeのsimpleContentへのマッピング
【0365】
【数51】
Figure 2005505058
【0366】
このXMLスキーマを登録する際、オラクルXML DBは、以下の型およびXMLTypeテーブルを生成する。
【0367】
【数52】
Figure 2005505058
【0368】
complexTypeのマッピング:AnyおよびAnyAttribute
オラクルXML DBは、要素宣言であるanyと、属性宣言であるanyAttributeとを、作成されたオブジェクト型内のVARCHAR2属性に(または随意でラージオブジェクト(LOB)に)マッピングする。オブジェクト属性は、any宣言に整合するXMLフラグメントのテキストを格納する。
【0369】
・namespace属性は、コンテンツが特定の名前空間に属するよう、コンテンツを制限するために使用可能である。
【0370】
・any要素宣言内のprocessContents属性は、any宣言に整合するコンテンツにとって必要な妥当性検証のレベルを示す。
【0371】
例5−20 オラクルXML DB XMLスキーマ:complexTypeのAny/AnyAttributeへのマッピング
このXMLスキーマの例はあるany要素を宣言し、それをオブジェクト型OBJ_T内の列SYS_XDBANY$にマッピングする。この要素は、属性processContentsがany宣言に整合するコンテンツの妥当性を検証することを抜かすことも宣言する。
【0372】
【数53】
Figure 2005505058
【0373】
それは以下のステートメントをもたらす。
【0374】
【数54】
Figure 2005505058
【0375】
XMLスキーマにおけるcomplexType間の循環の取扱い
オブジェクト型を生成する一方で、XMLスキーマにおけるサイクルは壊される。なぜなら、オブジェクト型は、サイクルが完了する時点でREF属性を導入することによって、サイクルを許可しないためである。このため、データの一部はライン外で格納されるが、検索される際には依然として親XML文書に属している。
【0376】
例5−21 XMLスキーマ:complexType間の循環
XMLスキーマは、complexTypeの定義間の循環を許可する。図5−6はこの例を示しており、ここでは、complexType CT1の定義は別のcomplexType CT2を参照でき、一方、CT2の定義は第1の型CT1を参照する。
【0377】
XMLスキーマは、complexTypeの定義間の循環を許可する。これは長さ2のサイクルの例である。
【0378】
【数55】
Figure 2005505058
【0379】
SQL型は、型定義においてサイクルを許可しない。しかしながら、SQL型は、弱いサイクル、つまり、REF(参照)属性に関わるサイクルをサポートする。したがって、循環XMLスキーマ定義は、適切な点でSQLInline=“false”を強制することによっていかなるサイクルも回避されるように、SQLオブジェクト型にマッピングされる。これは弱いサイクルを作成する。
【0380】
前述のXMLスキーマについて、以下のSQL型が生成される。
【0381】
【数56】
Figure 2005505058
【0382】
図8 同じXMLスキーマにおける異なるcomplexType間の相互参照
例5−22 XMLスキーマ:complexType間の循環、自己参照
循環complexTypeの別の例は、それ自体への参照を有するcomplexTypeの宣言を伴う。以下は、それ自体を参照する型<SectionT>の例である。
【0383】
【数57】
Figure 2005505058
【0384】
以下のSQL型が生成される。
【0385】
注:section属性は、XMLTypeインスタンスへのREFのvarrayとして宣言される。埋込まれたsectionは2回以上出現する可能性があるので、属性はVARRAYである。そして、SQLオブジェクトのサイクル形成を避けるために、それはXMLTypeへのREFのVARRAYである。
【0386】
【数58】
Figure 2005505058
【0387】
XMLスキーマベースのXMLテーブルを作成するためのさらなる指針
“http://www.oracle.com/PO.xsd”によって識別される自分のXMLスキーマが登録されたと仮定されたい。その場合、XMLTypeテーブルであるmyPOsが、このXMLスキーマの要素であるPurchaseOrderに準拠するインスタンスを格納するよう、以下のようなオブジェクトリレーショナルフォーマットで作成され得る。
【0388】
【数59】
Figure 2005505058
【0389】
図9は、complexTypeがそれ自体をいかに参照できるか、または循環させ得るかを概略的に示す。
【0390】
図9 XMLスキーマ内のcomplexType自己参照
XMLスキーマベースのXMLテーブルを作成するためのさらなる指針
“http://www.oracle.com/PO.xsd”によって識別される自分のXMLスキーマが登録されたと仮定されたい。その場合、XMLTypeテーブルであるmyPOsが、このXMLスキーマの要素であるPurchaseOrderに準拠するインスタンスを格納するよう、以下のようなオブジェクトリレーショナルフォーマットで作成され得る。
【0391】
【数60】
Figure 2005505058
【0392】
隠し列が作成される。これらは、PurchaseOrder要素がマッピングされたオブジェクト型に対応する。加えて、名前空間宣言などのトップレベルのインスタンスデータを格納するために、XMLExtraオブジェクト列が作成される。
【0393】
注:XMLDATAは...を可能にするXMLTypeの擬似属性である。
XMLType CREATE TABLEステートメントにおける格納句の特定
格納を特定するため、下位の列は、XMLType格納句において、オブジェクト記法またはXML記法のいずれかを用いて参照され得る。
【0394】
・オブジェクト記法:XMLDATA.<attr1>.<attr2>....
例:
【0395】
【数61】
Figure 2005505058
【0396】
・XML記法:extractValue(xmltypecol,‘/attr1/attr2’)
例:
【0397】
【数62】
Figure 2005505058
【0398】
CREATE INDEXを使用したXMLType列の参照
前述の例に示すように、XMLType列の下位にある列は、CREATE TABLEステートメントにおいてオブジェクト記法またはXML記法のいずれかを使用して参照され得る。同じことがCREATE INDEXステートメントにおいて当てはまる。
【0399】
【数63】
Figure 2005505058
【0400】
XMLType列に対する制約の特定
制約も、下位にあるXMLType列について、オブジェクト記法またはXML記法のいずれかを用いて特定することができる。
【0401】
・オブジェクト記法
【0402】
【数64】
Figure 2005505058
【0403】
・XML記法
【0404】
【数65】
Figure 2005505058
【0405】
新規インスタンスのXMLType列への挿入
以下のように、新規のインスタンスをXMLType列に挿入することができる。
【0406】
【数66】
Figure 2005505058
【0407】
XMLスキーマベースのオブジェクトリレーショナル格納でのクエリー書換
クエリー書換とは何か?
XMLTypeがXMLスキーマを使用して(オブジェクトリレーショナル的に)構造化されたストレージに格納され、XPathを用いたクエリーが使用される場合、クエリーは下位のオブジェクトリレーショナル列に直接行くように書換えられる。これにより、B*Treeまたは他のインデックスがもし列上に存在すれば、それをオプティマイザによるクエリー評価に用いることが可能になる。このクエリー書換機構は、existsNode()、extract()、extractValue()、およびupdateXML()といったSQL関数におけるXPathのために使用される。これにより、XPathは、メモリにXML文書を構成しなくても、XML文書に対して評価されるようになる。
【0408】
例5−23 クエリー書換
たとえば、
【0409】
【数67】
Figure 2005505058
【0410】
といったクエリーは、Company要素の値を得てそれをリテラル‘Oracle’と比較しようとする。MyPOsテーブルが既にXMLスキーマベースのオブジェクトリレーショナル格納で作成されているため、extractValue演算子は、purchaseorderについての会社情報を格納する下位のリレーショナル列に書換えられる。
【0411】
こうして、前述のクエリーは以下のように書換えられる。
【0412】
【数68】
Figure 2005505058
【0413】
Company列に、
【0414】
【数69】
Figure 2005505058
【0415】
といった正規のインデックスが作成されていた場合、前述のクエリーはそのインデックスをその評価に使用するであろう。
クエリー書換はいつ起こるか?
クエリー書換は、以下のSQL関数について起こる。
【0416】
・extract()
・existsNode()
・extractValue
・updateXML
書換は、クエリー、DMLまたはDDLステートメント内の任意の式にあるかもしれないこれらのSQL関数について起こる。たとえば、extractValue()を用いて、下位のリレーショナル列上にインデックスを作成することができる。
【0417】
例5−24 SELECTステートメントおよびクエリー書換
この例は、既存の発注書を得る。
【0418】
【数70】
Figure 2005505058
【0419】
ここに、下位の列を使用するよう書換えられるステートメントの数例を挙げる。
【0420】
例5−25 DMLステートメントおよびクエリー書換
この例は、会社がオラクルではない発注書をすべて削除する。
【0421】
【数71】
Figure 2005505058
【0422】
例5−26 CREATE INDEXステートメントおよびクエリー書換
この例は、Company列上にインデックスを作成する。これがオブジェクトリレーショナル的に格納されてクエリー書換が起こるため、下位のリレーショナル列上の正規のインデックスが作成される。
【0423】
【数72】
Figure 2005505058
【0424】
この場合、SQL関数の書換が単純なリレーショナル列をもたらすならば、インデックスは、関数ベースのインデックスというよりもむしろ、列上のBTreeまたはドメインインデックスになる。
どのXPath式が書換えられるか?
ワイルドカードまたは子孫軸を持たない単純な式に関するXPathが書換えられる。XPathは、要素または属性ノードを選択してもよい。述部がサポートされてSQL述部に書換えられる。
【0425】
表5−10は、このリリースにおいて下位のSQLクエリーに変換可能なXPath式の種類を一覧表示している。
【0426】
【表13】
Figure 2005505058
【0427】
サポートされないXPath構成体:以下のXPath構成体は書換えられない。
【0428】
・XPath関数
・XPath変数参照
・子軸および属性軸以外のすべての軸
・ワイルドカードおよび子孫式
・UNION演算
サポートされないXMLスキーマ構成体:以下のXMLスキーマ構成体はサポートされない。これは、XPath式が以下のXMLスキーマ構成体を有するノードを含む場合には、式全体が書換えられないことを意味する。
【0429】
・オープンなコンテント、つまりanyコンテントを含む要素の子にアクセスするXPath式。ノードがanyコンテントを含む場合、anyがXPathにおいて特定された名前空間以外の名前空間をターゲットとする場合を除き、式は書換えできない。any属性は同様に取扱われる。
【0430】
・CLOB格納。XMLスキーマが要素定義の一部をSQL CLOBにマッピングする場合には、そのような要素をトラバースするXPath式はサポートされない。
【0431】
・列挙型。
【0432】
・代替可能要素。
【0433】
スカラ型の非デフォルトマッピング。たとえば、ネイティブの整数などのネイティブストレージにマッピングされた数字型。
【0434】
・子が宣言されたcomplexTypeの一構成要素ではない場合における、継承されたcomplexTypeについての子のアクセス。
【0435】
たとえば、street要素を有するaddress complexTypeを有する場合を考慮されたい。shipmentNumber要素を含むshipAddrと呼ばれる派生型を有することができる。PurchaseOrderが型アドレスのアドレス要素を持っていた場合には、“/PurchaseOrder/address/street”といったXPathは書換えられ、一方、“/PurchaseOrder/address/shipmentNumber”は書換えられない。
【0436】
・数字とともに追加されたブールなどの非強制的データ型演算。
XPathはいかに書換えられるか?
以下のセクションは、この章で前に説明した同じpurchaseorderスキーマを用いて、関数がいかに書換えられるかを説明する。
【0437】
例5−27 オブジェクト型生成中のXPathの書換
以下のpurchaseorderスキーマを考慮されたい。
【0438】
【数73】
Figure 2005505058
【0439】
このスキーマに準拠するテーブルが作成される。
【0440】
【数74】
Figure 2005505058
【0441】
挿入されるXML文書は、挿入される前に、スキーマに対して部分的に妥当性が検証される。
【0442】
【数75】
Figure 2005505058
【0443】
XMLスキーマは順序付けを維持することについて何も特定しなかったため、デフォルトは、順序付けおよびDOM忠実度を維持することである。こうして、型は、ノードの順序付けを維持し、コメント、処理命令などの追加アイテムを取得するために必要な追加情報を格納するために、SYS_XDBPD$を有する。
【0444】
SYS_XDBPD$属性はまた、要素の存在に関する情報(つまり、入力文書内に要素があったかどうか)を維持する。これはスカラコンテントを有する要素にとって必要である。なぜなら、それらは単純なリレーショナル列にマッピングするためである。この場合、空の、および欠落しているスカラ要素の双方が列内のNULL値にマッピングし、SYS_XDBPD$属性のみが2つの場合を区別するのに役立ち得る。クエリー書換機構は、SYS_XDBPD$属性の存在または不在を考慮に入れて、クエリーを適切に書換える。
【0445】
このXMLスキーマが、スキーマURL:http://www.oracle.com/PO.xsdに登録されていると仮定されたい。そのスキーマを有するpo_tabテーブルを作成することができる。
【0446】
【数76】
Figure 2005505058
【0447】
ここで、このテーブルは、実際のデータを格納する型“PurchaseOrder_T”である隠しXMLData列を有する。
XPath式の書換:マッピングのタイプおよび論点
XPath式のマッピングのタイプおよび論点を、以下のセクションで説明する。
【0448】
・「単純なXPathのためのマッピング」
・「スカラノードのためのマッピング」
・「述部のマッピング」
・「集合述部のマッピング」
・「集合トラバーサルでの文書順序付け」
・「集合インデックス」
・「満たすことができないXPath式」
・「名前空間の取扱い」
・「日付フォーマットの変換」
単純なXPathのためのマッピング:単純なXPathのための書換は、XPath式に対応する属性にアクセスすることに関わる。表5−11は、XPathマッピングを一覧表示している。
【0449】
【表14】
Figure 2005505058
【0450】
スカラノードのためのマッピング:XPath式は、XML文書内のスカラコンテントにマッピングするtext()演算子を含み得る。書換え時、これは下位のリレーショナル列に直接マッピングする。
【0451】
たとえば、XPath式“/PurchaseOrder/PONum/text()”は、SQL列 XMLData.“PONum”に直接マッピングする。
【0452】
PONum列内のNULL値は、入力文書にテキストノードがなかったため、または要素自体が欠落していたために、テキスト値が利用できないことを意味している。これはスカラ要素にアクセスするよりも効率が良い。なぜなら、SYS_XDBPD$属性内の要素の存在についてチェックする必要がないからである。
【0453】
たとえば、XPath“/PurchaseOrder/PONum”は、SQL属性 XMLData.“PONum”にもマッピングする。
【0454】
しかしながら、この場合、クエリー書換は、XMLData列内のSYS_XDBPD$を用いて、要素自体の存在についてもチェックしなければならない。
【0455】
述部のマッピング:述部は、SQL述部式にマッピングされる。
【0456】
例5−28 述部のマッピング
たとえば、XPath式:
【0457】
【数77】
Figure 2005505058
【0458】
における述部は、SQL述部:
【0459】
【数78】
Figure 2005505058
【0460】
にマッピングする。
【0461】
たとえば、以下のクエリーは、オブジェクトリレーショナルな同等物に書換えられ、XPathの関数的評価を必要としない。
【0462】
【数79】
Figure 2005505058
【0463】
集合述部のマッピング:XPath式は、集合式を有するリレーショナル演算子に関与してもよい。Xpath1.0では、集合に関与する条件は、実在チェックである。言い換えれば、集合の一構成要素が条件を満たす場合でさえ、式は真である。
【0464】
例5−29 集合述部のマッピング
たとえばXpath:
【0465】
【数80】
Figure 2005505058
【0466】
における集合述部は、SQL集合式:
【0467】
【数81】
Figure 2005505058
【0468】
にマッピングする。
【0469】
たとえば、以下のクエリーは、オブジェクトリレーショナルな同等物に書換えられる。
【0470】
【数82】
Figure 2005505058
【0471】
<condition>集合という集合を有する場合、より複雑な書換が起こる。この場合、これら2つの集合引数からのノードの少なくとも1つの組合せが条件を満たすならば、述部は満たされていると考えられる。
【0472】
例5−30 existsNode()を使用した集合述部のマッピング
たとえば、アイテムの価格が何らかの部品番号と同じであるようなItemをPurchaseorderが有するかどうかをチェックする架空のXPath:
【0473】
【数83】
Figure 2005505058
【0474】
が、SQL集合式:
【0475】
【数84】
Figure 2005505058
【0476】
にマッピングすると考慮されたい。
【0477】
たとえば、以下のクエリーは、オブジェクトリレーショナルな同等物に書換えられる。
【0478】
【数85】
Figure 2005505058
【0479】
集合トラバーサルでの文書順序付け:書換のほとんどは元の文書順序付けを保存している。しかしながら、SQLシステムはサブクエリーの結果における順序付けを保証していないので、extract()関数を用いて集合から要素を選択する場合、結果のノードは文書順にならないかもしれない。
【0480】
例5−31 集合トラバーサルでの文書順序付け
たとえば、
【0481】
【数86】
Figure 2005505058
【0482】
は、以下に示すようにサブクエリーを使用するよう書換えられる。
【0483】
【数87】
Figure 2005505058
【0484】
大抵の場合、集約の結果は集合要素と同じ順序になるであろうが、これは保証されておらず、このため、結果は文書順にならないかもしれない。これは、将来のリリースで調整されるであろう限界である。
【0485】
集合インデックス:XPath式は、集合のある特定のインデックスにアクセスすることもできる。たとえば、“/PurchaseOrder/Item[1]/Part”は、集合の最初のItemを抽出し、次にその中のPart属性にアクセスするよう書換えられる。
【0486】
集合がVARRAYとして既に格納されていた場合、この演算は、元の文書内にあるのと同じ順序でノードを検索する。集合のマッピングが入れ子構造のテーブルへなされている場合には、順序は決まっていない。VARRAYが順序付け集合テーブル(OCT)(storeVarrayAsTable=“true”が設定されている場合に、スキーマコンパイラによって作成されたテーブルについてのデフォルト)として格納されている場合、この集合インデックスアクセスは、VARRAY上に存在するIOTインデックスを使用するために最適化される。
【0487】
満たすことができないXPath式:XPath式は、入力文書内に存在できないノードへの参照を含む場合がある。式のそのような部分は、書換中、SQL NULLにマッピングする。たとえば、XPath式“/PurchaseOrder/ShipAddress”は、PO.xsd XMLスキーマに準拠するどのインスタンス文書によっても満たすことができない。なぜなら、XMLスキーマがPurchaseOrderの下でShipAddress要素を許可しないためである。このため、この式は、SQL NULLリテラルにマッピングする。
【0488】
名前空間の取扱い:名前空間は、関数ベースの評価と同様に取扱われる。スキーマベースの文書については、関数(EXISTSNODE/EXTRACTなど)がどの名前空間パラメータも特定しない場合、スキーマのターゲット名前空間が、XPath式についてのデフォルト名前空間として使用される。
【0489】
例5−32 名前空間の取扱い
たとえば、SQL関数が名前空間接頭辞およびマッピングを明確に特定していない場合、XPath式 /PurchaseOrder/PONumは、xmlns:a=“http://www.oracle.com/PO.xsd”を有する/a:PurchaseOrder/a:PONumとして扱われる。言い換えれば、
【0490】
【数88】
Figure 2005505058
【0491】
は、以下のクエリーと同等である。
【0492】
【数89】
Figure 2005505058
【0493】
クエリー書換を実行する際、ある特定の要素についての名前空間は、XMLスキーマ定義のそれと整合される。XMLスキーマがelementFormDefault=“qualified”を含む場合、XPath式内の各ノードは、名前空間をターゲットとしなければならない(これは、デフォルト名前空間特定化を使用して、または、各ノードに名前空間接頭辞をつけることによってなされ得る)。
【0494】
elementFormDefaultが不適格である場合(これがデフォルトである)、名前空間を定義するノードのみが接頭辞を含むべきである。たとえば、PO.xsdが不適格とされるべき要素形を有する場合、existsNode()関数は以下のように書換えられるべきである。
【0495】
【数90】
Figure 2005505058
【0496】
注:elementFormDefaultが不適格である場合、前述の例でSQL関数existsNode()の名前空間パラメータを省略することは、各ノードをターゲット名前空間にデフォルト設定することになるであろう。これはXMLスキーマ定義と整合せず、したがって、結果を全く戻さないであろう。関数が書換えられようとなかろうと、これは真である。
【0497】
日付フォーマットの変換:デフォルト日付フォーマットは、XMLスキーマとSQLとでは異なる。したがって、日付の比較に関するXPath式を書換える場合には、XMLフォーマットを使用する必要がある。
【0498】
例5−33 日付フォーマットの変換
たとえば、式:[@PurchaseDate=“2002-02-01”]を、XMLData.“PurchaseDate”=“2002-02-01”として単純に書換えることはできない。なぜなら、SQL用のデフォルト日付フォーマットは、YYYY-MM-DDではないからである。このため、書換え中、テキスト値を日付データ型に正しく変換するために、XMLフォーマット文字列が追加される。
【0499】
このため、前述の述部は以下のように書換えられる。
【0500】
【数91】
Figure 2005505058
【0501】
同様に、これらの列を(extract()などに必要な)テキスト値に変換する場合には、それらをXMLと同じ日付フォーマットに変換するために、XMLフォーマット文字列が追加される。
existsNode()のためのXPath式書換
existsNode()は、XPathが任意のノード(text()または要素ノード)を戻すかどうかを示す数値0または1を戻す。前述のセクションにおいて述べたマッピングに基づいて、existsNodeは単に、XPathがtext()ノードまたはnon-scalarノードをターゲットとする場合にはスカラ要素がヌルでないかどうかをチェックし、その他の場合には要素の存在をSYS_XDBPD$を用いてチェックする。SYS_XDBPD$属性が存在しない場合、scalarノードの存在は、そのスカラ列についてのヌル情報によって判断される。
【0502】
文書の順序を維持した状態でのexistsNodeマッピング:表5−12は、文書順序付けが保存されている場合、つまり、SYS_XDBPD$が存在し、スキーマ文書においてmaintainDOM=“true”である場合の、existsNode()の場合のさまざまなXPathのマッピングを示す。
【0503】
【表15】
Figure 2005505058
【0504】
例5−34 文書の順序を維持した状態でのexistsNodeマッピング
前述のマッピングを用いると、number2100を有するpurchaseorderが2000よりも大きいpriceを有するpartを含むかどうかをチェックするクエリー:
【0505】
【数92】
Figure 2005505058
【0506】
は、以下のようになる。
【0507】
【数93】
Figure 2005505058
【0508】
CASE式は、一定のリレーショナルな同等式のためにさらに最適化され、このクエリーは以下のようになる。
【0509】
【数94】
Figure 2005505058
【0510】
これはその評価にリレーショナルインデックスを、もしPartおよびPONum列にあれば使用するであろう。
【0511】
文書の順序を維持しないexistsNodeマッピング:SYS_XDBPD$が存在しない場合(つまり、XMLスキーマがmaintainDOM=“false”を特定する場合)、NULLスカラ列は、存在しないスカラ要素にマッピングする。このため、SYS_XDBPD$属性を用いてノードの存在をチェックする必要はない。表5−13は、SYS_XDBPD$属性がない状態でのexistsNode()のマッピングを示す。
【0512】
【表16】
Figure 2005505058
【0513】
extractValue()のための書換
extractValue()は、スカラコンテントを得るために、extract()を用い、次にgetStringVal()またはgetNumberVal()を用いて、textノードおよび属性を抽出するためのショートカットである。extractValueは、スカラ要素のためのtextノード、またはattributeノードの値を戻す。extractValue()は、多数の値または非スカラ要素を戻すことは取扱不可である。
【0514】
表5−14は、extractValue()の場合のさまざまなXPath式のマッピングを示す。あるXPath式がある要素をターゲットとする場合、extractValueは、その要素のtextノード子を検索する。こうして、/PurchaseOrder/PONumと/PurchaseOrder/PONum/text()という2つのXPath式が、extractValueによって同一に取扱われ、それら双方は、PONumのスカラコン
テントを検索する。
【0515】
【表17】
Figure 2005505058
【0516】
例5−35 extractValue()の書換
たとえば、
【0517】
【数95】
Figure 2005505058
【0518】
のようなSQLクエリーは、以下のようになる。
【0519】
【数96】
Figure 2005505058
【0520】
それは単純なスカラ列に書換えられるので、PONum属性上のインデックスは、もしあれば、クエリーを満たすために使用されてもよい。
【0521】
インデックスの作成:ExtractValueをインデックス式に使用することができる。式がスカラ列に書換えられた場合には、インデックスは、関数ベースのインデックスの代わりにBTreeインデックスとなる。
【0522】
例5−36 インデックスの作成
たとえば、
【0523】
【数97】
Figure 2005505058
【0524】
は、以下のように書換えられ、
【0525】
【数98】
Figure 2005505058
【0526】
こうして正規のBTreeインデックスになる。これは有用である。なぜなら、関数インデックスとは異なり、同じインデックスが以下のような列をターゲットとするクエリーを満たすことができるためである。
【0527】
【数99】
Figure 2005505058
【0528】
こうして正規のB*Treeインデックスになる。これは有用である。なぜなら、関数インデックスとは異なり、同じインデックスが以下のような列をターゲットとするクエリーを満たすことができるためである。
【0529】
【数100】
Figure 2005505058
【0530】
extract()のための書換
extract()は、XPathの結果をXMLとして検索する。textノードに関するXpath式については、extract()のための書換は、extractValue()のそれと同様である。
【0531】
文書の順序を維持した状態でのExtractマッピング:表5−15は、文書の順序が保存されている場合の(つまり、SYS_XDBPD$が存在し、スキーマ文書においてmaintainDOM=“true”である場合の)extract()の場合のさまざまなXPathのマッピングを示す。
【0532】
注:text値のみを有するXMLインスタンスを作成することを示すために、例は、空のエイリアス文字列“”を有するXMLElementおよびXMLForestを示している。これは例示のためにのみ示されている。
【0533】
【表18】
Figure 2005505058
【0534】
例5−37 文書順序付けが保存された状態でのextract()のためのXPathマッピング
表5−15におけるマッピングを用いると、2000よりも大きいpriceを有するpartをpurchaseorderが含む場合のPONum要素を抽出するクエリー:
【0535】
【数101】
Figure 2005505058
【0536】
は、以下のようになる。
【0537】
【数102】
Figure 2005505058
【0538】
Check_Node_Existsは、単なる例示目的の内部関数である。
【0539】
文書の順序を維持しないExtractマッピング:SYS_XDBPD$が存在しない場合、つまり、XMLスキーマがmaintainDOM=“false”を特定する場合、NULLスカラ列は、存在しないスカラ要素にマッピングする。このため、SYS_XDBPD$属性を用いてノードの存在をチェックする必要はない。表5−16は、SYS_XDBPD$属性がない状態でのexistsNode()のマッピングを示す。
【0540】
【表19】
Figure 2005505058
【0541】
updateXML()を使用した更新の最適化
updateXML()を使用した定期的な更新は、XML文書の値を更新し、次に文書全体を新しく更新された文書と置換えることを伴う。
【0542】
XMLTypeがXMLスキーママッピングを使用してオブジェクトリレーショナル的に格納されている場合、更新は、文書の断片を直接更新するよう最適化される。たとえば、PONum要素値の更新は、メモリ内の文書全体を具体化して次に更新を実行する代わりに、XMLData.PONum列を直接更新するよう書換えられ得る。
【0543】
updateXML()は、最適化を用いるために、それについての以下の条件を満たさなければならない。
【0544】
・updateXML()に供給されたXMLType列は、SET句において更新中の同じ列でなければならない。例を以下に挙げる。
【0545】
【数103】
Figure 2005505058
【0546】
・XMLType列は、オラクルXML DBのXMLスキーママッピングを使用してオブジェクトリレーショナル的に格納されていなければならない。
【0547】
・XPath式は、述部または集合トラバーサルを伴ってはならない。
【0548】
・複製のスカラ式はあってはならない。
【0549】
・updateXML()関数におけるすべてのXPath引数は、スカラコンテント、つまりテキストノードまたは属性しかターゲットとしてはならない。例を以下に挙げる。
【0550】
【数104】
Figure 2005505058
【0551】
前述の条件がすべて満たされれば、updateXMLは、単純なリレーショナルな更新に書換えられる。たとえば、
【0552】
【数105】
Figure 2005505058
【0553】
は以下のようになる。
【0554】
【数106】
Figure 2005505058
【0555】
DATE変換:Date、gMonth、gDateなどの日付データ型は、XMLスキーマとSQLシステムとでは異なるフォーマットを有する。そのような場合、updateXMLがこれらの列についての文字列値を有するならば、書換は自動的にXMLフォーマット文字列を、文字列値を正しく変換する状態にする。このため、日付列について特定された文字列値は、XML日付フォーマットに整合しなければならず、SQL日付フォーマットに整合してはならない。
XMLスキーマ登録中のデフォルトテーブルの作成
XMLスキーマ登録の一環として、デフォルトテーブルも作成できる。デフォルトテーブルは、このXMLスキーマに準拠するXMLインスタンス文書がFTPまたはHTTPなどテーブル仕様を持たないAPIを介して挿入される場合に、最も有用である。そのような場合、XMLインスタンスはデフォルトテーブルに挿入される。
【0556】
属性defaultTableについての値を与えた場合、XMLTypeテーブルはその名前で作成される。その他の場合、それは内部で生成された名前で作成される。
【0557】
さらに、tablePropsおよびcolumnProps属性を使用して特定された任意のテキストが、生成されたCREATE TABLEステートメントに添付される。
テーブル内順序付き集合(OCT)
XMLスキーマ内のアレイ(maxOccurs>1を有する要素)は通常、VARRAYに格納され、それは、ラージオブジェクト(LOB)内か、または入れ子構造のテーブルに類似した別個の格納テーブル内のいずれかに格納可能である。
【0558】
注:VARRAYの要素が別個のテーブルに格納されている場合、VARRAYはテーブル内順序付き集合(OCT)と呼ばれる。以下の段落では、OCTへの参照は、「格納」テーブルのためにインデックス編成型テーブル(IOT)格納が使用されていることも仮定している。
【0559】
これにより、VARRAYの要素は、IOTに基づいた別個のテーブルに存在できるようになる。テーブルのプライマリキーは(NESTED_TABLE_ID,ARRAY_INDEX)である。NESTED_TABLE_IDは、要素をそれらを含む親とリンクさせるために使用され、一方、ARRAY_INDEX列は、集合内の要素の位置を追跡する。
VARRAY格納のためのOCTの使用
OCT格納を特定するには2つの方法がある。
【0560】
・スキーマ属性“storeVarrayAsTable”による方法。デフォルトにより、これは“false”であり、VARRAYはLOB内に格納される。これが“true”にセットされている場合、maxOccurs>1を有するすべてのVARRAY、すべての要素はOCTとして格納される。
【0561】
・“tableProps”属性を使用して格納を明確に特定することによる方法。OCTを作成するために必要とされる、まさしくそのSQLを、tableProps属性の一部として使用することができる。
【0562】
【数107】
Figure 2005505058
【0563】
VARRAY格納のためにOCTを使用する利点は、要素へのより速いアクセス、および、より良好なクエリー可能性を含む。要素の属性上にインデックスを作成することができ、これらはクエリー書換のためのより良好な実行を支援することができる。
XMLスキーマ間での循環参照
XMLスキーマ文書は、それらが通常の態様で次々と登録されることを防止できる循環従属性を有し得る。そのようなXMLスキーマの例を以下に示す。
【0564】
例5−38 循環従属性
別のスキーマを含むスキーマは、含まれたスキーマが存在しない場合には作成できない。
【0565】
【数108】
Figure 2005505058
【0566】
しかしながら、それはFORCEオプションで作成可能である。
【0567】
【数109】
Figure 2005505058
【0568】
このスキーマを使用しようとする試みは、再コンパイルしようとして失敗する。
【0569】
【数110】
Figure 2005505058
【0570】
ここで、2番目のスキーマをFORCEオプションで作成する。これは、1番目のスキーマもVALIDにしなければならない。
【0571】
【数111】
Figure 2005505058
【0572】
双方を使用してテーブルなどが作成可能である。
【0573】
【数112】
Figure 2005505058
【0574】
互いに対して循環従属性を有するこれらのXMLスキーマの双方を登録するには、DBMS_XMLSCHEMA.registerSchemaにおいてFORCEパラメータを以下のように使用しなければならない。
【0575】
1.ステップ1:“s1.xsd”をFORCEモードに登録する。
【0576】
【数113】
Figure 2005505058
【0577】
このとき、s1.xsdは妥当でなく、使用できない。
【0578】
2.ステップ2:“s2.xsd”をFORCEモードに登録する。
【0579】
【数114】
Figure 2005505058
【0580】
2番目の演算はs1.xsdを自動的にコンパイルし、双方のXMLスキーマを妥当にする。
【図面の簡単な説明】
【0581】
【図1】この発明の一実施例に従った、XMLスキーマに含まれる構成体をオブジェクト−リレーショナルな構成体にマッピングするための機構を含むデータベースシステムのブロック図である。
【図2】この発明の実施例が実現され得るコンピュータシステムを示すブロック図である。
【図3】この発明の一実施例に従った、XML型テーブルを作成するためのシンタックスを示すブロック図である。
【図4】この発明の一実施例に従った、特定のXMLスキーマに準拠する文書に対する適切なデータベース表現に対してデータベースオブジェクトを作成するように構成されたデータベースシステムを示すブロック図である。
【図5】データベースがサポートする2つの代替的なデータ型にXML文字列が選択的にマッピングされることを示すブロック図である。
【図6】complexTypeがライン外格納のためにSQLにマッピングされていることを示す図である。
【図7】文字ラージオブジェクト(CLOB)にマッピングされたcomplexTypeのXMLフラグメントを示す図である。
【図8】同一のXMLスキーマにおけるcomplexType間の相互参照を示す図である。
【図9】XMLスキーマ内のcomplexTypeの自己参照を示すブロック図である。
【図10】XMLスキーマ間における循環参照を示すブロック図である。

Claims (47)

  1. データベースシステムでデータを管理するための方法であって、
    データベースシステム内で、XMLスキーマに準拠する文書を前記データベースシステム内に格納するための適切なデータベース表現を決定するステップと、
    前記XMLスキーマの要素と前記適切なデータベース表現の要素との間の相関関係を示すマッピングデータを生成するステップとを含む、方法。
  2. 適切なデータベース表現を決定する前記ステップは、
    ユーザが特定した情報に基づき、前記XMLスキーマの要素が、前記要素に対して前記データベースシステム内で他のオブジェクト型を生成することなく1つのCLOBにマッピングされるべきであることを決定するステップを含み、
    マッピングデータを生成する前記ステップは、前記要素を前記1つのCLOBにマッピングするデータを生成するステップを含む、請求項1に記載の方法。
  3. 前記XMLスキーマに対してユーザが特定した注釈の形で、前記ユーザが特定した情報を受信するステップをさらに含む、請求項2に記載の方法。
  4. 適切なデータベース表現を決定する前記ステップは、ユーザが特定した情報に基づき、前記XMLスキーマの要素の第1の組のサブ要素が1つのCLOBにマッピングされるべきであることを決定するステップを含み、
    マッピングデータを生成する前記ステップは、前記1つのCLOBに前記第1の組のサブ要素をマッピングするデータを生成するステップと、前記CLOB以外の1つ以上のオブジェクトに前記要素の第2の組のサブ要素をマッピングするデータを生成するステップとを含む、請求項1に記載の方法。
  5. 適切なデータベース表現を決定する前記ステップは、前記データベースシステムがサポートするデータ型に、前記XMLスキーマの要素に関連するデータ型をマッピングするステップを含む、請求項1に記載の方法。
  6. 適切なデータベース表現を決定する前記ステップは、前記XMLスキーマの要素に対応する属性を含むSQLオブジェクト型を定義するステップを含む、請求項1に記載の方法。
  7. データ型をマッピングする前記ステップは、
    前記XMLスキーマの要素に関連する特定のデータ型が第1の長さに関連する場合、第1のデータベースデータ型に前記特定のデータ型をマッピングするステップと、
    前記特定のデータ型が第2の長さに関連する場合、第2のデータベースデータ型に前記特定のデータ型をマッピングするステップとを含み、前記第1のデータベースデータ型は前記第2のデータベースデータ型と異なる、請求項5に記載の方法。
  8. 適切なデータベース表現を決定する前記ステップは、特定の要素が1より大きな最大出現回数を有するように定義されている場合、前記データベースシステムがサポートする集合型に前記XMLスキーマの特定の要素をマッピングするステップを含む、請求項5に記載の方法。
  9. 前記集合型はアレイ型であり、前記アレイ型のカーディナリティは、前記特定のデータベース要素に対して特定された前記最大出現回数に基づいて選択される、請求項8に記載の方法。
  10. 適切なデータベース表現を決定する制約の前記ステップは、前記XMLスキーマにおいて
    前記XMLスキーマの要素に対して特定された制約に基づき、前記適切なデータベース表現において制約を定義するステップを含む、請求項1に記載の方法。
  11. 制約を定義する前記ステップは、一意性の制約、参照の制約、およびnot nullの制約からなる組からの制約を定義するステップを含む、請求項10に記載の方法。
  12. 第1のデータ型は前記XMLスキーマの要素に関連し、
    前記XMLスキーマは前記第1のデータ型が第2のデータ型から継承することを特定し、
    適切なデータベース表現を決定する前記ステップは、前記データベースシステム内でオブジェクト型の部分型を定義するステップを含み、前記オブジェクト型は前記第2のデータ型に対応する、請求項1に記載の方法。
  13. 適切なデータベース表現を決定する前記ステップは、
    第1の組で別個の各要素を前記第1の組の他の要素とは別個に維持するデータベース構造に、前記XMLスキーマの第1の組の要素をマッピングするステップと、
    第2の組の要素の全要素が1つの区別されないデータベース要素として組合わされるデータベース構造に、前記XMLスキーマの第2の組の要素をマッピングするステップとを含む、請求項1に記載の方法。
  14. 前記データベースシステムは、前記XMLスキーマに関連する指示文に基づいて前記第1の組の帰属関係および前記第2の組の帰属関係を決定する、請求項13に記載の方法。
  15. 前記第1の組の要素における要素は、前記第2の組の要素に存在するように選択された要素よりも前記要素が頻繁にアクセスされるであろうという可能性に基づき、前記第1の組に存在するように選択される、請求項13に記載の方法。
  16. 適切なデータベース表現を決定する前記ステップおよびマッピングデータを生成する前記ステップは、前記データベースシステム内で変更を生じるXMLスキーマ登録動作の一部として行なわれ、
    前記方法は、前記XMLスキーマ登録動作によって生じたすべての変更を、前記XMLスキーマ登録動作中に特定のエラーに遭遇することに応答して自動的に除去するステップをさらに含む、請求項1に記載の方法。
  17. 適切なデータベース表現を決定する前記ステップは、前記XMLスキーマのサイクルをどのように破壊するかを決定するステップを含む、請求項1に記載の方法。
  18. 前記XMLスキーマは、複数の構成要素を伴うサイクルを含み、サイクルをどのように破壊するかを決定する前記ステップは、サイクル状の定義の各構成要素に対し、その子構成要素のすべてに対するポインタを保持させるステップを含む、請求項1に記載の方法。
  19. サイクルをどのように破壊するかを決定する前記ステップは、サイクル状の定義の全体が前記データベースシステム内の1つのCLOBとして格納されるためにマッピングされるようにするステップを含む、請求項1に記載の方法。
  20. マッピングデータを生成する前記ステップは、前記XMLスキーマに注釈を加えるステップと、前記データベースシステム内に前記注釈の付いたXMLスキーマを格納するステップとを含む、請求項1に記載の方法。
  21. 前記適切なデータベース表現に基づいてデータベース内に構造を作成するステップと、
    前記構造に、前記XMLスキーマに準拠するXML文書からのデータを格納するステップとをさらに含む、請求項1に記載の方法。
  22. XML文書からのデータを格納する前記ステップは、
    前記データベースシステムにおいてXML文書を受信するステップと、
    前記XML文書から、前記XMLスキーマの個々の要素に関連するデータを識別するステップと、
    前記データに関連する要素および前記マッピングデータに基づき、前記構造内の位置に、個々の要素に関連する前記データを格納するステップとを含む、請求項21に記載の方法。
  23. 前記XMLスキーマがXMLスキーマに対する1つのXMLスキーマに準拠しているかどうかを決定するために、前記データベースシステム内で前記XMLスキーマを妥当性検証するステップをさらに含む、請求項1に記載の方法。
  24. 決定する前記ステップは、前記データベースサーバで前記XMLスキーマを受信することに応答して開始されるXMLスキーマ登録動作の一部として行なわれる、請求項1に記載の方法。
  25. 決定する前記ステップは、前記XMLスキーマに準拠するXML文書を前記データベースサーバで受信することに応答して開始されるXMLスキーマ登録動作の一部として行なわれる、請求項1に記載の方法。
  26. 前記XMLスキーマは、前記データベースシステムが前記XMLスキーマの少なくとも1つの要素をどのようにマッピングすべきであるかを示す、ユーザが特定した注釈を含み、
    前記マッピングデータの少なくとも一部は、前記ユーザが特定した注釈を反映する、請求項24に記載の方法。
  27. データベースシステムでデータを管理するための命令を運ぶコンピュータ読取可能な媒体であって、前記命令は、1つ以上のプロセッサによって実行されると、
    データベースシステム内で、XMLスキーマに準拠する文書を前記データベースシステム内に格納するための適切なデータベース表現を決定するステップと、
    前記XMLスキーマの要素と前記適切なデータベース表現の要素との間の相関関係を示すマッピングデータを生成するステップとをプロセッサに行なわせる命令を含む、コンピュータ読取可能な媒体。
  28. 適切なデータベース表現を決定する前記ステップは、前記データベースシステムがサポートするデータ型に前記XMLスキーマの要素に関連するデータ型をマッピングするステップを含む、請求項27に記載のコンピュータ読取可能な媒体。
  29. 適切なデータベース表現を決定する前記ステップは、前記XMLスキーマの要素に対応する属性を含むSQLオブジェクト型を定義するステップを含む、請求項27に記載のコンピュータ読取可能な媒体。
  30. データ型をマッピングする前記ステップは、
    前記XMLスキーマの要素に関連する特定のデータ型が第1の長さに関連する場合、第1のデータベースデータ型に前記特定のデータ型をマッピングするステップと、
    前記特定のデータ型が第2の長さに関連する場合、第2のデータベースデータ型に前記特定のデータ型をマッピングするステップとを含み、前記第1のデータベースデータ型は前記第2のデータベースデータ型と異なる、請求項28に記載のコンピュータ読取可能な媒体。
  31. 適切なデータベース表現を決定する前記ステップは、特定の要素が1より大きな最大出現回数を有するように定義されている場合、前記データベースシステムがサポートする集合型に前記XMLスキーマの特定の要素をマッピングするステップを含む、請求項28に記載のコンピュータ読取可能な媒体。
  32. 前記集合型はアレイ型であり、前記アレイ型のカーディナリティは、前記特定のデータベース要素に対して特定された前記最大出現回数に基づいて選択される、請求項31に記載のコンピュータ読取可能な媒体。
  33. 適切なデータベース表現を決定する制約の前記ステップは、前記XMLスキーマにおいて前記XMLスキーマの要素に対して特定された制約に基づき、前記適切なデータベース表現において制約を定義するステップを含む、請求項27に記載のコンピュータ読取可能な媒体。
  34. 制約を定義する前記ステップは、一意性の制約、参照の制約、およびnot nullの制約からなる組からの制約を定義するステップを含む、請求項33に記載のコンピュータ読取可能な媒体。
  35. 第1のデータ型は前記XMLスキーマの要素に関連し、
    前記XMLスキーマは前記第1のデータ型が第2のデータ型から継承することを特定し、
    適切なデータベース表現を決定する前記ステップは、前記データベースシステム内でオブジェクト型の部分型を定義するステップを含み、前記オブジェクト型は前記第2のデータ型に対応する、請求項27に記載のコンピュータ読取可能な媒体。
  36. 適切なデータベース表現を決定する前記ステップは、
    第1の組で別個の各要素を前記第1の組の他の要素とは別個に維持するデータベース構造に、前記XMLスキーマの第1の組の要素をマッピングするステップと、
    第2の組の要素の全要素が1つの区別されないデータベース要素として組合わされるデータベース構造に、前記XMLスキーマの第2の組の要素をマッピングするステップとを含む、請求項27に記載のコンピュータ読取可能な媒体。
  37. 前記データベースシステムは、前記XMLスキーマに関連する指示文に基づいて前記第1の組の帰属関係および前記第2の組の帰属関係を決定する、請求項36に記載のコンピュータ読取可能な媒体。
  38. 前記第1の組の要素における要素は、前記第2の組の要素に存在するように選択された要素よりも前記要素が頻繁にアクセスされるであろうという可能性に基づき、前記第1の組に存在するように選択される、請求項36に記載のコンピュータ読取可能な媒体。
  39. 適切なデータベース表現を決定する前記ステップおよびマッピングデータを生成する前記ステップは、前記データベースシステム内で変更を生じるXMLスキーマ登録動作の一部として行なわれ、
    前記コンピュータ読取可能な媒体は、前記XMLスキーマ登録動作によって生じたすべての変更を、前記XMLスキーマ登録動作中に特定のエラーに遭遇することに応答して自動的に除去するステップを行なうための命令をさらに含む、請求項27に記載のコンピュータ読取可能な媒体。
  40. 適切なデータベース表現を決定する前記ステップは、前記XMLスキーマのサイクルをどのように破壊するかを決定するステップを含む、請求項27に記載のコンピュータ読取可能な媒体。
  41. マッピングデータを生成する前記ステップは、前記XMLスキーマに注釈を加えるステップと、前記データベースシステム内に前記注釈の付いたXMLスキーマを格納するステップとを含む、請求項27に記載のコンピュータ読取可能な媒体。
  42. 前記適切なデータベース表現に基づいてデータベース内に構造を作成するステップと、
    前記構造に、前記XMLスキーマに準拠するXML文書からのデータを格納するステップとを行なうための命令をさらに含む、請求項27に記載のコンピュータ読取可能な媒体。
  43. XML文書からのデータを格納する前記ステップは、
    前記データベースシステムにおいてXML文書を受信するステップと、
    前記XML文書から、前記XMLスキーマの個々の要素に関連するデータを識別するステップと、
    前記データに関連する要素および前記マッピングデータに基づき、前記構造内の位置に、個々の要素に関連するデータを格納するステップとを含む、請求項42に記載のコンピュータ読取可能な媒体。
  44. 前記XMLスキーマがXMLスキーマに対する1つのXMLスキーマに準拠しているかどうかを決定するために、前記データベースシステム内で前記XMLスキーマを妥当性検証するステップを行なうための命令をさらに含む、請求項27に記載のコンピュータ読取可能な媒体。
  45. 決定する前記ステップは、前記データベースサーバにおいて前記XMLスキーマを受信することに応答して開始されるXMLスキーマ登録動作の一部として行なわれる、請求項27に記載のコンピュータ読取可能な媒体。
  46. 決定する前記ステップは、前記XMLスキーマに準拠するXML文書を前記データベースサーバで受信することに応答して開始されるXMLスキーマ登録動作の一部として行なわれる、請求項27に記載のコンピュータ読取可能な媒体。
  47. 前記XMLスキーマは、前記データベースシステムが前記XMLスキーマの少なくとも1つの要素をどのようにマッピングすべきかを示す、ユーザが特定した注釈を含み、
    前記マッピングデータの少なくとも一部は、前記ユーザが特定した注釈を反映する、請求項45に記載のコンピュータ読取可能な媒体。
JP2003533163A 2001-09-28 2002-09-27 オブジェクト−リレーショナルデータベースシステムにxmlスキーマをマッピングするための機構 Pending JP2005505058A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32605201P 2001-09-28 2001-09-28
US37880002P 2002-05-07 2002-05-07
PCT/US2002/030783 WO2003030031A2 (en) 2001-09-28 2002-09-27 Mechanism for mapping xml schemas to object-relational database systems

Publications (2)

Publication Number Publication Date
JP2005505058A true JP2005505058A (ja) 2005-02-17
JP2005505058A5 JP2005505058A5 (ja) 2006-01-12

Family

ID=26985223

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003531372A Expired - Lifetime JP4443221B2 (ja) 2001-09-28 2002-09-27 リレーショナルデータの整合的な階層抽出の提供
JP2003533163A Pending JP2005505058A (ja) 2001-09-28 2002-09-27 オブジェクト−リレーショナルデータベースシステムにxmlスキーマをマッピングするための機構

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2003531372A Expired - Lifetime JP4443221B2 (ja) 2001-09-28 2002-09-27 リレーショナルデータの整合的な階層抽出の提供

Country Status (7)

Country Link
US (3) US7051033B2 (ja)
EP (2) EP1440394A2 (ja)
JP (2) JP4443221B2 (ja)
CN (2) CN1585945B (ja)
AU (3) AU2002334721B2 (ja)
CA (2) CA2461854C (ja)
WO (2) WO2003027908A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006114045A (ja) * 2004-10-15 2006-04-27 Microsoft Corp スキーマデータ(schemadata)からデータ構造へのマッピング
JP2010536085A (ja) * 2007-08-03 2010-11-25 韓國電子通信研究院 マルチメディア検索のためのクエリ表現装置および方法
WO2012160813A1 (ja) * 2011-05-24 2012-11-29 日本電気株式会社 情報処理システム、データ管理方法、情報処理装置およびその制御方法と制御プログラム

Families Citing this family (437)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293228B1 (en) * 1997-01-31 2007-11-06 Timebase Pty Limited Maltweb multi-axis viewing interface and higher level scoping
AUPO489297A0 (en) * 1997-01-31 1997-02-27 Aunty Abha's Electronic Publishing Pty Ltd A system for electronic publishing
US6158010A (en) * 1998-10-28 2000-12-05 Crosslogix, Inc. System and method for maintaining security in a distributed computer network
US7062456B1 (en) 1999-02-09 2006-06-13 The Chase Manhattan Bank System and method for back office processing of banking transactions using electronic files
US7366708B2 (en) * 1999-02-18 2008-04-29 Oracle Corporation Mechanism to efficiently index structured data that provides hierarchical access in a relational database system
US7716163B2 (en) 2000-06-06 2010-05-11 Microsoft Corporation Method and system for defining semantic categories and actions
US7712024B2 (en) 2000-06-06 2010-05-04 Microsoft Corporation Application program interfaces for semantically labeling strings and providing actions based on semantically labeled strings
US7770102B1 (en) 2000-06-06 2010-08-03 Microsoft Corporation Method and system for semantically labeling strings and providing actions based on semantically labeled strings
US7788602B2 (en) 2000-06-06 2010-08-31 Microsoft Corporation Method and system for providing restricted actions for recognized semantic categories
US8972717B2 (en) * 2000-06-15 2015-03-03 Zixcorp Systems, Inc. Automatic delivery selection for electronic content
US6961900B1 (en) * 2000-08-28 2005-11-01 Microsoft Corporation Rendering data according to a present schema from an origin response message
US7873649B2 (en) 2000-09-07 2011-01-18 Oracle International Corporation Method and mechanism for identifying transaction on a row of data
US7031962B2 (en) * 2001-03-27 2006-04-18 Bea Systems, Inc. System and method for managing objects and resources with access rights embedded in nodes within a hierarchical tree structure
US20030217333A1 (en) * 2001-04-16 2003-11-20 Greg Smith System and method for rules-based web scenarios and campaigns
US7778816B2 (en) 2001-04-24 2010-08-17 Microsoft Corporation Method and system for applying input mode bias
US20060064666A1 (en) * 2001-05-25 2006-03-23 Amaru Ruth M Business rules for configurable metamodels and enterprise impact analysis
US8412746B2 (en) 2001-05-25 2013-04-02 International Business Machines Corporation Method and system for federated querying of data sources
US20030101170A1 (en) * 2001-05-25 2003-05-29 Joseph Edelstein Data query and location through a central ontology model
US7146399B2 (en) * 2001-05-25 2006-12-05 2006 Trident Company Run-time architecture for enterprise integration with transformation generation
US7099885B2 (en) * 2001-05-25 2006-08-29 Unicorn Solutions Method and system for collaborative ontology modeling
US7877421B2 (en) * 2001-05-25 2011-01-25 International Business Machines Corporation Method and system for mapping enterprise data assets to a semantic information model
US7895173B1 (en) * 2001-06-27 2011-02-22 Microsoft Corporation System and method facilitating unified framework for structured/unstructured data
US20030041305A1 (en) * 2001-07-18 2003-02-27 Christoph Schnelle Resilient data links
US7363310B2 (en) 2001-09-04 2008-04-22 Timebase Pty Limited Mapping of data from XML to SQL
US7051039B1 (en) 2001-09-28 2006-05-23 Oracle International Corporation Mechanism for uniform access control in a database system
US7092967B1 (en) 2001-09-28 2006-08-15 Oracle International Corporation Loadable units for lazy manifestation of XML documents
AU2002334721B2 (en) 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US7047253B1 (en) 2001-09-28 2006-05-16 Oracle Interntional Corporation Mechanisms for storing content and properties of hierarchically organized resources
US7047250B1 (en) 2001-09-28 2006-05-16 Oracle International Corporation Indexing to efficiently manage versioned data in a database system
US7028037B1 (en) 2001-09-28 2006-04-11 Oracle International Corporation Operators for accessing hierarchical data in a relational system
EP1298539A1 (en) * 2001-10-01 2003-04-02 Sun Microsystems, Inc. Method and device for marking and filtering data elements in a database
US20030115292A1 (en) * 2001-10-24 2003-06-19 Griffin Philip B. System and method for delegated administration
US7281206B2 (en) * 2001-11-16 2007-10-09 Timebase Pty Limited Maintenance of a markup language document in a database
US7107522B1 (en) 2001-12-21 2006-09-12 Bellsouth Intellectual Property Corp. System and method for creating extensible content
US7343585B1 (en) * 2002-01-30 2008-03-11 Oracle International Corporation Operator approach for generic dataflow designs
JP4039484B2 (ja) * 2002-02-28 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション XPath評価方法、これを用いたXML文書処理システム及びプログラム
JP3624186B2 (ja) * 2002-03-15 2005-03-02 Tdk株式会社 スイッチング電源装置用の制御回路及びこれを用いたスイッチング電源装置
US6965903B1 (en) 2002-05-07 2005-11-15 Oracle International Corporation Techniques for managing hierarchical data with link attributes in a relational database
US7707496B1 (en) 2002-05-09 2010-04-27 Microsoft Corporation Method, system, and apparatus for converting dates between calendars and languages based upon semantically labeled strings
US7548935B2 (en) * 2002-05-09 2009-06-16 Robert Pecherer Method of recursive objects for representing hierarchies in relational database systems
US7742048B1 (en) 2002-05-23 2010-06-22 Microsoft Corporation Method, system, and apparatus for converting numbers based upon semantically labeled strings
US7707024B2 (en) 2002-05-23 2010-04-27 Microsoft Corporation Method, system, and apparatus for converting currency values based upon semantically labeled strings
US7987246B2 (en) 2002-05-23 2011-07-26 Jpmorgan Chase Bank Method and system for client browser update
US6920460B1 (en) * 2002-05-29 2005-07-19 Oracle International Corporation Systems and methods for managing partitioned indexes that are created and maintained by user-defined indexing schemes
US8200622B2 (en) 2002-05-31 2012-06-12 Informatica Corporation System and method for integrating, managing and coordinating customer activities
US7827546B1 (en) 2002-06-05 2010-11-02 Microsoft Corporation Mechanism for downloading software components from a remote source for use by a local software application
US7356537B2 (en) * 2002-06-06 2008-04-08 Microsoft Corporation Providing contextually sensitive tools and help content in computer-generated documents
US7716676B2 (en) * 2002-06-25 2010-05-11 Microsoft Corporation System and method for issuing a message to a program
US20040001099A1 (en) * 2002-06-27 2004-01-01 Microsoft Corporation Method and system for associating actions with semantic labels in electronic documents
US7209915B1 (en) 2002-06-28 2007-04-24 Microsoft Corporation Method, system and apparatus for routing a query to one or more providers
US7120645B2 (en) * 2002-09-27 2006-10-10 Oracle International Corporation Techniques for rewriting XML queries directed to relational database constructs
US7051041B1 (en) * 2002-10-21 2006-05-23 Hewlett-Packard Development Company, L.P. Simplified relational database extension to DBM hash tables and method for using same
DE10250641A1 (de) * 2002-10-30 2004-05-13 Siemens Ag Auf- und abwärtskompatible Schemaevolution
US7020653B2 (en) 2002-11-06 2006-03-28 Oracle International Corporation Techniques for supporting application-specific access controls with a separate server
US6947950B2 (en) 2002-11-06 2005-09-20 Oracle International Corporation Techniques for managing multiple hierarchies of data from a single interface
US7308474B2 (en) 2002-11-06 2007-12-11 Oracle International Corporation Techniques for scalably accessing data in an arbitrarily large document by a device with limited resources
US20040103199A1 (en) * 2002-11-22 2004-05-27 Anthony Chao Method and system for client browser update from a lite cache
US7451158B1 (en) * 2002-11-27 2008-11-11 Microsoft Corporation System and method for creating, appending and merging a work management file
US20040148272A1 (en) * 2003-01-29 2004-07-29 Raman Balan Sethu Logical pathname as a reference mechanism for data
US7783614B2 (en) * 2003-02-13 2010-08-24 Microsoft Corporation Linking elements of a document to corresponding fields, queries and/or procedures in a database
US7653930B2 (en) * 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US8831966B2 (en) 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US7591000B2 (en) 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US7483904B2 (en) * 2003-02-20 2009-01-27 Bea Systems, Inc. Virtual repository content model
US7840614B2 (en) 2003-02-20 2010-11-23 Bea Systems, Inc. Virtual content repository application program interface
US7415478B2 (en) * 2003-02-20 2008-08-19 Bea Systems, Inc. Virtual repository complex content model
US7293286B2 (en) 2003-02-20 2007-11-06 Bea Systems, Inc. Federated management of content repositories
US20040230917A1 (en) * 2003-02-28 2004-11-18 Bales Christopher E. Systems and methods for navigating a graphical hierarchy
US7810036B2 (en) 2003-02-28 2010-10-05 Bea Systems, Inc. Systems and methods for personalizing a portal
US20040230557A1 (en) * 2003-02-28 2004-11-18 Bales Christopher E. Systems and methods for context-sensitive editing
US7711550B1 (en) 2003-04-29 2010-05-04 Microsoft Corporation Methods and system for recognizing names in a computer-generated document and for providing helpful actions associated with recognized names
US7103611B2 (en) * 2003-05-01 2006-09-05 Oracle International Corporation Techniques for retaining hierarchical information in mapping between XML documents and relational data
US7051042B2 (en) * 2003-05-01 2006-05-23 Oracle International Corporation Techniques for transferring a serialized image of XML data
US6836778B2 (en) 2003-05-01 2004-12-28 Oracle International Corporation Techniques for changing XML content in a relational database
US7386568B2 (en) * 2003-05-01 2008-06-10 Oracle International Corporation Techniques for partial rewrite of XPath queries in a relational database
US20040230602A1 (en) * 2003-05-14 2004-11-18 Andrew Doddington System and method for decoupling data presentation layer and data gathering and storage layer in a distributed data processing system
US7366722B2 (en) * 2003-05-15 2008-04-29 Jp Morgan Chase Bank System and method for specifying application services and distributing them across multiple processors using XML
CA2428821C (en) * 2003-05-15 2009-03-17 Ibm Canada Limited - Ibm Canada Limitee Accessing a platform independent input method editor from an underlying operating system
US7331014B2 (en) * 2003-05-16 2008-02-12 Microsoft Corporation Declarative mechanism for defining a hierarchy of objects
US7739588B2 (en) 2003-06-27 2010-06-15 Microsoft Corporation Leveraging markup language data for semantically labeling text strings and data and for providing actions based on semantically labeled text strings and data
US20050010896A1 (en) * 2003-07-07 2005-01-13 International Business Machines Corporation Universal format transformation between relational database management systems and extensible markup language using XML relational transformation
US7519952B2 (en) * 2003-07-28 2009-04-14 International Business Machines Corporation Detecting an integrity constraint violation in a database by analyzing database schema, application and mapping and inserting a check into the database and application
US7069278B2 (en) * 2003-08-08 2006-06-27 Jpmorgan Chase Bank, N.A. System for archive integrity management and related methods
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
US7747580B2 (en) 2003-08-25 2010-06-29 Oracle International Corporation Direct loading of opaque types
US8219569B2 (en) 2003-08-25 2012-07-10 Oracle International Corporation In-place evolution of XML schemes
US7792866B2 (en) 2003-08-25 2010-09-07 International Business Machines Corporation Method and system for querying structured documents stored in their native format in a database
US8250093B2 (en) 2003-08-25 2012-08-21 International Business Machines Corporation Method and system for utilizing a cache for path-level access control to structured documents stored in a database
US7814047B2 (en) 2003-08-25 2010-10-12 Oracle International Corporation Direct loading of semistructured data
US7395271B2 (en) * 2003-08-25 2008-07-01 Oracle International Corporation Mechanism to enable evolving XML schema
US7519574B2 (en) 2003-08-25 2009-04-14 International Business Machines Corporation Associating information related to components in structured documents stored in their native format in a database
US7490093B2 (en) * 2003-08-25 2009-02-10 Oracle International Corporation Generating a schema-specific load structure to load data into a relational database based on determining whether the schema-specific load structure already exists
US8775468B2 (en) 2003-08-29 2014-07-08 International Business Machines Corporation Method and system for providing path-level access control for structured documents stored in a database
US8694510B2 (en) * 2003-09-04 2014-04-08 Oracle International Corporation Indexing XML documents efficiently
US8229932B2 (en) 2003-09-04 2012-07-24 Oracle International Corporation Storing XML documents efficiently in an RDBMS
US20050060345A1 (en) * 2003-09-11 2005-03-17 Andrew Doddington Methods and systems for using XML schemas to identify and categorize documents
US20050065965A1 (en) * 2003-09-19 2005-03-24 Ziemann David M. Navigation of tree data structures
US20050091191A1 (en) * 2003-09-24 2005-04-28 Greg Miller System and method for managing and utilizing information
US20050071805A1 (en) * 2003-09-30 2005-03-31 Johannes Lauterbach Developing applications using a metamodel
US8255888B2 (en) * 2003-09-30 2012-08-28 Sap Ag API derivation and XML schema derivation for developing applications
US7543268B2 (en) * 2003-09-30 2009-06-02 Sap Ag Development environment for developing applications using a metamodel and a metadata API
US7877390B2 (en) * 2003-10-20 2011-01-25 International Business Machines Corporation Systems and methods for providing autonomous persistent storage systems
US7634498B2 (en) * 2003-10-24 2009-12-15 Microsoft Corporation Indexing XML datatype content system and method
US20050091231A1 (en) * 2003-10-24 2005-04-28 Shankar Pal System and method for storing and retrieving XML data encapsulated as an object in a database store
US9690811B1 (en) * 2003-11-05 2017-06-27 Hewlett Packard Enterprise Development Lp Single repository manifestation of a multi-repository system
US7877400B1 (en) * 2003-11-18 2011-01-25 Adobe Systems Incorporated Optimizations of XPaths
US7882146B2 (en) * 2003-12-01 2011-02-01 Microsoft Corporation XML schema collection objects and corresponding systems and methods
US7313756B2 (en) * 2003-12-15 2007-12-25 Microsoft Corporation Schema editor extensions
US8949220B2 (en) * 2003-12-19 2015-02-03 Oracle International Corporation Techniques for managing XML data associated with multiple execution units
US7219102B2 (en) * 2003-12-22 2007-05-15 International Business Machines Corporation Method, computer program product, and system converting relational data into hierarchical data structure based upon tagging trees
US7689542B2 (en) * 2004-01-13 2010-03-30 Oracle International Corporation Dynamic return type generation in a database system
US7418456B2 (en) * 2004-01-16 2008-08-26 International Business Machines Corporation Method for defining a metadata schema to facilitate passing data between an extensible markup language document and a hierarchical database
JP4227033B2 (ja) * 2004-01-20 2009-02-18 富士通株式会社 データベース統合参照装置、データベース統合参照方法およびデータベース統合参照プログラム
US7433940B2 (en) 2004-01-21 2008-10-07 International Business Machines Corporation Schema management
US7346617B2 (en) * 2004-01-23 2008-03-18 Oracle International Corporation Multi-table access control
US20050172217A1 (en) * 2004-02-04 2005-08-04 Yiu-Ming Leung System and method for schemaless data mapping with nested tables
US8037102B2 (en) 2004-02-09 2011-10-11 Robert T. and Virginia T. Jenkins Manipulating sets of hierarchical data
CN1560763B (zh) * 2004-02-19 2010-05-05 北京大学 一种可扩展标记语言路径查询翻译为结构查询的方法
US8311974B2 (en) * 2004-02-20 2012-11-13 Oracle International Corporation Modularized extraction, transformation, and loading for a database
US20050188295A1 (en) * 2004-02-25 2005-08-25 Loren Konkus Systems and methods for an extensible administration tool
US20050203931A1 (en) * 2004-03-13 2005-09-15 Robert Pingree Metadata management convergence platforms, systems and methods
US7873685B2 (en) * 2004-05-13 2011-01-18 Pixar System and method for flexible path handling
US7774601B2 (en) 2004-04-06 2010-08-10 Bea Systems, Inc. Method for delegated administration
US7761461B2 (en) * 2004-04-08 2010-07-20 International Business Machines Corporation Method and system for relationship building from XML
US20050234844A1 (en) * 2004-04-08 2005-10-20 Microsoft Corporation Method and system for parsing XML data
US7493305B2 (en) 2004-04-09 2009-02-17 Oracle International Corporation Efficient queribility and manageability of an XML index with path subsetting
US7603347B2 (en) * 2004-04-09 2009-10-13 Oracle International Corporation Mechanism for efficiently evaluating operator trees
US7398265B2 (en) * 2004-04-09 2008-07-08 Oracle International Corporation Efficient query processing of XML data using XML index
JP4724177B2 (ja) * 2004-04-09 2011-07-13 オラクル・インターナショナル・コーポレイション Xmlデータにアクセスするためのインデックス
US7499915B2 (en) * 2004-04-09 2009-03-03 Oracle International Corporation Index for accessing XML data
US7440954B2 (en) 2004-04-09 2008-10-21 Oracle International Corporation Index maintenance for operations involving indexed XML data
US7366735B2 (en) 2004-04-09 2008-04-29 Oracle International Corporation Efficient extraction of XML content stored in a LOB
US20050228816A1 (en) * 2004-04-13 2005-10-13 Bea Systems, Inc. System and method for content type versions
US20050251512A1 (en) * 2004-04-13 2005-11-10 Bea Systems, Inc. System and method for searching a virtual content repository
US20060028252A1 (en) * 2004-04-13 2006-02-09 Bea Systems, Inc. System and method for content type management
US7236989B2 (en) 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for providing lifecycles for custom content in a virtual content repository
US7246138B2 (en) 2004-04-13 2007-07-17 Bea Systems, Inc. System and method for content lifecycles in a virtual content repository that integrates a plurality of content repositories
US7236990B2 (en) 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for information lifecycle workflow integration
US7236975B2 (en) * 2004-04-13 2007-06-26 Bea Systems, Inc. System and method for controlling access to anode in a virtual content repository that integrates a plurality of content repositories
US7930277B2 (en) * 2004-04-21 2011-04-19 Oracle International Corporation Cost-based optimizer for an XML data repository within a database
US7469256B1 (en) 2004-04-29 2008-12-23 Sap Ag Cached persistent data management through state tracking
US7590639B1 (en) 2004-04-29 2009-09-15 Sap Ag System and method for ordering a database flush sequence at transaction commit
US7653651B1 (en) 2004-04-29 2010-01-26 Sap Ag System and method for transparent persistence management
US9646107B2 (en) 2004-05-28 2017-05-09 Robert T. and Virginia T. Jenkins as Trustee of the Jenkins Family Trust Method and/or system for simplifying tree expressions such as for query reduction
JP4866844B2 (ja) * 2004-06-16 2012-02-01 オラクル・インターナショナル・コーポレイション Lobに格納されたxml内容の効率的な抽出
US7516121B2 (en) 2004-06-23 2009-04-07 Oracle International Corporation Efficient evaluation of queries using translation
JP4709213B2 (ja) 2004-06-23 2011-06-22 オラクル・インターナショナル・コーポレイション 変換を使用したクエリの効率的な評価
US7308453B2 (en) * 2004-06-29 2007-12-11 Nokia Corporation Meta-data approach to indexing, retrieval and management of stored messages in a portable communication device
US7882147B2 (en) * 2004-06-30 2011-02-01 Robert T. and Virginia T. Jenkins File location naming hierarchy
US7620632B2 (en) * 2004-06-30 2009-11-17 Skyler Technology, Inc. Method and/or system for performing tree matching
US7885980B2 (en) * 2004-07-02 2011-02-08 Oracle International Corporation Mechanism for improving performance on XML over XML data using path subsetting
US8566300B2 (en) 2004-07-02 2013-10-22 Oracle International Corporation Mechanism for efficient maintenance of XML index structures in a database system
US20070208946A1 (en) * 2004-07-06 2007-09-06 Oracle International Corporation High performance secure caching in the mid-tier
US7668806B2 (en) 2004-08-05 2010-02-23 Oracle International Corporation Processing queries against one or more markup language sources
US7685137B2 (en) 2004-08-06 2010-03-23 Oracle International Corporation Technique of using XMLType tree as the type infrastructure for XML
US7366974B2 (en) * 2004-09-03 2008-04-29 Jp Morgan Chase Bank System and method for managing template attributes
US20060075074A1 (en) * 2004-09-07 2006-04-06 Microsoft Corporation Adaptor migration tool
US20060059210A1 (en) * 2004-09-16 2006-03-16 Macdonald Glynne Generic database structure and related systems and methods for storing data independent of data type
US7493313B2 (en) * 2004-09-17 2009-02-17 Microsoft Corporation Durable storage of .NET data types and instances
US7657894B2 (en) * 2004-09-29 2010-02-02 Intel Corporation Detecting lock acquisition hierarchy violations in multithreaded programs
US20060072626A1 (en) * 2004-09-29 2006-04-06 Lucent Technologies Inc. Data synchronization in a telecommunication management network
US20090132466A1 (en) * 2004-10-13 2009-05-21 Jp Morgan Chase Bank System and method for archiving data
US7801923B2 (en) * 2004-10-29 2010-09-21 Robert T. and Virginia T. Jenkins as Trustees of the Jenkins Family Trust Method and/or system for tagging trees
US7627591B2 (en) * 2004-10-29 2009-12-01 Skyler Technology, Inc. Method and/or system for manipulating tree expressions
US7730114B2 (en) * 2004-11-12 2010-06-01 Microsoft Corporation Computer file system
US7627547B2 (en) * 2004-11-29 2009-12-01 Oracle International Corporation Processing path-based database operations
US7882149B2 (en) * 2004-11-30 2011-02-01 Canon Kabushiki Kaisha System and method for future-proofing devices using metaschema
US7636727B2 (en) 2004-12-06 2009-12-22 Skyler Technology, Inc. Enumeration of trees from finite number of nodes
US7630995B2 (en) 2004-11-30 2009-12-08 Skyler Technology, Inc. Method and/or system for transmitting and/or receiving data
US7849106B1 (en) 2004-12-03 2010-12-07 Oracle International Corporation Efficient mechanism to support user defined resource metadata in a database repository
US20060123020A1 (en) * 2004-12-07 2006-06-08 Microsoft Corporation Computer file system allowing ambiguous names
US7392259B2 (en) * 2004-12-14 2008-06-24 Electronics And Telecommunications Research Institute Method and system for supporting XQuery trigger in XML-DBMS based on relational DBMS
US7509359B1 (en) * 2004-12-15 2009-03-24 Unisys Corporation Memory bypass in accessing large data objects in a relational database management system
US7921076B2 (en) * 2004-12-15 2011-04-05 Oracle International Corporation Performing an action in response to a file system event
US8131766B2 (en) 2004-12-15 2012-03-06 Oracle International Corporation Comprehensive framework to integrate business logic into a repository
US20060136483A1 (en) * 2004-12-22 2006-06-22 International Business Machines Corporation System and method of decomposition of multiple items into the same table-column pair
US7620641B2 (en) * 2004-12-22 2009-11-17 International Business Machines Corporation System and method for context-sensitive decomposition of XML documents based on schemas with reusable element/attribute declarations
US8316059B1 (en) 2004-12-30 2012-11-20 Robert T. and Virginia T. Jenkins Enumeration of rooted partial subtrees
US7559020B2 (en) * 2004-12-30 2009-07-07 Microsoft Corporation Methods and systems for preserving unknown markup in a strongly typed environment
US8615530B1 (en) 2005-01-31 2013-12-24 Robert T. and Virginia T. Jenkins as Trustees for the Jenkins Family Trust Method and/or system for tree transformation
US7523131B2 (en) 2005-02-10 2009-04-21 Oracle International Corporation Techniques for efficiently storing and querying in a relational database, XML documents conforming to schemas that contain cyclic constructs
US7444345B2 (en) * 2005-02-15 2008-10-28 International Business Machines Corporation Hierarchical inherited XML DOM
US7681177B2 (en) * 2005-02-28 2010-03-16 Skyler Technology, Inc. Method and/or system for transforming between trees and strings
US7478102B2 (en) * 2005-03-28 2009-01-13 Microsoft Corporation Mapping of a file system model to a database object
US8356040B2 (en) 2005-03-31 2013-01-15 Robert T. and Virginia T. Jenkins Method and/or system for transforming between trees and arrays
US7305414B2 (en) 2005-04-05 2007-12-04 Oracle International Corporation Techniques for efficient integration of text searching with queries over XML data
WO2006108069A2 (en) * 2005-04-06 2006-10-12 Google, Inc. Searching through content which is accessible through web-based forms
US20060230048A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation Method and apparatus for object discovery agent based mapping of application specific markup language schemas to application specific business objects in an integrated application environment
US8145653B2 (en) * 2005-04-08 2012-03-27 International Business Machines Corporation Using schemas to generate application specific business objects for use in an integration broker
US8458201B2 (en) * 2005-04-08 2013-06-04 International Business Machines Corporation Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment
US20060235839A1 (en) * 2005-04-19 2006-10-19 Muralidhar Krishnaprasad Using XML as a common parser architecture to separate parser from compiler
US7685150B2 (en) * 2005-04-19 2010-03-23 Oracle International Corporation Optimization of queries over XML views that are based on union all operators
US7949941B2 (en) 2005-04-22 2011-05-24 Oracle International Corporation Optimizing XSLT based on input XML document structure description and translating XSLT into equivalent XQuery expressions
US7899821B1 (en) 2005-04-29 2011-03-01 Karl Schiffmann Manipulation and/or analysis of hierarchical data
US7454435B2 (en) * 2005-05-03 2008-11-18 Microsoft Corporation Systems and methods for granular changes within a data storage system
US7496588B2 (en) 2005-06-27 2009-02-24 Siperian, Inc. Method and apparatus for data integration and management
US8166059B2 (en) * 2005-07-08 2012-04-24 Oracle International Corporation Optimization of queries on a repository based on constraints on how the data is stored in the repository
US7930680B2 (en) * 2005-07-08 2011-04-19 Microsoft Corporation XML schema design for environment-specific types based on base types
US8762410B2 (en) * 2005-07-18 2014-06-24 Oracle International Corporation Document level indexes for efficient processing in multiple tiers of a computer system
US20070016605A1 (en) * 2005-07-18 2007-01-18 Ravi Murthy Mechanism for computing structural summaries of XML document collections in a database system
US7406478B2 (en) * 2005-08-11 2008-07-29 Oracle International Corporation Flexible handling of datetime XML datatype in a database system
US7814065B2 (en) * 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US8065606B1 (en) 2005-09-16 2011-11-22 Jpmorgan Chase Bank, N.A. System and method for automating document generation
US20070067343A1 (en) * 2005-09-21 2007-03-22 International Business Machines Corporation Determining the structure of relations and content of tuples from XML schema components
US7788590B2 (en) 2005-09-26 2010-08-31 Microsoft Corporation Lightweight reference user interface
US7992085B2 (en) 2005-09-26 2011-08-02 Microsoft Corporation Lightweight reference user interface
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US20070073638A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for using soft links to managed content
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7877379B2 (en) * 2005-09-30 2011-01-25 Oracle International Corporation Delaying evaluation of expensive expressions in a query
CN100407199C (zh) * 2005-09-30 2008-07-30 南京大学 基于关系数据库信息技术产品保护轮廓的一致性检查方法
US9367642B2 (en) 2005-10-07 2016-06-14 Oracle International Corporation Flexible storage of XML collections within an object-relational database
US8554789B2 (en) * 2005-10-07 2013-10-08 Oracle International Corporation Managing cyclic constructs of XML schema in a rdbms
US8073841B2 (en) * 2005-10-07 2011-12-06 Oracle International Corporation Optimizing correlated XML extracts
US8024368B2 (en) * 2005-10-07 2011-09-20 Oracle International Corporation Generating XML instances from flat files
US8356053B2 (en) 2005-10-20 2013-01-15 Oracle International Corporation Managing relationships between resources stored within a repository
US8949455B2 (en) 2005-11-21 2015-02-03 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US20070118503A1 (en) * 2005-11-22 2007-05-24 Connelly Stephen P Methods and systems for providing data to a database
JP4328762B2 (ja) * 2005-12-06 2009-09-09 キヤノン株式会社 情報処理装置、情報処理方法、プログラム及び記憶媒体
US7774300B2 (en) * 2005-12-09 2010-08-10 International Business Machines Corporation System and method for data model and content migration in content management applications
US7933928B2 (en) * 2005-12-22 2011-04-26 Oracle International Corporation Method and mechanism for loading XML documents into memory
US8150803B2 (en) 2006-01-03 2012-04-03 Informatica Corporation Relationship data management
US7523121B2 (en) * 2006-01-03 2009-04-21 Siperian, Inc. Relationship data management
US20070214179A1 (en) * 2006-03-10 2007-09-13 Khanh Hoang Searching, filtering, creating, displaying, and managing entity relationships across multiple data hierarchies through a user interface
US7730032B2 (en) 2006-01-12 2010-06-01 Oracle International Corporation Efficient queriability of version histories in a repository
US7849091B1 (en) * 2006-01-25 2010-12-07 At&T Intellectual Property Ii, L.P. Meta-data indexing for XPath location steps
US7519606B2 (en) * 2006-01-31 2009-04-14 International Business Machines Corporation Schema mapping specification framework
US8010909B1 (en) * 2006-02-06 2011-08-30 Microsoft Corporation Derived hierarchy methods and system for definition, visualization and editing of data
US7617198B2 (en) * 2006-02-09 2009-11-10 Sap Ag Generation of XML search profiles
US7529758B2 (en) * 2006-02-10 2009-05-05 International Business Machines Corporation Method for pre-processing mapping information for efficient decomposition of XML documents
US9229967B2 (en) * 2006-02-22 2016-01-05 Oracle International Corporation Efficient processing of path related operations on data organized hierarchically in an RDBMS
US20070239762A1 (en) * 2006-03-30 2007-10-11 International Business Machines Corporation Automated interactive visual mapping utility and method for transformation and storage of XML data
US9495356B2 (en) 2006-03-30 2016-11-15 International Business Machines Corporation Automated interactive visual mapping utility and method for validation and storage of XML data
US8880506B2 (en) * 2009-10-16 2014-11-04 Oracle International Corporation Leveraging structured XML index data for evaluating database queries
US20070250527A1 (en) * 2006-04-19 2007-10-25 Ravi Murthy Mechanism for abridged indexes over XML document collections
US7711755B2 (en) * 2006-05-17 2010-05-04 Topcoder, Inc. Dynamic XSD enumeration
US8510292B2 (en) * 2006-05-25 2013-08-13 Oracle International Coporation Isolation for applications working on shared XML data
US10318752B2 (en) * 2006-05-26 2019-06-11 Oracle International Corporation Techniques for efficient access control in a database system
US7730080B2 (en) * 2006-06-23 2010-06-01 Oracle International Corporation Techniques of rewriting descendant and wildcard XPath using one or more of SQL OR, UNION ALL, and XMLConcat() construct
US7499909B2 (en) * 2006-07-03 2009-03-03 Oracle International Corporation Techniques of using a relational caching framework for efficiently handling XML queries in the mid-tier data caching
US7801856B2 (en) * 2006-08-09 2010-09-21 Oracle International Corporation Using XML for flexible replication of complex types
US7856415B2 (en) * 2006-09-01 2010-12-21 Dell Products L.P. System and method for mapping events into a data structure
CN101512523A (zh) 2006-09-12 2009-08-19 国际商业机器公司 把内容动态上下文相关地集成到门户网站应用程序中的系统和方法
US8346725B2 (en) * 2006-09-15 2013-01-01 Oracle International Corporation Evolution of XML schemas involving partial data copy
US8484326B2 (en) * 2006-09-28 2013-07-09 Rockstar Bidco Lp Application server billing
US7870163B2 (en) * 2006-09-28 2011-01-11 Oracle International Corporation Implementation of backward compatible XML schema evolution in a relational database system
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US7827177B2 (en) * 2006-10-16 2010-11-02 Oracle International Corporation Managing compound XML documents in a repository
US20080092037A1 (en) * 2006-10-16 2008-04-17 Oracle International Corporation Validation of XML content in a streaming fashion
US9183321B2 (en) * 2006-10-16 2015-11-10 Oracle International Corporation Managing compound XML documents in a repository
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
US8010889B2 (en) * 2006-10-20 2011-08-30 Oracle International Corporation Techniques for efficient loading of binary XML data
US8104076B1 (en) 2006-11-13 2012-01-24 Jpmorgan Chase Bank, N.A. Application access control system
US9436779B2 (en) * 2006-11-17 2016-09-06 Oracle International Corporation Techniques of efficient XML query using combination of XML table index and path/value index
US8478760B2 (en) * 2006-11-17 2013-07-02 Oracle International Corporation Techniques of efficient query over text, image, audio, video and other domain specific data in XML using XML table index with integration of text index and other domain specific indexes
US20080120283A1 (en) * 2006-11-17 2008-05-22 Oracle International Corporation Processing XML data stream(s) using continuous queries in a data stream management system
US8307348B2 (en) * 2006-12-05 2012-11-06 Microsoft Corporation Simplified representation of XML schema structures
US20080147615A1 (en) * 2006-12-18 2008-06-19 Oracle International Corporation Xpath based evaluation for content stored in a hierarchical database repository using xmlindex
US7840590B2 (en) * 2006-12-18 2010-11-23 Oracle International Corporation Querying and fragment extraction within resources in a hierarchical repository
US7934207B2 (en) * 2006-12-19 2011-04-26 Microsoft Corporation Data schemata in programming language contracts
US8522255B2 (en) * 2006-12-29 2013-08-27 Sap Ag Multi-tiered message parsing
US20080163197A1 (en) * 2006-12-30 2008-07-03 Sap Ag Multi-product installation tool database architecture
CN101216824B (zh) * 2007-01-05 2010-04-21 冯卫国 一种将树型结构数据库发布为分布式xml数据库的方法
US20080189311A1 (en) * 2007-02-01 2008-08-07 Microsoft Corporation Visual controls for stored procedure and object relational class development
US8214797B2 (en) * 2007-02-01 2012-07-03 Microsoft Corporation Visual association creation for object relational class development
US7979476B2 (en) * 2007-02-07 2011-07-12 Canon Kabushiki Kaisha Information processing apparatus, control method therefor, program, and storage medium
US7631003B2 (en) * 2007-02-20 2009-12-08 Microsoft Corporation Automated transformation for style normalization of schemas
US20080222515A1 (en) * 2007-02-26 2008-09-11 Microsoft Corporation Parameterized types and elements in xml schema
US7860899B2 (en) * 2007-03-26 2010-12-28 Oracle International Corporation Automatically determining a database representation for an abstract datatype
US20080237436A1 (en) * 2007-03-26 2008-10-02 Runbeck Election Services, Inc. Election ballot printing system and method
US8024701B2 (en) * 2007-03-27 2011-09-20 Microsoft Corporation Visual creation of object/relational constructs
US7668860B2 (en) * 2007-04-02 2010-02-23 Business Objects Software Ltd. Apparatus and method for constructing and using a semantic abstraction for querying hierarchical data
US8375072B1 (en) 2007-04-12 2013-02-12 United Services Automobile Association (Usaa) Electronic file management hierarchical structure
US8396909B1 (en) * 2007-04-12 2013-03-12 United Services Automobile Association (Usaa) Electronic file management hierarchical structure
US7765241B2 (en) * 2007-04-20 2010-07-27 Microsoft Corporation Describing expected entity relationships in a model
CN100458793C (zh) * 2007-05-10 2009-02-04 浪潮集团山东通用软件有限公司 数据访问层Xml格式数据与关系数据间的映射转换方法
WO2009014845A2 (en) * 2007-06-28 2009-01-29 Ultralife Corporation High capacity and high rate lithium cells with cfx-mno2 hybrid cathode
US7904809B2 (en) * 2007-06-29 2011-03-08 Microsoft Corporation Model-based editors for dynamic validation
US7836066B2 (en) * 2007-07-12 2010-11-16 Oracle International Corporation Using SQL extensibility for processing dynamically typed XML data in XQuery queries
US7836098B2 (en) * 2007-07-13 2010-11-16 Oracle International Corporation Accelerating value-based lookup of XML document in XQuery
US8271477B2 (en) * 2007-07-20 2012-09-18 Informatica Corporation Methods and systems for accessing data
US9760839B1 (en) 2007-07-25 2017-09-12 United Services Automobile Association (Usaa) Electronic recording statement management
US7840609B2 (en) * 2007-07-31 2010-11-23 Oracle International Corporation Using sibling-count in XML indexes to optimize single-path queries
US7979420B2 (en) * 2007-10-16 2011-07-12 Oracle International Corporation Handling silent relations in a data stream management system
US8296316B2 (en) * 2007-10-17 2012-10-23 Oracle International Corporation Dynamically sharing a subtree of operators in a data stream management system operating on existing queries
US7991768B2 (en) 2007-11-08 2011-08-02 Oracle International Corporation Global query normalization to improve XML index based rewrites for path subsetted index
US8250062B2 (en) * 2007-11-09 2012-08-21 Oracle International Corporation Optimized streaming evaluation of XML queries
US8543898B2 (en) * 2007-11-09 2013-09-24 Oracle International Corporation Techniques for more efficient generation of XML events from XML data sources
US9842090B2 (en) * 2007-12-05 2017-12-12 Oracle International Corporation Efficient streaming evaluation of XPaths on binary-encoded XML schema-based documents
US9330149B2 (en) * 2007-12-18 2016-05-03 Oracle International Corporation Techniques for query and DML over relational tables using spreadsheet applications
US20090182703A1 (en) * 2008-01-16 2009-07-16 Microsoft Corporation Exposing relational database interfaces on xml data
US8527867B2 (en) * 2008-01-18 2013-09-03 Oracle International Corporation Enabling users to edit very large XML data
US7996444B2 (en) * 2008-02-18 2011-08-09 International Business Machines Corporation Creation of pre-filters for more efficient X-path processing
US8515946B2 (en) * 2008-02-28 2013-08-20 Microsoft Corporation Location description for federation and discoverability
US8868482B2 (en) * 2008-03-20 2014-10-21 Oracle International Corporation Inferring schemas from XML document collections
US20090248716A1 (en) * 2008-03-31 2009-10-01 Caterpillar Inc. Hierarchy creation and management tool
US8166071B1 (en) 2008-05-22 2012-04-24 Informatica Corporation System and method for efficiently securing enterprise data resources
US8327419B1 (en) 2008-05-22 2012-12-04 Informatica Corporation System and method for efficiently securing enterprise data resources
US8429196B2 (en) * 2008-06-06 2013-04-23 Oracle International Corporation Fast extraction of scalar values from binary encoded XML
US8024325B2 (en) 2008-06-25 2011-09-20 Oracle International Corporation Estimating the cost of XML operators for binary XML storage
US8943087B2 (en) * 2008-07-25 2015-01-27 International Business Machines Corporation Processing data from diverse databases
US8972463B2 (en) * 2008-07-25 2015-03-03 International Business Machines Corporation Method and apparatus for functional integration of metadata
US9110970B2 (en) * 2008-07-25 2015-08-18 International Business Machines Corporation Destructuring and restructuring relational data
US8073843B2 (en) * 2008-07-29 2011-12-06 Oracle International Corporation Mechanism for deferred rewrite of multiple XPath evaluations over binary XML
US20100030727A1 (en) * 2008-07-29 2010-02-04 Sivasankaran Chandrasekar Technique For Using Occurrence Constraints To Optimize XML Index Access
US7958112B2 (en) * 2008-08-08 2011-06-07 Oracle International Corporation Interleaving query transformations for XML indexes
US9305238B2 (en) * 2008-08-29 2016-04-05 Oracle International Corporation Framework for supporting regular expression-based pattern matching in data streams
US8145806B2 (en) 2008-09-19 2012-03-27 Oracle International Corporation Storage-side storage request management
US8949285B2 (en) * 2008-09-19 2015-02-03 Ciena Corporation Systems and methods for handling performance monitoring data
CN101727465B (zh) * 2008-11-03 2011-12-21 中国移动通信集团公司 分布式列存储数据库索引建立、查询方法及装置与系统
US8904276B2 (en) 2008-11-17 2014-12-02 At&T Intellectual Property I, L.P. Partitioning of markup language documents
US9495475B2 (en) * 2008-11-21 2016-11-15 Sap Se Method of representing an XML schema definition and data within a relational database management system using a reusable custom-defined nestable compound data type
US8126932B2 (en) * 2008-12-30 2012-02-28 Oracle International Corporation Indexing strategy with improved DML performance and space usage for node-aware full-text search over XML
US8219563B2 (en) * 2008-12-30 2012-07-10 Oracle International Corporation Indexing mechanism for efficient node-aware full-text search over XML
US8935293B2 (en) * 2009-03-02 2015-01-13 Oracle International Corporation Framework for dynamically generating tuple and page classes
US8352517B2 (en) * 2009-03-02 2013-01-08 Oracle International Corporation Infrastructure for spilling pages to a persistent store
US8145859B2 (en) 2009-03-02 2012-03-27 Oracle International Corporation Method and system for spilling from a queue to a persistent store
US8380702B2 (en) * 2009-03-10 2013-02-19 Oracle International Corporation Loading an index with minimal effect on availability of applications using the corresponding table
US8176063B2 (en) * 2009-03-12 2012-05-08 Siemens Product Lifecycle Management Software Inc. System and method for non-overwriting extensible mapping
US20100250729A1 (en) * 2009-03-30 2010-09-30 Morris Robert P Method and System For Providing Access To Metadata Of A Network Accessible Resource
US20100250591A1 (en) * 2009-03-30 2010-09-30 Morris Robert P Methods, Systems, And Computer Program Products For Providing Access To Metadata For An Identified Resource
US8560941B2 (en) * 2009-04-08 2013-10-15 Microsoft Corporation Schema based user interface mechanisms
US8478801B2 (en) * 2009-05-20 2013-07-02 Vmware, Inc. Efficient reconstruction of virtual disk hierarchies across storage domains
US9497248B2 (en) * 2009-06-02 2016-11-15 International Business Machines Corporation System for enabling rich network applications
US8387076B2 (en) * 2009-07-21 2013-02-26 Oracle International Corporation Standardized database connectivity support for an event processing server
US8321450B2 (en) 2009-07-21 2012-11-27 Oracle International Corporation Standardized database connectivity support for an event processing server in an embedded context
US8527458B2 (en) 2009-08-03 2013-09-03 Oracle International Corporation Logging framework for a data stream processing server
US8386466B2 (en) 2009-08-03 2013-02-26 Oracle International Corporation Log visualization tool for a data stream processing server
US8423512B2 (en) * 2009-09-08 2013-04-16 Oracle International Corporation Leveraging XML capabilities of a database to enhance handling of document data
CN102043802B (zh) * 2009-10-16 2013-09-25 上海飞机制造有限公司 基于结构摘要的xml关键字检索方法
US9424365B2 (en) * 2009-10-30 2016-08-23 Oracle International Corporation XPath-based creation of relational indexes and constraints over XML data stored in relational tables
US9305057B2 (en) 2009-12-28 2016-04-05 Oracle International Corporation Extensible indexing framework using data cartridges
US8959106B2 (en) 2009-12-28 2015-02-17 Oracle International Corporation Class loading using java data cartridges
US9430494B2 (en) * 2009-12-28 2016-08-30 Oracle International Corporation Spatial data cartridge for event processing systems
US8244735B2 (en) 2010-05-03 2012-08-14 International Business Machines Corporation Efficient and scalable data evolution with column oriented databases
US8296326B1 (en) * 2010-08-20 2012-10-23 Cellco Partnership Grid-based user interface techniques for interacting with nested hierarchical data structures
CN103119589B (zh) 2010-09-17 2017-10-27 甲骨文国际公司 用于将移动设备功能绑定到应用定义的方法和装置
US8713049B2 (en) 2010-09-17 2014-04-29 Oracle International Corporation Support for a parameterized query/view in complex event processing
CN103098055B (zh) 2010-09-17 2018-01-12 甲骨文国际公司 移动客户关系管理中的递归导航
US9229947B2 (en) 2010-09-27 2016-01-05 Fisher-Rosemount Systems, Inc. Methods and apparatus to manage process data
US9773028B2 (en) 2010-09-29 2017-09-26 International Business Machines Corporation Manipulating non-schema attributes for objects in a schema based directory
US8818963B2 (en) 2010-10-29 2014-08-26 Microsoft Corporation Halloween protection in a multi-version database system
CN102467607A (zh) * 2010-11-11 2012-05-23 江苏大学 一种医嘱、给药提醒装置
US9189280B2 (en) 2010-11-18 2015-11-17 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US9038177B1 (en) 2010-11-30 2015-05-19 Jpmorgan Chase Bank, N.A. Method and system for implementing multi-level data fusion
US8583652B2 (en) * 2010-11-30 2013-11-12 Oracle International Corporation Efficiently registering a relational schema
US8489649B2 (en) 2010-12-13 2013-07-16 Oracle International Corporation Extensible RDF databases
US9182757B2 (en) 2011-03-30 2015-11-10 Fisher-Rosemount Systems, Inc. Methods and apparatus to transmit device description files to a host
US8990416B2 (en) 2011-05-06 2015-03-24 Oracle International Corporation Support for a new insert stream (ISTREAM) operation in complex event processing (CEP)
US9329975B2 (en) 2011-07-07 2016-05-03 Oracle International Corporation Continuous query language (CQL) debugger in complex event processing (CEP)
US9292588B1 (en) 2011-07-20 2016-03-22 Jpmorgan Chase Bank, N.A. Safe storing data for disaster recovery
CN102323956B (zh) * 2011-09-29 2014-12-17 用友软件股份有限公司 数据管理装置和数据管理方法
US9020981B2 (en) * 2011-09-30 2015-04-28 Comprehend Systems, Inc. Systems and methods for generating schemas that represent multiple data sources
WO2013096887A1 (en) 2011-12-23 2013-06-27 Amiato, Inc. Scalable analysis platform for semi-structured data
US8676788B2 (en) * 2012-03-13 2014-03-18 International Business Machines Corporation Structured large object (LOB) data
CN102662997B (zh) * 2012-03-15 2015-09-16 播思通讯技术(北京)有限公司 一种存储xml数据到关系数据库的方法
US8812542B1 (en) * 2012-03-30 2014-08-19 Emc Corporation On-the-fly determining of alert relationships in a distributed system
US9251181B2 (en) 2012-06-18 2016-02-02 International Business Machines Corporation Dynamic map template discovery and map creation
US9646028B2 (en) * 2012-08-31 2017-05-09 Facebook, Inc. Graph query logic
KR102110281B1 (ko) * 2012-09-07 2020-05-13 아메리칸 케미칼 소사이어티 자동화된 작성물 평가기
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9262479B2 (en) 2012-09-28 2016-02-16 Oracle International Corporation Join operations for continuous queries over archived views
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US10298444B2 (en) 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US9098587B2 (en) 2013-01-15 2015-08-04 Oracle International Corporation Variable duration non-event pattern matching
KR20140096717A (ko) * 2013-01-29 2014-08-06 한국전자통신연구원 Bim 기반 빌딩에너지 관리 장치 및 방법
CN104969221B (zh) * 2013-02-07 2018-05-11 慧与发展有限责任合伙企业 格式化数据库中的半结构化数据
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US9047249B2 (en) 2013-02-19 2015-06-02 Oracle International Corporation Handling faults in a continuous event processing (CEP) system
US10540373B1 (en) 2013-03-04 2020-01-21 Jpmorgan Chase Bank, N.A. Clause library manager
US9195712B2 (en) 2013-03-12 2015-11-24 Microsoft Technology Licensing, Llc Method of converting query plans to native code
US10489365B2 (en) * 2013-03-14 2019-11-26 Oracle International Corporation Predicate offload of large objects
US10528590B2 (en) 2014-09-26 2020-01-07 Oracle International Corporation Optimizing a query with extrema function using in-memory data summaries on the storage server
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
CA3078018C (en) 2013-03-15 2023-08-22 Amazon Technologies, Inc. Scalable analysis platform for semi-structured data
US11074231B1 (en) * 2013-03-15 2021-07-27 Informatica Llc Validating modifications to mapping statements for processing hierarchical data structures
US10248620B2 (en) 2013-04-30 2019-04-02 Entit Software Llc Database table column annotation
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
US11966554B2 (en) * 2013-09-16 2024-04-23 Field Squared, Inc. User interface defined document
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
GB2521198A (en) * 2013-12-13 2015-06-17 Ibm Refactoring of databases to include soft type information
JP5764226B2 (ja) * 2014-02-17 2015-08-12 前田建設工業株式会社 情報処理装置、情報処理方法、プログラム、および媒体
US10474645B2 (en) 2014-02-24 2019-11-12 Microsoft Technology Licensing, Llc Automatically retrying transactions with split procedure execution
US10248682B2 (en) 2015-02-20 2019-04-02 Scality, S.A. Object storage system capable of performing snapshots, branches and locking
US10261960B2 (en) 2014-09-12 2019-04-16 Scality, S.A. Snapshots and forks of storage systems using distributed consistent databases implemented within an object store
US10366070B2 (en) 2015-02-20 2019-07-30 Scality S.A. Locking and I/O improvements of systems built with distributed consistent database implementations within an object store
US9524302B2 (en) * 2014-03-05 2016-12-20 Scality, S.A. Distributed consistent database implementation within an object store
US9779118B2 (en) * 2014-03-17 2017-10-03 Kenshoo Ltd. Live database schema tree change
US10635645B1 (en) 2014-05-04 2020-04-28 Veritas Technologies Llc Systems and methods for maintaining aggregate tables in databases
US10599860B2 (en) * 2014-05-22 2020-03-24 Tata Consultancy Services Limited Accessing enterprise data
US9244978B2 (en) 2014-06-11 2016-01-26 Oracle International Corporation Custom partitioning of a data stream
US9712645B2 (en) 2014-06-26 2017-07-18 Oracle International Corporation Embedded event processing
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
US9754048B1 (en) * 2014-10-06 2017-09-05 Google Inc. Storing semi-structured data
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
US10067953B2 (en) * 2015-05-08 2018-09-04 International Business Machines Corporation Indexing a chameleon schema
US9916359B2 (en) * 2015-06-01 2018-03-13 Sap Se Indexing dynamic hierarchical data
WO2017018901A1 (en) 2015-07-24 2017-02-02 Oracle International Corporation Visually exploring and analyzing event streams
US10872065B1 (en) * 2015-08-03 2020-12-22 Intelligence Designs, LLC System for managing relational databases using XML objects
US10169351B2 (en) 2015-08-19 2019-01-01 International Business Machines Corporation Merging directory information from a user directory to a common directory
CN105930474A (zh) * 2016-04-26 2016-09-07 南京国电南自电网自动化有限公司 基于数据库技术的动态模型构造方法
US10733562B2 (en) * 2016-06-03 2020-08-04 Arkadiusz Binder Method, device, system of model-driven engineering of efficient industrial automation process and business process modeling with BPMN using native computation of XML schemas and objects
US10628424B2 (en) * 2016-09-15 2020-04-21 Oracle International Corporation Graph generation for a distributed event processing system
GB201615963D0 (en) * 2016-09-20 2016-11-02 Ibm Relational operations between db tables and application tables
US10025568B2 (en) * 2016-11-11 2018-07-17 Sap Se Database object lifecycle management
US10909090B2 (en) 2016-11-11 2021-02-02 Sap Se Database proxy object delivery infrastructure
US10558529B2 (en) 2016-11-11 2020-02-11 Sap Se Database object delivery infrastructure
US10891273B2 (en) 2016-11-11 2021-01-12 Sap Se Database container delivery infrastructure
CN108228604B (zh) * 2016-12-14 2021-11-23 北京国双科技有限公司 基于内存对象的模型构建方法、信息查询方法及装置
CN106802938A (zh) * 2016-12-30 2017-06-06 厦门南讯软件科技有限公司 基于组件化的客户分层属性动态生成方法
CN106909673A (zh) * 2017-03-01 2017-06-30 国电南瑞科技股份有限公司 一种遵循数据库接口标准的数据存储模块的实现方法
RU2650032C1 (ru) * 2017-03-20 2018-04-06 Алексей Петрович Семенов Электронная база данных и способ её формирования
US11120027B2 (en) * 2017-09-06 2021-09-14 Rovi Guides, Inc. Systems and methods for identifying a category of a search term and providing search results subject to the identified category
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
CN107657036A (zh) * 2017-09-29 2018-02-02 北京酷我科技有限公司 一种数据库对象布局模型的产生方法
JP6890557B2 (ja) * 2018-01-17 2021-06-18 株式会社日立製作所 分析モデル作成システム、プログラミング装置および分析モデル作成方法
CN108804346A (zh) * 2018-05-30 2018-11-13 广东思诺伟智能技术有限公司 一种电池soc数据在flash存储器存储的方法
CN108875077B (zh) * 2018-07-10 2021-02-09 上海达梦数据库有限公司 数据库的列存储方法、装置、服务器及存储介质
US11423060B2 (en) * 2018-10-04 2022-08-23 Oracle International Corporation Storing and versioning hierarchical data in a binary format
US11204940B2 (en) * 2018-11-16 2021-12-21 International Business Machines Corporation Data replication conflict processing after structural changes to a database
US11550785B2 (en) 2019-04-19 2023-01-10 Oracle International Corporation Bidirectional mapping of hierarchical data to database object types
CN110232063A (zh) * 2019-04-19 2019-09-13 平安科技(深圳)有限公司 层级数据查询方法、装置、计算机设备和存储介质
TWI780333B (zh) * 2019-06-03 2022-10-11 緯創資通股份有限公司 動態處理並播放多媒體內容的方法及多媒體播放裝置
US11200234B2 (en) 2019-06-14 2021-12-14 Oracle International Corporation Non-disruptive dynamic ad-hoc database catalog services
US10990596B2 (en) 2019-06-14 2021-04-27 Oracle International Corporation Non-disruptive referencing of special purpose operators for database management systems
CN110471650B (zh) * 2019-07-11 2022-08-09 新华三大数据技术有限公司 一种Web Service发布方法、装置及服务器
US11086829B2 (en) * 2020-01-02 2021-08-10 International Business Machines Corporation Comparing schema definitions using sampling
CN111241065B (zh) * 2020-01-13 2024-01-30 大汉软件股份有限公司 一种支持国产数据库的数据库适配开发与操作方法
CN111708772A (zh) * 2020-06-18 2020-09-25 辽宁振兴银行股份有限公司 一种减少数据库冗余,提高运行效率的操作方法
CN111813555B (zh) * 2020-07-21 2022-02-15 国网湖南省电力有限公司 基于互联网技术的超融合基础架构分层资源管理系统
CN112115125B (zh) * 2020-09-27 2024-04-26 北京人大金仓信息技术股份有限公司 数据库访问对象名称解析方法、装置及电子设备
CN113505269B (zh) * 2021-07-02 2024-03-29 卡斯柯信号(成都)有限公司 基于xml的二进制文件检测方法和装置
US20240037074A1 (en) * 2022-07-29 2024-02-01 Oracle International Corporation Method and system to implement directory reads for a database file system

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US65659A (en) * 1867-06-11 evinger
US93672A (en) * 1869-08-17 Improved clothes-pin
JPS6386026A (ja) * 1986-09-30 1988-04-16 Matsushita Electric Ind Co Ltd 関係型デ−タベ−スの構築方法
JPH0194429A (ja) * 1987-10-06 1989-04-13 Nec Corp リレーショナル型データベースにおける階層的検索方式
JPH03238535A (ja) * 1990-02-15 1991-10-24 Nec Corp リレーショナルデータベース管理システムにおける表およびデータの関係管理システム
US5257365A (en) * 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
US5295261A (en) 1990-07-27 1994-03-15 Pacific Bell Corporation Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure
US5317742A (en) * 1991-06-21 1994-05-31 Racal-Datacom, Inc. Dynamic translation of network management primitives to queries to a database
JPH05233393A (ja) * 1992-02-21 1993-09-10 Nippon Denki Joho Service Kk 階層構造型データの処理方式
JPH0667951A (ja) * 1992-05-20 1994-03-11 Nec Corp データベース管理システム
US5467471A (en) 1993-03-10 1995-11-14 Bader; David A. Maintaining databases by means of hierarchical genealogical table
US5956715A (en) 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
CA2167790A1 (en) 1995-01-23 1996-07-24 Donald S. Maier Relational database system and method with high data availability during table data restructuring
US5724577A (en) 1995-06-07 1998-03-03 Lockheed Martin Corporation Method for operating a computer which searches a relational database organizer using a hierarchical database outline
SE504472C2 (sv) 1995-06-22 1997-02-17 Abb Flexible Automation As Färgmatningssystem för sprutmålningsrobot
US5960194A (en) 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
US5734887A (en) 1995-09-29 1998-03-31 International Business Machines Corporation Method and apparatus for logical data access to a physical relational database
US5893109A (en) 1996-03-15 1999-04-06 Inso Providence Corporation Generation of chunks of a long document for an electronic book system
US5893104A (en) * 1996-07-09 1999-04-06 Oracle Corporation Method and system for processing queries in a database system using index structures that are not native to the database system
US6208993B1 (en) * 1996-07-26 2001-03-27 Ori Software Development Ltd. Method for organizing directories
US5950188A (en) * 1996-11-14 1999-09-07 Sybase, Inc. Database system with methods for executing system-created internal SQL command statements
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US5878415A (en) 1997-03-20 1999-03-02 Novell, Inc. Controlling access to objects in a hierarchical database
US5983215A (en) 1997-05-08 1999-11-09 The Trustees Of Columbia University In The City Of New York System and method for performing joins and self-joins in a database system
JPH10307743A (ja) * 1997-05-09 1998-11-17 Nippon Telegr & Teleph Corp <Ntt> 複数データベース柔軟検索方法及び装置
JP3777025B2 (ja) * 1997-08-20 2006-05-24 インターナショナル・ビジネス・マシーンズ・コーポレーション システム資源表示装置およびその方法
GB2329044B (en) * 1997-09-05 2002-10-09 Ibm Data retrieval system
US6141655A (en) * 1997-09-23 2000-10-31 At&T Corp Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template
US5974407A (en) * 1997-09-29 1999-10-26 Sacks; Jerome E. Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus
JPH11102369A (ja) * 1997-09-29 1999-04-13 Fujitsu Ltd データベース検索装置及びプログラム記憶媒体
US6038563A (en) * 1997-10-31 2000-03-14 Sun Microsystems, Inc. System and method for restricting database access to managed object information using a permissions table that specifies access rights corresponding to user access rights to the managed objects
US5999941A (en) 1997-11-25 1999-12-07 Micron Electronics, Inc. Database access using active server pages
US6003040A (en) 1998-01-23 1999-12-14 Mital; Vijay Apparatus and method for storing, navigating among and adding links between data items in computer databases
US6012067A (en) 1998-03-02 2000-01-04 Sarkar; Shyam Sundar Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web
US6356920B1 (en) 1998-03-09 2002-03-12 X-Aware, Inc Dynamic, hierarchical data exchange system
JPH11296541A (ja) * 1998-04-14 1999-10-29 Fujitsu Ltd 構造化データ管理システム及び構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11306071A (ja) * 1998-04-16 1999-11-05 Fujitsu Ltd 階層化データ管理システムおよび階層化データ管理プログラム記憶媒体
US6240407B1 (en) 1998-04-29 2001-05-29 International Business Machines Corp. Method and apparatus for creating an index in a database system
US6772350B1 (en) * 1998-05-15 2004-08-03 E.Piphany, Inc. System and method for controlling access to resources in a distributed environment
US6263332B1 (en) 1998-08-14 2001-07-17 Vignette Corporation System and method for query processing of structured documents
US6487546B1 (en) 1998-08-27 2002-11-26 Oracle Corporation Apparatus and method for aggregate indexes
US6269380B1 (en) * 1998-08-31 2001-07-31 Xerox Corporation Property based mechanism for flexibility supporting front-end and back-end components having different communication protocols
US6718322B1 (en) 1998-10-02 2004-04-06 Ncr Corporation SQL-based analytic algorithm for rule induction
US6366934B1 (en) 1998-10-08 2002-04-02 International Business Machines Corporation Method and apparatus for querying structured documents using a database extender
US6584459B1 (en) 1998-10-08 2003-06-24 International Business Machines Corporation Database extender for storing, querying, and retrieving structured documents
US6279007B1 (en) * 1998-11-30 2001-08-21 Microsoft Corporation Architecture for managing query friendly hierarchical values
US6918082B1 (en) 1998-12-17 2005-07-12 Jeffrey M. Gross Electronic document proofing system
US6704739B2 (en) * 1999-01-04 2004-03-09 Adobe Systems Incorporated Tagging data assets
US6370537B1 (en) 1999-01-14 2002-04-09 Altoweb, Inc. System and method for the manipulation and display of structured data
US6154741A (en) 1999-01-29 2000-11-28 Feldman; Daniel J. Entitlement management and access control system
US7366708B2 (en) * 1999-02-18 2008-04-29 Oracle Corporation Mechanism to efficiently index structured data that provides hierarchical access in a relational database system
US6427123B1 (en) * 1999-02-18 2002-07-30 Oracle Corporation Hierarchical indexing for accessing hierarchically organized information in a relational system
HK1020419A2 (en) * 1999-03-16 2000-03-17 Shi Piu Joseph Fong Frame model for universal database in database reengineering and integration
JP2000267906A (ja) * 1999-03-19 2000-09-29 Mitsubishi Electric Corp データベースモデル変換方法
US6341289B1 (en) 1999-05-06 2002-01-22 International Business Machines Corporation Object identity and partitioning for user defined extents
US6343287B1 (en) * 1999-05-19 2002-01-29 Sun Microsystems, Inc. External data store link for a profile service
US20020124100A1 (en) 1999-05-20 2002-09-05 Jeffrey B Adams Method and apparatus for access to, and delivery of, multimedia information
US6496842B1 (en) * 1999-05-28 2002-12-17 Survol Interactive Technologies Navigating heirarchically organized information
US6470344B1 (en) * 1999-05-29 2002-10-22 Oracle Corporation Buffering a hierarchical index of multi-dimensional data
US7472349B1 (en) 1999-06-01 2008-12-30 Oracle International Corporation Dynamic services infrastructure for allowing programmatic access to internet and other resources
US6574655B1 (en) 1999-06-29 2003-06-03 Thomson Licensing Sa Associative management of multimedia assets and associated resources using multi-domain agent-based communication between heterogeneous peers
US6199195B1 (en) * 1999-07-08 2001-03-06 Science Application International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6754661B1 (en) 1999-07-13 2004-06-22 Microsoft Corporation Hierarchical storage systems for holding evidentiary objects and methods of creating and operating upon hierarchical storage systems
US6438562B1 (en) 1999-08-24 2002-08-20 Oracle Corporation Parallel index maintenance
US6665684B2 (en) 1999-09-27 2003-12-16 Oracle International Corporation Partition pruning with composite partitioning
US6826727B1 (en) 1999-11-24 2004-11-30 Bitstream Inc. Apparatus, methods, programming for automatically laying out documents
US6721727B2 (en) * 1999-12-02 2004-04-13 International Business Machines Corporation XML documents stored as column data
US20020116371A1 (en) 1999-12-06 2002-08-22 David Dodds System and method for the storage, indexing and retrieval of XML documents using relation databases
US6418448B1 (en) 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
US6510434B1 (en) 1999-12-29 2003-01-21 Bellsouth Intellectual Property Corporation System and method for retrieving information from a database using an index of XML tags and metafiles
US6785673B1 (en) 2000-02-09 2004-08-31 At&T Corp. Method for converting relational data into XML
US6604100B1 (en) * 2000-02-09 2003-08-05 At&T Corp. Method for converting relational data into a structured document
US20010047372A1 (en) 2000-02-11 2001-11-29 Alexander Gorelik Nested relational data model
US7072896B2 (en) 2000-02-16 2006-07-04 Verizon Laboratories Inc. System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor
US6449620B1 (en) 2000-03-02 2002-09-10 Nimble Technology, Inc. Method and apparatus for generating information pages using semi-structured data stored in a structured manner
US20020056025A1 (en) 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
US6934712B2 (en) 2000-03-21 2005-08-23 International Business Machines Corporation Tagging XML query results over relational DBMSs
US6516322B1 (en) * 2000-04-28 2003-02-04 Microsoft Corporation XML-based representation of mobile process calculi
US20030158897A1 (en) 2000-05-09 2003-08-21 Viryanet Ltd. Networked platform for creating and supporting communities
US6845507B2 (en) 2000-05-18 2005-01-18 Ss & C Technologies, Inc. Method and system for straight through processing
US6915304B2 (en) 2000-05-23 2005-07-05 Kenneth A. Krupa System and method for converting an XML data structure into a relational database
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US20020080166A1 (en) 2000-08-08 2002-06-27 Sweatt Millard E. Method and system for remote television replay control
US6708186B1 (en) 2000-08-14 2004-03-16 Oracle International Corporation Aggregating and manipulating dictionary metadata in a database system
US6675230B1 (en) 2000-08-22 2004-01-06 International Business Machines Corporation Method, system, and program for embedding a user interface object in another user interface object
US7685183B2 (en) * 2000-09-01 2010-03-23 OP40, Inc System and method for synchronizing assets on multi-tiered networks
US6871204B2 (en) 2000-09-07 2005-03-22 Oracle International Corporation Apparatus and method for mapping relational data and metadata to XML
US7143339B2 (en) * 2000-09-20 2006-11-28 Sap Aktiengesellschaft Method and apparatus for dynamically formatting and displaying tabular data in real time
US20020184401A1 (en) * 2000-10-20 2002-12-05 Kadel Richard William Extensible information system
US6785718B2 (en) * 2000-10-23 2004-08-31 Schneider Logistics, Inc. Method and system for interfacing with a shipping service
US20020099738A1 (en) * 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
US7174534B2 (en) 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
US6964025B2 (en) 2001-03-20 2005-11-08 Microsoft Corporation Auto thumbnail gallery
JP4529063B2 (ja) 2001-03-30 2010-08-25 ルネサスエレクトロニクス株式会社 システムシミュレータ、シミュレーション方法及びシミュレーションプログラム
US6778977B1 (en) 2001-04-19 2004-08-17 Microsoft Corporation Method and system for creating a database table index using multiple processors
US6968334B2 (en) 2001-05-15 2005-11-22 Nokia Corporation Method and business process to maintain privacy in distributed recommendation systems
WO2003003177A2 (en) 2001-06-29 2003-01-09 Bea Systems, Inc. System for and methods of administration of access control to numerous resources and objects
US6795821B2 (en) 2001-07-17 2004-09-21 Trendium, Inc. Database systems, methods and computer program products including primary key and super key indexes for use with partitioned tables
US6725212B2 (en) 2001-08-31 2004-04-20 International Business Machines Corporation Platform-independent method and system for graphically presenting the evaluation of a query in a database management system
AU2002334721B2 (en) 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US7487168B2 (en) 2001-11-01 2009-02-03 Microsoft Corporation System and method for loading hierarchical data into relational database systems
US6826568B2 (en) 2001-12-20 2004-11-30 Microsoft Corporation Methods and system for model matching
US7523127B2 (en) * 2002-01-14 2009-04-21 Testout Corporation System and method for a hierarchical database management system for educational training and competency testing simulations
US6732222B1 (en) 2002-02-01 2004-05-04 Silicon Motion, Inc. Method for performing flash memory file management
US9374451B2 (en) 2002-02-04 2016-06-21 Nokia Technologies Oy System and method for multimodal short-cuts to digital services
US7127700B2 (en) * 2002-03-14 2006-10-24 Openwave Systems Inc. Method and apparatus for developing web services using standard logical interfaces to support multiple markup languages
US7570943B2 (en) 2002-08-29 2009-08-04 Nokia Corporation System and method for providing context sensitive recommendations to digital services
US7120645B2 (en) * 2002-09-27 2006-10-10 Oracle International Corporation Techniques for rewriting XML queries directed to relational database constructs
US6826857B1 (en) 2002-11-14 2004-12-07 Anders Bachmann Perpetual calendar
US7103611B2 (en) * 2003-05-01 2006-09-05 Oracle International Corporation Techniques for retaining hierarchical information in mapping between XML documents and relational data
US6836778B2 (en) * 2003-05-01 2004-12-28 Oracle International Corporation Techniques for changing XML content in a relational database
US7634480B2 (en) 2003-05-08 2009-12-15 Microsoft Corporation Declarative rules for metadirectory
US20050010896A1 (en) * 2003-07-07 2005-01-13 International Business Machines Corporation Universal format transformation between relational database management systems and extensible markup language using XML relational transformation
US7814047B2 (en) 2003-08-25 2010-10-12 Oracle International Corporation Direct loading of semistructured data
US7747580B2 (en) 2003-08-25 2010-06-29 Oracle International Corporation Direct loading of opaque types
US7685137B2 (en) * 2004-08-06 2010-03-23 Oracle International Corporation Technique of using XMLType tree as the type infrastructure for XML

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
JAYAVEL SHANMUGASUNDARAM, 外4名: "Querying XML Views of Relational Data", PROC. OF THE 27TH INTERNATIONAL CONFERENCE ON VERY LARGE DATA BASES, JPN6009016959, 14 September 2001 (2001-09-14), ISSN: 0001298600 *
MARY FERNANDEZ, 外2名: "SilkRoute: Trading between Relations and XML", PROC. OF THE 9TH INTERNATIONAL WORLD WIDE WEB CONFERENCE, JPN6009016961, 19 May 2000 (2000-05-19), ISSN: 0001298602 *
小薬 広宣: "XMLはSQL Server2000に何をもたらすのか", ENTERPRISE SERVERS, vol. 第3巻,第12号, JPN6008040520, 1 December 2000 (2000-12-01), JP, pages 41 - 59, ISSN: 0001110935 *
浅海 智晴: "XMLとRelaxerとJDBCによるデータベースシステム開発", XML PRESS, vol. 第3巻, JPN6008040518, 10 July 2001 (2001-07-10), JP, pages 2 - 11, ISSN: 0001110933 *
赤堀 正剛, 外2名: "SuperSQLによる関係データベースとXMLデータの統合利用", 情報処理学会論文誌, vol. 第42巻, 第SIG 8(TOD 10)号, JPN6009016960, 15 July 2001 (2001-07-15), JP, pages 66 - 95, ISSN: 0001298601 *
鬼塚 真: "XMLとデータベース", XML MAGAZINE, vol. 第10巻,第3号, JPN6008040519, 1 July 2000 (2000-07-01), JP, pages 168 - 179, ISSN: 0001110934 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006114045A (ja) * 2004-10-15 2006-04-27 Microsoft Corp スキーマデータ(schemadata)からデータ構造へのマッピング
JP2010536085A (ja) * 2007-08-03 2010-11-25 韓國電子通信研究院 マルチメディア検索のためのクエリ表現装置および方法
US8805868B2 (en) 2007-08-03 2014-08-12 Electronics And Telecommunications Research Institute Apparatus and method for a query express
WO2012160813A1 (ja) * 2011-05-24 2012-11-29 日本電気株式会社 情報処理システム、データ管理方法、情報処理装置およびその制御方法と制御プログラム
CN103635886A (zh) * 2011-05-24 2014-03-12 日本电气株式会社 信息处理系统、数据管理方法、信息处理设备及其控制方法和控制程序
JP5737392B2 (ja) * 2011-05-24 2015-06-17 日本電気株式会社 情報処理システム、データ管理方法、情報処理装置およびその制御方法と制御プログラム
JP2015181009A (ja) * 2011-05-24 2015-10-15 日本電気株式会社 情報処理システム、データ管理方法、情報処理装置およびその制御方法と制御プログラム
US9558252B2 (en) 2011-05-24 2017-01-31 Nec Corporation Information processing system, data management method, information processing apparatus, and control method and control program therefor
CN103635886B (zh) * 2011-05-24 2017-02-15 日本电气株式会社 信息处理系统、数据管理方法、信息处理设备及其控制方法

Also Published As

Publication number Publication date
WO2003030031A2 (en) 2003-04-10
CA2461854C (en) 2010-11-23
EP1440394A2 (en) 2004-07-28
US7051033B2 (en) 2006-05-23
US7158981B2 (en) 2007-01-02
AU2002334706B2 (en) 2007-11-22
AU2002334721B2 (en) 2008-10-23
CN1561497A (zh) 2005-01-05
CN1585945B (zh) 2011-05-18
WO2003027908A2 (en) 2003-04-03
AU2002334747B2 (en) 2008-10-30
EP1433089A2 (en) 2004-06-30
WO2003027908A3 (en) 2004-02-12
CA2462300C (en) 2014-01-21
JP2005505042A (ja) 2005-02-17
US20030065659A1 (en) 2003-04-03
US20030140308A1 (en) 2003-07-24
CA2461854A1 (en) 2003-04-10
US7096224B2 (en) 2006-08-22
CA2462300A1 (en) 2003-04-03
JP4443221B2 (ja) 2010-03-31
CN1299223C (zh) 2007-02-07
WO2003030031A3 (en) 2004-02-12
CN1585945A (zh) 2005-02-23
US20060101041A1 (en) 2006-05-11

Similar Documents

Publication Publication Date Title
JP2005505058A (ja) オブジェクト−リレーショナルデータベースシステムにxmlスキーマをマッピングするための機構
AU2002334706A1 (en) Mechanism for mapping XML schemas to object-relational database systems
US6836778B2 (en) Techniques for changing XML content in a relational database
US7523131B2 (en) Techniques for efficiently storing and querying in a relational database, XML documents conforming to schemas that contain cyclic constructs
JP4709213B2 (ja) 変換を使用したクエリの効率的な評価
US7499915B2 (en) Index for accessing XML data
US6721727B2 (en) XML documents stored as column data
US7644066B2 (en) Techniques of efficient XML meta-data query using XML table index
US7120645B2 (en) Techniques for rewriting XML queries directed to relational database constructs
US7730080B2 (en) Techniques of rewriting descendant and wildcard XPath using one or more of SQL OR, UNION ALL, and XMLConcat() construct
US7577642B2 (en) Techniques of XML query optimization over static and dynamic heterogeneous XML containers
US7406478B2 (en) Flexible handling of datetime XML datatype in a database system
CA2767315C (en) Method and apparatus for xml data storage, query rewrites, visualization, mapping and referencing
AU2001290693A1 (en) Method and apparatus for XML data storage, query rewrites, visualization, mapping and references
CA2561734C (en) Index for accessing xml data
US8095501B1 (en) Automatic enforcement or relationships in a database schema
AU2005265030B2 (en) Efficient evaluation of queries using translation
Muhammad et al. CMS NOTE 2003/xx

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050809

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081118

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081218

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081226

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090116

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090414