2014-03-06

階層DBいいじゃん

ファイルシステムディレクトリのような木構造データを格納するのは、RDBに比べたらデータ構造人間には超分かりやすいし、検索にかかる時間も簡単に見積もれるし、そもそも高速で動くし、CPUメモリも少なく済む。

確かにRDBのWHERE句に相当する部分はいちいちプログラムで実装しないといけないけど、必要な処理はどれもこれも定型的で、一度覚えてしまえば非常に楽できそう(テンプレコード用意しといて、システムに応じて微修正してコピペすればいい)。

即ち、誰でも素人からプロになれるというか、プロになるまでのコストが低いので、人材育成の面でも有利。

と、これほどまでに良いことづくめなのに、なんで廃れたのか意味が分からない。

逆にRDBデータ構造合理的なんだろうけど、人間にはとても分かりにくいし、パフォーマンスも加味した適切なテーブル設計が出来て効率いいSQLを組めるレベルの人となると、もはや適性の問題になってくる。

要するに向いてない奴にはいくら教育しても全く身につかない。一人前になれる人間が限られると言い換えてもいい。なかなかデキる人が出てこない。

そんな高度人材(?)が確保できていることが前提のDBってどうなのよ。

  • 使った事無いけど、階層で多対多とかやろうとすると、データが冗長になるんじゃないの? データの整合性をプログラムロジックでとろうとするとバグが入りやすいのが問題じゃない?

    • 多対多のデータは確かに冗長になりそうだし、処理するためのコードも長くなりそう。 RDBはその点、データの原子性は保たれるし、SQLで比較的短く書けるので品質も問題が出にくい。 で...

  • RDBとXMLDBですかね。 どっちが良いという話ではなく。

    • XMLDBもだけど、階層型DBが昔メインフレームではCOBOLとセットでよく使われていたと聞いたので、オープン系で使われないのが不思議というか。

      • たぶん元増田の疑問というかニーズみたいなものはこんな感じかね。 ・RDBでも良いから程ほどにゆるくやりたい → Sqlite ・データ構造に柔軟性を!変化を! → XMLDB ・整合性には目をつ...

        • ・データ構造に柔軟性を!変化を! → XMLDB ここに、ドキュメント指向のMongoDBとかCouchDB系が入ってきてる。 データ構造/表現が最近のプログラミング言語のハッシュマップ(or 連想配列 ...

          • おー、あるんだ。良かったな元増田。 というか俺も勉強になった。 ありがとう!

          • 元増田です。 なるほど、そういうDBがあるのか。 XML的なデータ構造をJSONで記述し、プロセス間通信等で使えば実装が楽なのは経験済みだし、ハッシュもちょっとしたデータ構造の構築・...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん