ダーシャのブログ

ゆるゆる生きてていいじゃない

DB設計とSQL学習まとめ

プログラマーになったは良いもののSQLも何にも分からない

情報系学部で一通り学んだのだが、いざ実務のデータベース周りのコードを読むとチンプンカンプンであった。なぜこの対応をしているのか、ER図、ツリー構造等、知らなければいけないことが沢山あると実感した。

DB設計をゼロから学び直したので、そのロードマップを残しておく。

絶対に読んだほうが良い

スッキリわかるSQL入門

スッキリわかるSQL入門
スッキリわかるSQL入門 第2版 ドリル222問付き! スッキリわかる入門シリーズ | 中山清喬, 飯田理恵子 | 工学 | Kindleストア | Amazon

初学者がSQLを学ぶのに最適な本である。解説も図解も丁寧であり、読み切ると一通りSQLの書き方は学習できる。

達人に学ぶDB設計 徹底指南書

達人に学ぶDB設計 徹底指南書
達人に学ぶDB設計 徹底指南書 | ミック | 工学 | Kindleストア | Amazon

実際にDBの設計をしていく上で必要な正規化やよくある設計パターンを学ぶことができる。 ツリー構造に対応するテーブル設計の比較はためになった。しかし、注意として、閉包テーブルについては紹介されていないので、後述のSQLアンチパターンで学ぶと良い。

SQLアンチパターン

SQLアンチパターン
SQLアンチパターン: Bill Karwin, 和田 卓人, 和田 省二, 児島 修 + 配送料無料

DB設計での実際によくあるアンチパターン、失敗例をたくさん学ぶことが出来る。アンチパターンがなぜだめなのか、またそれを使用しても良い特例はいつか、具体的な対策方法まで盛りだくさんである。

余裕があればおすすめ

達人に学ぶSQL徹底指南書

達人に学ぶSQL徹底指南書
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ | ミック | コンピュータ・IT | Kindleストア | Amazon

SQLの色々な実例を、コードを用いて分かりやすく解説してくれている。後半では「達人に学ぶDB設計」とよく似たDB設計について話している。

一番ためになったのは、NULLの取扱いとSQLの挙動についてであった。 プログラマーとしては、DB設計の機会よりもSQLを書く機会の方が多いため、実務にすぐ活かせると思ったからである。

一通り学習を終えて

結構分量も多かったし、正直すべて理解できてはいない。しかし、基本的な知識を仕入れることは出来た。また実務を進めるなかで引っかかることがあれば、学習し直すくらいで良いだろう。 頑張って学んでいきたい。