XMLデータベース開発方法論(3) Page 4/4

変化は抱擁せざるを得ない、しかも禁欲的に


川俣 晶
株式会社ピーデー
2005/8/19

XMLデータベースを使うべき条件

 さて、連載前半(第1〜3回)の結論である。

 筆者は、XMLデータベースが適するか否かに強く関係する条件が「規模」と「変化」にあると考えている。このような考え方が正しいか否かは、XMLデータベースを用いた実績が少ない現状ではまだ分からない。しかし、さほど大きく外してはいないだろう、という楽観的な見通しを持っている。

 ここで1つの疑問があり得るかもしれない。XMLといえば不定型のデータを記述できることが特徴であり、もちろんXMLデータベースにもそれが求められている。では、扱うデータが定型であるか、不定型であるかは、XMLデータベースが適する条件と直接関係がないのだろうか? 無関係であるとは思わないが、実は変化のない不定型のデータはRDBでも問題なく扱うことができると考えている。つまり、どれほど不定型のデータであろうとも、一切の変化というものが存在しなければそれを正規化しRDBに格納することは可能だと思う。もちろん、正規化によって似ても似つかぬ姿に構造が変わってしまうことを望まないという理由によって、RDBを使いたくないというニーズはあるかもしれない。しかし、それはRDBでも処理できる事例であり、絶対にXMLデータベースでなければならない条件とはいえない。やはり、XMLデータベースであるべき決定的な必然性は「不定型」よりも「変化」にあると思う。

 縦軸に「規模」を、横軸に「変化」を置いて、個々の技術がどの領域に適するかを模式的に描いてみた(図8)。これは、あくまで直感的に概念を把握するためのもので、何かを厳密な意味で表現したものではないことをお断りしておく。

図8 XMLデータベースが適する領域

 図8は、この連載の3回分の「知」を要約したものではあるが、多くを要約しすぎて読み方が分からねば活用できない難点がある。そこで、読み方を詳しく説明しよう。

 まず、縦軸の「規模」は、データベースの規模が大きいか小さいかを示す。ただし、どこまでが大であり、どこからが小であるかは、ハードウェアや利用者、システムのアーキテクチャによって変化するものであり、あまり明りょうな区別はできない。しかし、規模が変わると明らかに性質が変わるポイントは存在し、分類を試みることは可能だと思う。ここでは、規模を3段階に分けている。あいまいであるため図中には示していないが、中間の段階を「中」と称するなら、大中小の3段階に分類している。

 次に横軸の「変化」は、データの構造がどの程度の変化にさらされるかを示す。これも、「規模」と同様に明確に数値化して区別することはできないが、確かに性質が変わるポイントは存在すると感じる。ここでは、変化のない領域を「秩序」、とりとめなく何もかも変わり続ける領域を「混沌」と表記している。その中間領域は、本文中では「カオスの縁」とも呼んでいるが、「カオスの縁」とは複雑系科学の用語であり、明確な定義なしで使うことはためらわれる。そこで、ここでは便宜的に「禁欲的な変化領域」と呼ぶことにしよう。

 図中にはいくつかのキーワードが書き込まれている。RDBはその名のとおりRDB(リレーショナル・データベース)、XMLDBはXMLデータベース、XMLは通常のテキスト形式のXML文書、TEXTはAWKを代表例とするテキストファイル、ANYは特に限定はせずどれを用いてもよいこと、そしてN/Aは該当なしを示す。そして、複数の名前が列記されたものは、どちらも同程度に適すると考えられるもの。カッコの付いた(XMLDB)のような表記は、最適ではないがそれしか選択候補がないことを示す。

 これらの組み合わせを順番に見ていこう。まず、秩序(変化がない)の領域である。規模が大きい場合は、もちろんRDBが適する。XMLデータベースは、RDBと比較してやや性能面で見劣りすることが多く、XMLデータベースでは処理できないがRDBなら処理できる規模の事例でXMLデータベースを持ち出す意味はまったくない。しかし規模が中になると、XMLデータベースでも問題なく処理可能になる。変化のないデータベースをXMLデータベースで扱うことは問題ないので、RDBとXMLデータベースのどちらを採用しても大差ない状況になる。さらに、規模が小さくなれば、それこそどのような技術を用いても、問題なく処理可能になり、優劣を論ずる意味のない領域となる。そこで、この領域はANYと表記した。

 次に、混沌の領域を見ていこう。混沌の領域とは、データを系統立てて整理する規範がなく、常に変化にさらされ続ける領域である。このようなデータであっても、処理したいというニーズはあり、実際に処理できる。連載第1回で紹介したAWKによる使い捨てデータ処理などは、まさにそれに該当する。このような性質のデータが、小さな規模の場合は、TEXTと表記したとおりテキストファイルとして記述し、AWKのようなタイプのツール(PerlやRubyなども含む)で処理すると良好な結果を得られる。しかし、規模が中になると、テキストファイルでは効率が悪く実用的に扱えなくなる。この領域は、XMLデータベースで対処することは可能だが、マッチしているとはいいがたい(それ故にカッコを付けている)。確かに、XMLやXMLデータベースは、何ら規範が存在しないデータを受け入れる能力を与えられているが、混沌としたデータが増え過ぎると、そもそも利用者の手に余って破たんしてしまう。

 最後にいよいよ中央の「秩序」と「混沌」の中間、「禁欲的な変化領域」を見てみよう。このような領域は、まさにXMLによって支えるべき領域といえるだろう。規模が小さい場合は、テキスト形式のXML文書で十分にニーズに堪え得る。それでは堪えられない規模になった場合は、XMLデータベースによって対応できる。問題は、XMLデータベースによっても対応できないほど規模が大きくなった場合だが、もしRDBによって扱い得る規模であれば、RDBを採用するしかない。もちろん、RDBは変化に弱く、変化への要求が発生した場合のコストや時間はXMLデータベースを使う場合よりも大きなものになるだろう。しかし、XMLデータベースでは対処できない領域なので、RDBを使うしかない。そのような意図を込めて、この領域のRDBにはカッコを付けている。

 余談だが、「変化のない完全なる秩序は現実のシステムにはあり得ない」「性能面でRDBとXMLデータベースが同等になる」という2つの仮定を導入すると、上記の図からRDBという3文字をすべて取り除くことができる。前者の仮定はともかくとして、後者の仮定が成立するのかという問いかけはあり得ると思うが、事実としてそれを目標に開発されているXMLデータベースはあり、ハードウェアの進歩も含めたXMLデータベースの性能向上も著しい。はたして、RDBの必要性がまったく存在しない世界が来ることがあるのだろうか? 考えるのは読者のあなた自身である。

まとめ

 この連載の第1回の冒頭に以下のようなせりふを引用した。

常識を信じていては、カラは破れない。
明日の行方は無限大であることを…
固まることなく、半熟であるべきことを…!

ゲーム「半熟英雄4 〜7人の半熟英雄〜」(スクウェア・エニックス)より

 その意味の説明を連載第3回に行うと約束したので、ここでそれを行おう。といっても、勘のよい読者の方であれば、すでに分かってしまったのではないだろうか。産み落とされたばかりのタマゴは流動する生タマゴである。しかし、タマゴは茹でることで、堅いゆでタマゴに変化する。一度、茹でタマゴになったタマゴは形が決まってしまい、もはや流動することはない。しかし、タマゴには固まりつつも流動性を失っていない半熟という状態がある。タマゴを人間に当てはめてみれば、堅いゆでタマゴに相当するのは、完成されてはいるがもはや変わることができない常識人間である。それに対して、半熟な人間は不完全であるが、固まっていないが故に常に新しい未来の可能性に適応し得る柔軟性を持つ。堅いゆでタマゴが秩序、生タマゴが混沌に相当すると考えれば、その中間領域、つまり半熟な領域こそ、XMLデータベースの活用領域と重なることが分かるだろう。

 それに加えて、RDBという常識のカラを破り、XMLデータベースがもたらす新しい無限の可能性に目を向けよう、と語りかけているかのように読むことすらできる。

 秩序と混沌の中間に積極的に意味を求めていく動きは、決してXMLデータベースだけの潮流ではなく、このゲームに限定されるものでもなく、20世紀末以降、社会のあちこちに見られるものだといってよいのかもしれない。

 なお、今回の冒頭に引用した小説のせりふも、ここまで連載を読んできた読者の方々であれば、その意図が何となく分かるのではないかと思う。(次回へ続く)

4/4  

 Index
XMLデータベース開発方法論(3)
変化は抱擁せざるを得ない、しかも禁欲的に
  Page 1
・前回のおさらいと今回のテーマ
・変化に弱いRDB
・対象を厳密に定義できない問題
・対象の定義を厳密に表現できない問題
  Page 2
・観測が観測対象に影響を及ぼす問題
・人や社会が変化し続ける問題
・実用十分圏に追従する
・仕様変更ができるだけ発生しないような設計とは何か
・変化を肯定することによる使い勝手の向上
  Page 3
・リファクタリングになじむDB、なじまないDB
・変化への要求は、禁欲的に受けよ
Page 4
・XMLデータベースを使うべき条件
・終わりに


XMLデータベース開発論


Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間