Open2

データモデリングについて学ぶ

しゃもじしゃもじ

WEB+DB PRESS vo130でデータモデリングについて書いてあったのでめっちゃ簡単にまとめて整理してみてみる。

良いデータモデルとは

筆者の考えている良いデータモデルは、モデリングの過程で考慮漏れやエッジケースの発見につながるものと定義している。良いデータモデルを作るためには、何を同じとみなし、何を違うと判断するかを議論し、誰かの頭にあるコンセプトを抽象化していかなければならない。

しゃもじしゃもじ

エンティティについて

上記で記述した「何を同じとみなし、なにを違うと判断するか」の指針になるもの。次の要件を満たす。

  • 1つのものである
  • ほかのものとは区別され独立している

1つのものに識別するための識別子(user_IDとか)を持ち、関数従属するいくつかの属性をもつ。エンティティの持つ属性が変更されたとしても識別子が同一であれば、同じものとする。また、エンティティには3つの性質をもつ。

  • 単一性(Oneness)
    • 何が同じであるか
  • 同一性(Sameness)
    • 2つのものが同じであると、どういう時に言えるのか
  • カテゴリ(Category)
    • それは何であるか、どんな分類で識別されるか