profaim  >  profaim.base 技術資料  >  基本仕様  >  XML+CSV データ管理

XML+CSV データ管理

Write : 2005/12/30

profaim.base 概論

データの管理方式

profaim.base では基本的なデータの管理を XML と CSV で行っています。本来データ管理といえば、MySQL や Oracle 、 SQL Server といったデータベース管理システム(DBMS)を使用するのが一般的です。なぜかというと DBMS はデータ管理に最適化されたソフトウェアであるため、膨大なデータの中から目的のデータを選択したり、修正したりという作業が簡単に行えるからです。しかしながら profaim.base では DBMS は使用せずに XML と CSV というテキストベースのデータファイルを用いて管理を行います。

ではなぜ XML と CSV なのか

まず第一に PHP4 が利用できる全てのレンタルサーバで DBMS 環境が利用できるかわからないという理由です。 XML や CSV であればただのテキストファイルなので環境を選ばないという利点があります。

つぎに DBMS を使用した場合、中にどのようなデータがあるか一目でわからないためです。DBMS ではシステムが効率良くデータを管理できるようにデータが管理されています。もしデータを見たいと思ったら DBMS に対してデータを選択するコマンドを実行して初めてどのようなデータが登録されているかを知ることができます。これはサイトを気軽に運営しようとしたときに結構な負担になると思います。XML や CSV であればただのテキストファイルなので、どのようなデータが登録されているかを見るのは比較的容易です。

DBMS を使用しないことの欠点

データベースをテキストベースの XML と CSV にしたことで、サイト管理者には優しくなりましたが、システムにとってはさまざまな制約が発生することになりました。ユーザ側に立てばシステム側が辛く、システム側に立てばユーザ側が辛くなるのは仕方ありません。

たとえばパフォーマンス。DBMS を利用していればいつでも取り出せるところまでデータが準備されているので要求に応じて即時にデータを取得することができます。ところが XML や CSV では、その都度ファイルを読み込んでどのようなデータが格納されているかを調べ要求に応じたデータを特定する必要があるためデータベースアクセスが増加すればするほどパフォーマンスは犠牲になります。

また DBMS はその特性上、非常に柔軟なデータの取得が行えます。ある条件で絞り込んだり、並び替えたり、集計したりと SQL という1つのコマンドを送るだけで目的のデータが取得できるわけです。

DBMS を使用しないことで、データ検索のパフォーマンスの悪化だけでなく、 profaim.base システム構築の負担増加という欠点が発生しています。

DBMS を使用しないことの利点

システム開発関係者の立場から言えば DBMS を使用しないことの利点はないと思っています。しかし profaim.base を個人が小規模なホームページ作成のために利用すると考えればさまざまな利点があると思います。

1つは XML や CSV ファイルは編集が簡単という点です。XML や CSV であればファイルを開いて該当箇所を変更して保存とストレスなく行えます。以前 profaim.jp ウェブサイトを作成していたときは MySQL を使用してメニューやリンクなどの管理をしていました。メニューの表示名称を変更することがよくありましたが、その都度管理ページを開いてデータを呼び出して横に長いから横スクロールして変えたい場所を変えて保存・・と一文字変えたいだけなのに結構時間がかかっていました。

2つ目はバックアップの容易さです。XML や CSV であればファイルをコピーすればバックアップは完了です。つけ加えれば profaim.base の場合、データはすべて profaim.base.data か profaim.web.data という名前のディレクトリに配置する仕様なのでこの2つのディレクトリをコピーすればバックアップは完了です。DBMS では種類によって異なりますが内部データのダンプファイルを取得しなければいけません。

3つ目はバックアップの安心感です。XML や CSV であれば、バックアップしたファイル を開いてみれば正しくバックアップが取得されていることがわかります。戻すときも単純にコピーするだけで良いのもわかりやすく安心です。多くの DBMS のようにバックアップファイルがデータのダンプファイルでは、単純に開いただけではデータもわかりません。はたして問題が発生した時にこの中身もわからない1コのファイルで元に戻せるかと考えると不安です。実際は簡単に戻るものなのですが・・・

XML によるデータ構造と CSV による内部データ管理

以上の理由から profaim.base では 比較的不利な XML と CSV によるデータ管理方式を採用しています。DBMS で言うところのテーブル形式に近づけられる様、XML でデータ構造の定義、CSV で内部データの管理を行っています。


関連資料
1 関連記事 profaim.base では DBMS は使用しないのか