トップ 最新 追記
capsctrldays

2002-06-05 (水) [長年日記] Edit

1 でーたもでる

XML ってのは「ツリー構造」にてデータを表現します。ツリーっていうからには、ルートはひとつなわけで、たとえば

<?xml version="1.0" ?>
<hoge/>
<hoge2/>

っていうようなルート直下に要素が1つ以上あるようなXML 文書は認められていません。ということで、今回はこのような「データの表現の仕方」についてお話したいと思います。

現在、Oracleの勉強をはじめているひとが結構いますよね。Oracleマスターシルバーの入門の入門、最初の最初のページをみると、こういう風に書かれていませんでしたか。

「Oracleはリレーショナルデータベースです」

……って、OracleがRDB あることくらい当然知ってるよ!バカにするな!と思ったでしょうが(ぼくは思った)、これは一概に「当然」とはいえないんです。たぶんそのページの下か、次のページに書いてあると思うんですけど、「ネットワーク型DB」「カード型DB」っていうのがありますよね。データベースがRDB だけと思ったら大間違いなのです。

RDB っていうのは、実は生まれてからそんなに時間が経っていません。E.F.CoddっていうIBM研究所の人が1970年の論文の中でその論理体系を明らかにしたのが始まりといわれています。(下記サイト参照)

http://www-6.ibm.com/jp/software/data/db2web/history/read/read01.html

これらの違いはすべて「データ認知」の違いです。「データ」の定義にはいろいろありますが、どんなデータも、ビットの世界に置き換えるときに何かしらの省略が行われていることは共通しています。この「どういうふうに省略するのか」という違いが、上記のDBの違いとなっているのです。

この省略のことを「モデリングする」と言い換えることが出来るように思います。ある理論体系(RDB ならば関係モデル)をベースにデータをモデリングするから、「データモデリング」。簡単です。

話逸れますが、オブジェクト指向っていうのがなんで流行ってるかというと、その「省略」の仕方が、何かの理論体系をベースにしているわけではなく、ただ単に、人間の認知モデルに近いからなんだそうです。どういう認知モデルかというと(説明しなくても自然にやってることだから分かるだろうけど)、ネットワーク型の認知なんですね。オブジェクト同士が結びついてて、これとこれは依存してる、あれとこれは親子だ、っていう「感じ」ですね。理論体系が無いから、モデリングの結果が人によってバラバラになるわけです。

で、ようやくXML の話になるんですけど、XML ではどうやってデータを認知しているかというと、見たらすぐ分かりますけど、冒頭で言った「ツリー型」で認知しているんですね。これを「ツリー型モデリング」と言っていいと思います。ツリー構造はコンピュータの世界ではよく使われますね。

「関係モデル」「オブジェクトモデル」「ツリーモデル」っていう3つが、現在のシステム開発における大きな機軸となっているように思います。

| | | | | | Permalink

お名前 : コメント :

本日のツッコミ(全1件) [ツッコミを入れる]

1 anonimous [apple also used that exact same http://emilio.250Free.com/..]


トップ 最新 追記