リレーションの理論はダメだ (2)
リレーションの理論はダメだ - 檜山正幸のキマイラ飼育記 メモ編の続き。
- RVA(relation valued attribute)って、ホントにバカじゃないの?! group-byの結果を再びリレーションとして表現するために導入したらしいが、なんでそんなバカなことする? Rel(A, B) Map(A, Pow(B)) ってだけじゃん。grf:Map(A, B)→Pow(A×B) という関数グラフ写像も使っているが。Rel(A, B), Map(A, B) などを使うことを拒んでいるから、こういう悲惨なことになる。
- 属性名に拘るが、その理由は暗黙のセマンティクスを属性名に込めるから。その結果、セマンティクスが明示的に語られることはない。名前からの連想・暗示に頼る。
- 名前無しタプル=順序タプルを嫌うが、セマンティクスを切り離すなら順序タプルを使うべき。
- 平均値の計算や、順序ソートを単にアウトオブスコープとして、分析しない。
- 外側にチューリング完全なプログラミング言語があれば、集合としてのリレーション(タプル空間でもいい)上の関数は部分関数になる。したがって、全域関数だけを相手にするには無理がある。
- プログラミング言語で、値、変数、型を区別しないことはあり得ないが、DB理論では区別できてない。値と変数の区別はリレーションvsテーブルの議論、変数と型が1:1のケースが多いので、変数名と型名を一致させるってのが言い訳。一理あるが、やはり良くない。
- バッグも拒んでいるが、行列計算として容易に拡張できるのに。
- 結合(ジョイン)を演算だと言っているが、全域一意対応の意味の演算ではない。結合の結果は恣意性があり不定。
- 結合は可換だと言っているが、そんなわけねーよ! リネーム考慮しろ。
- リネームなしでいくか、けっこう、では直積のエミュレーションはどうする? 出来ないだろう。
- 有限性に拘ると、整数算術を破綻させるし、論理の否定もなくなるので、整数算術/述語論理との対応が取れなくなる。
- 有限性と均一なフラットレコード集合への拘りで、いったい誰得?
- シンジが言っていたピグマリオン症候群だろう。
- 自分で自分を誤魔化している、自己欺瞞が多すぎる。
使うべきこと:
- 普通の直積とファイバー積
- 名前に関するリネームとリネームスパン
- 依存型理論の依存積Πと依存和Σ
- Fam(A), Fam(A, B) = Map(A, Pow(B)) のような概念
- B有界・A族がAからBへの関係であること。
- Πに関する指数法則、Σの分配法則(線形性)
- 指数と余指数(乗法)、余指数=掛け算関手(掛け算の累加解釈)
- 掛け算の積解釈×と、掛け算の塁加解釈(Σ解釈)
- 指数の塁積解釈(Π解釈)
- 和+と積×、族の総和Σと族の総積Π、塁加・、累乗 [ > ]
[追記]まったく記憶になかったが、http://d.hatena.ne.jp/m-hiyama-memo/20130412/1365735934のなかでピグマリオン症候群について書いてあった。なお、シンジは、「ピグマリオン症」と言っていたようだ。僕も圏論的ピグマリオン症だから、同じ穴のムジナだ。が、モデルに入れ込むにしても、「いまどきそれはないだろう」という感じはある。[/追記]
[さらに追記]古くて、弱点・欠点、機能不足が明らかな道具立て、枠組みにどうしてこれほどに拘るのだろう? まったく理解に苦しむ。一種の互換性か? 数年前でもMS-DOS上で動く業務ソフト見たことがある。諸般の事情でOS変えられない。それと似ているのかも知れない。が、どうも「しょうがないから使い続ける」つうより「これがイイ、これ最高!」みたいな感じで使っているから哀しくなる。[/さらに追記]