ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2013-01-26

紹介:【書籍】SQLアンチパターン


リレーショナルデータベースの父、エドガー・F・コッド氏が論文を発表したのは1970年。私が生まれる前の話である。そしてSQLがANSI標準になったのが1986年。RDBMSを、そしてSQLを使ったシステム開発は常に主流で在り続けたと言っても過言ではない。そんな歴史のあるSQLであるが、未だに多くの人はSQLを使いこなせて居ないように見える。

SQLはとても奥が深い。ソートやトランザクションが使用出来るおかげで、リレーショナルモデルを無視して単なるデータの入れ物として使ってもそれなりに便利だったりする。だが、それが今現在多くの悲劇を生んでいる原因でもある。多くの人が同じようにSQLを理解せず、そのため多くの人が同じ悲劇に見舞われる。そう、それがアンチパターンである!

今回紹介するSQLアンチパターンは、洋書SQL Antipatternsの邦訳版だ。私は元々英語版のファンでであり、人々が陥りやすいSQLの悲劇をユーモアたっぷりに紹介してくれるこの書籍が大好きなのである。その邦訳版がこの度発売された!!

正直なところ、英語版を既に味わい尽くしていた身としては、内容自身に新たな驚きはなかった。当然といえば当然である。だが、英語版はやはり多くの日本人にとって敷居が高いこともあり、本ブログでは紹介して来なかった。だが今なら全力で言える。SQLアンチパターンは超オススメだ!!もしあなたがデータベースを使った開発や運用をしており、なおかつ英語版を読んだことがないのであれば絶対に読むべき一冊である。

実は、私はこの書籍の発行にあたり少し絡ませて頂いた。昨年4月に監訳を担当された和田卓人氏から「日本語版だけのスペシャルチャプターを書いてくれないか?」という依頼を頂いたのである。もちろん依頼には快諾させて頂いたのだが、内心「とんでもない大役を仰せつかったぞ!」と思っていた。SQL Antipatternsはとても完成された(内容的にも構成的ににも)書籍である。データベースでメシを食っているとは言え、SQL Antipatternsに載っているもの以上のアンチパターンで網羅されている以外のアンチパターンを紹介するというのは易しいことではない。依頼を頂いてからというもの、大好きな書籍に関われるという嬉しさの反面、それ以上の重圧が胸のうちにのしかかっていた。「何を書いても台無しにしてしまうだけじゃないか。」ネタを考えれば考えるほど、そんな風に思えてきたのだった。

悩みに悩んだが、スペシャルチャプターとして私が日常で感じてる最大の問題をアンチパターンとして紹介させて頂くことにした。内容の詳細は書籍で確認して欲しいが、サービスの安定稼働に関わるものである。厳密には「SQLのアンチパターン」ではなく「RDBMSのアンチパターン」とでもいうべき内容だが、敢えてこのネタを採用させて頂いた。プログラミングにおいて必要な箇所で適切な例外処理が抜けていたら、人はそれをバグだというだろう。だが、なぜかRDBMSを使う上で必要な対策やコーディングが行われていなくても、多くの人は問題だとは思わないらしい。一例を挙げると「トランザクションのリトライをしないのはアプリのバグだ」と常々私は思っているのだが、「リトライのロジックは実装していないしする予定がありません」と言い放って憚らない人がとても多い。そんな目を覆いたくなるような惨状を少しでも変えられたらと思い、筆を執った次第である。第25章でいきなり作風が変わってギョッとされてしまうかも知れないが、もしそうなるとすればそれは私の責任である。

オリジナルが英語の書籍で翻訳されたものは、訳がおかしかったり意味を取り違えているような箇所が多いものだが、その点「SQLアンチパターン」は安心して読める。英語版には「ニュアンスを伝えるのが難しいだろうなー」と思うようなところが多々あるのだが、上手く対処されているように思う。執筆の依頼を頂いたのが4月で、その時点で既に和田氏は「缶詰状態」だとおっしゃっていた。にもかかわらず発行までかなりの月日が経過しているのは、本書がそれだけ手の掛かった書籍であるということを示しているといえよう。

もしあなたがデータベースに携わってらっしゃるのなら、必読書として加えて頂きたい一冊である。

0 コメント:

コメントを投稿