はじめに
今回はPythonから離れて、ER図を扱います。データ分析をするときに、複数のデータソースの関係を表すのにER図が提供される場合があります。ER図はデータの関連を示すので、これを読み解けなければ困ってしまいますね。今回は、基本的なことを整理しましょう。
用語の整理
ER図というのは、Entity Relationship Diagramのことです。日本語では、「実態関連図」と呼ばれます。Entityが「テーブル」、Relationshipが「関連」を表しますが、たくさんの用語が出てくるので、まずはこれを整理することにしましょう。
- Entity
Entityはデータのまとまりのこと。テーブルと考えてもらえばよいと思います。Entityの中にAttributeという属性情報があります。
- Attribute
Entityの中の属性情報のこと。データ項目のことだと考えればよいと思います。
データベース内では次のような構造になります。
Attribute | Attribute | Attribute | Attribute | Attribute | |
Entity | — | — | — | — | — |
Entity | — | — | — | — | — |
Entity | — | — | — | — | — |
- 主キー(PK:Primary Key)
プライマリキー。Entityを一意に定義するキーのこと。 - 外部キー(FK:Foreign Key)
外部キーは、Entity間の関連を定義するキーのこと。外部キーの値は、関連先のEntityの主キーの値に一致させることでつながりを示す。 - 関連(Relationship)
Entity間に相互作用が存在する場合に、この作用のあり方を表すもので、Entity間に線を引いて表す。リレーションの詳細は、「カーディナリティ」という記号を使って表現する。 - カーディナリティ
「1対1」「1対多」「多対多」など、リレーションの詳細を表現する記号のことです。「0以上」や「0または1」といったことも表現することができます。
ER図作成のステップ
設計者がER図を作成する際のステップとして整理されていた以下を参考にしました。ここに詳細が書かれていますが、データ分析をする立場としては、ここまで必要なわけではありません。必要な部分を抜粋して理解に役立てるので良いと思います。
シナリオの確認
ここは設計者向けに書かれた記事を参照すると、シナリオ設計からおこなうようにとあります。データ分析をする立場としては、すでにデータベースが存在しているので、確認をしておくとよいでしょう。
エンティティを洗い出す
既に整理されていれば、それを活用すればよいですが、ドキュメントが入手できなければ、自分たちで整理していく必要があります。まずは、エンティティを書き出していくことから始めるとよさそうです。
エンティティを分類する
次に、洗い出したエンティティを分類してい行きます。分類の軸は、「マスタ系」と「トランザクション系」にわけるとよいでしょう。言い換えると、マスタのように頻繁に変更が加わるものではないもの、と日々データが追加となるようなもの、にわける作業になります。
アトリビュートを洗い出す
こちらも整理されていることが普通かもしれませんが、なければエンティティごとに洗い出しをおこないます。
ER図に落とし込む
最後にER図にまとめます。このER図があると、各テーブル間の関係が可視化できてわかりやすいですね。分析する際にも役に立ちます。
まとめ
今回はちょっと趣向を変えてER図を扱ってみました。私も、もともと知らない内容で調べながらまとめたのですが、いかがでしたでしょうか?ER図の見方くらいは身に着けておくと、今後の役にたちそうです。しっかり復習しましょう。
コメント