感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

データベース設計のまとめ。

<スポンサーリンク>

「楽々ERDレッスン」という本を読んだ。2章の途中まで。

DB設計は経験がないので、休日に知識は蓄えたい。

以下、勉強した部分のまとめ。

☆☆☆
1章
データベース設計の要点
 →「One Fact in One Place」= 「1つの事実は1つの場所のみに存在する」

データベース設計の体験
・まず必要な項目をすべて列挙する
・順番に正規化してばらしていく。
 1.繰り返しの排除
 2.冗長性の排除
・ただ正規化すると「洗い替え問題」に直面する。

洗い替え問題とは、1つの項目変更が他のテーブルに影響を及ぼしてしまうこと。

洗い替え問題を防ぐために、IDなどを使う。
IDを使って他のテーブルを参照することで、実態の値の変更が他のテーブルに影響しなくなる。
つまり、テーブルどうしが疎結合になる。


2章
・DB設計は経験が積みづらい。
 →影響が大きいのでベテラン担当者に仕事が偏る
  担当者数も少ない

データ設計における悩み事
 1.箱(エンティティ)の見出し方
 2.主キーの設定
 3.重複の排除(いわゆる正規化)

エンティティとは?
 →何かの集合のこと

なぜデータベースを使うのか?
 ・消えると困るデータを記録しておくため
 ・それも、データを後から色々使いたいからわざわざ残すのである。
 
「このデータは何についての記録なのか?」を整理して、それぞれ同じ意味を持つもの同士を一つの箱に入れていく。
結果、エンティティには「このデータは何についての記録なのか」が一目瞭然の名前をつける。

「何について記録したいのか」がエンティティ名の候補となる。
 ・モノ・・・リソース系エンティティ
 ・出来事・・・イベント系エンティティ

システム対象化の業務を6W3H(whom,who,what,where,how,when,how many,how much,why)で整理する。
特に「いつ」「どれくらい」「いくら」「なぜ」は重要。