DB設計とSQL学習まとめ
プログラマーになったは良いもののSQLも何にも分からない
情報系学部で一通り学んだのだが、いざ実務のデータベース周りのコードを読むとチンプンカンプンであった。なぜこの対応をしているのか、ER図、ツリー構造等、知らなければいけないことが沢山あると実感した。
DB設計をゼロから学び直したので、そのロードマップを残しておく。
絶対に読んだほうが良い
スッキリわかるSQL入門
スッキリわかるSQL入門 第2版 ドリル222問付き! スッキリわかる入門シリーズ | 中山清喬, 飯田理恵子 | 工学 | Kindleストア | Amazon
初学者がSQLを学ぶのに最適な本である。解説も図解も丁寧であり、読み切ると一通りSQLの書き方は学習できる。
達人に学ぶDB設計 徹底指南書
達人に学ぶDB設計 徹底指南書 | ミック | 工学 | Kindleストア | Amazon
実際にDBの設計をしていく上で必要な正規化やよくある設計パターンを学ぶことができる。 ツリー構造に対応するテーブル設計の比較はためになった。しかし、注意として、閉包テーブルについては紹介されていないので、後述のSQLアンチパターンで学ぶと良い。
SQLアンチパターン
SQLアンチパターン: Bill Karwin, 和田 卓人, 和田 省二, 児島 修 + 配送料無料
DB設計での実際によくあるアンチパターン、失敗例をたくさん学ぶことが出来る。アンチパターンがなぜだめなのか、またそれを使用しても良い特例はいつか、具体的な対策方法まで盛りだくさんである。
余裕があればおすすめ
達人に学ぶSQL徹底指南書
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ | ミック | コンピュータ・IT | Kindleストア | Amazon
SQLの色々な実例を、コードを用いて分かりやすく解説してくれている。後半では「達人に学ぶDB設計」とよく似たDB設計について話している。
一番ためになったのは、NULLの取扱いとSQLの挙動についてであった。 プログラマーとしては、DB設計の機会よりもSQLを書く機会の方が多いため、実務にすぐ活かせると思ったからである。
一通り学習を終えて
結構分量も多かったし、正直すべて理解できてはいない。しかし、基本的な知識を仕入れることは出来た。また実務を進めるなかで引っかかることがあれば、学習し直すくらいで良いだろう。 頑張って学んでいきたい。