SQL&データベース設計の学習

フィヨルドブートキャンプのSQL、データベース設計の課題を終えたので書籍について、またTwitterのERDを作成して見て感じたこと、そして今後の自分への戒めを書きたいと思います。

今回、SQL関連の書籍4冊を取り組みました。
SQL ゼロからはじめるデータベース操作(翔泳社:著 ミック氏)
SQL 書き方ドリル(技術評論社:著 羽生章洋氏)
③達人に学ぶDB設計徹底指南書(翔泳社:著 ミック氏)
④楽々ERDレッスン(翔泳社:著 羽生章洋氏)

www.shoeisha.co.jp

gihyo.jp

www.shoeisha.co.jp

www.shoeisha.co.jp


SQL ゼロからはじめるデータベース操作

この本のおかげでSQLについて(SQL文の書き方を)理解することができました。
とてもわかりやすいです!
PostgreSQLを使って手を動かしながらSQL文を書くことができるので頭に残りやすいです。

しかし後半に難しい内容があります。
・ サブクエリ、相関サブクエリ
・ ウィンドウ関数
・ GROUPING演算子
このへんは何となくでしか理解できず、使いこなす自信がありません...
SQLを使っていく中で使いこなせるようになったら、またブログに書いて理解を深めていけたらと思います!

SQL 書き方ドリル

何かを理解したことと使えるようになることは雲泥の差がある。
私も上記のゼロからはじめるデータベース操作を読んで、大丈夫だろうと考えていたが全く力はついていなかった...当たり前だ!

このドリルはアウトプットすることで、書く力と自信がつく。
アウトプットする題材がなかったのでよかったです。
ひとつ難点をあげると問題の解答の解説がほしかったです!

最後に自分に一言!
サブクエリができていなかったのでまた復習しましょう笑

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

SQL使ってデータを取り出す事ばっかり考えていたけど、元となるデータの入れ物ももちろん作れるようにならないといけない。
それがDB設計!
この本はDB設計の中心、正しい正規化のやり方を学べました。

そしてさらに踏み込んで、
もう一つのテーマ、トレードオフも学べます。
トレードオフとは、何かをするために片方を立てれば、もう片方は犠牲にならないといけないこと。
例えば、痩せたいけど、甘いもの食べたいなど
DBになると、正規化はしばしばSQLのパフォーマンスを悪化させることがある。
例えば、テーブル同士をくっ付けたりすることはRDBMSにとっては重い作業である。
じゃあどうすればいいのかわからない?!
そんなときはとりあえず、正規化できるところまでしておくことが良いと著者はいっている。
このトレードオフの感覚を掴みいい塩梅を見つけるのは難しく、現場で実践していきながら身に付けたい!

④楽々ERDレッスン

この本はDB設計でテーブルを作る前の段階のER図を作成するための本です。
私としては所々しか理解できず、難しかったです。
先に③達人に学ぶDB設計徹底指南書を読んだ方が良いです。
この本は最後の章で身近にある注文表や水道料金通知書などをER図にしていたので具体的にやり方が理解できました。
やり方を知らないと何となくでやって、これでいいのかなと不安になる。

やり方メモ
①イベントを見出す
核となるテーブルを見出す。「〜する」に当てはまるもの、例えば、注文、購入など。これを「イベント系」と呼ぶ。
②リソースを抜き出す
次に、「誰が」や「何を」にあてはまる物を見出す。例えば、顧客、商品など。これを「リソース系」と呼ぶ。
③項目を入れていく
テーブルを出せたら、それぞれのテーブルに項目を入れていく。項目を入れて、さらに正規化できそうなら正規化する。
④リレーションシップを設定する
まずはそれぞれのテーブルに主キーを設定する。その後、テーブルを繋いでいく。


まとめ

SQLはいち言語だけあって奥が深いです。上記の本を読んで身に染みました。
スラスラとSQLを書けるようになりたいです!
データはますます重要性を増してきているのが普段生活していてわかります。
そのデータを根底にプログラミングが成り立っている(DOA)。
丁寧に着実にSQLを学習してきましたがまだまだ実践力が足りないので、これからも定期的に学習してきます。