XMLDB解説
HOME  >  XMLDB解説  >  XMLデータベースとAjaxの熱い関係「第1回:データベースを巡る現状」

XMLデータベースとAjaxの熱い関係「第1回:データベースを巡る現状」

データベースを巡る現状

この連載では、XMLデータベースとAjaxの熱い関係について語っていく予定である。しかし、いきなりAjaxの話に入る前に、XMLやXMLデータベースを含む、広い意味でのデータベースの現状について見てみよう。

ここでは、データベースを広い意味で捉えてみよう。データを集めて一貫して取り出せるようにしたものは、全てデータベースだと考えてみる。その意味では、RDBMSもXMLデータベースも、単なるXMLファイルも、すべてはデータベースの一種ということになる。

さて、ここでは4種類のデータベースを取り上げ、比較してみたい。

RDBMS

現在、PCサーバで使用されるデータベースという意味では、圧倒的に主流となっているデータベースである。データを関係(リレーション)によって扱う方式であるが、そのために、「正規化」という手順が必要とされる。「正規化」はデータを関係によって構成される形に変換する作業である。「関係」は直感的に分かりにくく、また「正規化」はデータを直感的に分かりやすい形から、効率は良いが分かりにくい形へと変化させてしまうという問題がある。また、データベースに格納するデータに増減があると、それだけで「正規化」のやり直しが求められ、データベースの構造が大幅に変わってしまう場合もあり、修正に弱いとも言える。

弱点の多いRDBMSだが、性能、スケーラビリティ、可用性等々の面では圧倒的に他の方式をぬきんでており、一時はRDBMSを使わねば実用的なシステムは組めない......と言っても過言ではない地位を独占していた。

XML

膨大な文書アーカイブの電子化を支援するための言語として生まれたSGML(Standard Generalized Mark-up Language)の後継言語である。そして、インターネットの情報交換を担う言語として1998年にW3Cより勧告されたExtensible Markup Languageである。データは全てテキスト形式で書かれ、データの構造の指定も全て文字で書き込まれる。このような構造を指定する文字列をマーク付けと呼ぶ。

さて、RDBMSはデータを「関係」として扱ったが、XMLはデータを「任意のツリー構造」として扱う。また、個々のデータを格納する単位(要素と呼ぶ)には、固有の識別子であるIDを与えることができ、ID参照を用いることで、あらゆる要素の間で関係を持たせることができる。このような使い方をした場合、XMLデータの構造はツリーではなくネットワーク構造となる。

ツリーやネットワーク構造を記述できることにより、データ本来の持つ構造を大きく変形することなく、そのまま文書に書き込めることが特徴と言える。また、あるがままの構造をそのまま反映させることができ、その上「正規化」という手順も存在しないので、設計変更にも素早く対応できる。

しかし、テキスト形式のデータは処理速度という観点から、到底大量データ処理に耐えるものではなく、データベースの決定打とするにはあまりにも非力だったと言える。その結果、あくまで小規模データの記述や交換に利用されるに止まっていると言える。

XMLデータベース

XMLの問題点を解消し、十分な性能を提供する存在として生まれたのがXMLデータベースである。XMLデータベースは、データをテキスト形式で記述するという特徴を放棄する代わり、実用データベースが持つべき速度や安全性を高い水準で実現したものである。

現在、いわゆるXMLデータベースとされるものは、おおよそ3つに分類できる。

1つは、他の方式のデータベースに付加されたXMLデータ処理機能である。初期の段階では、オモチャ程度の実用性しかなかったが、徐々に性能は向上してきている。しかし、まだXMLデータベース専業のソフトと勝負するレベルには達していない。

2つ目は、スキーマを要求するXML専用のデータベースである。スキーマを要求するということは、事前に慎重なデータベースの設計を必要とすることを意味する。それゆえに、高性能を発揮できる場合もあるが、硬直的であり、変化に弱い性質を持つ。

3つ目は、スキーマを必要としないXML専用のデータベースである。スキーマ無しでデータベースを構築できるので、データベース作成時に意図しないデータも容易に格納でき、変化に強い。

現在、XMLデータベースの本命とされるのは、この3番目のスキーマレスXMLデータベースである。

JSON

Ajaxブームの中で突然出現したデータ記述言語である(JSON公式サイトIntroducing JSON)。JSONはJavaScript Object Notationの略であり、JavaScriptのオブジェクトリテラルと呼ばれる構文そのものと言える。そのような意味では、新しい技術ではない。

オブジェクトリテラルは、本来任意のツリー構造のデータをソースコード上に直接記述するための構文である。しかし、JavaScriptのeval関数により、外部より通信によって受け取ったソースコードを処理できるため、通信用のデータ形式としても使用することができる。

JSONはツリー構造のデータを記述できることから、XMLと非常に近い性質を持っている。それにも関わらず、先行するXMLを押しのけてJSONが持てはやされるのは、JavaScriptプログラムのソースコードが遙かにシンプルになるためである。XMLを使うとGetElementByIdのような長い名前を頻繁に書かねばならないのに対して、JSONではデータに付けられたプロパティ名を指定するだけで利用できる。これによってもたらされるソースコードの簡素化のメリットはとても大きいのである。

データベースのトレンド

現在、注目度が上昇しているのは、この4つのうちXMLデータベースとJSONと言える。RDBMSは、XMLデータを扱う能力を高めることで、XMLデータベース的な機能を取り込むことに注力しているようにも見えるは、それもXMLデータベースに対する注目と見なせば、まさにXMLデータベースとJSONが大きく注目される時代だと言って良いだろう。

一方で、今ひとつパッとしないのがRDBMSとXMLと言える。圧倒的な実績と存在感のあるRDBMSは、そう簡単に消えて無くなりはしない。XMLデータベースによって、僅かずつ立場を浸食されつつあるが、元々の存在感が圧倒的に大きいので、立場が目減りしたという印象も受けない。しかし、圧倒的に伸びていく機運も見えず、長期的には良くて現状維持、それができねば下り坂となるのは間違いないだろう。

ここでRDBMSだけでなく、新世代の技術であったはずのXMLもパッとしないのはなぜだろうか?長い間情報システムを支えてきたRDBMSが賞味期限切れでパッとしないというのならともかく、1998年生まれのXMLが賞味期限切れというにはまだ早い。また、XMLデータベースの注目度が上がっているというのに、XMLはパッとしない......ということがあり得るのだろうか?

この問いに答えるのは難しい。なぜなら、XMLとXMLデータベースは、けして一枚岩の技術ではないからだ。むしろ、これらの中には、全く相容れない、別個の技術が存在すると考えた方が良いだろう。XMLの世界では、「貴族とボヘミアン」と呼ばれ、XMLデータベースに世界では「スキーマレス」と呼ばれる問題が両者を区分するが、どちらも本質は同じである。つまり、スキーマを必須として要求するか否かによって、全く相容れない異質な2つの陣営に分かれてしまうのである。

XMLの世界では、スキーマを必須とする勢力(貴族と呼ばれる)が圧倒的に主流となっていて、スキーマ無しでも使いたい人達(ボヘミアンと呼ばれる)を強く抑圧している。しかし、XMLデータベースの世界で成功している製品はいずれもスキーマ無しで使えるスキーマレスという特徴を持つ。つまり、スキーマを必須とする勢力が強い世界はパッとしないが、スキーマレスを掲げる勢力は注目度が上がっているということである。

このような分類は、RDMBSとJSONの現状にもそのまま当てはまる。スキーマを必須とするRDBMSはパッとせず、スキーマという概念が存在しないJSONへの注目度が上がっているわけだが、この構図はXMLとXMLデータベースを巡る構図と全く同じである。

ここで、データベースを巡る現状をまとめる最重要キーワードは「スキーマレス」であると、あえて断言しよう!

次回予告

今回はデータベースの現状を簡単に見たが、次回はWebアプリケーションを革新する話題のAjaxを巡る現状を見てみよう。乞うご期待である。


▲このページのTOPへ

  • XMLとは?IT初心者でもすぐわかるXML超入門
  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

  • ▲NeoCoreについて記載されています!

  • ▲XMLマスター教則本です。試験対策はこれでばっちり!
Copyright (c) CyberTech corporation ltd. All ights Reserved. | サイバーテックについて | ご利用ガイド