きっと読むほどうまい『失敗から学ぶ RDBの正しい歩き方』

『失敗から学ぶ RDBの正しい歩き方』を読みました。

失敗から学ぶ RDBの正しい歩き方:書籍案内|技術評論社

要約

  • RDBを扱う上で気にすべきことが幅広く書いてあります。
  • 挙げられたトピックは頭に叩き込んでおくべき。

取り扱われないもの

タイトルで「RDBの歩き方」とあるようにNoSQLのようなデータベースはチラッと登場するのみです。

また、本文中ではMySQLPostgreSQLの例がほとんどであり、RDBMSの比較については、あまり扱われません。ただ、種類の違いを意識することの重要性は説明されています。

さらに、この書籍は20のアンチパターンの列挙で構成されていますが、それぞれに対して「アンチパターンを生まないためには?」というアンサーを記載しています。しかし、『SQLアンチパターン』のような直接的な「解決策」を明示していないように思えました。

例えば第5章「フラグの闇」では、削除フラグというアンチパターンが紹介されています。そこでの記載がこちら。

このように、テーブルに状態をもたせてしまった場合、その対処方法に銀の弾丸はありませんのでご注意ください。

もう一つ挙げます。

しかしテーブルに状態を持たせると、何らかの理由でそれをリファクタリングする必要が出た場合に困難を極めます。

なかなか冷や汗出ますね。この章に限らず、RDBに関して誤った設計をしてしまうと、取り戻すのが非常に大変ということが読み取れました。

カバーする範囲の広さ

この本の最大の特長は、カバーする範囲の広さにあると思います。例えば、開発と運用両方をカバーしています。

  • 開発(テーブル設計):第1章~第2章、第4章~第9章、第15章、第20章
  • 開発(テーブル設計以外):第3章、第13章~第14章、第16章~第17章
  • 運用:第10章~第12章、第18章~第19章*1

テーブル設計以外とは、具体的に言うとクエリとロックとキャッシュです。*2

わずか300ページ弱の書籍ですが、RDBを扱う上で頻出、かつ影響度が大きいポイントはほぼ網羅されているのでは、と思いました。

読む、試す、また読むのサイクル

この本を読んで、自分には刺さるところが多くありました。第5章「フラグの闇」、第8章「JSONの甘い罠」、第11章「見られないエラーログ」などです。

内容の細かいところまで暗記するのは難しいにしても、少なくともデータベース設計や運用を考える際に、本書で取り上げられたテーマはパッと浮かぶべきだと思いました。

また、この本を読んで得られた気付きに基づき、今関わっているシステムを改善しようと思います。そのうえで、また本書に戻ってくるとさらなる学びがあるに違いありません。

まとめ

RDBを使っているなら読んでおくといいと思います。

また、本文中でいくつかSlideshareのリンクが貼られているので、電子書籍を買ったほうがいいかもしれません。

私は紙の書籍を買ってしまったので、URLを頑張って手動で打ち込みます……。

*1:12章までが連載部分でそれ以降が描き下ろしなのでこのように分割されているっぽい。ひとまとめにしたほうが読みやすかった気もしますが

*2:INDEXはテーブル設計の方に入れてあります