XML データベース XRel の実装とその評価

Slides:



Advertisements
Similar presentations
XML ゼミ 独習 XML ~ 第 6 章 XHTML~ 6.1 XHTML の概要 6.2 XHTML の構造 谷津 哲平.
Advertisements

SQLエディタによる データベースプログラミング 01. データベースとはデータを1つにまとめて 複数のシステムで共有できるようにしたもの 蔵書管理システム 貸出管理システム 生徒ファイル 生徒番号 学年 クラス 番号 名前 性別 住所 貸出ファイル 貸出番号 図書番号 貸出月 貸出日 蔵書ファイル.
blanco Framework ご紹介 DB版
Accessによるデータベース(1) Ver.1 /11.
MPIを用いたグラフの並列計算 情報論理工学研究室 藤本 涼一.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
データベース構造劣化による OLTP性能低下に関する 一考察
Webサービスに関する基本用語 Masatoshi Ohishi / NAOJ & Sokendai
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
SQLの条件節が動的に構成されることを考慮した データベース接続APIの設計
JPAを利用した RESTful Webサービスの開発
SQLエディタによる データベースプログラミング
実空間ネットワーク ネットワークプログラミング向け資料
NC-2 情報通信基礎実験 WEBデザイン基礎実験 (2日目) 担当:清水,田代 副手:浦辺,石井.
背景 我々の研究室で開発しているJavaプログラム解析フレ ームワークでは,解析情報はメモリ上に保持される 問題点
JavaによるCAI学習ソフトウェアの開発
データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計
早稲田大学大学院理工学研究科 情報科学専攻修士2年 後藤滋樹研究室 坂本義裕
WWW全文検索エンジンVernoにおける 要素構造データベースの設計と実装
SQL J2EE I 第3回 /
卒研:データベースチーム 第4回 DOMを使った処理
3-2.データを取り出す 2004年 5月20日(木) 01T6074X 茂木啓悟.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
Webを利用した授業支援システムの開発 北海道工業大学 電気電子工学科 H 渋谷 俊彦.
セマンティクスを利用した 図書検索システム
第8章 データベースシステムの発展 8.1 オブジェクトリレーショナルデータベース 8.2 分散データベース 8.3 インターネットとデータベース.
ML 演習 第 7 回 新井淳也、中村宇佑、前田俊行 2011/05/31.
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
SGMLについて 2年8組  原口 文晃.
アスペクト指向プログラミングを用いたIDSオフロード
第10回 2007年6月29日 応用Java (Java/XML).
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
第8回 2007年6月15日 応用Java (Java/XML).
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
文字列照合を用いた XMLデータアクセス機構の提案
独習XML 第2章 XML文書の構成要素 2.1 XMLの文字と文字列 2.2 コメント
インラインスクリプトに対するデータフロー 解析を用いた XHTML 文書の構文検証
実行時情報に基づく OSカーネルのコンフィグ最小化
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
コンピュータ概論B ー ソフトウェアを中心に ー #09 データベース (後編)
第2回 2007年4月20日 応用Java (Java/XML).
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
XMLゼミ 1.3 XML文書の表示 1.4 XMLの役割 1.5 XMLとプログラミング M2 正木 裕一.
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
独習XML ~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema
半構造化テキストに対する 文字列照合アルゴリズム
第1章 実世界のモデル化と形式化 3.地物インスタンスの表現
クリアリングハウスと 空間データ交換システムの連携 - メタデータとXML - 平成11年2月10日 (株) NTTデータ 情報科学研究所
アプリケーション依存の先読みが可能なO/Rマッピングツール
XML Schema (1) ソフトウェア特論 第3回 /
サービス指向ルータ向け 問合せ処理用ハードウェアの検討
~let's take fun when you can do it~
XMLゼミ 3.5 DTD M2 正木 裕一.
3-1.文書と構造 3-2.整形式文書と検証済み文書 兒玉 光太郎
ソフトウェア保守のための コードクローン情報検索ツール
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
JavaScriptを含んだHTML文書に対する データフロー解析を用いた構文検証手法の提案
iSeries Site 人事・給与C/S版のハードウェア・ソフトウェア要件
大容量XML文書のデータ更新が 可能なXML編集ライブラリ
独習XML ~第1章 XMLの基礎~ 1.1 XML文書の基礎 1.2 XMLとHTML
オープンソースソフトウェアに対する コーディングパターン分析の適用
Action Method の実装 J2EE II 第9回 2004年12月2日.
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
SQL J2EE I (データベース論) 第3回 /
JSFによるWebアプリケーション開発 第7回
SQL データベース論 第11回.
応用Java(Java/XML) 第8回 2005年6月23日 植田龍男.
Presentation transcript:

XML データベース XRel の実装とその評価 藤井眞吾†, 天笠俊之†, 吉川正俊†,‡, 植村俊亮† † 奈良先端科学技術大学院大学 ‡ 国立情報学研究所ソフトウェア研究系 2002/03/06

研究の背景 XML : データ・文書交換の標準形式として登場 今後 XML 文書が増大し、データベースに蓄積されることが予想 関係データベース (RDB) を用いての実現が有利 RDB を用いた XML 文書の格納・検索手法 XRel の実装とその評価 2002/03/06 DEWS2002

XML およびその関連技術 XML 文書の例 タイトル : XML and Database 著者 : (NAIST) Yamada Taro, (RAIST) Sugita Ziro 要約 : XML stands for Extensible Markup Language <book> <title>XML and Database</title> <authors> <author affiliation=“NAIST”>Yamada Taro</author> <author affiliation=“RAIST”>Sugita Ziro</author> </authors> <summary>XML stands for Extensible Markup Language</summary> </book> 2002/03/06 DEWS2002

XML およびその関連技術 XML 木構造 根ノード 要素ノード 属性ノード book 文字列ノード authors summary 1 属性ノード 2 book 文字列ノード authors summary 3 title 5 12 author author 4 6 9 13 XML and Database XML stands for Extensible Markup Language affiliation affiliation 7 8 10 11 NAIST Yamada Taro RAIST Sugita Ziro 2002/03/06 DEWS2002

XML およびその関連技術 XPath 1.0 経路表現による XML 文書の部分を特定 述語による文書部分の特定も可能 /book/title 述語による文書部分の特定も可能 /book[authors/author=‘Yamada Taro’]/title XQuery, XPointer 等の XML 関連技術 XML データベースは XPath を効率よく扱えることが望ましい 2002/03/06 DEWS2002

XRel (1/3) XRel の概要 XRel : 関係データベースを用いた XML 文書の格納・検索手法 XPath を効率よく扱うことが可能 関係スキーマは文書型定義と独立している (汎用性) 既存の RDBMS を拡張する必要がない 2002/03/06 DEWS2002

XRel (2/3) 格納 Text Element Path Attribute (文書ID, 経路ID, 始め, 終わり, 値) (1, 2, 16, 31, XML and Database) (1, 4, 84, 94, Yamada Taro) (1, 4, 136, 146, Sugita Ziro) (1, 6, 181, 221, XML stands for …) Path (経路ID, 経路表現) (1, #/book) (2, #/book#/title) (3, #/book#/authors) (4, #/book#/authors#/author) (5, #/book#/authors#/author#/@affiliation) (6, #/book#/summary) Element (文書ID, 経路ID, 始め, 終わり) (1, 1, 0, 240) (1, 2, 9, 39) (1, 3, 43, 168) (1, 4, 56, 103) (1, 4, 108, 155) (1, 6, 172, 231) Attribute (文書ID, 経路ID, 始め, 終わり, 値) (1, 5, 57, 57, NAIST) (1, 5, 109, 109, RAIST) 2002/03/06 DEWS2002

XRel (3/3) 検索システム User, Application XPath System XPath2SQL 変換器 SQL RDB XML 文書 2002/03/06 DEWS2002

XRel の実装および応用例 (1/3) XPath 式から SQL 問合せ式への変換モジュール(1/2) getXPath( ) XPath XPath QueryGraph getQueryGraphExp( ) XPathCore Graph XPathCore Graph SQL getSQL( ) Generate SQL SQL 2002/03/06 DEWS2002

XRel の実装および応用例 (2/3) XPath 式から SQL 問合せ式への変換モジュール(2/2) SELECT e2.docID, e2.start e2.end FROM Element e0, Path p0, Text t1, Path p1, Element e2, Path p2 WHERE p0.pathexp LIKE ‘#/book’ AND e0.pathID = p0.pathID AND P1.pathexp LIKE ‘#/book#/authors#/author’ AND t1.pathID = p1.pathID AND t1.value LIKE ‘Yamada Taro’ AND e0.docID = t1.docID AND e0.start < t1.start AND e0.end > t1.end AND p2.pathexp LIKE ‘#/book#/title’ AND e2.pathid = p2.pathid AND e0.docID = e2.docID AND e0.start < e2.start AND e0.end > e2.end ORDER BY e2.docID, e2.start, e2.end /book[authors/author=‘Yamada Taro’]/title /book/tilte e2 /book A0 包含関係 文書 ID 開始位置 終了位置 A1 e0 t1 P00 [authors/author=‘Yamada Taro’] 2002/03/06 DEWS2002

XRel の実装および応用例 (3/3) シェイクスピア戯曲の検索システム Jon Bosak によるシェイクスピアの戯曲集 37 文書 ファイルの大きさ (Total) : 7.65 MB 使用法 XPath 式を入力 XPath 式を SQL 問合せ式に変換 (XPath2SQL) データベースに問合せ 結果の表示 2002/03/06 DEWS2002

Xmark XML データベースの性能評価指標 Xmark : XML Benchmark Project 規模変更可能な (scalable) 文書データの生成 ハードウェアや OS 等の環境によらず、同一の XML 文書が生成 XQuery による問合せ集合の提供 XML データベースとしての検索能力を評価するために 20 の問合せを用意 今回の実験では 20 のうち 15 の問合せを行った 2002/03/06 DEWS2002

XRel の性能評価 (1/6) 実験環境 実験環境 比較対象 : XML Query Engine (XQEngine) CPU : Pentium 4 (1.8 GHz) メインメモリ : 1 GB OS : MIRACLE LINUX Version 2.0 データベース : Oracle 9i 文書サイズ : 約 1.2 Mバイト (1161652 バイト) 比較対象 : XML Query Engine (XQEngine) Java により記述 XPath, XQL, XQuery による問合せが可能 Xmark で用意された 20 の問合せのうち 6 つを実行可能 2002/03/06 DEWS2002

XRel の性能評価 (2/6) 実験結果 2002/03/06 DEWS2002

XRel の性能評価 (3/6) XRel 単独の考察 (1/3) 得意な問合せ 指定する経路数が少ない : Q2, 6, 15, 18 条件に文字列照合を有する : Q1, 4, (14) 条件に順序節を有する : Q2, (3) 検索結果の表示コストが小さい : Q6, 7 結果の表示順序が拘束されていない 不得意な問合せ 指定する経路数が多い : Q3, (4), 8, 9, 14 条件に文字列の比較を有する : Q3, 8, 9 指定する経路に「//」を有する : Q(6, 7), 14, 19 結果の表示順序が拘束される 2002/03/06 DEWS2002

XRel の性能評価 (4/6) XRel 単独の考察 (2/3) 得意な問合せ : Q1 「ID が ‘person0’ である人の名前を返す」 FOR $b IN document(“auction.xml”)/site/people/person/[@id=“person0”] RETURN $b/name/text() 条件に文字列照合を有する 2002/03/06 DEWS2002

XRel の性能評価 (5/6) XRel 単独の考察 (3/3) SELECT t2.value FROM Element e0, Path p0, Attribute a1, Path p1, Text t2, Path p2 WHERE p0.pathexp LIKE ‘#/site#/people#/person’ AND e0.pathID = p0.pathID AND P1.pathexp LIKE ‘#/site#/people#/person#/@id’ AND a1.pathID = p1.pathID AND a1.value LIKE ‘person0’ AND e0.start < a1.start AND e0.end > a1.end AND p2.pathexp LIKE ‘#/site#/people#/person#/name’ AND t2.pathid = p2.pathid AND e0.start < t2.start AND e0.end > t2.end ORDER BY t2.start; /site/people/person /site/people/person/name e0 A0 A1 t2 a1 P00 [@id=‘person0’] 2002/03/06 DEWS2002

XRel の性能評価 (6/6) XRel と XQEngine との比較 2002/03/06 DEWS2002

まとめ まとめ XRel の移植性 XRel の性能 問合せ変換モジュールの実装 変換モジュールを利用した応用システム 問合せには得意不得意がある XML 検索システム XQEngine に対する高性能性 2002/03/06 DEWS2002

今後の課題 今後の課題 XRel では XML 文書の要素や属性に関する情報を「ファイルの先頭からのバイト数」で格納 文書内容の更新により「先頭からのバイト数」がずれるため、データを関係データベースへ格納しなおす必要 文書内容の更新があった場合でも、格納しなおす箇所を最小限にするようなシステムの実現 XQuery 式を SQL 式に機械的に変換する手法の考案 2002/03/06 DEWS2002

発表の流れ 研究の背景 XML およびその関連技術 XRel XRel の実装および応用例 XML データベースの性能評価指標 Xmark まとめ 今後の課題 2002/03/06 DEWS2002

Q2 得意な問合せ : Q2 「すべての開催中の競売 (open_auction) の初期の増加 (increase) を返す」 FOR $b IN document(“auction.xml”)/site/open_auctions/open_auction RETURN <increase> $b/bidder[1]/increase/text() </increase> 指定する経路数が少ない 順序節を有する 2002/03/06 DEWS2002

Q2 e0 A1 t1 A0 P00 [1] /site/open_auctions/open_auction/bidder /site/open_auctions/open_auction/bidder/increase e0 A0 A1 t1 SELECT ‘<increase>’||t1.value||’</increase> FROM Element e0, Path p0, Text t1, Path p1 WHERE p0.pathexp LIKE ‘#/site#/open_auctions#/open_auction/bidder’ AND e0.pathID = p0.pathID AND e0.index = 1 AND P1.pathexp LIKE ‘#/site#/open_auctions#/open_auction/bidder#/increase’ AND t1.pathID = p1.pathID AND e0.docID = t1.docID AND e0.start < t1.start AND e0.end > t1.end ORDER BY t1.start; P00 [1] 2002/03/06 DEWS2002

Q6 得意な問合せ : Q6 「すべての大陸どれだけの物品 (item) があるか」 指定する経路数が少ない 検索結果の表示コストが小さい FOR $b IN document(“auction.xml”)/site/regions RETURN COUNT ($b//item) 指定する経路数が少ない 検索結果の表示コストが小さい SELECT COUNT(*) FROM Element e0, Path p0 WHERE p0.pathexp LIKE ‘#/site#/regions#%/item’ AND e0.pathID = p0.pathID; /site/regions//item e0 A0 2002/03/06 DEWS2002

Q9 不得意な問合せ : Q9 「人の名前とヨーロッパで買った物品のリスト」 指定する経路数が多い 文字列の比較を有する FOR $p IN document(“auction.xml”)/site/people/person LET $a := FOR $t IN document(“auction.xml”)/site/closed_auctions/closed_auction LET $n := FOR $t IN document(“auction.xml”)/site/regions/europe/item WHERE $t/itemref/@item = $t2/@id RETURN $t2 WHERE $p/@id = $t/buyer/@person RETURN <item> $n/name/text() </item> RETURN <person name=$p/name/text()> $a </person> 指定する経路数が多い 文字列の比較を有する 2002/03/06 DEWS2002

Q9 t8 A1 e0 A0 a1 e5 A0 t7 Pa0 A1 Pa1 a6 Pb0 a3 a4 Pb1 e2 B0 /site/people/person/name /site/people/person t8 A1 e0 A0 /site/regions/europe/item a1 e5 /site/regions/europe/item/name A0 /site/people/person@id Pa0 t7 A1 /site/regions/europe/item/@id Pa1 a6 /site/closed_auctions/closed_auction/buyer/@person Pb0 a3 Pb1 a4 e2 /site/closed_auctions/closed_auction/itemref/@item B0 /site/closed_auctions/closed_auction 2002/03/06 DEWS2002

XRel の性能評価 XRel 単独の考察 得意な問合せ 不得意な問合せ 指定する経路数が少ない 指定する経路数が多い -> 表の結合 (join) 回数が少ない 条件に文字列照合を有する、条件に順序節を有する -> 結合される表の組が絞られる 検索結果の表示コストが小さい 結果の表示順序が拘束されていない -> 整列 (sort) が不要 不得意な問合せ 指定する経路数が多い -> 表の結合回数が多い 条件に文字列の比較を有する -> 文字列同士の比較による表の結合 指定する経路に「//」を有する -> wildcard (%) を用いた文字列照合と表の結合の組合せ 結果の表示順序が拘束される -> 整列が必要 2002/03/06 DEWS2002