保存フォーマットとしてのXML
Web上でデータベース・レコードを保存する主な方法として、CSV , XML , hash の3種類が上げられる。より良いシステム構築のためには最適な形式の選択が不可欠である。それぞれの特徴を簡単にまとめてみた。但しここで述べるhash形式とは、DBMなどのシステムを用いてランダムアクセスなファイルに最適化したものを指す。
CSV | XML | hash | |
---|---|---|---|
形式 | 2次元配列 | 階層型 | keyと値の組み合わせ |
データ量 | 最小 | やや多い | 小 |
汎用性 | 極めて高い | 高い | 低い |
探索・解析速度 | 逐次アクセス(遅め) | ツリーを解析(かなり遅い) | ランダムアクセス(最速) |
システム | 単純 | XMLパーサが必要 | 専用のデータ管理システムが必要 |
階層的データの管理 | 2次元レベルまでなら可能 | いくらでも可 | 困難 |
データラベル | レコード名・フィールド名の組み合わせ | ノード名、ノードの位置 | keyのみ |
可読性 | フィールドの意味を把握する必要がある | スキーマを用いて解読できる | 基本的には解読不可 |
それぞれ特徴があり一概に「どれが一番」とは言えないが、ごく簡単なシステムならばわざわざ無理をして XML を採用する必要もないだろう。
しかし例えばあるグループに属するレコードすべてに修正を加えるなどといった作業を頻繁に行う場合は、他の方法では全てのレコードを取り出す必要があるのに対し、適切に構造化されていれば大幅に無駄が削減できる。階層化モデルが生かせるか否かが保存用フォーマット検討の大きな軸になるのではないだろうか。