※ 本記事では、応用情報技術者試験に向けて私が勉強したことを備忘録的にまとめておきたいと思います。基本情報技術者試験の内容と重複しているものもあります。なお、記事の投稿順に意味はないので、気にしないでもらえればと思います。
はじめに
今回は E-R図 について詳しくまとめたいと思います。
E-R図はデータベース(データを整理・蓄積したもの)の設計図のようなもので、業務で扱うデータの構造や関係性を視覚的に整理するために利用されます。
最初に重要なことを整理します。
・Eはエンティティ(Entity)=実体、Rはリレーションシップ(Relationship)=関係性
・エンティティとは、現実世界で管理したい対象(「顧客/商品/注文」、「学生/授業/単位」etc.)
・リレーションシップとはエンティティ同士の関係(“顧客”は”注文”する、”学生”は”授業”を履修する etc.)
これをイメージできるかどうかが大事ですね。それではより具体的な内容に進んでいきます。
ちなみに私はこの参考書を使って勉強してました。
情報が豊富でがっつり勉強したい方向けかと思います。
E-R図の構成要素
先ほどと重複する内容もありますが、改めてE-R図の構成要素をまとめます。
① エンティティ(Entity)
エンティティは管理したい対象であり、モノ・概念を含みます。ECサイトを例にして考えると、顧客/商品/注文などがエンティティとなります。
② リレーションシップ(Relationship)
エンティティ同士の関係性です。関係の種類は「1対1、1対N、N対N」の3種類あります。先ほどの顧客と注文のリレーションシップは「”顧客”は”注文”する」などがあります。
③ 属性(Attribute)
先ほどは紹介しませんでしたが、属性とはエンティティが持つ情報です。例えば、エンティティが”顧客”の場合、顧客ID/名前/住所などが属性となります。属性が具体的な値を持つと、インスタンスと呼ばれるようになります。ここで重要なこととして、ある1つのインスタンスを識別するために、主キー(識別子と呼ぶこともあります)を設定する必要があります。ECサイトを例にすれば、顧客IDが主キーとなります。なぜなら、顧客IDは重複を許さないからです。もし顧客の名前を主キーにしてしまうと同姓同名がいた場合、識別できなくなってしまいます。
ここまでの内容を図にまとめてみました。頭の中の整理になれば幸いです。

N対Nのリレーションシップの扱い方
エンティティのリレーションシップの中で、N対Nがあると扱いが難しくなります。そこで、N対Nの関係を1対Nに変換していく作業が必要となります。ここでは”学生”と”授業”の2つのエンティティについて考えてみます。
学生がN人、授業がM個あるとすると、このままだとN対Mで多対多のリレーションシップになってしまいます。そこで中間のエンティティとして”履修”を利用します。この中間のエンティティを中間エンティティや連関エンティティと呼びます。
まず学生の属性を「学生ID/氏名」とし、授業の属性を「授業ID/授業名」としましょう。そして、履修の属性を「学生ID/授業ID」とします。このようにすることで、学生と授業を1対Nのリレーションシップにすることができます。このことを説明した図が下の図になります。

最後に
今回は、E-R図について例も交えてまとめてみました。
N対Nのリレーションシップは1対Nの関係に変換することが大切なんですね。
それでは今回はこの辺で。
おすすめの記事
当ブログではいろいろな記事を書いています。今人気の記事をいくつかご紹介しますので、ぜひご覧ください。




コメント