ER モデリングとは何ですか? 例で学ぶ
⚡ スマートサマリー
エンティティ関係モデリングは、データベース設計におけるグラフィカルなアプローチであり、現実世界のオブジェクトをエンティティとして表現し、属性で記述し、関係を通じてそれらがどのように接続されているかを把握することで、テーブルを作成する前に明確な設計図を作成します。

ER モデリングとは何ですか?
実体関連モデル (ER モデリング) は、データベース設計へのグラフィカルなアプローチです。 これは、指定されたソフトウェア システムのデータ要素とその関係を定義する高レベルのデータ モデルです。 ER モデルは、現実世界のオブジェクトを表すために使用されます。
エンティティとは、現実世界において周囲の環境と区別できる物や対象物のことです。例えば、組織の各従業員はそれぞれ独立したエンティティです。以下に、エンティティの主な特徴をいくつか示します。
- エンティティには一連のプロパティがあります。
- エンティティのプロパティには値を含めることができます。
最初の例をもう一度考えてみましょう。組織の従業員はエンティティです。「ピーター」がプログラマー(従業員)である場合 Microsoft彼には、名前、年齢、体重、身長などの属性(特性)がある。それらが彼にとって意味のある値を持っていることは明らかだ。
各属性には値を設定できます。ほとんどの場合、1つの属性には1つの値しかありません。しかし、属性が複数の値を持つこともあります。例えば、ピーターの年齢は1つの値ですが、「電話番号」という属性には複数の値を設定できます。
エンティティ同士は関係を持つことができます。最も単純な例を考えてみましょう。各エンティティが Microsoft プログラマーにはコンピュータが与えられる。ピーターのコンピュータもまた一つの実体であることは明らかだ。ピーターはそのコンピュータを使用しており、同じコンピュータがピーターによって使用されている。言い換えれば、ピーターと彼のコンピュータの間には相互関係が存在する。
エンティティ関係モデリングでは、エンティティ、その属性、およびエンティティ間の関係をモデル化します。
ERモデルを使用する理由とは?
簡単にできるのに、なぜ ER モデリングを使用するのかと思われるかもしれません。 データベースを作成する そしてそのすべてのオブジェクトは ER モデリングなしでしょうか? データベースの設計時に直面する課題の XNUMX つは、設計者、開発者、エンドユーザーによってデータとその使用法に対する見方が異なる傾向があるという事実です。 この状況を放置すると、ユーザーの要求を満たさないデータベースシステムが出来上がってしまう可能性があります。
関係者全員(技術系ユーザーと非技術系ユーザーの両方)が理解できるコミュニケーションツールは、ユーザーの要求を満たすデータベースシステムを構築する上で非常に重要です。ERモデルはそのようなツールの一例です。
ER図は、リレーショナルテーブルに容易に変換できるため、ユーザーの生産性向上にもつながります。
拡張エンティティ関係 (EER) モデル
拡張エンティティ関係(EER)モデルは、元のエンティティ関係(ER)モデルを拡張した高レベルのデータモデルです。EERモデルは、より詳細な設計をサポートします。EERモデリングは、非常に複雑なデータベースをモデリングするためのソリューションとして登場しました。
EERはUML表記法を使用します。UMLは、 統一モデリング言語; これは、オブジェクト指向システムを設計するときに使用される汎用モデリング言語です。 エンティティはクラス図として表現されます。 関係はエンティティ間の関連として表されます。 以下に示す図は、 UML表記.
ケーススタディ:「MyFlix」ビデオライブラリのER図
それでは、MyFlixビデオライブラリのデータベースシステムを使って、ER図の概念を理解していきましょう。このチュートリアルでは、すべての実習でこのデータベースを使用します。
MyFlix は、会員に映画をレンタルする事業体です。 MyFlix は記録を手動で保存しています。 経営陣は現在、次のような状況に移行したいと考えています。 DBMS.
このデータベースのEER図を作成する手順を見ていきましょう。
- エンティティを特定し、それらの間に存在する関係を判断します。
- 各エンティティ、属性、および関係には、技術的な知識のない人でも容易に理解できる適切な名前を付けるべきである。
- 関係は互いに直接つながってはいけません。 関係はエンティティを結び付ける必要があります。
- 特定のエンティティの各属性には一意の名前が必要です。
「MyFlix」ライブラリ内のエンティティ
私たちのグループに含まれるエンティティ ER図 には次の値があります:
- 会員情報 – この組織は会員情報を保持します。
- 映画 – このエンティティは映画に関する情報を保持します。
- カテゴリ – このエンティティには、映画を「ドラマ」、「アクション」、「叙事詩」などのさまざまなカテゴリに分類する情報が格納されます。
- 映画レンタル – この組織は、会員にレンタルされた映画に関する情報を保持します。
- 支払い – この組織は、会員が行った支払いに関する情報を保持します。
エンティティ間の関係の定義
メンバーと映画
2 つのエンティティ間の相互作用に関しては、次のことが当てはまります。
- 会員は一定期間内に複数の映画をレンタルできます。
- 一定期間内に複数の会員が映画をレンタルできます。
上記のシナリオから、関係の性質が多対多であることがわかります。リレーショナルデータベースは多対多の関係をサポートしていません。そのため、結合エンティティを導入する必要があります。これがMovieRentalsエンティティの役割です。MovieRentalsエンティティは、Membersテーブルと一対多の関係を持ち、Moviesテーブルとも一対多の関係を持ちます。
映画とカテゴリのエンティティ
映画とカテゴリーについては次のことが当てはまります。
- 映画は1つのカテゴリーにしか属することができませんが、1つのカテゴリーには複数の映画を登録することができます。
このことから、カテゴリテーブルと映画テーブル間の関係は一対多であると推測できる。
会員と決済主体
会員と支払いに関して、以下のことが当てはまります。
- メンバーはアカウントを XNUMX つしか持つことができませんが、複数回の支払いを行うことができます。
このことから、会員と決済機関との関係は一対多であると推測できる。
EERモデルを作成するために MySQL ワークベンチ
In MySQL ワークベンチ「+」ボタンをクリックしてください。
Double 「図を追加」ボタンをクリックして、ER図用のワークスペースを開きます。
次のウィンドウが表示されます。
これから扱う XNUMX つのオブジェクトを見てみましょう。
- テーブルオブジェクト
これにより、エンティティを作成し、特定のエンティティに関連付けられた属性を定義することができます。
- 場所の関係
このボタンを使用すると、エンティティ間の関係を定義できます。
メンバーエンティティには以下の属性があります。
- 会員番号
- 氏名
- ジェンダー
- 生年月日
- 物理アドレス
- 郵便住所
それでは、メンバーテーブルを作成しましょう。
1. ツールパネルからテーブルオブジェクトをドラッグします。
2. ワークスペース領域にドロップします。テーブル1という名前のエンティティが表示されます。
3. Double それをクリックすると、下図のようなプロパティウィンドウが表示されます。
次に、
- 表1を「メンバー」に変更してください。
- デフォルトのidtable1をmembership_numberに編集します。
- 次の行をクリックして、次のフィールドを追加してください。
- Membersエンティティで識別されたすべての属性についても同様の手順を実行してください。
プロパティ ウィンドウは次のようになります。
識別されたすべてのエンティティに対して上記の手順を繰り返します。
図のワークスペースは次のようになります。
メンバーと映画レンタルとの関係を構築しましょう
- 既存の列ツールを使用して、場所の関係を選択します。
- メンバー表の「membership_number」をクリックしてください。
- MovieRentalsテーブルのreference_numberをクリックしてください。
他の関係についても上記の手順を繰り返してください。ER図は次のようになります。









