DBMS を使用したエンティティ関係 (ER) ダイアグラム モデルの例
⚡ スマートサマリー
DBMS の例を使用したエンティティ リレーションシップ (ER) 図モデル リレーショナルデータベース内のデータとその相互関係を視覚的に表現するための構造化された手法を示します。Peter Chenによって提案されたこの手法は、実体、属性、関係、そしてそれらの基数を正確に定義するための概念モデリングの基盤を提供します。

ER 図とは何ですか?
実体関連図(ER図)は、リレーショナルデータベース構造を設計するための強力な視覚ツールです。1976年にピーター・チェンによって初めて提唱されたER図は、実体、属性、関連、そしてそれらの基数を正確に定義する概念モデリングの基盤を提供します。このチュートリアルでは、基本概念から高度なテクニックまでを網羅し、データベーススキーマ設計を習得できるよう支援します。
ER 図には、エンティティを表すために四角形、属性を定義するために楕円、関係を表すためにひし形を使用するさまざまなシンボルが含まれています。
一見すると、ER図はフローチャートと非常によく似ています。しかし、ER図には多くの特殊な記号が含まれており、その意味によってこのモデルは独特なものとなっています。ER図の目的は、エンティティフレームワークのインフラストラクチャを表現することです。

ERモデルの歴史
ピーター・チェンは1976年、画期的な論文「実体関連モデル:データの統一的ビューに向けて」の中でERダイアグラムを提唱しました。彼の目標は、リレーショナルデータベースとネットワークの両方に使用できる統一された規約を作成することでした。チェンは、ERモデルを、現実世界の要件と技術的なデータベース実装の間のギャップを埋める概念モデリング手法として構想しました。
それ以来、ERモデルは、チェン記法(オリジナル)、クロウズフット記法(現代のツールで普及)、UMLベースのアプローチなど、様々な記法体系を経て進化してきました。こうしたバリエーションにもかかわらず、コアとなる概念はすべての実装において一貫しています。
ER 図を使用する理由
ER 図は、データベースの設計と開発にさまざまな利点をもたらします。
- ビジュアルコミュニケーション: 技術者と非技術者の両方の関係者が理解できる明確な視覚的表現を提供します。
- 開発の青写真: これらは、テーブルがどのように接続されるか、各テーブルにどのようなフィールドが含まれるかを正確に示します。
- 翻訳対応: ER 図はリレーショナル テーブルに直接変換できるため、データベースを迅速に構築できます。
- エラー防止: 実装前に設計上の欠陥や冗長性を特定し、時間とリソースを節約するのに役立ちます。
- ドキュメント: これらは、新しいチーム メンバーがシステム アーキテクチャを理解するのに役立つ永続的なドキュメントとして機能します。
- システム分析: システム内に存在するすべてのエンティティとそれらの間の関係を識別するのに役立ちます。
ER図の構成要素
すべてのER図は、エンティティ、属性、リレーションシップという3つのコアコンポーネントから構成されます。各コンポーネントとそれらの相互作用を理解することは、効果的なデータベース設計を作成するために不可欠です。
ER図の例
例えば、大学のデータベースには、学生、コース、講師というエンティティが存在するとします。学生エンティティには、ロール番号、名前、学科IDなどの属性があり、コースや講師とリレーションシップを持つ可能性があります。
エンティティ
エンティティとは、生物または無生物を問わず、明確に識別でき、そのデータを格納することができる現実世界のあらゆるオブジェクトを表します。物理的なもの、企業に関する事実、あるいは現実世界で起こる出来事など、実体には様々なものがあります。エンティティには、人、場所、オブジェクト、イベント、概念などが含まれます。
カテゴリ別のエンティティの例:
- 人: 従業員、学生、患者、顧客
- 場所: 店舗、建物、オフィス、倉庫
- オブジェクト: 機械、製品、車、本
- イベント: 販売、登録、更新、取引
- コンセプト: アカウント、コース、部門、プロジェクト
エンティティ セット
エンティティセットとは、共通の属性を持つ類似のエンティティのグループです。例えば、大学のすべての学生は「学生」というエンティティセットを形成します。ER図では、エンティティは四角形で表され、その中にエンティティ名が記述されます。
エンティティは、プロパティ(属性とも呼ばれます)によって表現されます。すべての属性はそれぞれ個別の値を持ちます。例えば、学生エンティティは、名前、年齢、クラスといった属性を持つことができます。
強い実体と弱い実体
エンティティは、独立して存在できる能力に基づいて、強いエンティティと弱いエンティティに分類されます。この区別を理解することは、適切なデータベース設計にとって非常に重要です。
強力なエンティティは独自の主キーを持ち、独立して存在できます。例えば、「Student」エンティティは、他のエンティティに依存せずに、Student_IDによって一意に識別できます。
弱いエンティティは独自の主キーを持たず、強いエンティティ(オーナーエンティティと呼ばれる)によって識別されます。弱いエンティティは、オーナーの主キーと部分キー(識別子)を組み合わせることで一意性を実現します。例えば、銀行システムでは、「取引」エンティティは「口座」エンティティに依存しています。取引番号だけではデータベース全体で一意ではありませんが、口座番号と組み合わせることで一意になります。
| 強力なエンティティ | 弱い実体 |
|---|---|
| 独自の主キーを持つ | 主キーを持たず、部分キーを使用する |
| 一つの長方形で表す | 二重の長方形で表す |
| 主キーは実線で下線が引かれます | 部分的なキーは破線で下線が引かれています |
| 独立して存在できる | 存在は所有者エンティティに依存します |
| シングルダイヤモンドの関係でつながっている | 二重のダイヤモンドで接続(関係を識別) |
| 例: 学生、従業員、製品 | 例: トランザクション、依存関係、注文項目 |
関係
リレーションシップは、2つ以上のエンティティ間の関連性を表します。リレーションシップは通常、エンティティ同士の相互作用を表す動詞または動詞句で表されます。ER図では、リレーションシップはひし形で表されます。例:トムは化学部門で働いています。
エンティティは関係に参加します。 多くの場合、動詞や動詞句との関係を特定できます。
例:
- あなたはこの講義に参加しています
- 講演を行っております
- 学生が講義に出席する
- 講師が講義をしている
Attributes
属性とは、実体または関係性を記述する特性または特徴です。属性は、各実体インスタンスを一意かつ意味のあるものにするための詳細な情報を提供します。ER図では、属性は楕円(省略記号)で表され、親実体と線で結ばれます。
たとえば、Student エンティティには、Student_ID、Name、Date_of_Birth、Email、Phone_Number などの属性が含まれる場合があります。
属性の種類
| 属性タイプ | 詳細説明 | 例: |
|---|---|---|
| 単純 (AtomIC) | さらに小さなコンポーネントに分割することはできません | 電話番号、社会保障番号、メールアドレス |
| 複合 | より小さなサブ属性に細分化できる | 氏名(名、ミドルネーム、姓)、住所(番地、市、郵便番号) |
| 派生 | 値は他の属性から計算され、直接保存されることはありません | 年齢(生年月日から算出)、合計金額 |
| 多値 | 単一のエンティティに対して複数の値を保持できます | 電話番号・携帯番号 Numbers、メールアドレス、スキル |
| キー属性 | 各エンティティインスタンスを一意に識別します(主キー) | 学生ID、従業員ID、ISBN |
重要なヒント: ER図では、キー属性は名前に下線が引かれて表示されます。派生属性は破線の楕円で、複数値属性は二重の楕円で表示されます。
カーディナリティ(関係の種類)
カーディナリティは、関係における数値的な制約、具体的には、あるエンティティのインスタンスが別のエンティティのインスタンスにいくつ関連付けられるかを定義します。カーディナリティを理解することは、効率的なデータベース構造を設計する上で不可欠です。
1. 1対1(1:1)
セット A の 1 つのエンティティは、セット B の最大 1 つのエンティティに関連付けることができ、その逆も同様です。
例: 1 人の学生には 1 つの学生 ID が割り当てられ、各学生 ID は 1 人の学生に属します。
2. 1対多(1:N)
セット A の 1 つのエンティティはセット B の複数のエンティティに関連付けることができますが、セット B の各エンティティはセット A の 1 つのエンティティにのみ関連付けられます。
例: 1 つのクラスは複数の生徒で構成されます。
3. 多対一(N:1)
セット A の複数のエンティティをセット B の 1 つのエンティティに関連付けることができます。
たとえば、多くの生徒が同じクラスに属します。
4. 多対多(M:N)
セット A の複数のエンティティをセット B の複数のエンティティに関連付けることができ、その逆も同様です。
たとえば、グループとしての学生は複数の教員メンバーに関連付けられ、教員メンバーは複数の学生に関連付けることができます。
ER図の記号と表記法
ER図では、標準化された記号を用いて様々なコンポーネントを表します。表記法はいくつかありますが、最も広く使われているのはChen表記法とCrow's Foot表記法です。
陳記法
1976 年に Peter Chen によって開発された Chen 記法では、幾何学的形状を使用してさまざまな要素を表します。
| シンボル | 名前 | 表し |
|---|---|---|
| 長方形 | エンティティ | 強力なエンティティ(例:学生、製品) |
| Double 長方形 | 弱い実体 | 他のエンティティに依存するエンティティ(例:トランザクション) |
| 楕円形 | 属性 | エンティティのプロパティ(例:名前、ID) |
| Double 楕円 | 多値属性 | 複数の値を持つ属性(例:電話番号 Numbers) |
| 破線楕円 | 派生属性 | 計算値(例:生年月日に基づく年齢) |
| ダイヤモンド | 関係 | エンティティ間の関連付け(例:Enrolls) |
| Double ダイヤモンド | 関係性の特定 | 弱い実体との関係 |
| LINE | リンク | コンポーネントを接続する |
| 下線付きテキスト | 主キー | エンティティの一意の識別子 |
カラスの足跡記法
クロウズフット記法(IE記法とも呼ばれる)は、現代のデータベース設計ツールでより一般的に使用されています。この記法では、異なる行末記号を用いて基数を表し、特に関係の「多」側を示すのに効果的です。
| シンボル Descriptexpression CMS | 意味 |
|---|---|
| 単一の縦線(|) | 必須 1つ(正確に1つ) |
| 線付きの円 (O|) | オプション 1 (0 または 1) |
| 目尻のしわ(>|) | 必須 多数(1つ以上) |
| 丸で囲まれたカラスの足跡(>O) | オプション 多数(0個以上) |
陳記法とカラスの足記法:それぞれの使い方
| 側面 | 陳記法 | カラスの足跡記法 |
|---|---|---|
| 以下のためにベスト | 概念モデリング、学術的使用 | 物理/論理モデリング、産業用途 |
| 属性表示 | すべての属性を視覚的に表示 | エンティティボックス内の属性を一覧表示します |
| 基数 | 数字を使用する(1、N、M) | 視覚的なシンボルを使用する |
| 複雑 | 雑然とする可能性がある | よりコンパクトでクリーン |
| ツールサポート | 限定的な最新ツールのサポート | ツールで広くサポートされています |
エンティティ関係図 (ERD) を作成する方法
このER図(ERD)チュートリアルでは、ER図の作成方法を学びます。ER図を作成する手順は以下のとおりです。
エンティティ関係図の例でそれらを研究してみましょう。
大学では、学生はコースに登録します。学生は少なくとも1つのコースに割り当てられる必要があります。各コースは1人の教授によって指導されます。教育の質を維持するため、教授は1つのコースしか担当できません。
ステップ 1) エンティティの識別
私たちには 3 つのエンティティがあります:
- Student
- コース
- 東京大学大学院海洋学研究室教授
ステップ 2) 関係の特定
次の 2 つの関係があります。
- 学生は 割り当てられた コース
- 教授 提供します コース
ステップ 3) カーディナリティの識別
問題の説明から次のことがわかります。
- 学生を割り当てることができます の試合に コース
- 教授が提供できるのは、 XNUMXつ ここから
ステップ 4) 属性を特定する
属性を特定するには、組織が現在管理しているファイル、フォーム、レポート、データなどを調査する必要があります。また、様々な関係者へのインタビューを実施してエンティティを特定することもできます。まずは、特定のエンティティにマッピングすることなく、属性を特定することが重要です。
属性のリストができたら、それらを識別されたエンティティにマッピングする必要があります。属性は必ず1つのエンティティとペアになるようにしてください。属性が複数のエンティティに属する必要がある場合は、修飾子を使用して一意になるようにしてください。
マッピングが完了したら、主キーを特定します。 一意のキーがすぐに入手できない場合は、作成してください。
| エンティティ | 主キー | 属性 |
|---|---|---|
| Student | 学生証 | 学生の名前 |
| 東京大学大学院海洋学研究室教授 | 従業員ID | 教授名 |
| コース | コースID | コース名 |
コース エンティティの場合、属性には期間、単位、課題などがあります。簡単にするために、1 つの属性のみを検討しました。
ステップ5) ERDを作成する
エンティティ関係図のより現代的な表現の例:
効果的な ER 図のベストプラクティス
明確で保守可能かつ効果的な ER 図を作成するには、次のガイドラインに従ってください。
- 冗長性の排除: 重複するエンティティ、属性、またはリレーションシップを削除します。
- 明確な命名規則を使用する: 一貫性があり、説明的な名前を使用してください。略語は避けてください。
- 要件に対する検証: 図がすべてのデータ ストレージのニーズをサポートしていることを確認します。
- 単純にする: 乱雑な 1 つの図ではなく、異なるレベルで複数の図を作成します。
- 色を控えめに使う: カテゴリを強調するには、一貫して色を使用します。
- ドキュメントの前提: ビジネス ルールに関する前提を説明するメモを含めます。
- Revステークホルダーとのレビュー: ビジネス ユーザーと技術チームに図を確認してもらいます。
- バージョン管理: デザインの進化に合わせてバージョンを維持します。
ER 図と UML クラス図
ER図とUMLクラス図はどちらもデータモデリングに使用されますが、目的とコンテキストは異なります。効果的なシステム設計には、それぞれをいつ使用するかを理解することが重要になります。
| 側面 | ER図 | UML クラス図 |
|---|---|---|
| 主な目的 | データベース設計 | ソフトウェア/オブジェクト設計 |
| フォーカス | データと関係 | オブジェクト、メソッド、動作 |
| 方法/Operaン | サポートされていません | 完全にサポート |
| 継承 | 限定的(EERのみ) | フルサポート |
| 産業用途 | データベース管理者、データアナリスト | ソフトウェア開発者、建築家 |















