XMLデータベース  ひとめぐり        国島丈生    t.kunishi@gmail.com  http://tk.kunilab.org/ja/                              2009.05.30. オー...
自己紹介                               XML(再)入門                                              国島丈生                             ...
XML DB超スピード一巡り     2009.05.30. オープンセミナー@岡山
ータ容量でも高速 高精度検索 品名          ・用ニーズに確かな技術で応えます。  rstage Shunsaku Data Manager Enterprise Edition                             ...
関係 データベース SQL問合せ          2009.05.30. オープンセミナー@岡山
XML データベース   XPath          問合せ   XQuery                XML  SQL/XML XML:DB API    etc.                結果がXMLである          ...
ータ容量でも高速 高精度検索          ・                                                                                                 ...
XML DB問合せ言語• XPath: XML木の節点集合を求める式• XQuery: XPath (2.0) + XML構成機能• SQL/XML: SQLのXML拡張• XML:DB API: XML DB版JDBC • 現時点では微妙…策...
XMLのおさらい      2009.05.30. オープンセミナー@岡山
例:メールFrom: kunishi@example.comTo: hatano@example.com, hijikata@example.comSubject: 講演のお誘いDate: 2008-11-01 17:01:3012/11のSI...
これをXMLで書くと<?xml version= 1.0 encoding= utf-8 ?><mail> <head>  <from><address>kunishi@example.com</address></from>  <to><ad...
用語          要素(element)属性(attribute)               内容(content)<p>12/11の<a href="http://www.ieice.org/ wi2/">SIG WI2</a>で講演...
XMLの表す構造=木                                                 mail                                        head               ...
XMLの二面性• テキスト文書の記述 • 構造化文書 (structured document)• 不規則な構造を持つデータの記述 • 半構造データ(semistructured data) • 同種の形式:ASN.1, JSON, etc.•...
テキスト文書の記述<?xml version= 1.0 encoding= utf-8 ?><mail> <head>  <from><address>kunishi@example.com</address></from>  <to><add...
データ構造の記述<?xml version= 1.0 encoding= utf-8 ?><mail> <head>  <from><address>kunishi@example.com</address></from>  <to><addr...
ネイティブXML DB    vs. XML対応RDB          2009.05.30. オープンセミナー@岡山
ネイティブXML DB  XPath         問合せ  XQuery                      XMLXML:DB API   etc.XML専用の問合せ言語             XML専用の格納方式 (DOM et...
XML対応RDB   XPath         問合せ   XQuery      XML                       SQL問合せ XML:DB API    etc.XML専用問合せ言語 + SQL/XML通常のSQLでも...
XML 関係• XML…入れ子構造、不規則、文書スキー マがあるとは限らない• XMLをいかに関係にマッピングするか?              2009.05.30. オープンセミナー@岡山
DTD(文書型定義)<!ELEMENT mail (head, body?)><!-- mail要素の内容はheadが1個、続いてbodyが0個以上 --><!ELEMENT head (from, to, cc?, subject, date...
構造写像文書スキーマを関係スキーマにマッピング             2009.05.30. オープンセミナー@岡山
モデル写像                  a (1, 5, 1)                       ID   Name Label    Path                                          ...
XML DB問合せ言語       2009.05.30. オープンセミナー@岡山
XPath//head//address/text()[. != kunishi@example.com ]                                                 mail               ...
XPathの(省略)文法例• /mail/head:ルート要素mailの子要素    head•   //head//address:文書中のhead要素    の子孫要素address•   //a/@href:文書中のa要素のhref属性•...
XPathの本当の形//address/text()[. = kunishi@acm.org ]//descendant::address/child::text()[. = kunishi@acm.org ]                 ...
XQuery• XPath 2.0 + 結果XMLの構成機能• 静的型付き関数型言語 • でも高階関数はまだ使えなかったり• XML Schemaに基づく型推論機能 • OCaml辺りに影響を受けているらし  い                ...
XMLの例                            bib         book                             book                   year                 ...
FLWOR式for $b in doc(“books.xml”)//booklet $y := $b/@yearwhere $y > “1999”                      biborder by $b/author      ...
要素構成子<bib>{  for $b in doc(“book.xml”)//book  where $b/@year < 2000  return <ttl>{$b/title/text()}</ttl>}</bib>           ...
タプルストリームfor $i in (1, 2), $j in (3, 4)      ($i   =   1,   $j   =   3),      ($i   =   1,   $j   =   4),      ($i   =   2,...
XMLの結合for $b1 in doc(“book1.xml”)//book,    $b2 in doc(“book2.xml”)//bookwhere $b1/author = $b2/author  and $b1/title != $...
XQuery+テキスト検索for $b in /books/bookwhere $b/title  ftcontains (“program” with stemming) ftand “Ruby”return $b/authorprogram...
XQuery 1.0の弱点• データ更新機能がない• XQuery Update Facility 1.0…現時点 でW3C勧告候補 • 実装はごく一部のXML DBのみ• XUpdate…XML:DB Initiativeの提案 • XML:...
XQuery Update                 Facilityinsert node <year>2005</year>  after fn:doc(“bib.xml”)/books/book[1]/titledelete nod...
SQL/XML• SQL:2003の拡張機能• XMLデータ型• XMLデータ型→SQLデータ型マッピン グ• XMLデータ型の値の操作…XPath/ XQuery式をSQLに埋め込み                2009.05.30. オー...
XML生成                    books           title            year                                   TCP/IP            1990   ...
XQueryの埋め込みbooks_xml                         books             <bib year=”1990”><title>TCP/IP</title></bib>             <b...
XML→関係   books_xml                          books                 <bib year=”1990”><title>TCP/IP</title></bib>            ...
(勝手な)まとめ     2009.05.30. オープンセミナー@岡山
XML DBの今後?• ネイティブXML DB vs. XML対応RDB • 機能の差は縮まっている • 底力(過去の経験、開発力)の分RDBベン  ダのほうが有利?• XML DBはそもそも必要か? • 半構造データのDBとしては…微妙かも ...
Apache CouchDB• JSON文書のストレー    ジ•   データアクセス=    HTTP REQUEST    • pure REST!•   MapReduceによる問    合せ    • 並列分散処理を意識•   Erla...
Upcoming SlideShare
Loading in …5
×

20090528 open seminar @ okayama

1,364 views
1,313 views

Published on

an overview of XML databases. 「XMLデータベースひとめぐり」

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,364
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide











































  • 20090528 open seminar @ okayama

    1. 1. XMLデータベース ひとめぐり 国島丈生 t.kunishi@gmail.com http://tk.kunilab.org/ja/ 2009.05.30. オープンセミナー@岡山
    2. 2. 自己紹介 XML(再)入門 国島丈生 kunishi@acm.org ... the correct full name of XML, is "Extensible Markup Language". "eXtensible Markup Language" is just a spelling error. -- Tim Bray 2008-12-11, SIG WI2研究会連載「日曜大工的XML入門」 (2002-2003) 2009.05.30. オープンセミナー@岡山
    3. 3. XML DB超スピード一巡り 2009.05.30. オープンセミナー@岡山
    4. 4. ータ容量でも高速 高精度検索 品名 ・用ニーズに確かな技術で応えます。 rstage Shunsaku Data Manager Enterprise Edition 機能概要 XML型データベースエンジン XML DBの例 Integration sible Markup Language)は、インター ネット上で交換・蓄積される 式として、さまざまな領域で活用が進んでいます。 レクタサーバ動作OS サーチサーバ動作OS [ディ タサーバが Solaris OS / Linux の場合] レク dows Server 2003, Standard x64 Edition* Red Hat Enterprise Linux 5 (for x86)MLデータの 構造をそ のまま格納しながら、 AS for x86)dows Server 2003, Enterprise x64 Editiondows Server 2003, Standard Edition * Red Hat Enterprise Linux (v.4 Red Hat Enterprise Linux ES (v.4 for x86) dows Server 2003, Enterprise Edition 実現したXMLデータベ ースです。 タサーバが Windows の場合] Edition あるがままに格納し、思うがままに検索する、XML型データベースエンジン [ディ レク dows 2000 Server Windows Server 2003, Standard x64 dows 2000 Advanced Server Windows Server 2003, Enterprise x64 Edition術が、 9Linux 5 x86) 活用 の 可能性を広げます。 Edition XMLデータの aris 10, Solaris Interstage Windows Server 2003, Standard webMethods Hat Enterprise (for Windows Server 2003, Enterprise Edition Hat Enterprise Linux AS (v.4 for x86) Windows 2000 Server Hat Enterprise Linux ES (v.4 for x86) Windows 2000 Advanced Server ■ 管理されないまま増え続ける非定型データ Tamino XML Server Shunsaku Data Manager * WOW64 : (Windows 32-bit On Windows 64-bit)サブシステム上で、 ッ 32ビ トアプリケーシ ンと ョ して動作します 企業内には、売上げや在庫などの基幹系情報、メールや掲示板などのコミュニケーション 情報、設計書や議事録、商品情報、品質情報などのドキュメント情報というように、実にさま 品名 機能概要 rstage Application Server アプリケーシ ンサーバ ョ ざまな情報があります。 rstage Studio アプリケーシ ン開発環境 ョ rstage CollaborationRing Data Collection Server ファイル転送を リ ト ガーにしたデータ連携 そして、これら企業内情報の約8割が、コミュニケーション情報やドキュメント情報に代表ANGE XML DOCUMENTS ON THE FLY rstage CollaborationRing File Transfer Integrator 複雑化するサーバ間の連携 される、項目の長さや数が確定できない非定型データだと言われています。 rstage Navigator Server 部門から全社規模までサポートするOLAP mfoware Server データベース nternal high-performance XML parser Core Services Data map (schema container) 特長 1 The core services are basic functional compo- これまで、売上げなどの基幹系情報の中心を占める定型データは、 されてきましたが、非定型データは、 RDBなどを用いて管理 ほとんど管理されてきませんでした。 Stores/indexes XML objects nents immediately available after product 総合カタログ テラバイ ト級の Maps data to RDBMSs, Adabas, etc. installation. しかし、企業価値向上のための情報活用、そして、コンプライアンス対応のためには、定型 n Server erver extensions/triggers 基幹オンライン バッチシステム基盤 ・ 大容量データでも SIPnet リポジ トリ BPM インタラクション マネジメン ・ ト 帳票ソリューション データだけでなく、非定型データも的確に管理していく必要があります。つまり、非定型 arious index types for simple/complex Shunsaku Data Manager 高速検索 Native XML Data Store CollaborationRing データを的確に管理していかなければ、企業活動が成り立たなくなってきているのです。 lements and attributes Studio Accessible via HTTP-based ・ 独自に開発した技術で、 DOM, JDOM,  高速検索を実現 ack up, restore disaster recovery, etc. SAX APIs and SOAP services High availability Storage capacity for the following docu- ■ 非定型データの管理に有効なXML ocal and distributed transactions ments, messages and meta data: この非定型データの管理に効果を発揮するのがXMLです。XMLは柔軟なデータ構造が - Well-formed-, Valid-, Non-XML 採れるため、項目の長さや数が確定できない非定型データを容易に表現できます。しか 長 2mino‘s core enables you to build server Auto-versioning supported via WebDAV 特長 3 もデータ表現形式の国際標準規格であり、すでにデータ交換や蓄積のための基盤技術と ensions and connect external databases. and Subversion して定着してきています。また、XMLであれば、項目の変更やシステムの拡張があって軟なデータ構造 多彩な検索手段 core is augmented by core services and も柔軟に対応できる、情報管理しやすいシステムをつくることができます。 bling services. Query/Text Retrieval Services Tamino XML Server‘s built-in query interpreter provides: ■ テラバイト級のXMLデータでも管理できるXMLデータベース。それが「TX1」ときにデータベース Business Customer ・ 高度な日本語処理技術で、 Extensive W3C XQuery support including 企業内に存在する多種多様な非定型データを管理するには、大量のXMLデータを管理義が不要 Reporting Solutions 多彩な検索手段を提供 updates, cross-collection joins, user-defined できるデータベースが必要です。ステムに似た + Customer Solutions functions, modules, external variables, etc. ル XMLデータベースTX1は、東芝ソリューションが開発した「テラバイト級のXMLデータ Unique, collective searches on data, でも高速に検索できるXMLデータベース」です。エンタープライズクラスのシステムに ore ... です。 Web Services ズを素早く らえ、 DBと External スピーディ Databases ーにビジネスを展開していく meta-data and non-XML data (e.g. 24時間365日の安定 「機敏性」 少ない投資で最大限の効果を生むビジネスの 、 「効率性」 full text) 、 erprise す。 n Services Services (opt.) 適する特長を持つTX1を利用すれば、 大量の非定型データでも的確に管理することができます。 特長 5・ に応える富士通のIT基盤です。 オープン化によ with-in XQuery-embedded もたら り複雑になったシステムの課題を解決し、 最善の答え と確かな効果をfunctions します。 特長 4 ソースを最大限に有効利用し、 Infrastructure for Thesaurus, word stemming, incl. Adabas Processor ビジネスの効率性:ITリ ビジネスの継続性:高信頼 高可用性の技術とノウハウで、 ■ 非定型データやテキストデータの管理に適したTX1 X-Tension 効率的なアプリ & Obj. Service ビジネスの効率性を追求。 ビジネスの継続性を可能に。 シンプルな自律運 24時間365日安定稼働。highlighting phonetic searches andメインフレームで培った技術とノウハウに mposer 能と ま 信頼性の確保 トの削減が可能となります。 より、 し Data/Metadata/non-XML す。 ITリソースのより有効な活用を実現する と と もに、 TX1は、非定型データだけでなく、テキストデータの管理にも適したデータベースです。 ケーション開発 長、拡大を 用と容易なシステム保守で運用コス オープン環境においてミ シ ンク ッ ョ リティ カルなシステムでビジ お客様のIT投資に対して最大限の効果を発揮し ます。 Applications ネスに継続性を ら ます。 もた し Data Map RDBでは格納しづらいデータも的確に管理できます。 chema Native XML vice Data Store 商標または登録商標です。 r 国における登録商標です。 商標であり、 Back Office/ ライ センス供与されている ものです。 Back End 非定型データ ・ データベースに求められる SOAP) れ各社の商標または登録商標です。 ・ XQueryと独自APIでDBを自在に操作 非定型データやテキス ト も商標表示 (TM、R ) を付記しており ません。 データは、TX1向き ます 信頼性を確保 。 http://interstage.fujitsu.com/jp/ ・ Webアプリケーション開発を支援するXWeb ・ さまざまな形式のデータをXMLに変換して  登録するデータ連携機能 数値/文字列 2009.05.30. オープンセミナー@岡山 TX1 全文検索 エンジン テキスト データ中心 データ中心
    5. 5. 関係 データベース SQL問合せ 2009.05.30. オープンセミナー@岡山
    6. 6. XML データベース XPath 問合せ XQuery XML SQL/XML XML:DB API etc. 結果がXMLである こと以外多種多様! 2009.05.30. オープンセミナー@岡山
    7. 7. ータ容量でも高速 高精度検索 ・ XML DBの分類 Integration XML対応RDB 品名 機能概要用ニーズに確かな技術で応えます。 rstage Shunsaku Data Manager Enterprise Edition XML型データベースエンジン sible Markup Language)は、インター ネット上で交換・蓄積される 式として、さまざまな領域で活用が進んでいます。 レクタサーバ動作OS サーチサーバ動作OS [ディ タサーバが Solaris OS / Linux の場合] レク dows Server 2003, Standard x64 Edition* Red Hat Enterprise Linux 5 (for x86)MLデータの 構造をそ のまま格納しながら、 AS for x86)dows Server 2003, Enterprise x64 Editiondows Server 2003, Standard Edition * Red Hat Enterprise Linux (v.4 Red Hat Enterprise Linux ES (v.4 for x86) dows Server 2003, Enterprise Edition 実現したXMLデータベ ースです。 タサーバが Windows の場合] Edition あるがままに格納し、思うがままに検索する、XML型データベースエンジン [ディ レク dows 2000 Server Windows Server 2003, Standard x64 dows 2000 Advanced Server Windows Server 2003, Enterprise x64 Edition術が、 9Linux 5 x86) 活用 の 可能性を広げます。 Edition XMLデータの aris 10, Solaris Interstage Windows Server 2003, Standard webMethods Hat Enterprise (for Windows Server 2003, Enterprise Edition Hat Enterprise Linux AS (v.4 for x86) Windows 2000 Server Hat Enterprise Linux ES (v.4 for x86) Windows 2000 Advanced Server ■ 管理されないまま増え続ける非定型データ Tamino XML Server Shunsaku Data Manager * WOW64 : (Windows 32-bit On Windows 64-bit)サブシステム上で、 ッ 32ビ トアプリケーシ ンと ョ して動作します 企業内には、売上げや在庫などの基幹系情報、メールや掲示板などのコミュニケーション 情報、設計書や議事録、商品情報、品質情報などのドキュメント情報というように、実にさま 品名 機能概要 rstage Application Server アプリケーシ ンサーバ ョ ざまな情報があります。 rstage Studio アプリケーシ ン開発環境 ョ rstage CollaborationRing Data Collection Server ファイル転送を リ ト ガーにしたデータ連携 そして、これら企業内情報の約8割が、コミュニケーション情報やドキュメント情報に代表ANGE XML DOCUMENTS ON THE FLY rstage CollaborationRing File Transfer Integrator 複雑化するサーバ間の連携 される、項目の長さや数が確定できない非定型データだと言われています。 rstage Navigator Server 部門から全社規模までサポートするOLAP mfoware Server データベース nternal high-performance XML parser Core Services Data map (schema container) 特長 1 The core services are basic functional compo- これまで、売上げなどの基幹系情報の中心を占める定型データは、 されてきましたが、非定型データは、 RDBなどを用いて管理 ほとんど管理されてきませんでした。 Stores/indexes XML objects nents immediately available after product 総合カタログ テラバイ ト級の Maps data to RDBMSs, Adabas, etc. installation. しかし、企業価値向上のための情報活用、そして、コンプライアンス対応のためには、定型 n Server erver extensions/triggers 基幹オンライン バッチシステム基盤 ・ 大容量データでも SIPnet リポジ トリ BPM インタラクション マネジメン ・ ト 帳票ソリューション データだけでなく、非定型データも的確に管理していく必要があります。つまり、非定型 arious index types for simple/complex Shunsaku Data Manager 高速検索 Native XML Data Store CollaborationRing データを的確に管理していかなければ、企業活動が成り立たなくなってきているのです。 ネイティブXML DB lements and attributes Studio Accessible via HTTP-based ・ 独自に開発した技術で、 DOM, JDOM,  高速検索を実現 ack up, restore disaster recovery, etc. SAX APIs and SOAP services High availability Storage capacity for the following docu- ■ 非定型データの管理に有効なXML ocal and distributed transactions ments, messages and meta data: この非定型データの管理に効果を発揮するのがXMLです。XMLは柔軟なデータ構造が - Well-formed-, Valid-, Non-XML 採れるため、項目の長さや数が確定できない非定型データを容易に表現できます。しか 長 2mino‘s core enables you to build server Auto-versioning supported via WebDAV 特長 3 もデータ表現形式の国際標準規格であり、すでにデータ交換や蓄積のための基盤技術と ensions and connect external databases. and Subversion して定着してきています。また、XMLであれば、項目の変更やシステムの拡張があって軟なデータ構造 多彩な検索手段 core is augmented by core services and も柔軟に対応できる、情報管理しやすいシステムをつくることができます。 bling services. Query/Text Retrieval Services Tamino XML Server‘s built-in query interpreter provides: ■ テラバイト級のXMLデータでも管理できるXMLデータベース。それが「TX1」ときにデータベース Business Customer ・ 高度な日本語処理技術で、 Extensive W3C XQuery support including 企業内に存在する多種多様な非定型データを管理するには、大量のXMLデータを管理義が不要 Reporting Solutions 多彩な検索手段を提供 updates, cross-collection joins, user-defined できるデータベースが必要です。ステムに似た + Customer Solutions functions, modules, external variables, etc. ル XMLデータベースTX1は、東芝ソリューションが開発した「テラバイト級のXMLデータ Unique, collective searches on data, でも高速に検索できるXMLデータベース」です。エンタープライズクラスのシステムに ore ... です。 Web Services ズを素早く らえ、 DBと External スピーディ Databases ーにビジネスを展開していく meta-data and non-XML data (e.g. 24時間365日の安定 「機敏性」 少ない投資で最大限の効果を生むビジネスの 、 「効率性」 full text) 、 erprise す。 n Services Services (opt.) 適する特長を持つTX1を利用すれば、 大量の非定型データでも的確に管理することができます。 特長 5・ に応える富士通のIT基盤です。 オープン化によ with-in XQuery-embedded もたら り複雑になったシステムの課題を解決し、 最善の答え と確かな効果をfunctions します。 特長 4 ソースを最大限に有効利用し、 Infrastructure for Thesaurus, word stemming, incl. Adabas Processor ビジネスの効率性:ITリ ビジネスの継続性:高信頼 高可用性の技術とノウハウで、 ■ 非定型データやテキストデータの管理に適したTX1 X-Tension 効率的なアプリ & Obj. Service ビジネスの効率性を追求。 ビジネスの継続性を可能に。 シンプルな自律運 24時間365日安定稼働。highlighting phonetic searches andメインフレームで培った技術とノウハウに mposer 能と ま 信頼性の確保 トの削減が可能となります。 より、 し Data/Metadata/non-XML す。 ITリソースのより有効な活用を実現する と と もに、 TX1は、非定型データだけでなく、テキストデータの管理にも適したデータベースです。 ケーション開発 その他 長、拡大を 用と容易なシステム保守で運用コス オープン環境においてミ シ ンク ッ ョ リティ カルなシステムでビジ お客様のIT投資に対して最大限の効果を発揮し ます。 Applications ネスに継続性を ら ます。 もた し Data Map RDBでは格納しづらいデータも的確に管理できます。 chema Native XML vice Data Store 商標または登録商標です。 r 国における登録商標です。 商標であり、 Back Office/ ライ センス供与されている ものです。 Back End 非定型データ ・ データベースに求められる SOAP) れ各社の商標または登録商標です。 ・ XQueryと独自APIでDBを自在に操作 非定型データやテキス ト も商標表示 (TM、R ) を付記しており ません。 データは、TX1向き ます 信頼性を確保 。 http://interstage.fujitsu.com/jp/ ・ Webアプリケーション開発を支援するXWeb ・ さまざまな形式のデータをXMLに変換して  登録するデータ連携機能 数値/文字列 2009.05.30. オープンセミナー@岡山 TX1 全文検索 エンジン テキスト データ中心 データ中心
    8. 8. XML DB問合せ言語• XPath: XML木の節点集合を求める式• XQuery: XPath (2.0) + XML構成機能• SQL/XML: SQLのXML拡張• XML:DB API: XML DB版JDBC • 現時点では微妙…策定元のXML:DB Initiativeが2003年から活動休止? 2009.05.30. オープンセミナー@岡山
    9. 9. XMLのおさらい 2009.05.30. オープンセミナー@岡山
    10. 10. 例:メールFrom: kunishi@example.comTo: hatano@example.com, hijikata@example.comSubject: 講演のお誘いDate: 2008-11-01 17:01:3012/11のSIG WI2研究会で講演します。ぜひ見に来てください!国島丈生 (kunishi@example.com) 2009.05.30. オープンセミナー@岡山
    11. 11. これをXMLで書くと<?xml version= 1.0 encoding= utf-8 ?><mail> <head> <from><address>kunishi@example.com</address></from> <to><address>hatano@example.com</address> <address>hijikata@example.com</address></to> <subject>講演のお誘い</subject> <date>2008-11-01 17:01:30</date> </head> <body> <p>12/11の<a href= http://www.ieice.org/ wi2/ >SIG WI2研究会</a>で講演します。<b>ぜひ見に来てください!</b></p> <address>国島丈生 (kunishi@example.com)</address> </body></mail> 2009.05.30. オープンセミナー@岡山
    12. 12. 用語 要素(element)属性(attribute) 内容(content)<p>12/11の<a href="http://www.ieice.org/ wi2/">SIG WI2</a>で講演をします。<b>ぜひ見に来てください!</b></p>開始タグ(start tag) 終了タグ(end tag) タグ(tag) 2009.05.30. オープンセミナー@岡山
    13. 13. XMLの表す構造=木 mail head body from to subject date p address で講演し address address address 12/11に a b ます。kunishi@ex hatano@ex hijikata@ex 講演の 2008-11-01 SIG WI2 href ぜひ見に来てample.com ample.com ample.com お誘い 17:01:30 研究会 ください! 国島丈生 http://www.ieice.org/~wi2/ (kunishi@example.com) 2009.05.30. オープンセミナー@岡山
    14. 14. XMLの二面性• テキスト文書の記述 • 構造化文書 (structured document)• 不規則な構造を持つデータの記述 • 半構造データ(semistructured data) • 同種の形式:ASN.1, JSON, etc.• 一つのXML中に混在することもある 2009.05.30. オープンセミナー@岡山
    15. 15. テキスト文書の記述<?xml version= 1.0 encoding= utf-8 ?><mail> <head> <from><address>kunishi@example.com</address></from> <to><address>hatano@example.com</address> <address>hijikata@example.com</address></to> <subject>講演のお誘い</subject> <date>2008-11-01 17:01:30</date> </head> <body> <p>12/11の<a href= http://www.ieice.org/ wi2/ >SIG WI2研究会</a>で講演します。<b>ぜひ見に来てください!</b></p> <address>国島丈生 (kunishi@example.com)</address> </body></mail> 2009.05.30. オープンセミナー@岡山
    16. 16. データ構造の記述<?xml version= 1.0 encoding= utf-8 ?><mail> <head> <from><address>kunishi@example.com</address></from> <to><address>hatano@example.com</address> <address>hijikata@example.com</address></to> <subject>講演のお誘い</subject> <date>2008-11-01 17:01:30</date> </head> <body> <p>12/11の<a href= http://www.ieice.org/ wi2/ >SIG WI2研究会</a>で講演します。<b>ぜひ見に来てください!</b></p> <address>国島丈生 (kunishi@example.com)</address> </body></mail> 2009.05.30. オープンセミナー@岡山
    17. 17. ネイティブXML DB vs. XML対応RDB 2009.05.30. オープンセミナー@岡山
    18. 18. ネイティブXML DB XPath 問合せ XQuery XMLXML:DB API etc.XML専用の問合せ言語 XML専用の格納方式 (DOM etc.) 索引などもXML専用 2009.05.30. オープンセミナー@岡山
    19. 19. XML対応RDB XPath 問合せ XQuery XML SQL問合せ XML:DB API etc.XML専用問合せ言語 + SQL/XML通常のSQLでも問合せ可能 XMLを関係に分解して格納 索引etc.はRDBの方式 2009.05.30. オープンセミナー@岡山
    20. 20. XML 関係• XML…入れ子構造、不規則、文書スキー マがあるとは限らない• XMLをいかに関係にマッピングするか? 2009.05.30. オープンセミナー@岡山
    21. 21. DTD(文書型定義)<!ELEMENT mail (head, body?)><!-- mail要素の内容はheadが1個、続いてbodyが0個以上 --><!ELEMENT head (from, to, cc?, subject, date)><!ELEMENT from (address)><!ELEMENT to (address+)><!ELEMENT date (#PCDATA¦(year, month, day))><!ELEMENT body (#PCDATA¦p¦address)*><!ELEMENT p (#PCDATA¦a¦b)*><!-- p要素の内容は文字列、a要素、b要素の0個以上の並び --><!ELEMENT a (#PCDATA)><!ATTLIST a href CDATA #REQUIRED> 2009.05.30. オープンセミナー@岡山
    22. 22. 構造写像文書スキーマを関係スキーマにマッピング 2009.05.30. オープンセミナー@岡山
    23. 23. モデル写像 a (1, 5, 1) ID Name Label Path 1 a (1,5,1) /a 2 b (2,1,2) /a/b(2, 1, 2) b c (3, 4, 2) 3 c (3,4,2) /a/c 4 d (4,2,3) /a/c/d (4, 2, 3) d d (5, 3, 3) 5 d (5,3,3) /a/c/d ラベルの付け方 ・範囲ラベル…(行きがけ順, 帰りがけ順, 深さ) ・Dewey順序…a: 1, b: 1.1, c: 1.2, d: 1.2.1, ... 2009.05.30. オープンセミナー@岡山
    24. 24. XML DB問合せ言語 2009.05.30. オープンセミナー@岡山
    25. 25. XPath//head//address/text()[. != kunishi@example.com ] mail head body from to subject date p address で講演し address address address 12/11に a b ます。kunishi@ex hatano@ex hijikata@ex 講演の 2008-11-01 SIG WI2 href ぜひ見に来てample.com ample.com ample.com お誘い 17:01:30 研究会 ください! 国島丈生 http://www.ieice.org/~wi2/ (kunishi@example.com) 2009.05.30. オープンセミナー@岡山
    26. 26. XPathの(省略)文法例• /mail/head:ルート要素mailの子要素 head• //head//address:文書中のhead要素 の子孫要素address• //a/@href:文書中のa要素のhref属性• //para[@lang= ja ]:属性langが ja で あるようなpara要素 2009.05.30. オープンセミナー@岡山
    27. 27. XPathの本当の形//address/text()[. = kunishi@acm.org ]//descendant::address/child::text()[. = kunishi@acm.org ] ロケーションステップ axis :: nodetest predicate* ・axis:現在着目している節点からの方向(子、 親、子孫、先祖、文書順で前、など) ・nodetest:要素名など ・predicate:節点に関する述語 2009.05.30. オープンセミナー@岡山
    28. 28. XQuery• XPath 2.0 + 結果XMLの構成機能• 静的型付き関数型言語 • でも高階関数はまだ使えなかったり• XML Schemaに基づく型推論機能 • OCaml辺りに影響を受けているらし い 2009.05.30. オープンセミナー@岡山
    29. 29. XMLの例 bib book book year year title author title author authorTCP/IP Stevens Data on Abiteboul Buneman the Web 1994 2000 2009.05.30. オープンセミナー@岡山
    30. 30. FLWOR式for $b in doc(“books.xml”)//booklet $y := $b/@yearwhere $y > “1999” biborder by $b/author book bookreturn $b/author title author year title author author year TCP/IP Stevens Data on Abiteboul Buneman the Web 1994 2000<author>Abiteboul</author><author>Buneman</author> 2009.05.30. オープンセミナー@岡山
    31. 31. 要素構成子<bib>{ for $b in doc(“book.xml”)//book where $b/@year < 2000 return <ttl>{$b/title/text()}</ttl>}</bib> bib book book year year title author title author author<bib> <ttl>TCP/IP</ttl> TCP/IP Stevens Data on the Web Abiteboul Buneman</bib> 1994 2000 2009.05.30. オープンセミナー@岡山
    32. 32. タプルストリームfor $i in (1, 2), $j in (3, 4) ($i = 1, $j = 3), ($i = 1, $j = 4), ($i = 2, $j = 3), ($i = 2, $j = 4) 2009.05.30. オープンセミナー@岡山
    33. 33. XMLの結合for $b1 in doc(“book1.xml”)//book, $b2 in doc(“book2.xml”)//bookwhere $b1/author = $b2/author and $b1/title != $b2/titlereturn <pair>{$b1/title, $b2/title}</pair><pair> <title>The Art of Comp. Prog.</title> <title>TeX Book</title></pair> 2009.05.30. オープンセミナー@岡山
    34. 34. XQuery+テキスト検索for $b in /books/bookwhere $b/title ftcontains (“program” with stemming) ftand “Ruby”return $b/authorprogram with stemming→ program を語幹とする単語( progamming etc.) 2009.05.30. オープンセミナー@岡山
    35. 35. XQuery 1.0の弱点• データ更新機能がない• XQuery Update Facility 1.0…現時点 でW3C勧告候補 • 実装はごく一部のXML DBのみ• XUpdate…XML:DB Initiativeの提案 • XML:DB APIと同じく、現時点では 微妙… 2009.05.30. オープンセミナー@岡山
    36. 36. XQuery Update Facilityinsert node <year>2005</year> after fn:doc(“bib.xml”)/books/book[1]/titledelete node fn:doc(“bib.xml”)/books/book[1]/author[last()]rename node fn:doc("bib.xml")/books/book[1]/author[1] as "principal-author" 2009.05.30. オープンセミナー@岡山
    37. 37. SQL/XML• SQL:2003の拡張機能• XMLデータ型• XMLデータ型→SQLデータ型マッピン グ• XMLデータ型の値の操作…XPath/ XQuery式をSQLに埋め込み 2009.05.30. オープンセミナー@岡山
    38. 38. XML生成 books title year TCP/IP 1990 Database 2000select xmlelement(name “bib”, xmlattributes(year as “year”), xmlforest(title as “title”)) as “books”from books books <bib year=”1990”><title>TCP/IP</title></bib> <bib year =”2000”><title>Database</title></bib> 2009.05.30. オープンセミナー@岡山
    39. 39. XQueryの埋め込みbooks_xml books <bib year=”1990”><title>TCP/IP</title></bib> <bib year =”2000”><title>Database</title></bib>select xmlquery( result ‘for $b in $col return $b/title’ <title>TCP/IP</title> passing books as “col” returning content <title>Database</title> null on empty) as resultfrom books_xml 2009.05.30. オープンセミナー@岡山
    40. 40. XML→関係 books_xml books <bib year=”1990”><title>TCP/IP</title></bib> <bib year =”2000”><title>Database</title></bib> title yearselect result.* TCP/IP 1990from books_xml, Database 2000 xmltable( ‘for $b in $col/bib return $b’ passing books_xml.books as “col” columns “title” varchar(80) path ‘title’, “year” integer path “@year” ) as result 2009.05.30. オープンセミナー@岡山
    41. 41. (勝手な)まとめ 2009.05.30. オープンセミナー@岡山
    42. 42. XML DBの今後?• ネイティブXML DB vs. XML対応RDB • 機能の差は縮まっている • 底力(過去の経験、開発力)の分RDBベン ダのほうが有利?• XML DBはそもそも必要か? • 半構造データのDBとしては…微妙かも • 構造化文書DBのニーズはある(と思う) 2009.05.30. オープンセミナー@岡山
    43. 43. Apache CouchDB• JSON文書のストレー ジ• データアクセス= HTTP REQUEST • pure REST!• MapReduceによる問 合せ • 並列分散処理を意識• Erlangで実装 2009.05.30. オープンセミナー@岡山

    ×