今回は、インターネットで「DB 書籍」と検索すれば必ずヒットする名著「達人に学ぶSQL徹底指南書 初級者で終わりたくないあなたへ」の書評です。
時間がない人向けの結論
バッドノウハウだけでも一見の価値あり。
実際に開発現場でデータベースを見たことがある、もしくは開発者だった人なら誰しもがあるあるって思うようなテーブル設計について、これがバッドと言ってくれるのは爽快。どう改善すれば良いかも提案してくれる良書でした。
こんな人におすすめ
SQLはなんとなく書けるけど、はじめてデータベースを設計を任されて、不安です。。
本書籍では、こういったお悩みを抱えている読者の手助けになるかもしれません
本の特徴
本書は以下の構成で描かれています。
- データベースの基礎(導入と3層スキーマ)
- 論理設計と物理設計
- 正規化の意味
- ER図の描き方
- 正規化とパフォーマンス
- インデックス設計
- バッドノウハウ
- グレーノウハウ
- 階層構造をRDBで表現する
随所に実際の開発現場あるあるが書いてるので、経験者の学び直しにも活かせます。注意点としては、SQLの構文やデータベース操作に関しての初歩の部分は省かれてるので、別の本で補足する必要があります。
開発経験者目線での為になった3つのこと
第3正規化以降も知ることができる
正規化自体は、基本情報技術者試験や応用情報技術者試験などでも頻出するため、第3正規化までは知っていました。それ以降のボイスーコッド正規形、第4正規化、第5正規化についても言及されているため、この機会に知識を入れておけば設計の良し悪しには使えるかと思います。(本書でもたびたび実務では第3正規化くらいまでと言及されているため、あくまで知識として)
これがバッドノウハウだ!と定義していること
実際の開発現場で今でも採用されているテーブル設計が、実は良くない設計ということに気づくことができます。当初は実現したいことやコストとのトレードオフで決まった設計だとしても、担当者が変わり、記憶が薄れると、これがバッドであるということにも気づかなくなります。
知っているだけで武器になることも多いです
部署など階層構造のテーブル設計例がある
社内システムを構築していると、よくあるのが上司-従業員の階層構造や、部署の階層構造をテーブルでどう設計するかという点です。これについて、いくつかのパターンを例示しており、すでに使っていたベストプラクティスが乗っていたり、別の方法が記載されていたりと知見が広がりました。
まとめ
これからDB設計をする人や、久しぶりにDB設計をする人は是非読んでみてください。