E-R図とは
E-R図(Entity-Relationship Diagram)とは、データベースの設計において、扱うデータ全体の構造や関係性を視覚的に表現するための図です。データの実体である「エンティティ(Entity)」と、それらの間にある「リレーションシップ(Relationship:関連)」という2つの要素を箱と線で表します。システム開発の初期段階で、顧客やエンジニアが『どんなデータを保存する必要があり、それらがどう繋がっているか』を共通認識として整理するために非常に重要な図です。
具体例
学校の図書管理システムを設計する場合を考えます。まず、『生徒』や『本』というデータの塊を長方形の箱(エンティティ)として描きます。次に、『生徒』と『本』の箱を「借りる」という動詞を記した菱形と線(リレーションシップ)で結びます。これにより、『どの生徒が、どの本を借りているか』というデータベースの骨組みが一目でわかる図(E-R図)が完成します。
もう少し詳しく
E-R図は、データベース概念設計のフェーズにおいて、業務で必要とされるデータ項目を整理するために使われます。E-R図を構成する主要な要素は以下の通りです。
・エンティティ(Entity):管理対象となる「人」「物」「出来事」などの実体です。E-R図では四角形(長方形)で表します。例えば、社員、顧客、商品、注文、売上などが該当します。
・リレーションシップ(Relationship):エンティティ同士の「結びつき(関連)」です。E-R図では一般に菱形や線で表されます。例えば、「社員」が「部署」に「所属する」、「顧客」が「商品」を「購入する」といった動詞にあたる関係です。
・属性(Attribute):エンティティやリレーションシップが持つ具体的なデータ項目です。例えば、「社員」というエンティティであれば「社員番号」「氏名」「生年月日」などが属性となります。
また、E-R図で極めて重要な概念が「多重度(カーディナリティ:対応数)」です。これは、一方のエンティティの1つのインスタンスに対し、もう一方のエンティティがいくつ対応するかを表したものです。
・「1対1」:例えば、「社員」と「社員証」の関係です。1人の社員は1つの社員証を持ち、1つの社員証は1人の社員に対応します。
・「1対多」:例えば、「部署」と「社員」の関係です。1つの部署には複数の社員が所属できますが、1人の社員は1つの部署にしか所属できません。
・「多対多」:例えば、「学生」と「講義」の関係です。1人の学生は複数の講義を受講でき、1つの講義には複数の学生が参加できます。
多対多の関係は関係データベース(RDB)で直接表現できないため、設計段階で「中間テーブル(交差テーブル)」を間に挟み、1対多の関係に分解することが実務上の重要なテクニックとなっています。記述方法には、古典的な「チェン記法」のほかに、鳥の足のような線で多重度を表現する「IE記法」があり、システム開発現場ではIE記法がよく使用されます。
試験でのポイント
IT試験においては、E-R図の見方や各記号の意味、多重度に関する記述問題が頻出します。
試験対策としての重要ポイントは以下の通りです。
・エンティティとリレーションシップの定義:「実体」がエンティティ、「関連」がリレーションシップであることを確認しましょう。
・カーディナリティ(対応数)の読み取り:図に描かれた線や記号(「1」「*」「鳥の足マーク」など)から、テーブル間の関係が「1対多」なのか「多対多」なのかを読み取る問題が出題されます。
・E-R図からテーブル(関係スキーマ)への変換:E-R図を基に、どのようなテーブルを作成すべきか、外部キーをどちらのテーブルに配置すべきかを判断する設計問題への応用が求められます。
問題文に「業務で扱うデータとデータ同士の関連を、実体と関連という要素でモデル化して視覚的に表した図はどれか」という主旨の記述があれば、E-R図を選択してください。
関連する用語
E-R図によって設計されたデータを実装するための仕組みである「関係データベース(RDB)」や、E-R図における管理対象である「エンティティ」、それらの関係性を示す「リレーションシップ」および「カーディナリティ(多重度)」が重要です。また、E-R図をベースにテーブルを整理していくプロセスである「正規化」も切り離せない関連用語です。