【DB設計】「楽々erdレッスン」のまとめ
目的
「楽々ERDレッスン」を読んだので、そのまとめ
- 作者: (株)スターロジック羽生章洋
- 出版社/メーカー: 翔泳社
- 発売日: 2006/04/18
- メディア: 単行本(ソフトカバー)
- 購入: 72人 クリック: 940回
- この商品を含むブログ (120件) を見る
自分はRailsエンジニアをやっているのですが、アプリケーションを作るときに、設計面について苦手意識を感じています。
今回は、DBの設計について、いろんな人が薦めている上記の書籍を読んで、中身や感じたことについて、簡単ですがまとめてみます。
DB設計の手順
本書にはDB設計の手順は以下のように記述されていました。
- 大まかにブロック分けを行う(業務単位か部門単位)
- それぞれのブロックごとにイベント系を洗い出す(正規化しない)
- イベント系に対する正規化を行なって、リソース系を洗い出す
- リソース系に対する分類の洗い出しを行なって、リソース系の正規化を行う
- ブロック間でリソース系の統合を行い、さらに正規化を行う
- 導出系の整理をして、最終的な正規化を行う。
第3部のレッスンではもう少しカジュアルに、あとブロック外のことは省略されて以下の様な手順になっています。
- イベントを見出す
- リソースを抜き出す
- 項目を入れていく
- リレーションシップを設定する
ただし、はっきりイベントとわかるものがない場合もあるようで、そのへんは臨機応変にといったところでしょうか。
結局実務からの学びは大切
導出系を消す/残す、正規化する/しない、フラグにする/別テーブルにする等、やはり実際の業務フローやビジネスを反映することが大切そうです。
本の中でも売上伝票を例に、単価が時期によって変化する、顧客によって割引率がある、たくさん買うと値引きされる等、単純なヘッダディテール形式からどんどん複雑になっていく様を解説していました。
仕事意外でも、ふとレシートやwebサイト等を見た時に「どんなDB設計にしようか」と考えていると、いざというときに役立つかもなと思いました。
参考書、ブログ等
DB設計の書籍はあんまり多くはないのですが、下記のブログによさそうなものがまとまっていました。 normalse.hatenablog.jp
理論から学ぶデータベース実践入門もいいと思います。
理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus)
- 作者: 奥野幹也
- 出版社/メーカー: 技術評論社
- 発売日: 2015/03/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (20件) を見る
その他以下も参考に。 blog.mah-lab.com blog.jnito.com
まとめ
設計がんばるぞ!