- PR -

XML文書読み取り専用ならば、データベースは必要ですか?

1
投稿者投稿内容
horiaki
会議室デビュー日: 2001/12/25
投稿数: 11
投稿日時: 2002-10-19 18:17
お世話になります。
早速ですが、XMLデータベースの購入を考えていますが、RDBとは違い、XML文書の読み取り専用の為にだけ使うならば、データベースは必要でしょうか、疑問に思っています。例えば、cドライブ下のフォルダにそのまま格納して、それぞれを、SAXなりDOMなりを駆使して、検索することは十分可能です。
書き込みが発生する場合は、ファイルのロックとかいろいろあり、DBは必要だとは思います。

以上、初歩的な問題だとは思いますが、真剣に悩んでいます。
どう思われますか?
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2002-10-20 00:53
要求性能によります。
指定要素のインデックスを保持して XPath とは比較にならない
スピードをうたうのもありますし。

100MeBのXMLファイルを SAX で検索しても、何秒かかかります。
DOMならその数倍のメモリーが必要です

必要になってから導入をしても、いいです、全体の仕組みは
大変更にはなりません。
horiaki
会議室デビュー日: 2001/12/25
投稿数: 11
投稿日時: 2002-10-20 08:56
MMXさん
早速のご意見ありがとうございます。
要は、あとは、効率・スピードの問題ということですね。
安心しました。

ところで、今、サーバーサイドで、XMLデータを検索する事を考えているのですが、SAXだと時間がかかりすぎるので、DOMを使おうかと思っていますが、そのメモリの消費量を考えると、非現実的な発想でしょうか? アクセス人数が数人で精一杯というところでしょうね。この点こそ、専用のDBを導入すると解決できるのでしょうね。

再度検討してみます。


masaki
常連さん
会議室デビュー日: 2001/12/10
投稿数: 26
投稿日時: 2002-10-20 17:42
引用:

例えば、cドライブ下のフォルダにそのまま格納して、それぞれを、SAXなりDOMなりを駆使して、検索することは十分可能です。



これだと目的のノードを探し出すのに、1つ1つファイルを開いていくことになりませんか?
もしCドライブ下のフォルダに1000ファイルあったら、最悪の場合1000ファイル目のopenでやっと目的にノードに辿り着く・・・という可能性もありますよ。
(ファイルシステムをニ分木検索する仕組みが作れるなら話は別ですが)
あくまでもファイル数が多ければ、の問題ですが。(10ファイルくらいなら余裕かも)

引用:

SAXだと時間がかかりすぎるので、DOMを使おうかと思っていますが、そのメモリの消費量を考えると、非現実的な発想でしょうか?



これもメモリ上に展開するデータ件数次第だと思います。
XPathで取得される件数がかなり絞り込めるのであれば使うのも問題ないかと。
一度DOMで作ったコードをSAXに修正するのは大変だと思うので、両者の特性を見極めた上で判断したほうがいいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)