データコンサルYブログ:(第7回)「エンティティの種類」~データマネジメントのすべては分からないが基本的なことはよく分かるブログ

2022-08-03

このブログは、人当たりの良さとマニアックな知識で、世間の荒波を漂流しリアライズに流れ着いた「流浪のデータコンサルY」が、データマネジメントについて控えめに語るブログです。仕事の合間の息抜きにご利用ください

 

前回の振り返り

●キーは“一意性を担保するもの”と覚えるだけじゃもったいない。

●キーはエンティティの定義を決める重要なもの。

●キーの文脈(=発番する対象範囲)を把握するよう心がけよう。

 

はじめに

前回まで、“買い物エンティティ”を題材に話を進めてきました。

このエンティティは、第5回で触れたように「出来事」を表しています。

さて、エンティティには「出来事」以外にも何か表すものがあるのでしょうか。

実は一年ぶりの投稿なのですが、しれっと(笑)今回はコンパクトにお伝えします。

 

 

リソースとイベント

コンパクトと言った以上、いきなり結論から入ります。

エンティティの種類は「出来事」を表すものと、その出来事に登場する「人や場所や物など」を表すものに大別されます。

データマネジメントの世界では前者をイベント、後者をリソースと呼ぶことが一般的です。

 

さて、前回まで何度も登場している“買い物エンティティ”を見てみましょう。

 

 

このエンティティ自体は“買い物をした”という「出来事」を表したイベントです。

ただ、データ項目1つ1つを見ていくと「人や場所や物など」にあたるものがありますよね。

例えば、購入者は買い物の主体となる登場人物ですし、購入場所は買い物が行われた場所。商品は買い物の対象物です。

これら1つ1つも“情報のかたまり”として認識することができそうですね。

 

本稿では以下のように“家族エンティティ”、“お店エンティティ”、“商品エンティティ”の3つのリソースを認識してみました。

 

 

このように見てみると、リソースはあらかじめ存在するもので、イベントが発生した時にリソースの中からデータ値を選択しているように思いませんか?

そう思った方はとても良いセンスをしています。

リソースとイベントについてもう少しだけ見ていきましょう。

 

それぞれの特徴

リソースは、イベントが発生するか否かに関わらず、一定数の情報が存在するエンティティです。

大きな特徴が2つあります。

 

まず、リソースは「複数種類のイベントで共用される」という点です。

例えば、出来事は買い物以外にも、調理・掃除・散歩など多数存在し得ますが、その実施主体は“家族エンティティ”の中の誰かになりますよね。

 

 

もう1つは、「情報が増減する頻度が低い」という点です。

家族を例にとると、増えるケースは子供が生まれた場合くらいでしょうし、減るケースは子供が結婚し家を出た場合か、誰かが死亡した場合くらいです。

お店を例にとるなら、増減するのは新規開店か閉店くらいで、よく買い物をする近所の店に限れば、そんなに頻繁に増減するものではありませんよね。

 

一方で、イベントはリソースと真逆で、出来事が起きた分だけ情報が存在するエンティティです。

ある出来事の記録ですから、リソースのように共用されるものではありません。

そして、出来事が起きた分だけ情報が増えていきます。

誤って記録した場合以外は減ることはありません。

 

そう考えると、リソースと比べてイベントの情報量は圧倒的に多いことになります。

一年間、家族構成が変わらないとすればリソースは3件。

毎日買い物するとすればイベントは365件。

もう一年間それが続けば、リソースは3件のままですが、イベントは730件ですからね……。

情報量の差がお分かりいただけたかと思います。

 

サマリ

エンティティの種類を語る際に、もう1つ「サマリ」があるという人もいます。

「サマリ」とはその名の通りで、イベントをある集計軸や条件に合わせて集計したエンティティのことです。

ちなみに私は、言う派なので本稿でも触れることにします。

 

下の例を見てみましょう。

購入月と商品を集計軸とし、X牛乳の購入総額を表したエンティティがありますね。

これがサマリエンティティで、リソースを集計軸にイベントを集計したエンティティと言うことができます。

 

 

 

おわりに

今回は、エンティティの種類について書いてみました。

データマネジメントの世界では頻繁に使われる言葉なので、知らなかった方はぜひ覚えておいてください。

ちなみにIT業界では、リソースを“マスタ”、イベントを“トランザクション”と呼ぶことが多いです。

呼び方は違いますが、ほぼ同じことを言っていると捉えて問題ないです。

 

「違う!」という人もいるでしょうがいいんです。

このブログは初心者向けなのですから。

 

次回予告

エンティティの種類の話ができたので、いよいよリレーションシップの話ができるかなと考えております。

さて、次回はいつになるのやら。頑張ります。

 

 

 

次回のデータコンサルYブログ

これがあると超便利!エンティティ同士を結び付ける、リレーションシップを解き明かします。

(第8回)エンティティとエンティティをつなぐもの

 

   

前回のデータコンサルYブログ

キーを考える際に重要なこと。正しくデータを蓄積するために、キーが持つ重要な役割とは?

(第6回)一意性より先に意識を向けるべきこと

 

facebook.PNG   Twitter_Logo_Blue.png

 

 

関連ブログ