E-R図をひとことでわかりやすく言えば、箱と線でつながりを表すもの(テーブルやエンティティの関係性を線で表すもの)です。
- E(Entity)は、実態(箱)そのもの。データベースでいうテーブル
- R(Relationship)は関係性。エンティティのつながりを線で表す
文字通り、E(エンティティ、テーブル)のR(関係性)を表しているのがE-R図です。
E-R図とは箱と線でつながりを表す(テーブルの関係性を線で表す)もの
E-R図とは箱と線でつながりを表す(テーブルの関係性を線で表す)ものです。
E-R図の”E”(実態。要するにテーブル)
E-R図の”E”は、実態です。英語で書くと、”Entity”(エンティティ)。
「E(Entity)が実態」と言われてもピンとこないと思うので、データベースというデータを保存しておく箱をイメージしてください。
データベースには、さらに「テーブル」というものがあって、実際にデータを保存するのはテーブル。
「よくわかんないなぁ~」と思ったら、「データベース」=「箱そのもの」、「テーブル」=「箱の名前」みたいなイメージ(あくまでイメージ)を持つのが一番手っ取り早いです。
テーブルは、例えば「学生」テーブルみたいに名前も書かれています。「どこかの大学の学生番号と名前が入っているんだろうな~」って想像ができますよね。
試験的には、E-R図上では、「学生」エンティティと呼ぶほうが正しいです。イメージ(エンティティ)を書いて、それをもとに、プログラムで動くデータベースのテーブルを実際に作りますが、説明の都合上、テーブルと書きます。
名前が付けられていて実態がある。ひとことで言えば、“E”は、データベースのテーブルのこと(正確に言えば、プログラムでテーブルを作る前の状態)です。
E-R図の”R”(関係性・つながりを、線で表す)
E-R図の”R”とは、関係性・つながりを、線で表すことです。Rを英語で書くと”relationship”。
もう一度おさらいすると、”E”とはテーブルでしたね。例えば、「学生」テーブルであれば、「どこかの大学の学生番号と名前が入っているんだろうな~」って想像ができます。
そこで、もうひとつテーブルを準備。「ひよこ大学」というテーブルを作ります。
「ひよこ大学」テーブルと「学生」テーブル。なんだかつながっていそうですよね。
なので、「ひよこ大学テーブルと学生テーブルは、関係しているよ~」みたいに。
こんな感じで、線で結んであげたらいいわけ。
線で結んだ関係性が、”R”です。
E(テーブル)とR(関係性、つながり)が出そろいました。ひよこ大学と学生のE-R図の完成です。
※基本情報技術者試験の午前問的には、エンティティ(≒テーブル)の中身の「属性(Attribute)」まで出るとは限りませんが、実際の業務あるいは午後問題的には、「属性」(箱の中身)こそが最重要なので・・・。
令和元年秋期の午前問題にE-R図(概念データモデル)が出題
令和元年秋期の基本情報技術者試験の午前問題(問25)にE-R図(概念データモデル)が出題されました。
E-R図を読む
フィーリングで読んじゃえばよし(問題を解きつつ、慣れていくのが一番)。
最後の「従業員1人が複数部署に属する可能性もある」について補足。
従業員1に対して、部署は1..*(上限なし)なので、複数部署がありえます。
なんだか、ややこしい・・・
ひよこSEであれば、よくわかんなくなったら表にしちゃいます。
部署の数 | 従業員数 | 部署と従業員の関係 |
---|---|---|
0 | 0 | 部署は1以上なのでありえない |
1 | 0 | 部署だけある可能性もある |
1 | 1 | 1人の従業員が1つの部署に属する |
2 | 1 | 1人の従業員が1つ以上の部署に属する ※従業員ゼロの部署がある可能性あり |
2 | 2 | 2人の従業員が1つ以上の部署に属する ※従業員ゼロの部署がある可能性あり |
こんな感じで、具体的な数字を入れてしまえば、間違える可能性はグッと減る!
答え
答えは、イ(従業員は、同時に複数の部署に所属してもよい)です。
- ア:部署と従業員ともに*なので、部署1000で従業員3とかでもいい。
- イ:従業員1に対して、部署は1..*(上限なし)なので、複数部署がありえる。正解。
- ウ:部署1..*に対して、従業員は0..*なので、従業員ゼロもありえる
- エ:従業員が部署に「◀所属する」とあるので、誤り。
まとめ
E(エンティティ、テーブル)のR(関係性)を表しているのがE-R図。
- E(Entity)は、実態(箱)そのもの。データベースでいうテーブル
- R(Relationship)は関係性。エンティティのつながりを線で表す
E-R図ときたら、箱と線でつながりを表すもの。
実務的に言えば、「学生」エンティティ1に対して、学部を管理する「ひよこ大学」エンティティは1しかありえない。学生が複数の学部にいることは、ないみたいに使うイメージっす(-_-;)。
コメント