flat7th

memo/20080512

created 2008-05-12 modified 2008-05-21 

リンク備考
配列型 "関係代数" でググる
アドレス、この巨大な怪物私と反対の意見っぽいページ

RDBは木構造やネットワーク構造でのデータ保持に対するアンチとして生まれたと認識している。
ところが、実際の仕事では「きれいに」「正規化して」作ったDBは遅くて使い物にならず、結局はシステム作成・維持の実務担当者がせっせと「きたなく」「非正規化」して使っている。

そうまでして関係データベースを使っていることについて、考えこんでしまう。

コンピュータシステムのプログラムからポインタをなくそうという活動を、総じて私は好きになれない。なぜなら、それは往々にして、作り手が仕事を省き、利用者に不便を強いる(=遅いシステムを使わせる)口実になっているから。私は、遅くて使い物にならないコンピュータシステムは嫌いだ。
しかし一方、理路整然としていない内部設計もまた、嫌いだ。

使い物になり、かつほどほどに理論付けられたデータベース管理システムがあったらいいのにと思う。

ていうか

未整理だが、データベース管理システムが隠蔽すべきものはもっと狭い範囲だという直感がある。
システム構築ノウハウで理論層と物理層を分けることには賛成。でもそれを、「DBMS上でポインタを使えなくしてしまう」ことで実現するのはいかがなものかと。

一方で、データ項目の作成とインデックスデータの扱いを分離してくれるDBMSはありがたい。

あー、あれか。ユーザがポインタ型のデータを持てない前提があるから、インデックステーブルというポインタ集合の管理を、管理システムに完全に任せることができるんだよね。諸刃の剣か...

うーむ。いや。違うぞ。
メッシュ状にどこへでも飛べるポインタなんかは要らないから、構造体の階層構造っていうか、一方向の has_a 関係を適切に表現できて欲しいのよ。
配列形の列、がイメージに近いような気がするが、それではプリミティブ型とユーザ定義型(別の表)とのギャップが高いようにも思う。やっぱり未整理。未整理なんだけど、FastDBの中の人がやってることは、相当共感できる気がする。