kagamihogeの日記

kagamihogeの日記です。

Head First SQL 頭とからだで覚えるSQLの基本

題名は SQL になってるけど、実際には SELECT,DELETE,INSERT,UPDATE のキホン的な SQL だけじゃなく、データベースって何ぞ? ってところやテーブル設計にも話が及んでいるので、実質上 RDBMS の入門書になっている。なんでこうなってんの? というところにちゃんと解説が及んでいるすごく丁寧な作りな一冊。

ただまぁ、Head First シリーズはすごくアクが強いから、受け入れられない人は完全拒絶しそうな気がする。けど、この独特な語りかけるような、読者と本の対話を励起させる書き方は―特に初級者にとっては―かなり利くんじゃないかと思う。Head First シリーズはストーリー仕立てや擬人化で物事を分かりすくまとめる手法を多用してるんだけど、これってやる夫で学ぶ○○みたいだよなぁ、みたいな。

ちなみに、この本では、ウンコ座りしてる人が唐突に自問自答し始めたり、チャンネェが突然イチャモンつけてきたりするんだけど、なんでそんな構成になってるのかは説明があるので、興味のある人は序章をさくっと立ち読みしてみてください*1

俺は一応ソレナリの年数開発経験があるので、もちろん SQL についても基礎知識はあるわけだけど、この本を手に取ったのには理由がある。仕事としてプログラミングを始めるようになって面食らったのは、業務アプリケーションの領域では DB がものすごい重要な地位を占めている、ということ。大学に居た頃は「SQL? SELECT とかの文法ちょっと覚えるだけじゃーんラクショー」とか舐めてぜんぜん勉強してなかったんだよねw

なので、今になって SQL とか RDBMS とからへんについて再入門する必要性を感じて本書をチョイスしてみた。で、勉強しなおしてみると、プロジェクトには DB を専任とする DBA が一人欲しいよなぁ、と悩ましくなってきた。RDBMS の領域をちゃんと抑えるのってすごいコストかかるし、RDBMS の力を 100% 活かしきるのって何気に大変だし。あと、DB 周りはデッドロックなりパフォーマンスなり色々問題になりやすいんだけど、この辺解決するのってたいてい苦労するんだよね……w

そりゃまぁひとりの人間がゼンブやれるのには越したことないけどさ。でも、俺は DB は専任置いたほうがいいって思うくらい複雑な代物だと思うんだよなぁ。DB は DB 屋さんに任せたほうが良い、といいますか。

あと、この本読むことで SQL がなんでスゴいのか分かってきた気がする。データ置いとく・データ取ってくる手法を SQL って形で一般化したのがスゴいとこかな、と。俺は COBOL とかが全盛だった時代を知らないんだけど、固定長形式ってヤツでデータ持ってると、データ置いとく・データ取ってくる手法がアプリケーションごとにバラバラになって、似たようなコトを毎度毎度作り直しする羽目に陥るわけで。そこんとこを構造化(Structured)し、問い合わせ(Query)の、言語(Language)としてまとめた点はやっぱスゴイんじゃないかと。現代は SQL って O/R マッパーが整備されまくったりして、当たり前になりすぎちゃって恩恵が見えにくくなってるけどさ。

SQL の海は広大だわー。

Head First SQL ―頭とからだで覚えるSQLの基本

Head First SQL ―頭とからだで覚えるSQLの基本

*1:どーでもいいけど、こういう変則レイアウトで本出版するのってすげぇ大変そうな気がするんだけど……実際どうなんだろ。欧米的ユニーク・ユーモアを Japanese に翻訳するのも激ハイセンスが要求されるしなぁ……w