見出し画像

知らなきゃ損!データマネジメントの超基本 データモデリング講座②

みなさん、こんにちは!
今回は、前回に引き続き、データマネジメントの根幹の一部である「データモデル」および「データモデリング」についてご説明したいと思います。
今回のブログは、前回ご説明した内容を前提にしておりますので、前回のブログをまだご覧になっていない方は、ぜひ一度目を通していただいてから、こちらをご一読ください!

さて、前回は最後に、練習問題をご用意しておりました。
まずは、その回答からご紹介したいと思います!

練習問題解説

前回の練習問題として出していたのが、こちらの名刺です。

では、前回の知識を踏まえて、データモデルの作成手順を見ていきましょう。

手順①:エンティティ名をつける

まず、このような帳票等からデータモデルを作成する際は、まずこの帳票がビジネス上何を表しているのか?を考えるところから始めましょう。
つまり、帳票名(エンティティ名)を考えてみましょう。
この画像の場合、名刺と言っているので、「名刺」とそのまま名付けてもいいですし、もう少し、ビジネス上使われていそうな名前で考えて、「従業員」という名称にしても良いでしょう。
今回は、「従業員」というエンティティ名で進めます。

練習問題解説②:主Key(キー)を見つける

これは、前回もご説明した概念になります。
この場合、従業員一人一人を識別する項目はなんだろう?という目線で考えます。
画像だけを見ると、例えば、名前と、住所の組み合わせで識別できるのでは?と考えるかもしれません。
しかし、こうした項目は、なんらかのライフイベント等により、値が変わってしまう可能性が高いです(例えば、結婚して苗字が変わるなど)。
こうした項目を主Keyとしてしまうと、値が変わるたびに別レコードとして登録しなければならなくなります。つまり、結婚して苗字が”名刺 太郎”から、”従業員 太郎”に変わったとします。名前を主Keyにしてしまうと、システム上では、”名刺 太郎”さんと、”従業員 太郎”さんが別の従業員として捉えられてしまうということです。
同じ従業員なのに、こんなことになってしまっては、システムとしてイマイチですよね。
では、何が主Keyとなるのでしょうか?
実は、このような、システム上管理したいエンティティには大抵、何らかの識別用の番号を持っているものです。帳票上は確認できないかもしれませんが、裏側で持たせることが多いです。例えば学生番号などのように、無意味もしくは有意味の数字や文字による連番が振られているということです。
この場合であれば、「従業員番号」にあたるものが、実は裏側で管理されているのだろうと推測することができます。
そんなの聞いてないよ!と思われるかもしれません。すみません、これは前回解説できていませんでした。ですので、この機会にぜひ念頭に置いておいてください。

練習問題解説③:他項目を定義する

主Keyがわかったので、次は、他の項目を整理していきましょう。
項目を整理する際は、値を元にどういう意図で使われているのかを想像しながら、項目名を考えていきましょう。
ここでは、絵を使って説明しましょう。

おそらく、名刺内に記載されている内容のそれぞれの意味を考えると、これらの項目に分けられると思われます。
次回の、ブログで項目名の命名規則について簡単に触れようと考えているので、今はこのような名付け方をするのだなぁという程度に捉えておいていただけると嬉しいです!

練習問題解説④:データモデルの技法で表現する

では、最後に、ここまで整理した内容をもとに、データモデルの技法に落とし込みましょう。
おそらくこのようになったのではないでしょうか?

③で出した項目をそのまま書いただけになりますが、このように書ければ現時点ではOKです!
ちなみに、エンティティの右隣に書いてある5W1Hについてですが、これは、項目名を書き並べる際に、右の順番を意識して並べてほしい意図があります。
このように並べる意識をつけておくと、足りない項目が他に無いかを確認する際に、見当がつくことが多くなるので、ぜひ意識して見てください!
補足)
Who:個人や組織に関する情報(氏名や部署名など)
What:モノの情報(商品名や、製品の分類など)
When:時間に関する情報(商品の納入日など)
Where:場所に関する情報(商品の納入先など)
Why:原因に関する情報(問い合わせ理由区分など)
How many:数量に関する情報(購入数量など)
How much:金額に関する情報(支払金額など)

練習問題解説 補足!

ここまで、練習問題の内容をもとに、データモデルの作り方を何となくイメージいただけたのでは無いでしょうか?
ただ、これだけだと、「結局箱を描いて、項目をひたすら書くだけなの?」と疑問に思う方や、詳しい方なら「正規化はしないの?」と思われるかもしれません。
正直、ここまでの解説だけで思ったよりも文字数がかかってしまったので、次回のブログで、発展編という形でもう少し、この練習問題を解説していきたいと思います。

次回のブログでは、データモデリングの核となる概念である「正規化」についてをメインで解説しながら、今回の練習問題を深掘りしていきたいと思います!
少しでもデータモデル/モデリングについて理解や興味を持っていただけると嬉しいです!
それでは、また次回。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?