Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

XMLデータベースについて

  • Login to see the comments

XMLデータベースについて

  1. 1. XMLデータベースについて 2013/3/21 株式会社ユーザベース 川口浩司
  2. 2. 自己紹介• 川口 浩司(かわぐち こうじ)• ユーザベースには2011年10月に入社 主にSPEEDA画面の開発(Java)を担当• 前職は独立系のSIer – Webやインターネット系の中規模システムや、最近では携 帯電話のソフト開発を経験 – 自社製品のXMLデータベースの開発を担当 – XMLコンソーシアムにて、各社のXMLデータベース調査や、 他ベンダーとの普及活動も行う• Facebook http://www.facebook.com/k.kawag – 「今日の青山ランチ」をたまに掲載 1
  3. 3. XMLとは• Extensible Markup Language(拡張可能なマー ク付け言語)• 1998年2月10日、 World Wide Web Consortium (W3C) より、 XML 1.0 が勧告された。• 最新版は以下 – XML 1.0 Fifth Edition(2008/11/26) – XML 1.1 Second Edition (2006/8/16) 2
  4. 4. XMLとは• 構造化データを記述するためのデータ形式 – マークアップ言語 – 親子関係、階層構造 – 順序、繰り返し、省略 – 要素、属性などを自由に定義可能• システム間のデータ交換での使用を意図 – テキスト形式、エンコーディング宣言• APIやライブラリなどが整備されている – Parser、DOM、SAX、Validation機能、Data Binding 3
  5. 5. 拡張可能とは• 構造の拡張 – 要素や属性の追加• スキーマの組み合わせ – 複数のスキーマを組み合わせて使用可能 – 名前空間• 規格の拡張 – XML Schema、XSL、XPath、SOAPなどの周辺規格 – XHTML、RSS、XBRL、WSDL、Open XMLなどの応用 4
  6. 6. XMLをRDBに入れる方法①XMLを文字列のまま、カラムに格納する id time data 1 2013/3/21 13:10 <input> <name>鈴木</name> <lunch> <item>おにぎり</item> <item>からあげ</item> </lunch> </input> 2 2013/3/21 13:20 <input> <name>佐藤</name> <lunch> <item>おにぎり</item> <item>おにぎり</item> <item>おにぎり</item> </lunch> </input> 3 2013/3/21 13:30 <input> <name>田中</name> <lunch> <item>たこやき</item> </lunch> </input> – 部分的な取得、更新が出来ない – 検索時、1件ずつXMLをparse、たどる必要がある 5
  7. 7. XMLをRDBに入れる方法②要素や属性をテーブルやカラムにマッピング id time name lunch1 lunch2 lunch3 1 2013/3/21 13:10 鈴木 おにぎり からあげ 2 2013/3/21 13:20 佐藤 おにぎり おにぎり おにぎり 3 2013/3/21 13:30 田中 たこやき – データ構造が固定される – マッピング用のプログラムが毎回必要 – 要素や属性の値での検索や取得は可能 6
  8. 8. XMLをRDBに入れる方法③要素名や属性名、親子・兄弟関係などの情報に分解して格納する id time element_id element_name text parent_id sibiling_id 1 2013/3/21 13:10 1 input 1 2013/3/21 13:10 2 name 鈴木 1 1 2013/3/21 13:10 3 lunch 1 2 1 2013/3/21 13:10 4 item おにぎり 3 1 2013/3/21 13:10 5 item からあげ 3 4 2 2013/3/21 13:20 6 input 2 2013/3/21 13:20 7 name 佐藤 6 2 2013/3/21 13:20 8 lunch 6 7 2 2013/3/21 13:20 9 item おにぎり 8 2 2013/3/21 13:20 10 item おにぎり 8 9 2 2013/3/21 13:20 11 item おにぎり 8 10 3 2013/3/21 13:30 12 input 3 2013/3/21 13:30 13 name 田中 12 3 2013/3/21 13:30 14 lunch 12 13 3 2013/3/21 13:30 15 item たこやき 14 – 特定の要素や属性を取得するために、要素ごとにレコー ドをたどっていく必要がある 7
  9. 9. XMLデータベース• XMLデータを直接扱う機能を持つデータベース• ハイブリッドXMLデータベース – RDBにXMLデータ対応機能を付加 – リレーショナルデータとXMLを同時に扱うことが可能 – DBの構成や操作(API)などはRDBの拡張• ネイティブXMLデータベース – XMLデータ専用 – DBの構成や操作(API)などもXMLに特化 8
  10. 10. ハイブリッドXMLデータベース• カラムのデータ型にXML型を追加• SQLの中でXPathやXQueryを使用して、XMLの特定 の要素等を指定した取得、検索、更新などが可能• XMLの特定の要素にインデックスを指定• DBMSの機能は基本的にそのまま使用可能• 製品例 – Oracle「Oracle 9i R2」 – Microsoft「SQL Server」 – IBM「DB2 9」pureXML – 日立「HiRDB V8」XML Extension 9
  11. 11. ネイティブXMLデータベース• RDBのようなテーブルではなく、ファイルシステムに XMLファイルを格納していくイメージ• XPathやXQueryを使用して、XMLの要素等を指定し た取得や更新を行ったり、検索を行う• JDBCのような標準APIはなく、各製品が独自のAPIを 提供• 任意のXMLを格納可能で、インデックスを定義しなく ても、任意の条件で高速に検索• データの格納形式や検索方法など、各製品ごとに 工夫して差別している 10
  12. 12. ネイティブXMLデータベース• 製品例 – サイバーテック「Cyber Luxeon」(eXcelon) – Software AG「Tamino XML Server」 – メディアフュージョン「EsTerra」(Ygdrasill) – セック「Karearea」 – サイバーテック「NeoCoreXMS」 – 富士通「Interstage Shunsaku Data Manager」 – 東芝ソリューション「TX1」 11
  13. 13. XMLデータベースの課題• 遅い、難しい、大量データが扱えない(第一世代) ⇒速い、簡単、テラバイト級(第二世代)• XML自体が難しい上に、XMLデータベースも独自仕様であり、 敷居が高い• 情報が十分公開されていない• プログラミングやチューニングなどでノウハウが必要• DBMSとしての保守機能や安定性、拡張性、実績不足• RDBとネイティブXMLを両方導入するメリットが少ない• XMLデータを扱う場合でも、RDBで事足りることがほとんど• MySQLやPostgreSQLのような、フリーで高機能、実績もある XMLデータベースが存在しない 12
  14. 14. XMLデータベースの今後• XMLは完全に普及してはいるが、コンテンツやデータ交換用 のフォーマットとしての利用がほとんどであり、大量の蓄積 データを柔軟に検索する用途は多くない• データベースとしては依然としてRDBが主流であり、XMLを扱 うしてもRDBで事足りることがほとんど• XMLデータベースが大量データに対応していると言っても、 実際に何千万件、何億件というデータを入れようとすると、並 列環境などの複雑な構成になり、価格が跳ね上がったりする• 一見簡単なようだが、機能が不足していて、自分で作り込ん で実現する必要があったり、内部まで熟知していないと十分 チューニングが出来なかったりする• クラウド、NoSQLなどが台頭している中、棲み分けに期待 13

×