Web教材一覧>
データベース
XMLデータベース
XMLデータベース
XML文書はそれ自体が階層型の構造になっています。XML文書をそのままの構造で格納し、検索、更新、構造変更などを行う機能をもつDBMSをXMLデータベース(XMLDB)といいます。
ネイティブ型とハイブリッド型
XMLデータベースのDBMSは、ネイティブ型とハイブリッド型に大別されます。
- ネイティブ型
- XMLデータを扱うことに特化したもので、特に大量のXMLデータを格納し、高速検索を目的とした構造になっています。
- ハイブリッド型
- 関係データベース(RDB)のDBMSを拡張して、主にRDBデータを使うがXMLデータも併せて使えるようにしたものです。
階層データを2次元データとして格納するには、いくつかの方法があります。
- マッピング法
各テーブルに対してXMLを分解して格納します。出現回数の少ない要素にも一つの列ができますので、格納効率も悪いし、XMLのデータ構造が変わるとテーブルを設計し直す必要があり、XMLの特徴である柔軟性は損なわれてしまいます。
- 階層のまま一つの行に埋め込む方法
格納は簡単ですが、検索加工効率が非常に悪くなります。
以降はネイティブ型を対象にします。
XMLデータベースの特徴
- XMLDBの最大の特徴は、データベースの本体であるXML文書が、人間がそのまま読めること、構造が簡単なこと、項目(タグ)の追加や変更が簡単に理解できることにあります。
- 通常の場合は、ER図やクラス図を作成したり対応関係を吟味したりせずにデータベースを構築できます。逆に言えば、そのようなモデルだけを対象にしています。
- スキーマとしてのDTDはあってもなくてもかまいません。DTDによりデータの型や範囲を設定するなど入力チェックとしても使えます。
- 処理言語は、SQLではなく、Xpath、XQueryを使います。
XPath
XML文書から特定のデータ部分を抽出する機能をもつ言語です。
XPathのXはXMLのこと、Pathは特定のタグに到達する意味です。すなわち、XMLデータベースから指定したタグの親子関係から対象となる要素を探し、その要素の値が与えた条件に合致したとき、それに関連する他の要素をリストとして取り出すという機能です。
- 結果をソートや計算などの加工ができます。
多数の組み込み関数と演算子があります。利用者が関数を定義できます。
forループや再帰などの記述ができます。
- これらの結果をXML、HTML、CSVなど任意のテキストファイルに変換できます。
XQuery
XQueryは、XPathの機能をもちさらに拡張した言語です。
XQueryの代表的な拡張機能にFLWOR式があります。For-Let-Where-Order-Returnの略で、SQLのSELECTと同様な機能をもちます。
XMLデータベースの用途と種類
- 文書管理・検索型
膨大な文書を分類して文書一覧のようなデータベースにします。そして検索エンジンのようなテキスト検索機能をもちます。階層化した分類と全文検索を組み合わせて、効果的な文書の検索が可能になります。
- DOM型
タグによる階層を定義したのがDOMです。DOMの要素(部品とか個数など)の扱いを主とする用途に適したデータベースです。
典型的な例が製造業での部品表です。自動車の部品にはエンジンやタイヤなどの部品があり、それらはさらに細かい部品があります。それらの関係を階層化したデータベースにして、現在庫や発注条件などを属性として持ちます。このデータベースは生産管理の中核的なものになります。
更新を伴わず、データだけを取り出して他のシステムに接続するための用途もあります。代表的なものが受注データです。
業界規格
XML文書、特にDOM型の文書は、受発注データなど企業間でのデータ交換に広く用いられています。それを円滑にするには、データの構造やタグの名称などを標準化しておくことが重要になります。
主な業界標準規格を掲げます。
・ebXML(電子商取引分野)
・XBRL(財務諸表)
・NewsML(新聞。報道機関のニュース配信)
・MML(医療機関の電子カルテ)
・GIS(地図情報)