今回は新しい本でも。RDBMS、特にSQLがらみでありがちなトラブルを、ユーモアを交えて紹介しているのがこの本だ。日本語版には最後に「漢のコンピュータ道」奥野氏が執筆した章が追加されている。
全編、「ああ、あるある」、「これやっちゃったなあ」と、SQLを使った開発・保守をした経験がある人なら心当たりのある事例のオンパレードで、にやりとしたり、背中にいやな汗をかいたりしながら読み進めることができる(そういえば、前職のシステムはこのアンチパターンにどっぷり浸かっちゃってるな。今も無事に動いてるだろうか……、など)。
全体的に脚注での監訳者のフォローが充実しており、単なる翻訳ではなく、深い読み込みやサンプルプログラムの精査が行われたことがわかる。一部勢い余って本文のコラムにまで進出しているのはご愛敬か。
個人的な思い込みかもしれないが、世間にはリレーショナルデータベースの理論(元は数学の集合理論)とオブジェクト指向をともに理解し、どちらも自在に操れる人は少ないと感じている。モデラーとプログラマとの間の相克はよく聞く話だ。本書で取り上げられているアンチパターンでも、プログラマがリレーショナルデータベース理論に疎いことが大元にあるものが多いと読んでいて感じた(まあ題名からして、プログラマに分の悪い内容であることは致し方ないが)。個人的には、昨今NoSQL(特にkey-value型データストア)が人気なのも、プログラマからわかりやすい・扱いやすいものだからではないかと考えている。データベースをただのデータストア(データ置き場)としてしか使わない例はよく聞くし。
内容としては論理設計・物理設計・SQLクエリ・ソフトウェア開発と題材が大きく分かれ、非常に幅広くかつ実践的なものとなっている。正規化・浮動小数点の丸め誤差・テキスト全文検索・SQLインジェクションの問題と対策がすべて扱われていて、かつ300ページ程度に収まっている本はなかなかないのではないだろうか。そういえば先日取り上げた「プログラマが知るべき97のこと」でも浮動小数点の丸め誤差の話が出ていた。ありがちなトラブルなのだろうか。
といったところで、DBAというよりRDBMSと連携するアプリを開発しているプログラマに是非読んでほしい本だ。でもタイトルからして筆者のようなRDBMS好きばっかり読むのだろうな。版元がオライリーというところが救いか(プログラマの目につきやすい)。