マネジメント系

データモデリングとER図 — システムの「設計図」を読む

導入

「なぜ会員情報と注文情報は別のテーブルに入っているの?」――データベースの構造には理由があります。そのデータの設計図にあたるのがER図で、システム開発では欠かせないドキュメントです。

なぜ重要か

データモデリングは、システムが扱う情報の「骨格」を決める作業です。この設計が適切でないと、データの重複・矛盾・検索の非効率が生じ、後の改修コストが膨らむことになります。ITパスポートのテクノロジ系分野では、データベース設計の基礎知識として、ER図の構成要素や多重度の読み取りが頻出問題となっています。

またデータ活用が事業の競争力に直結する現代において、データの構造を正しく設計する力は、エンジニアだけでなくビジネス職の担当者にも求められています。データモデリングの基礎を押さえることで、「このデータはどこに持つべきか」「なぜこの設計になっているのか」を読み解く力が身につき、業務でのデータ活用や発注側のシステム要件定義にも役立てることができます。

くわしく知ろう

データモデリングとは、システムで扱うデータを整理し、その関係を図式化して設計する作業のことを指します。この設計図として用いられるのがER図(Entity-Relationship Diagram:実体関連図)です。

ER図は3つの要素で構成されています。まず「エンティティ(Entity)」は、データの主体となる物や概念のことで、「顧客」「商品」「注文」などが該当します。次に「属性(Attribute)」は、エンティティが持つ具体的な情報のことで、顧客であれば「顧客ID」「氏名」「メールアドレス」などです。そして「リレーションシップ(Relationship)」は、エンティティ同士の関係を表します。

リレーションシップには多重度という概念があり、「1対多(1:N)」と「多対多(M:N)」が試験でよく問われます。1対多とは、ひとりの顧客が複数の注文を持てる関係のことです。多対多とは、1つの注文に複数の商品が含まれ、かつ1つの商品が複数の注文に含まれるような関係を指します。多対多の場合は、中間テーブルを用いて1対多に分解するのが一般的な設計手法として知られています。

主キー(Primary Key)は、エンティティ内の各レコードを一意に識別するための属性です。顧客IDや注文IDなど、重複のない値が主キーとして用いられます。外部キー(Foreign Key)は、別のエンティティの主キーを参照する属性であり、テーブル間の関係を実現します。

具体例で理解する

ECサイトを例にすると、「顧客」エンティティと「注文」エンティティは「1対多」の関係です(1人が複数回注文できる)。一方、「注文」と「商品」は「多対多」のため、「注文明細」という中間テーブルを設けて管理するのが典型的な設計になっています。この中間テーブルには「注文ID」と「商品ID」の両方を外部キーとして持つことで、どの注文にどの商品が含まれるかを管理できるようになっています。

試験での出題パターン

【パターン1:ER図の構成要素を問う問題】

「ER図を構成する3つの要素の組み合わせとして正しいものはどれか」という形式で、エンティティ・属性・リレーションシップの組み合わせを4択から選ぶ問題が代表的です。「クラス・メソッド・インスタンス(オブジェクト指向の概念)」「テーブル・ビュー・インデックス(データベース実装の概念)」などが誤答として並びます。

【パターン2:多重度の読み取り問題】

「顧客と注文の関係として最も適切なものはどれか」という場面説明から多重度(1対多・多対多など)を答える問題です。問題文の「1人が複数回」「複数が複数に対応」といったキーワードを正確に読み取り、多重度の表記と結びつける練習が効果的です。

【パターン3:中間テーブルの役割を問う問題】

「多対多のリレーションシップを設計する際に用いる手法はどれか」という問いに対しては、「中間テーブルを設けて1対多の関係に分解する」という解答が期待されます。なぜ多対多をそのまま実装できないのかという理由とあわせて理解しておくと応用問題にも対応できます。

よくある間違い・紛らわしいポイント

【エンティティと属性の混同】

エンティティは「データの主体(もの・こと)」であり、属性は「エンティティが持つ情報の項目」です。「顧客」はエンティティですが、「顧客名」や「メールアドレス」は顧客エンティティの属性です。試験では「これはエンティティか属性か」を問う問題が出ることがあります。

【ER図とクラス図の混同】

どちらもデータの種類と関係を図で表す点は共通していますが、ER図はデータベース設計の観点(実体と関係)に特化しており、クラス図はオブジェクト指向の観点(クラス・属性・メソッド・継承)を含む点が異なります。クラス図にはメソッドの概念が加わるという点が区別のポイントです。

【多対多をそのまま実装できる誤解】

リレーショナルデータベースでは多対多の関係を直接テーブルとして実装することができません。必ず中間テーブルを設けて1対多の組み合わせに分解する必要があります。試験では「多対多はそのまま実装できる」という誤った選択肢が登場することがあるため、注意が必要です。

まとめ・試験ポイント

  • ER図=エンティティ・属性・リレーションシップでデータ構造を表す設計図
  • エンティティ=データの主体(顧客・商品・注文など)、属性=エンティティが持つ情報の項目
  • 1対多(1:N)=1つのエンティティに複数が対応する関係(顧客→注文)
  • 多対多(M:N)=中間テーブルで1対多に分解して実装(注文↔商品→注文明細)
  • ER図とクラス図の違い:クラス図にはメソッドの概念が含まれる
  • 試験ではER図の多重度(1対多・多対多)の読み取りと中間テーブルの役割が頻出

学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。

入門試験100問に挑戦する