woshidan's blog

あいとゆうきとITと、とっておきの話。

新卒向け社内研修でテーブル設計と正規化の基本の話をしました

speakerdeck.com

新卒向け社内研修でテーブル設計と正規化の基本の話をしました。

いま新卒の方々はRails tutorialを進めながら「理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL」を読んでいるところなのですが、中には入社以前にはWeb系のプログラミング経験のない方もいらっしゃいます。

その状態で上記の本を読み進めるのは少しつかみにくいところもあるだろうな、ということで、この資料に関してはかなり基本に絞り、演習で設計から第1から第3正規化の一連のプロセスについて手を動かしてみて経験値の底上げをしてもらうという構成にしました*1

理論的な背景をもちろん抑える必要はあるのですが、何度か手を動かしてみて頭の中に回路を作ってみる、というのも車の両輪みたいに大切で、一人でも正規化の手続きの流れが追えるようにしたつもりです。

「変わりそうな値を主キーにしてはいけない」「商品の値段が変わった場合、過去の注文の合計金額を変えないためにはどうしたらよいか」「あとから特定の状態になった日を知りたくなるような場合があるときは、どうしたらよいか」

他にもいろいろあるんですけど、そういったもう少し応用的な内容については、少しだけ演習の合間に声をかけさせていただきましたが、興味を持っていただけたら他の実践テクニックに寄せた本なども読んでみると面白いと思います。

自分が読んだ中でオススメは下記です。

〔入門〕はじめてのデータベース

〔入門〕はじめてのデータベース

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

SQLアンチパターン

SQLアンチパターン

*1:この本を去年の新卒に勧めたのは私なのですが、去年の新卒は非常にすごい人ぞろいでして...