ー
文件类型:PDF/Adobe Acrobat 文件大小:字节
更多搜索:ー
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
オラクル ホワイト ペーパー
2005年9月
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
概要......................................................................................................................4
Oracle XML DBアーキテクチャ.......................................................................5
XMLTypeストレージ...................................................................................5
Oracle XML DBリポジトリ.........................................................................6
Oracle XML DBリポジトリ内でのXMLへのアクセスおよび変更.7
XMLサービス.........................................................................................7
リポジトリ メタデータ.......................................................................7
Oracle XML DBリポジトリのアーキテクチャ....................................9
Oracle XML DBリポジトリの动作.......................................................9
Oracle XML DBプロトコル アーキテクチャ..................................10
Oracle XML DBのAPI(Java,PL/SQL,ODP.NET,C)....................11
Oracle XML DBの机能....................................................................................11
XMLType......................................................................................................11
Oracle XMLによるCLOBでのXMLテキストの格纳....................12
XMLTypeの表と列のXMLスキーマへの准拠.................................12
XMLType API.........................................................................................12
XMLスキーマ.............................................................................................13
XMLスキーマによるドキュメントとデータ モデルの统一........13
XMLType表とXMLType列の作成およびDOM精度の保证..........13
リレーショナル データのラップのための
XMLTypeビューの使用........................................................................13
スキーマのためのW3Cのスキーマ...................................................14
XMLスキーマのデータ型基本セットの拡张可能性........................14
非构造化ストレージと构造化ストレージ...............................................14
XML文书の非构造化ストレージ.......................................................14
索引を使用したXPathベースの机能强化.........................................15
ストレージ オプション选択のガイドライン..................................16
SQL/XMLの二重性....................................................................................17
SQL标准SQL/XML関数.....................................................................18
Oracle Database固有のXQuery..................................................................21
XQueryのFLWOR式............................................................................21
XMLQuery SQL関数.............................................................................22
XMLTableのSQL构文.........................................................................22
XQueryのリライト...............................................................................22
Oracle Textを使用したCLOBに格纳されているXMLデータの検索23
Oracle Enterprise Managerによる
Oracle XML DBアプリケーションの管理...............................................23
Oracle XML DBの利点....................................................................................24
データとコンテンツの统一.......................................................................24
データベース机能の活用.....................................................................25
XML机能の活用...................................................................................26
复雑なXML文书のストレージと検索のスピードアップ....................27
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
2
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
アプリケーション统合の支援...................................................................27
非XMLデータのXML Typeビュー........................................................27
结论....................................................................................................................28
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
3
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
概要
XMLは,WWW(World Wide Web)の次世代への进化を促进してきました.第一
世代のWWWは,多数の业界にわたり革命的な変革をもたらしましたが,次世代
WWWの强力なインパクトはさらにそれを上回るかもしれません.XMLの重要な
特徴の1つは,构造化データと非构造化データの両方を表すことができる点です.
Oracle XML DBの目标は,従来は相容れない2つの世界(データとコンテンツ管
理)を,XMLの有効性を足挂かりに统合することです.
Oracle XML DBの目标は,従来は相容れ
ない2つの世界(データとコンテンツ管
理)を,XMLの有効性を足挂かりに统合
することです.
Oracle9i Databaseリリース 2(9.2)の発表以来,Oracle XML DBは,XMLデータ
管理の复雑さの軽减,一连の様々な问合せ机能,XMLスキーマの変更への対応,
WebDAVの提供などに対し高い评価を得ています.その结果,统一されたデータ
とコンテンツ管理を可能にするOracle XML DBは様々な企业で普及しました.
Oracleデータベースを基础に构筑されたOracle XML DBは,大量のXMLデータ
を効率よく格纳,取得,问合せ,生成,管理する広范な机能を提供します.Oracle
XML DBは当初から,XMLType,XMLスキーマ処理,构造化と非构造化ストレー
ジ,コンテンツ リポジトリ,SQL/XML,管理机能を彻底して统合してきました.
Oracleデータベースの新规リリースとともに,Oracle XML DBも多数の重要な领
域でさらに多様化し,スケーラブルかつ効率性に优れた机能特性を备えて进化し
てきました.新しいOracle Database 10g リリース 2(10.2)では,Oracle XML DB
に,スキーマの索引付けを行う强力なXML索引,标准XQuery机能の効果的な実
装,多様なスキーマ ベースのリソース メタデータ机能,XMLデータのDML
操作のための新规SQL机能などが导入されています.
このホワイト ペーパーでは,Oracle XML DBとその基盘を包括的に说明します.
その主要机能の前に,まずOracle XML DBのアーキテクチャについて说明します.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
4
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
Oracle XML DBアーキテクチャ
図1に示すとおり,Oracle XML DBには2つの中核となる柱があります.
XMLTypeの表とビューのストレージ
Oracle XML DBリポジトリ
様々な用途に対応するために,これらの柱を中核として,豊富な関连サービス,
プロトコルやAPIが用意されています.
図1: XMLTypeストレージおよびリポジトリ
XMLTypeストレージ
図2に示すとおり,Oracle XML DBのXMLTypeストレージには多数の基本的な
コンポーネントがあります.Oracle XML DBを使用してXMLスキーマを登录す
ると,デフォルトの表セットが作成されます.これを使用してそのスキーマに関
连付けられたXMLインスタンス文书を格纳します.これらのドキュメントは,
Oracle XML DBリポジトリからも表示およびアクセスできます.
XMLType表およびXMLType列をCLOB(Character Large Object)値またはオブジェ
クト セットとして格纳できます.オブジェクト セットとして格纳される场合
を构造化ストレージまたはフラグメント化されたストレージといいます.
XMLTypeビューのデータをローカルまたはリモートな表に格纳できます.リモー
ト表は,データベース リンクからアクセスできます.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
5
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
図2: XMLTypeストレージ
XMLTypeの表とビューには,Bツリー,XMLIndex,Oracle Text,ファンクション
索引,ビットマップ索引による索引付けが可能です.
次のいずれかの方法で,Oracle XML DBリポジトリのデータにアクセスできます.
HTTPとHTTPS(HTTPプロトコル ハンドラ経由)
WebDAVとFTP(WebDAVとFTPのプロトコル サーバー経由)
SQL(JDBCなどのOracle Netサービス経由)
Oracle XML DBは,Oracle Streams AQ(Advanced Queuing)とWebサービスを使
用して,XMLデータ メッセージングに対応します.
Oracle XML DBリポジトリ
Oracle XML DBリポジトリは,XMLデータの処理に最适なOracle Databaseのコン
ポーネントです.Oracle XML DBリポジトリにはリソースが含まれています.リ
ソースは,フォルダ(ディレクトリ,コンテナ)またはファイルのいずれかです.
リソースはそれぞれパスで识别されます.コンテンツ以外に,リソースには,一
连のシステム定义メタデータ(OwnerやCreationDateなど)も含まれていま
す.コンテンツの一部ではありませんが,コンテンツに関连した情报である,ユー
ザー定义メタデータも含みます.
Oracle XML DBリポジトリは,特にXMLコンテンツを処理しますが,XML以外
の形式のデータを格纳することもできます.このリポジトリを使用して,Oracle
Databaseに格纳されすべてのデータにアクセスできます.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
6
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
Oracle XML DBリポジトリ内でのXMLへのアクセスおよび変更
次のいずれかの方法でOracle XML DBリポジトリ内のデータにアクセスできます.
SQLを使用して,RESOURCE_VIEWとPATH_VIEWビューを问合せる
PL/SQLを使用してDBML_XDB API経由で问合せる
Javaを使用して,Java対応のOracle XML DBリソースAPI経由で问合せる
XMLサービス
データにアクセスして処理するAPIへの対応の他に,Oracle XML DBリポジトリ
は次のサービスに対応するAPIも提供します.
バージョニング … Oracle XML DBは,Oracle XML DBリポジトリ内のリソー
スをバージョニングするときにDBMS_XDB_VERSION PL/SQLパッケージを
使用します.その后リソースが変更されると,新しいバージョンが作成され
ます(以前のバージョンに対応するデータは保持されます).バージョニン
グ対応は,IETF WebDAV标准に基づいています.
ACLセキュリティ … Oracle XML DBリソースのセキュリティは,ACL
(Access Control List)に基づいています.Oracle XML DB内のすべてのリソー
スには,その権限がリストされた関连のACLがあります.リソースへのアク
セスまたは変更が行われる际には,必ずその操作が适正かどうかをACLが判
断します.ACLは,一连のACE(Access Control Entry)を含むXML文书で
す.それぞれのACEは,特定のユーザーまたはグループ(データベース ロー
ル)への一连の権限を付与または取消します.このアクセス制御メカニズム
は,WebDAV仕様に基づいています.
フォルダリング … Oracle XML DBリポジトリは,他のリソースを含むフォ
ルダ(ディレクトリ)リソースの永続的な阶层を管理します.プロトコル
サーバー,スキーマ マネージャ,Oracle XML DB RESOURCE_VIEW APIな
どのOracle XML DBモジュールは,フォルダリングを使用してパス名をリ
ソースへマッピングします.
リポジトリ メタデータ
场合によっては,使用するデータが,データ外の追加情报に関连付けられている
ことがあります.このようなメタデータにより,データをグループにまとめたり
分类して様々な方法で処理できます.たとえば,デジタル写真を収集していて,
写真の特长に関する情报(色构成,焦点距离)やコンテキスト(场所,被写体の
种类:景色,人物)などのメタデータをそれぞれの写真と関连付けることなどが
想定されます.
Oracle XML DBリポジトリのリソースは,メタデータとデータの両方を含むXML
文书です.データは要素Contentsのコンテンツで,リソース内のそれ以外の全
ての要素にはメタデータが含まれています.リソースのデータは,もちろんXML
の场合とそれ以外の场合があります.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
7
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
Oracle XML DBリポジトリ内のリソースには,メタデータを関连付けることがで
きます.ユーザー定义メタデータの他に,リポジトリ リソースにはそれぞれ,
そのリソースを管理するために,Oracle XML DBが自动的に作成したメタデータ
も含まれています.このようなシステム定义メタデータには,それぞれのリソー
スの所有者や作成日などのプロパティが含まれます.
システム定义メタデータを除き,どのリソース情报をデータとして扱い,どのリ
ソース情报をメタデータとして扱うか决定できます.通常,写真のリソースの补
足情报は,バイナリ イメージであるこの写真のデータの一部とはみなされませ
ん.ただし,テキストの场合は,特定情报をリソース コンテンツ(データ)に
含めるか,别にしておいて,メタデータとしてコンテンツと関连付けるかを选択
できます.多くの场合,この选択は,そのデータを使用する,または生成するア
プリケーションに影响されます.
リソースのユーザー定义メタデータ
リソースのユーザー定义メタデータは,XMLとして表されます.このXMLは,
他のXMLデータと関连付けられています.このXMLデータには,XMLデータ
自身の情报,または补足的な関连情报が含まれます.
リソースのユーザー定义メタデータは,XMLスキーマに基づく场合と,そうでな
い场合があります.
スキーマ ベースのリソース メタデータは,Oracle Database 10g リリース 2
(10.2)の新机能です.このメタデータは,别の(表外の)表に格纳されてい
ます.表外の表は,リソースOIDによりリソース表に関连付けられます.リ
ソースOIDは,メタデータ表の非表示オブジェクト列RESIDに格纳されてい
ます.
スキーマ ベースでないリソース メタデータは,リソース表のCLOB列
(RESEXTRA)に格纳されています.
リソースに関する効果的な问合せやDML操作には,特にスキーマ ベースのメ
タデータが便利です.スキーマ ベースのリソース メタデータに関连するタス
クは次のとおりです.
特定のリソースに対してメタデータを定义するXMLスキーマの作成
リポジトリ リソースへのメタデータの追加およびそのメタデータの更新(変
更)
関连の内容を検索するリソース メタデータの问合せ
リソースに関连付けられた特定メタデータの削除およびリソースに関连付け
られたすべてのメタデータのパージ
また,スキーマに基づかないメタデータをリソースへ追加することもできます.
リソース メタデータの通常の用途には,ワークフロー アプリケーション,ユー
ザー権限の管理,リソースの所有者の追迹,リソースの有効期限の管理などがあ
ります.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
8
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
Oracle XML DBリポジトリのアーキテクチャ
Oracle XML DBリポジトリのアーキテクチャを図3に示します.リソースとは,
Oracle XML DBが管理するコンテンツです.各リソースには,名前,リソースへ
のアクセス権限を持つユーザーを判断するためのアクセス管理リスト,静的プロ
パティ(属性),アプリケーションによる拡张可能なその他の属性があります.
SQLクライアントのリポジトリへは,たとえば,RESOURCE_VIEW APIなどを使
用して,アクセスできます.
リソース情报に加え,RESOURC_VIEWには,各リソースへのパスが保持されてい
るPath列も含まれます.
図3: Oracle XML DBリポジトリのアーキテクチャ
Oracle XML DBリポジトリの动作
リレーショナル モデルの表 行 列のメタファは,构造化データの管理に効果
的なメカニズムとして认识されています.しかしこのモデルは,ドキュメント指
向またはコンテンツ指向のXMLなどの半构造化および非构造化データの管理に
対して効果的ではありません.たとえば,本1册の内容をすべてリレーショナル
表内の行として表现することは容易ではありません.それよりも,本を「本-章-
项-段落」の阶层として表现し,その阶层を一连のフォルダおよびサブフォルダと
する表现が自然です.
阶层メタファは,ドキュメント中心のXMLコンテンツを管理します.リレー
ショナル データベースは従来,阶层构造の管理,およびパスやURLの参照
には适していません.Oracle XML DBは,阶层构造のリポジトリを提供しま
す.このリポジトリは,ドキュメントの问合せが可能です.また,このリポ
ジトリを通じてドキュメント中心のXMLコンテンツを管理できます.
阶层索引により,フォルダとパスの迅速な参照が可能になります.Oracle XML
DBには,Oracle XML DBリポジトリ内でのフォルダやパスの迅速な参照を可
能にする特许取得済の新しい阶层索引が含まれています.この阶层索引は,
エンド ユーザーには透过的であり,これにより,Oracle XML DBは,従来
型のファイル システムと同等またはそれ以上の速度でフォルダおよびパス
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
9
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
の参照を実行できます.
SQL,PL/SQL,Java,Cなどの言语に加え,FTP,HTTP,HTTPS,WebDAV
などの标准プロトコルを使用して,Oracle XML DBリポジトリ内のXML文书
へアクセスできます.このリポジトリにより,コンテンツの作成者や编集者
は,Oracle Databaseに格纳されているXMLコンテンツにアクセスできます.
そのことから,リソースは,URLにより识别されるファイルまたはフォルダ
といえます.WebDAVは,HTTPプロトコルの拡张を定义するIETF标准です.
これにより,HTTPサーバーは,DAV対応クライアントのファイル サーバー
として机能できます.WebDAV标准では,ファイルまたはフォルダを表す场
合に「リソース」という用语を使用します.WebDAVサーバーが管理するリ
ソースはすべて,URLにより识别されます.Oracle XML DBは,これらプロ
トコルのために,Oracle Databaseにネイティブ サポートを付加します.こ
れらのプロトコルは,ドキュメント中心の操作を対象に设计されています.
これらのプロトコルをサポートすることで,Oracle XML DBは,Windows
ExplorerやMicrosoft Office,およびAltova社,Macromedia社,Adobe社など
のベンダー制品が,Oracle XML DBリポジトリに格纳されているXMLコンテ
ンツを直接操作できるようになります.図4は,Microsoft社のWebフォルダ
から见たこのリポジトリのルート レベルのディレクトリを示しています.
図4: Microsoft Web Folderに表示されるOracle XML DBリポジトリ
したがって,Microsoft社のWindows ExplorerなどのWebDAVクライアントは,
Oracle XML DBリポジトリに直接接続できます.Oracle DatabaseやMicrosoft社に
固有のソフトウェア,または他の复合的なミドルウェアは必要はありません.エ
ンド ユーザーは使い惯れたツールやインタフェースを使用してOracle XML DB
リポジトリを直接操作できます.
Oracle XML DBプロトコル アーキテクチャ
Oracle XML DBアーキテクチャの主な特徴の1つは,共有サーバー构成における
Oracle Data Provider for .NET(ODP.NET)のサポートで使用されているアーキテク
チャと同様のアーキテクチャで,HTTP,HTTPS,WebDAV,FTPプロトコルがサ
ポートされていることです.リスナーは,ODP. NETサービス リクエストに対す
るリスニングと同様の方法で,HTTP,HTTPS,FTPリクエストをリスニングしま
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
10
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
す.リスナーは,HTTP,HTTPS,FTPリクエストを受信すると,それをOracle
Databaseの共有サーバー プロセスに渡し,このプロセスでリクエストが処理さ
れ,适切なレスポンスがクライアントに返信されます.TNSリスナー コマンド
lsnrctl statusを使用して,HTTP,HTTPS,FTPサポートの有効性が検证で
きます.
Oracle XML DBのAPI(Java,PL/SQL,ODP.NET,C)
Oracle XML DBの全机能は,JDBC,PL/SQL,OCI,ODP.NET APIからアクセス
できます.Webベースのアプリケーションを构筑する最も一般的な方法は,J2EE
または.NETアーキテクチャに基づく方法です.J2EEアーキテクチャでは,JDBC
を使用してOracle XML DBにアクセスできます..NET环境では,Oracle ODP.NET
APIにより,Visual Basic,C#,C/C++言语を使用して,Oracle XML DBにアクセ
スできます.
Oracle XML DBの机能
XMLの管理に使用するデータベースは,XML文书の格纳ができることが必要で
すが,Oracle XML DBは,それ以上の机能を持っています.たとえば,トランザ
クション制御,データ整合性,レプリケーション,信頼性,可用性,セキュリティ,
スケーラビリティなどの标准データベース机能を提供しながら,XMLに対する効
率よい索引付け,问合せ,更新,検索が可能です.
XMLは阶层构造であるため,従来型のリレーショナル データベースでは多数の
解决困难な问题が発生します.
リレーショナル データベースでは,表/行のメタファを使用してコンテン
ツを特定します.また,主キーと外部キーの関系がコンテンツ间の関系を定
义します.コンテンツは,表/行/列のメタファを使用してアクセスされ,
更新されます.
一方XMLは,阶层的な手法を用いて同様の机能を実现します.URLは,XML
文书の特定に使用されます.XLinkなどのURLベースの标准を使用して,XML
文书间の関系を定义します.XPathなどのW3C勧告仕様を利用して,XML
文书内にあるコンテンツにアクセスし,これを更新します.URLもXPath式
も阶层メタファに基づいています.URLは,フォルダ阶层を通じてパスを使
用してドキュメントを识别する一方,XPathは,XML文书のノード阶层を通
じてパスを使用し,XML文书の一部にアクセスします.
Oracle XML DBでは,XML文书の问合せや更新のためのXPath式など,XMLセ
ントリックのメタファの使用を可能とする新しいSQL関数とメソッドの导入によ
り,これらの问题を解决します.
XMLType
XMLTypeとは,データベースが列や表にXMLが含まれていることを认识できる
ネイティブ サーバー データ型です.データベースは,DATEデータ型により列
に日付が含まれていると判断しますが,これはその方法と类似しています.
XMLTypeはまた,XMLスキーマの妥当性チェックやXSL変换などの一般的な操
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
11
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
作を実行するメソッドも提供します.XMLTypeデータ型は,他のデータ型と同様
に使用できます.たとえば,次の场合にXMLTypeを使用できます.
リレーショナル表内に列を作成する
PL/SQL変数を宣言する
PL/SQLプロシージャとファンクションを定义して呼び出す
XMLTypeはオブジェクト型であるため,XMLType表も作成できます.デフォル
トでは,正しい形式であれば,XMLType表またはXMLType列にあらゆる形式の
XML文书を含むことが可能です.
Oracle XMLによるCLOBでのXMLテキストの格纳
Oracle XML DBは,CLOB(Character Large Object)データ型を使用して,ドキュ
メントのコンテンツをXMLとして格纳します.それにより,単一の表または列
に格纳できるXML构造の形式が最大限柔软になり,取得や検索においても最大
の効率性が得られます.
XMLTypeの表と列のXMLスキーマへの准拠
XMLType表またはXMLType列を,XMLスキーマに准拠させることが可能です.
これには复数のメリットがあります.
データベースでは,XMLスキーマに対する妥当性がチェックされたXML文
书のみが列または表に格纳されます.
表または列のコンテンツが既知のXML构造に准拠しているため,Oracle XML
DBは,XMLスキーマに含まれている情报を使用して,XMLのよりインテリ
ジェントな问合せおよび更新処理を提供します.
XMLスキーマに基づくXMLTypeを定义すると,构造化ストレージでドキュ
メントのコンテンツを格纳する手段が提供されます.构造化ストレージでは,
XML文书を単にCLOBのテキストとして格纳するのではなく,XML文书の
コンテンツを分解または分割してSQLオブジェクト セットとして格纳しま
す.ドキュメントの格纳に使用されるオブジェクト モデルは,XMLスキー
マの内容から自动的に导出されます.
XMLType API
XMLTypeデータ型は次の构造を持ちます.
コンストラクタ … これにより,XMLType値をVARCHAR,CLOB,BLOB,
BFILE値から作成できます
メソッド … XMLTypeオブジェクトに対して操作できる多数のXML固有メ
ソッド.XMLTypeが提供するメソッドは次のとおりです.
XMLTypeインスタンスの构成 createXML()メソッド
XMLTypeに含まれるノード サブセットの抽出 extract()メソッド
特定のノード サブセットがXMLTypeに存在するかどうかの検证
existsNode()メソッド
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
12
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
XMLスキーマに対するXMLTypeの妥当性検査 schemaValidate()
メソッド
XMLTypeインスタンスに対するDML appendChildXML(),
insertXMLBefore(),deleteXML()メソッド
XSL変换の実行 transform()メソッド
XMLスキーマ
W3C(Worldwide Web Consortium)勧告となっているXMLスキーマへの対応は,
Oracle XML DBの重要な机能の1つです.XMLスキーマは,一连のXML文书の
构造,コンテンツ,特定のセマンティクスを指定します.
XMLスキーマによるドキュメントとデータ モデルの统一
XMLスキーマは,ドキュメントとデータ モデルの両方を统一します.Oracle XML
DBでは,XMLスキーマを使用して自动的に表と型を作成できます.つまり,构
造化,非构造化,半构造化に関系なく,すべてのデータに标准データ モデルを
开発し,使用できるということです.Oracle XML DBを使用すると,すべてのデー
タにこのデータ メソッドを実行できます.
XMLType表とXMLType列の作成およびDOM精度の保证
XMLスキーマに基づくXMLType表とXMLType列を作成する场合,オプション
として次を指定できます.
登录済みのXMLスキーマに准拠していることをチェックする.
DOM精度を维持しながら,XMLスキーマが指定する构造化ストレージ形式
で格纳されている.
リレーショナル データのラップのためのXMLTypeビューの使用
XMLTypeのビューを使用して,既存のリレーショナル データとオブジェクト
リレーショナル データをXMLフォーマットへラップすることもできます.
XMLTypeオブジェクトを,XMLスキーマに准拠するXMLオブジェクトまたは准
拠しないXMLオブジェクトとして格纳できます.
スキーマ ベース オブジェクト … Oracle XML DB内にLOB(Large Object)
として,または表,列,ビューの构造化ストレージ内に(オブジェクト リ
レーショナルに)格纳されています.
非スキーマ ベース オブジェクト … Oracle XML DB内にLOBとして格纳
されています.
XMLインスタンスは,构造化ストレージまたはLOBストレージへとマッピング
することができます.このマッピングは,XMLスキーマで指定でき,Oracle XML
DBにスキーマの登录が必要です.これは,XLMスキーマ ベースのインスタン
ス文书の格纳前に必要な手顺です.登录すると,そのURLを使用してXMLスキー
マが参照できます.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
13
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
スキーマのためのW3Cのスキーマ
W3CのXMLスキーマ ワーキング グループはXMLスキーマを公开していま
すが,これは一般に「スキーマのためのスキーマ」と呼ばれています.このXML
スキーマが,XMLスキーマ言语の定义やボキャブラリを提供します.XMLスキー
マ定义(XSD: XML schema definition)はXML文书であり,このドキュメントは
「スキーマのためのスキーマ」で定义されるボキャブラリに准拠しています.XML
スキーマは,W3CのXMLスキーマ ワーキング グループが定义したボキャブ
ラリを使用して型定义や要素宣言(新しいクラスのXML文书のコンテンツと构
造を说明する共有ボキャブラリを宣言するもの)のコレクションを作成します.
XMLスキーマのデータ型基本セットの拡张可能性
XMLスキーマ言语では,要素と属性が厳密に分类されます.XMLスキーマ言语
は,47のスカラー データ型を定义します.さらに高度な复合型を定义するため
に,継承や拡张などのオブジェクト指向テクニックを使用して一连の基础となる
データ型を拡张できます.W3C XMLスキーマ ボキャブラリには,复合型,代
替グループ,缲り返される集合,ネスト,顺序付けなどの定义ができる构成も含
まれています.Oracle XML DBは,再定义(redefine)を除く,XMLスキーマ标
准で定义されているすべての构成に対応します.
XMLスキーマは,インスタンス文书が仕様に准拠しているかを検证するメカニズ
ムとして最も一般的に使用されています.そのためのメソッドやSQL机能が,
Oracle XML DBには含まれています.
非构造化ストレージと构造化ストレージ
XML文书の格纳にOracle XML DBを使用する场合,非构造化ストレージと构造
化ストレージのどちらを使用するか判断することが重要です.问合せの性能を高
めるためには,両方のストレージ アプローチに适切な索引付けスキームを选択
することも必要です.
XML文书の非构造化ストレージ
非构造化ストレージを使用すると,XML文书全体がCLOB(Character Large Object)
内にまとめて格纳されます.非构造化ストレージは,XML文书全体を挿入および
取得する际に最高のスループットを実现します.非构造化ストレージは,スペー
ス文字も含め,元のXML文书をそのまま保存してドキュメントの精度を维持し
ます.また,XMLType表またはXMLType列に格纳できるXML构造という点で,
最大限の柔软性も提供します.ただし,このスループットと柔软性の利点は,一
部のインテリジェント処理を犠牲にしてもたらされます.たとえば,CLOBデータ
型を使用して格纳されたXMLに対する问合せや更新の最适化については,リレー
ショナル データベースによる利点はほとんどありません.
非构造化ストレージは,XML文书全体を
挿入および取得する际に最高のスルー
プットを実现します.
XML文书の构造化ストレージ
XML文书の管理における构造化ストレージには,メモリー管理の最适化,ディス
ク容量の削减,Bツリー索引付け,インプレース更新など,多数の利点がありま
す.复雑な构造を持つXML文书の场合,构造化ストレージは,実际の用途に応
じてコレクションを最适に格纳するための多数のオプションを提供します.実际,
复雑な构造を持つXML文书の场合,构造
化ストレージは,実际の用途に応じてコ
レクションを最适に格纳するための多数
のオプションを提供します.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
14
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
构造化ストレージを使用する场合には,ドキュメント全体の取得と検索を行う际
に,该当するXMLスキーマの処理が増大します.
XML文书の构造化ストレージは,ドキュメントのコンテンツをSQLオブジェク
ト セットへと分解して実现されます.これらSQLオブジェクトは,すべてSQL
1999标准に准拠しています.Oracle XML DBにXMLスキーマを登录すると,必
要なSQL型の定义がXMLスキーマから自动的に生成されます.
SQL型の定义は,XMLスキーマが定义したそれぞれのcomplexType(复合型)
から生成されます.complexTypeが定义した要素や属性のそれぞれが该当する
SQL型のSQL属性となります.Oracle XML DBは,W3C 勧告のXMLスキーマ
で定义された47のスカラー データ型を,自动的にSQLに対応する19のスカ
ラー データ型へとマッピングします.
生成后のSQL型により,XMLスキーマに准拠するXMLコンテンツを分解し,情
报を消失せずにオブジェクト セットとしてデータベースに格纳することができ
ます.ドキュメントの取得时には,XMLスキーマが定义した构成は,直接同等の
SQL型へマッピングされます.Oracle XML DBは,XML文书の管理のために,
Oracle Databaseで提供されるすべての机能を活用します.これによって,ドキュ
メントの格纳に必要なディスク容量を大幅に削减できます.また, XMLコンテン
ツの问合せや更新に必要なメモリー量も軽减できます.
索引を使用したXPathベースの机能强化
构造化ストレージの场合,Oracle XML DBは,XMLコンテンツに3种类の索引を
作成できます.
Bツリー索引: XMLType表またはXMLType列が构造化ストレージに准拠して
いる场合,従来のBツリー索引を,ベースとなるSQL型に作成できます.
XMLIndex索引: Oracle Database 10g リリース 2(10.2)の新机能のXMLIndex
は,非构造化ストレージと构造化ストレージの両方に使用できます.XPath
ベースのSQL机能を処理する场合に,XMLIndexがあると,XPathリライト
はXMLIndexをパス索引として利用できます.
ファンクション索引: ファンクション索引は,任意のXMLType表やXMLType
列に対して作成できます.これは,非构造化ストレージの事前に定义済の
XPath问合せでしか使用できません.
テキスト索引: テキスト索引は,任意のXMLType表またはXMLType列に対
して作成できます.
索引は通常,SQL関数extractValueを使用して作成されますが,他の関数
existsNodeを使用して作成することもできます.索引作成の过程で,Oracle
XML DBは,XPathリライトを使用して,CREATE INDEX文で使用されるXPath
式で参照されるノードを,基准となるSQL型の属性へマッピングできるかど
うかを判断します.オブジェクト リレーショナルSQLを使用したXPath式
のノードをSQL型の属性へマッピングできる场合,索引は基盘となるSQL
オブジェクト上に従来型のBツリー索引として作成されます.オブジェク
ト リレーショナルSQLを使用して,XPath式のリライトができない场合,
ファンクション索引が作成されます.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
15
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
XMLIndexドメイン索引
新しい索引型であるXMLIndexは,XPathベースの条件またはXPathベースのフ
ラグメント抽出(あるいはその両方)で构成される问合せのパフォーマンスを向
上させるドメイン索引です.これは,CLOB(非构造化)や构造化ストレージとし
て格纳されている,XMLスキーマに基づくXMLType列,XMLスキーマに基づ
かないXMLType列の両方に构筑できます.
XMLIndexは,XML文书の基本要素である,タグ名,タグ値,タグの亲子関系の
情报を保持します.XMLIndexは,パス索引,値索引,顺序索引で构成されてい
ます.
パス索引は,タグに索引付けをするために使用され,简単な(ナビゲーショ
ン形式の)パス式に基づきフラグメントを识别するメカニズムを提供します.
値索引を使用すると,XML値に索引を付けることができるため,値の等価评
価,范囲评価に基づく検索が可能です.デフォルトの场合,VARCHAR2索引
が作成されますが,他のデータ型の索引を作成することもできます.
顺序索引は,阶层の顺序情报をノードと関连付けます.XMLノードの亲と子,
上位と下位,兄弟関系の判断に使用されます.
XMLIndexは,これら3种类のXML索引を组み合わせることで,问合せに必要な
情报をすべて取得します.ユーザーがXPathに関连する问合せを送信すると(条
件またはフラグメント识别子として),ユーザーが入力したXPathは,XMLIndex
の内部表にアクセスするSQL问合せに分解されます.生成された问合せは,通常,
一连のパス,値,顺序によって対象を限定され,结果がマージされます.
ストレージ オプション选択のガイドライン
特定用途に対するストレージ オプションを选択できるよう,次の表に构造化ス
トレージと非构造化ストレージの利点を示します.
非构造化ストレージ 构造化ストレージ
スループット XML文书のコンテンツ全体の検
索および取得时に最大のスルー
プットを実现.
分解プロセスが原因で,XML文书の
コンテンツ全体の検索または取得时
にスループットが多少低下.
柔软性 XMLType表またはXMLType列に
格纳できるXML文书の构造とし
て最大限の柔软性を実现.
低い柔软性.XMLスキーマに准拠し
たドキュメントのみをXMLType表ま
たはXMLType列に格纳可能.
XMLの精度 ドキュメントの精度向上 … 元の
XMLを正规化せずそのまま保持
(これは,一部のアプリケーション
で重要な要件となる).
DOM精度 … データベースに格纳さ
れているXML文书から作成される
DOMは,元のドキュメントから作成
されるDOMと同一になる.ただし,
改行文字,タグの间のスペース文字な
ど,一部のデータ书式が失われること
がある.
更新処理 ドキュメントの一部を更新した场
合でも,ドキュメント全体をディ
スクへ书き込む必要がある.
更新操作の大部分は,XPathリライト
を使用して最适化可能.このため,イ
ンプレースの部分更新が可能になり,
応答时间とスループットが大幅に向
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
16
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
非构造化ストレージ 构造化ストレージ
上する.
XPathベースの
问合せ
XPath操作で,XMLType列の
XMLIndexを利用可能.XMLIndex
がないと,XPath操作の机能的评
価にかかるコストが高くなる.
XPathリライトを使用してXPath操作
を评価するため,特に大量のドキュメ
ントの処理でパフォーマンスが大幅
に向上する.
SQL制约 SQL制约は现在未サポート. SQL制约をサポート.
索引付けのサ
ポート
XMLIndex索引,テキスト索引,
ファンクション索引
Bツリー索引,XMLIndex索引,テキ
スト索引,ファンクション索引
メモリー管理の
最适化
XPath操作以外のXML操作には,
DOMの生成が必要.
XML操作を最适化してメモリー要件
を削减可能.
组织内の重要な情报のほとんどは,半构造化,または非构造化データ形式です.
こうしたデータは通常,ファイル サーバー上に格纳されたファイル,またはデー
タベース内のCLOB列に含まれています.これらのファイルの情报は,独自の
フォーマット,あるいはアプリケーション固有のフォーマットで记述されていま
す.このような情报には,ワープロまたはスプレッドシートなどの特殊ツールに
よるか,复雑な独自仕様のAPIを使用してプログラミングを行わないとアクセス
できません.この情报の全体にわたる検索は,クローラまたは全文検索索引が提
供する机能に制限されます.
XMLの急激な普及の主な理由は,次のとおりです.
强固なデータ管理
半构造化,非构造化コンテンツへのよりオープンなアクセス
独自のファイル形式をXMLと置き换えることで,组织は组织内の半构造化およ
び非构造化データの再利用率を高めることができます.XMLスキーマを使用して
コンテンツの正确な记述が可能です.DOMおよびXPathに基づく标准APIを使用
してコンテンツに简単にアクセスし,更新できます.
たとえば,Excelのスプレッドシートに含まれている情报は,Excelプログラム,
またはMicrosoft社のCOM APIを使用するプログラムによってのみアクセスでき
ます.同じ情报がXML文书に格纳されている场合は,XMLプログラミング モ
デルを利用できるすべてのツールで使用可能になります.
なお,Oracle XML DBの构造化データは,このような制限を受けません.构造化
データは通常,リレーショナル データベース内の表内の行として格纳されます.
これらの表は,リレーショナル モデル,そしてSQLのオープン性により様々な
ツールから,アクセスおよび検索されます.
SQL/XMLの二重性
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
17
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
Oracle XML DBの重要な目标は,XML/SQLに二重性を提供することです.つまり,
XMLプログラマは,XMLコンテンツの操作时にリレーショナル モデルの机能
を活用できる一方,SQLプログラマは,リレーショナル コンテンツの操作时に
XMLの柔软性を活用できます.このためアプリケーション开発者は最大限の柔软
性を得て,特定のビジネス问题の解决に最适なツールを使用できます.
リレーショナル メタファとXMLメタファは互换性があります.すなわちOracle
XML DBは,构造化データを処理するアプリケーションと,半构造化と非构造化
コンテンツを処理するアプリケーション间に存在していた境界を排除します.
Oracle XML DBを使用すると,リレーショナルのメタファとXMLのメタファが
互换性を持つようになります.
XML/SQLの二重性とは,同じデータを表内の行として公开しSQLで処理できる
こと,およびXML文书内のノードとして公开してDOMやXSL変换などで処理
できることを意味します.アクセス手法や処理手法は,実际のデータの格纳方式
からは完全に独立しています.
これらの机能特性により,ビジネスに共通の问题を解决するための新しい简単な
ソリューションが提供されます.たとえば,次のことが可能です.
リレーショナル データをHTMLページに迅速かつ简単に変换できます.
Oracle XML DBは,XMLをSQL问合せから直接生成できる新しいSQL関数
を提供します.XMLは,データベース内で実行可能なXSLTプロセッサを使
用して,HTMLなど他の形式に変换できます.
异なる形式间で変换を缲り返すオーバーヘッドなしに,XML文书に含まれる
すべての情报を简単に活用できます.Oracle XML DBを使用すると,SQL问
合せ,OLAP(On-line Analytical Processing),ビジネス インテリジェンス,
データ ウェアハウス操作を使用して,XMLコンテンツにアクセスできます.
テキスト,空间データ,マルチメディア操作をXMLコンテンツに対して実行
できます.
SQL标准SQL/XML関数
SQL 2003标准に新しく追加されたPart 14には,SQL/XMLによって,データベー
ス内でSQLをXMLと并用する方法が定义されています.Part 14には,新规XML
型の详细な定义,XML型の値,SQL构文とXML构文のマッピング,およびXML
をSQLデータから生成する関数が记述されています.Oracle9i Database リリース
2(9.2)以降,SQL/XML机能は,Oracle XML DBの一部としてサポートされてい
ます.Oracle XML DBには,XMLデータの问合せ,更新,変换をサポートする追
加のXPathベースのSQL拡张も多数実装されています.オラクル社は,まもなく
発表されるSQL 2005标准においてこれらの拡张を标准化するために,SQL标准
委员会と紧密に连携を取ってきました.SQL/XML関数は2つのカテゴリーに分か
れます.
XMLコンテンツへの问合せおよびアクセスを通常のSQL操作の一环として
可能にする関数
SQLのSELECT文の结果からXMLを生成する标准的な方法を提供する関数
SQL/XML関数を使用すると,SQL文中のあらゆる位置で,XMLコンテンツを指
定できます.SQL/XML関数は,XPath表记を使用してXML构造を参照し,操作
対象の1つ以上のノードを识别します.SQL文中にXPathを埋め込むことができ
るため,XMLへのアクセスが大幅に简略化されます.次の项では,重要な
SQL/XML演算子をいくつか说明します.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
18
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
existsNode: 问合せで返されるドキュメント セットを制限するために,
SQL文のWHERE句で使用されます.existsNode SQL関数は,XPath式を取
得して,それをXML文书に适用します.この演算子は,そのXPath式に一致
するノードがドキュメントに含まれているかどうかに応じて,TRUE(1)ま
たはFALSE(0)を返します.
extract: これは,XPath式を取得し,その式に一致するノードをXML文书
またはXMLフラグメントとして返します.単一ノードしかXPath式に一致し
ない场合,その结果は整形式のXML文书になります.复数ノードがXPath
式に一致する场合,その结果はXMLフラグメントになります.
extractValue: これは,XPath式を取得して,対応するリーフ ノードを返
します.extractValueに渡されるXPath式は,単一のテキスト ノードを
持つ単一の属性または要素である必要があります.その结果は,适切なSQL
データ型で返されます.
insertChildXML: 要素または属性ノードを,与えられた亲要素ノードの子
として挿入します.
insertXMLbeforeXML: ノードの种类にかかわらず,XMLノードを指定さ
れたノード(属性ノード以外)のすぐ前に挿入します.
appendChildXMLXML: ノードの种类にかかわらず,XMLノードを指定され
た要素ノードの最后の子ノードとして挿入します.
deleteXML: ノードの种类にかかわらず,XMLノードを削除します.削除対
象であるXML文书は,スキーマ ベースでも,スキーマ ベースでなくても
构いません.
updateXML: 一连のXPath式に基づき,XMLドキュメントの部分更新を実行
できます.それぞれのXPath式は,ドキュメント内のターゲット ノードと,
そのノードに対する新しい値を识别します.updateXML演算子を使用すると,
1つのXML文书に対して复数の更新を同时に指定できます.
XMLSequence: これにより,コレクションのメンバーを仮想表として公开で
きます.
XPathリライト
SQL/XML関数およびそれに対応するXMLTypeメソッドを使用すると,XPath式
をXML文书のコレクションの検索や,XML文书に含まれているノードのサブ
セットへのアクセスに使用できます.Oracle XML DBには,XPathベースの
SQL/XML関数と演算子を効率よく処理する优れたXPathリライト テクノロジが
统合されています.
Oracle XML DBによるXPath式の评価方法
Oracle XML DBには,XMLType列および表を操作するXPath式の评価方法が2つ
あります.XMLの场合を次に示します.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
19
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
构造化ストレージで格纳されている场合,Oracle XML DBは,SQL/XML演算
子内のXPath式をそれに相当するSQL问合せに変换しようとします.SQL问
合せは,スキーマ ベースのXMLTypeの基盘となるオブジェクト リレーショ
ナル データ构造を参照します.このプロセスをXPathリライトといいます.
问合せと更新操作の実行にこれが発生します.
非构造化ストレージで格纳された场合,Oracle XML DBは,机能的评価また
はXMLIndexを使用してXPath式を评価します.机能的评価はそれぞれの
XML文书にDOMツリーを构筑し,次にDOM APIが提供するメソッドで
XPathをプログラミングにより解决します.操作にDOMツリーの更新が含ま
れる场合は,操作の完了时にXML文书全体をディスクに再度书き込む必要が
あります.
XPath式を含むSQLの効果的な処理
Oracle XML DBは,XPath式を含むSQL文を効率よく処理できる纯粋なリレーショ
ナルSQL文へ书き换えることができます.したがって,Oracle XML DB では,デー
タベース オプティマイザがXPath表记やXMLデータ モデルを理解する必要
がありません.データベース オプティマイザは,他のSQL文の场合と同様に,
リライトされたSQL文を简単に処理します.
つまり,データベース オプティマイザは従来型のリレーショナル代数に基づい
て実行计画を导出できます.このためOracle XML DBは,データベースの全机能
が使用でき,XPath式を含むSQL文が非常にスケーラブルかつ効率の高い方法で
実行されることを保证します.つまり,XPathリライトのオーバーヘッドはほと
んどなく,Oracle XML DBは,XMLの抽象性を保持しながら,XPathベースの问
合せをリレーショナルに近いスピードで実行できるということです.
XPathリライトが実行される条件
XPathリライトは,次の条件の全てが満たされる场合に実行されます.
XPath式を使用してXML文书内の1つまたは复数ノードを参照する
SQL/XML演算子またはXMLTypeメソッドがSQL文に含まれる场合.
XML文书を含むXMLType列またはXMLType表が,登录済みのXMLスキー
マと関连付けられている场合.
XMLType列または表が,构造化ストレージを使用して基盘となるストレー
ジ モデルを提供している场合.
XPath式で参照されるノードが,基盘となるSQLオブジェクト モデルの属
性にXMLスキーマを介してマッピングできる场合.
XPathリライトの実行过程
XPathリライトによって実行されるタスクは次のとおりです.
1. SQL文に含まれる一连のXPath式を识别します.
2. それぞれのXPath式を,基盘となるSQL 1999オブジェクト モデルの表,型,
属性を参照するオブジェクト リレーショナルSQL式に変换します.
3. 元のSQL文を,それに相当するオブジェクト リレーショナルSQL文にリラ
イトします.
4. 実行计画の生成および问合せの実行のために,新しいSQL文をデータベー
ス オプティマイザに渡します.
ただし,场合によっては,XPathリライトを実行できないことがあります.これ
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
20
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
は,XPath式に相当するSQLが存在しない场合に発生します.この状况では,Oracle
XML DBは,XPath式の机能的评価を実行します.一般にSQL文の机能的评価は,
XPathリライトに比べ,より负荷がかかります(特に,大量のドキュメントの処
理が必要な场合).
ドキュメントが非构造化ストレージで(CLOB値を使用して)格纳されていた
Oracle Database 10g リリース 1(10.1)以前では,existsNode以外のSQL関数
を使用する场合は必ず机能的评価が必要です.CTXPATH索引またはファンクショ
ン索引で问合せが解决しない场合は,関数existsNodeでも机能的评価を実行で
きます.Oracle Database 10g リリース 2(10.2)にXMLIndexが导入されてからは,
非构造化ストレージのXML文书のXPath式をより効率よく评価できるようにな
りました.
スケーラビリティおよびパフォーマンスを考虑してOracle XML DBアプリケー
ションを开発する场合,XPathリライトの概念,およびそれが発生する条件につ
いての理解が重要なステップの1つです.
Oracle Database固有のXQuery
XQuery 1.0は,W3Cにより开発されたXML问合せ言语です.これは,様々なデー
タ ソースからXMLを问合せために有効な问合せ言语です.データベース行に
格纳されているXMLを问合せ方法,またはWebサービスからXMLを问合せ方
法として,多数の企业がXQueryを采用しています.
SQLサイドでは,XMLをSQLにカプセル化する方法として,SQL 2003にXML
データ型が导入されました.SQL委员会は,现在,XQueryを使用してXMLの问
合せを统合する作业を行っています.これは,新しいSQL関数XMLQueryと新し
い构成XMLTableを导入することで,実现しつつあります.両方ともXQueryを
使用して,XML値とSQL値を操作されます.前者は,XQueryを使用してXML
を问い合せ,返り値のXMLを构筑するため,XQueryセントリックのアプローチ
として知られています.后者は,XQuery値をリレーショナル値に分解できるため,
SQLセントリックのアプローチとして知られています.
Oracle Database 10g リリース 2(10.2)により,これらの标准的なSQL関数を使
用して,データベース サーバー内でXQueryに対応できるようになります.
XQueryのFLWOR式
XQueryの中心には,反复および中间结果への変数のバインディングをサポートす
るFLWOR式があります.このような式は,2つ以上のドキュメントの结合や,
データの再构筑に有効です.FLWORは,for,let,where,order by,return
の头文字を取ったもので,「フラワー」と発音します.
SQLのFROM句と同様,FLWOR式のfor句とlet句は,タプル ストリームと
呼ばれる変数のタプル シーケンスを生成します.SQLのWHERE句と同じ机能を
実行し,このWHERE句は,保持するタプルと破弃するタプルを选别して,タプル
ストリームにフィルターをかける役割を果たします.order by句は,SQLの
ORDER BY句と同様,タプル ストリームに顺序を付けます.最后に,return
句は,SQLのSELECT句と同様の机能を実行して,FLWOR式の结果を构筑しま
す.where句がフィルターをかけた后,个々のタプルの変数バインディングを使
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
21
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
用して,タプル ストリームのすべてのタプルに対してreturn句が一括して评
価されます.FLWOR式の结果は,顺序付けされたシーケンスで,これら评価を
连结した结果です.
XMLQuery SQL関数
XMLQuery関数は,文字列リテラル,オプションのコンテキスト项目,その他の
バインド変数としてXQuery式を取り,これらの入力値を使用してXQuery式を评
価した结果を返します.
Oracle Database 10g リリース 2(10.2)でサポートされる构文を次に说明します.
XMLQUERY (
[PASSING [BY VALUE] ]
RETURNING CONTENT)
XQueryの文字列リテラルは,プロローグなどを含む完全なXQuery式です.
PASSING句の后には,XQuery式を评価するためのコンテキストとして使用する
XMLTypeを返す式が必要です.
XMLType列,XMLType表,XMLTypeビューまたはSQL/XML関数により生成さ
れた式を使用してXQueryを実行するためには,値をXMLQuery関数の引数とし
て引き渡すことをお荐めします.ただし,Oracleが提供するXQuery関数,ora:view()
をXQuery式内で使用することにより,最初にSQL/XMLビューを作成せずに,リ
レーショナル表またはリレーショナル ビューをXMLとして问合せことができ
ます.
XMLTableのSQL构文
XMLTable构成を使用して,XQueryの评価结果をリレーショナル行と列にマッピ
ングすると,SQLを使用したXQueryの结果を仮想リレーショナル表として问合
せことができます.XMLTableは,SQL问合せのFROM句内でのみ使用できます.
Oracle Database 10g リリース 2(10.2)でサポートされる构文を次に说明します.
::=
"XMLTable" "("
["PASSING" ["BY" "VALUE"] ]
["COLUMNS" ]
")"
::=
["," ]…
::= []
[PATH ][ "DEFAULT" ]
XQueryのリライト
XPathベースのSQL/XML関数のXPathリライトと同様,Oracleのデータベース固
有のXQueryの実装は,充実したXQueryリライトを提供します.XQueryリライ
トは,Oracleの高性能リレーショナル问合せエンジンを最大限活用できます.构
造化ストレージ アプローチでXML文书が保存されている场合,XQueryを纯粋
なリレーショナル问合せにリライトすることで,XML文书のDOMツリーをメモ
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
22
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
リーに构筑する必要がなくなります.问合せのパフォーマンスは,リライトを适
用することで大幅に高速化します.
次の例では,XQueryを同等のリレーショナル问合せにリライトし,纯粋なリレー
ショナル问合せと同様のパフォーマンス レベルを达成できます.
SELECT XMLQuery(
'for $b in ora:view("SITE_TAB")/site/people/person
where $b/@id = "person0"
return $b/name' returning content)
FROM dual;
SELECT ( SELECT XMLAgg(XMLElement("name", p.name))
FROM SITE_TAB s, PERSON_TAB p
WHERE p.id ='person0' AND
p.NESTED_TABLE_ID=s."SYS_NC0004700048$"
)
FROM dual;
Oracle Textを使用したCLOBに格纳されているXMLデータの検索
Oracleは,セクション検索向けのOracle Text索引,XML処理のための特殊演算子,
XMLの集计およびXML関连の问合せに特化した最适化など,XMLの特别な索引
メカニズムを提供しています.
CLOB(Character Large Objects)データ型で格纳されているか,または构造化スト
レージのXMLType列に(オブジェクト リレーショナルに)格纳されているXML
データに,Oracle Textを使用して索引を作成できます.演算子hasPath()および
inPath()は,XMLデータの検索を最适化し,XMLテキスト内の部分文字列の
一致を検索できるように设计されています.
Oracle XML DBに装备されている机能は,次のとおりです.
SQL関数CONTAINSおよびXPath関数ora:contains.ora:contains関
数は,XPathベースの検索时に,SQL関数existsNodeと并用できます.
URIType列やXDBURIType列に索引を作成する机能
existsNodeを使用して高速XPath検索を実行できる索引型CTXXPATH
Oracle Enterprise ManagerによるOracle XML DBアプリケーション
の管理
Oracle Enterprise Managerを使用して,Oracle XML DBアプリケーションを管理で
きます.Enterprise ManagerのGUIにより,次のタスクが実行しやすくなります.
构成
o プロトコル サーバー构成を含む,Oracle XML DBの构成
o Oracle XML DB构成パラメータの表示および编集
o XMLスキーマの登录
リソースの作成
o リソースACL定义の编集など,リソース セキュリティの管理
o リソース権限の付与と取消し
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
23
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
o リソース索引の作成と编集
o Oracle XML DBリポジトリの表示とナビゲーション
XMLスキーマに基づく表とビューの作成
o XMLスキーマに基づくストレージ インフラストラクチャの作成
o XMLスキーマの编集
o XMLType table表の作成,XMLTyper列を含む表の作成
o ビュー ベースのXMLスキーマの作成
o XPath式に基づくファンクション索引の作成
図5: Enterprise Manager によるXMLスキーマの管理
Oracle XML DBの利点
この项では,Oracle XML DBを使用する利点について说明します.
データとコンテンツの统一
多くのアプリケーション データとWebコンテンツは,リレーショナル データ
ベースまたはファイル システムのいずれか,またはその両方に格纳されていま
す.XMLはほとんどの场合,データ転送に使用され,データベースまたはファイ
ル システムから生成されます.転送されるXMLの量が増加するにつれ,XML
文书の再生成のコストも上升するため,このようなストレージ手法はXMLコン
テンツへの対応手段としては非効率になりつつあります.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
24
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
図6: データとコンテンツの统一 - 共通のXMLアーキテクチャ
企业组织では通常,构造化データと非构造化データを别々に管理します.
表内のデータを非构造化すると,ドキュメント アクセスは透过的ですが,
表アクセスは复雑化します.
表内のデータを构造化すると,ドキュメント アクセスは复雑化しますが,
表アクセスは透过的になります.
Oracle XML DBを使用すると,标准データ モデル,标准SQL,标准XMLを使
用して,构造化,非构造化,半构造化されているデータを格纳し,管理できます.
XML文书に対するSQL操作,オブジェクト リレーショナル データ(表など)
に対するXML操作が実行できます.
データベース机能の活用
Oracle Databaseは,次の主要机能を提供してXMLを効果的にサポートします.
索引付けと検索: アプリケーションからは,「2002年3月と4月の间に作成
された制品をすべて検索」のような问合せが発行されます.これは,通常B
ツリー索引の日付列でサポートされる问合せです.Oracle XML DBでは,XML
データの効率よい构造化検索が可能なため,コンテンツ管理ベンダーは,こ
のような问合せの処理に独自の问合せAPIを构筑する必要がありません.
更新とトランザクション処理: 商用のリレーショナル データベースは,更新
しようとするユーザー间の竞合を最小限に抑え,レコードの一部分を迅速に
更新します.従来のドキュメント中心のデータは,XMLを介して他のアプリ
ケーションとの连携が行われるため,この要件の重要度が増します.ファイ
ルまたはCLOBストレージでは,Oracle XML DBのようなきめ细かい并行処
理制御はできません.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
25
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
リレーション管理: 通常,构造化されているデータは,外部キーの制约を受け
ます.现在のXMLデータ ストアにはこの机能がないため,制约はアプリケー
ション侧で実装することが必要です.Oracle XML DBでは,构造化データが
常に活用していたリレーションに対する制御を実现できます.
データの复数ビュー: 多くの企业アプリケーションでは,モジュールごとに异
なる方法でデータを参照する必要があります.复数の方法でデータを统合す
るためには,リレーショナル ビューが必要です.XMLデータに対するビュー
を提供することで,Oracle XML DBは,1つの情报を异なるアプリケーション
から参照することを可能にします.
パフォーマンスとスケーラビリティ: XMLアプリケーションでは,迅速な
データ ストレージ,検索,问合せが求められます.ファイルやCLOB値の
ロードや解析は,リレーショナル データ アクセスに比べ遅くなるのが通
常です.Oracle XML DBは,XMLストレージおよび検索を剧的にスピードアッ
プします.
开発の容易性: データベースは,个々のデータ要素の処理,変换および変更の
标准的で简単な方法を提供する最も重要なアプリケーション プラット
フォームです.XMLパーサーは,XMLデータの読取りアクセスを标准的に
行いますが,个々のXML要素を简単に変更し,格纳する方法は提供しません.
Oracle XML DBは,XMLスキーマ,XPath,DOM,Javaによるデータの格纳,
変更,検索のための様々な标准的な方法をサポートします.
XML机能の活用
ファイル システム上での管理をやめ,XML文书をデータベース表の列に分解し
て格纳した场合でも,XMLのメリットを継続的に利用することが可能です.
构造の独立性: XMLのオープン コンテンツ モデルは,纯粋な表や列の世
界では简単に取得できません.XMLスキーマにより,単にコンテナのみに范
囲を限定されずに,グローバルな要素宣言が可能です.したがって,アプリ
ケーションの拡张に伴い,特定のデータがXML文书内のどこに移动しても见
つけることができます.
ストレージの独立性: リレーショナル设计を使用する场合,クライアント プ
ログラムは,データの格纳场所,データのフォーマット,対象となる表,表
间のリレーションについて知ることが必要です.XMLTypeは,その情报がな
くてもアプリケーションを记述でき,データベース管理者が构造化データを
物理的な表と列へマッピングできるようにします.
プレゼンテーションの容易性: Webブラウザ,多くの一般的なデスクトップ
アプリケーションやインターネット アプリケーションは,XMLをネイティ
ブに扱えます.一般的には,アプリケーションから直接リレーショナル デー
タにアクセスされることはありません.标准クライアントがリレーショナ
ル データへアクセスするためには,プログラミングが必要です.Oracle XML
DBは,データをXMLとして格纳し,データベース外部でもXMLとして使
用できるようにします.データベース コンテンツを表示するための追加の
プログラミングは必要ありません.
互换性の向上: XMLは,B2Bでのデータ交换では不可欠な言语です.XMLを
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
26
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
表构造に格纳する必要がある场合,何らかの独自の変换を行っています.言
语を変换すると必ず情报が消失し,互换性が弱くなります.XMLをネイティ
ブに扱い,ストレージ/検索プロセスでDOMの精度を确保することで,Oracle
XML DBは,精度の高い互换性を実现します.
复雑なXML文书のストレージと検索のスピードアップ
复雑で大型,そして膨大な数のXML文书の格纳 検索を行う今日のユーザーは,
アプリケーションのパフォーマンス ダウンに悩まされています.Oracle XML DB
は,XML操作での非常に高いパフォーマンスとスケーラビリティを提供します.
主な特徴は次のとおりです.
ネイティブXMLType
完全に评価されていない仮想DOMのサポート
データベースに统合されたXPath,XSLTのサポート
XMLスキーマ キャッシング サポート
CTXPATH索引(Oracle Text)
Oracle XML DBリポジトリに対する阶层索引
アプリケーション统合の支援
Oracle XML DBは,ゲートウェイを介して様々なシステムからのデータへのアク
セスを可能にし,共通のデータ モデルへと统合できます.これにより,様々な
店舗からのデータに対処するアプリケーションを开発する场合,その复雑さが軽
减されます.
非XMLデータのXML Typeビュー
XMLTypeのビューは,既存のリレーショナル データとオブジェクト リレーショ
ナル データをXMLフォーマットを使用してラップする手段を提供します.た
とえば,XMLフォーマットではない従来のデータを,特にXMLフォーマットに
移行する必要がある场合などに有用です.XMLTypeビューを使用すると,アプリ
ケーション コードを変更する必要はありません.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
27
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
结论
XMLデータ量の急増に伴い,もはやXMLデータをファイル システムや,デー
タベースの単なるLOB列に格纳することはできません.また,中间层でDOMツ
リーを构筑して,XMLデータを処理することにも限界があります.XMLを使用
したスケーラブルなWebアプリケーションの构筑には,XMLデータをよりイン
テリジェントに効率よく処理して,データベース层で中间层の负荷を軽减するこ
とが必要になります.Oracle XML DBは,様々な机能を提供してIT业界の切実な
ニーズに対応します.
Oracleデータベース上に构筑されたOracle XML DBは,大量のXMLデータの効
率のよいストレージ,検索,问合せ,生成,管理のための豊富な机能を提供しま
す.XMLType,XMLスキーマ処理,构造化および非构造化ストレージ,コンテ
ンツ リポジトリ,SQL/XML,管理机能の统合をさらに促进し,Oracle XML DB
は,多くの主要分野で継続的に进化を遂げています.新しいOracle Database 10g リ
リース 2(10.2)では,Oracle XML DBのスキーマの索引付けを行う强力な
XMLIndex,标准XQuery机能の実装,多様なスキーマ ベースのリソース メタ
データ机能,XMLデータのDML処理向け新规SQL机能などがさらに强化されて
います.
Oracle Database 10g リリース 2(10.2)
のOracle XML DBは,高度にスケーラブ
ルなXMLアプリケーションの开発,配布,
管理のための最も総合的かつ効果的な机
能を提供します.
Oracle Database 10g リリース 2(10.2)のOracle XML DBは,高度にスケーラブ
ルかつ多様なXMLアプリケーションの开発,展开,管理のための最も総合的か
つ効果的な机能を提供します.
Oracle Database 10g リリース 2(10.2)
Oracle XML DBテクニカル オーバービュー
28
Oracle Corporation発行「Oracle Database 10g Release 2 XML DB Technical Overview」の翻訳版です.
Oracle Database 10g リリース 2(10.2) Oracle XML DBテクニカル オーバービュー
2005年9月
著者: Geoff Lee
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
海外からのお问合せ窓口:
电话: +1.650.506.7000
ファックス: +1.650.506.7200
www.oracle.com
オラクル社は,インターネット上での活动を强化するソフトウェアを提供します.
Oracleはオラクル社の登录商标です.
このガイドで使用されているさまざまな制品名およびサービス名には,オラクル社の商标が含まれています.
その他のすべての制品名およびサービス名は,各社の商标です.
Copyright 2005 Oracle Corporation
All rights reserved.
·上一篇:116掌上电脑
·下一篇:个人数位助理在大地工程上的应用
