データベース

の講義だったわけだが、めっきり失敗。MySQLでの実演はいいアイデアだと思ったのだけれど、副問合せまで確認してなかったのが致命傷に。Windows版は4.0.18で副問合せに対応してないらしいということに当日気づく。ついでに、EXCEPTも駄目みたい…ううう。関係代数とSQLとの相互互換を実演するという野望がもろくも崩れ去る。いや、それなら前もってチェックしとけ>自分。

そういえば、今日同じく気がついたんだけど、MySQL4.0.18では主キー制約はチェックしてくれるけど、外部キー制約はチェックしてくれないんでやんの。そんなもんなのかな?最近のバージョンではチェックしてくれるのかも。

そのへん、PostgreSQLなら大丈夫なのだろうか…。と思ってCygwinでinitdbかけてみたらセグフォ起こして死にやがりましたよ。共有メモリが確保できなかったみたい…うーん。運用するにはなんかコツが要るんでしょうかね。確かどこかにCygwinPostgreSQLとかいう本があったはずなので後で掘ってみよう。

てなわけで、ちょっとマニュアルだけ掘ってみた。postgresql-7.4.1のドキュメントを見る限りでは、外部キー制約はチェックしてくれるみたいですねぇ(3.3節)。あ、UNION, INTERSECT, EXCEPTもあるぞ、と(7.4節)。副問合せも9.16にありますねぇ…。うーSQL諸機能の実演にはPostgreSQLを使うべきかな。んーNOT EXISTSはないのかな?