XMLデータベース は、データをXML形式で指定および保存できるデータ永続化ソフトウェアシステムです。このデータは、クエリ、変換、エクスポート、および呼び出し元システムへの返却が可能です。XMLデータベースは、ドキュメント指向データベースの一種であり、ドキュメント指向データベースはデータベースの一種です。
XMLデータベースとしてデータをXML形式で保存する理由には、次のものがあります。[ 1 ] [ 2 ]
企業には、類似したデータを含む多数のXML文書が存在する可能性があるが、それらは異なるXML形式で分散している。これらのデータを単一の標準化されたXMLデータベース構造に統合することで、互換性の問題を回避できる。 データはXMLとして公開または取り込まれる必要があるため、リレーショナルなどの別の形式を使用すると、データの二重モデリングが発生します。 XMLは、データの解析、深くネストされたデータ、および混合コンテンツ(埋め込みマークアップタグを含むテキストなど)の処理に非常に適しています。 XMLは人間が読みやすいが、リレーショナルテーブルはアクセスするのに専門知識が必要だ。 メタデータは 多くの場合XML形式で利用可能ですセマンティックウェブデータはRDF /XML形式で利用可能です。 オブジェクトリレーショナルインピーダンスミスマッチ の解決策を提供する[ 3 ] データ転送 層におけるXML使用との互換性
XML対応データベース XML対応データベースは通常、従来のリレーショナル構造内にXMLを格納するために、以下のいずれかの方法を提供します。
XMLはCLOB(文字ラージオブジェクト )に格納されます。 XMLはスキーマ[ 4 ] に基づいて一連のテーブルに「細断」されます。XMLはISO規格9075-14 [ 5 ] で定義されているネイティブXML型に格納されます。ISO XMLタイプをサポートするRDBMSは以下のとおりです。
IBM DB2 (pureXML [ 6 ] ) Microsoft SQL Server [ 7 ] Oracleデータベース[ 8 ] PostgreSQL [ 9 ] 一般的に、XML対応データベースは、データの大部分が非XML形式である場合に最適です。一方、データの大部分がXML形式であるデータセットの場合は、ネイティブXMLデータベースの 方が適しています。
IBM DB2 SQLにおけるXML型クエリの例 select id , vol , xmlquery ( '$j/name' , passing journal as "j" ) as name from journals where xmlexists ( '$j[licence="CreativeCommons"]' , passing journal as "j" )
ネイティブXMLデータベース ネイティブ XML データベースは、特に XML データを扱うために設計されています。XML を大きな文字列として管理するのは非効率的であり、また XML の階層構造のため、ストレージとクエリにはカスタム最適化されたデータ構造が使用されます。これにより、読み取り専用クエリと更新の両方のパフォーマンスが向上します。[ 10 ] XML ノードとドキュメントは、リレーショナル データベース にフィールドと行があるのと同様に、(論理的な) ストレージの基本単位です。ただし、ネイティブ XML データベースは、XML 対応データベースよりもデータとインデックスの両方を保存するために多くのディスク容量を必要とします。ネイティブ XML データベースのサイズが大きくなるにつれて、ストレージの必要性はほぼ指数関数的に増加します。[ 11 ]
W3C勧告によるXMLデータのクエリの標準はXQuery であり、最新バージョンはXQuery 3.1です。[ 12 ] XQueryにはサブ言語としてXPath が含まれており、XML自体もXQueryの有効なサブ構文です。XPathに加えて、一部のXMLデータベースは、データベースから取得したドキュメントやクエリ結果を変換する方法としてXSLT をサポートしています。
参考文献 ↑ Nicola, Matthias (2010年9月28日). 「XMLをデータベースに保存する5つの理由」 . Native XML Database . 2015年3月25日のオリジナルからアーカイブ済み。2015年3月17日 取得。 ↑ フェルドマン、デイモン (2013 年 4 月 11 日)。 リレーショナル モデリングから XML および MarkLogic データ モデルへの移行 。MarkLogic World。2015 年 3 月 17 日 取得 。 ↑ [NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison-Wesley Educational Publishers Inc, 2009] ISBN 978-0321826626 ↑ 「XMLスキーマの保存とクエリ:基本」 。Oracle XML DB開発者ガイド、 10g リリース2。Oracle Corporation。2005年8月。 2015年 3月17日 取得 。 XMLスキーマに基づいてXML型テーブルと列を作成するセクション↑ 「ISO/IEC 9075-14:2011: 情報技術 -- データベース言語 -- SQL -- 第 14 部: XML 関連仕様 (SQL/XML)」 。 国際標準化機構 。2011 年。2015 年 3 月 17 日 取得 。 ↑ 「pureXML の概要 - XML データベースとしての DB2」 。IBM Knowledge Center。IBM。2015 年 3 月 17 日 取得 。 ↑ 「SQL Server での XML の使用」 。Microsoft Developer Network。Microsoft Corporation。2015 年 3 月 17 日 取得 。 ↑ 「XMLType 操作」 。Oracle XML DB 開発者ガイド、 10g リリース 2。Oracle Corporation。2005 年 8 月。2015 年 3 月 17 日 に取得 。 ↑ 「8.13. XML型」 . PostgreSQL 9.6ドキュメント. 2017年 4月1日 取得 . ↑ Matthias, Nicola (2010年8月22日). 「XMLとリレーショナルデータベースのパフォーマンス比較」 . Native XML Database . 2017年3月4日の オリジナルからアーカイブ済み 。 2017年 6月28日 取得。 ↑ Balamurugan, S (2017年5月). 「ネイティブXMLデータベースとXML対応データベースのパフォーマンス評価」 (PDF) . International Journal of Advanced Research in Computer Science and Software Engineering . 7 (5): 1– 10. ↑ 「XQuery 3.1 勧告」 。2017-03-21。