ER モデリングとは何ですか? 例で学ぶ

ER モデリングとは何ですか?

実体関連モデル (ER モデリング) は、データベース設計へのグラフィカルなアプローチです。 これは、指定されたソフトウェア システムのデータ要素とその関係を定義する高レベルのデータ モデルです。 ER モデルは、現実世界のオブジェクトを表すために使用されます。

An エンティティ 実世界において周囲の環境から区別できる物またはオブジェクトです。たとえば、組織の各従業員は個別のエンティティです。以下はエンティティの主な特性の一部です。

  • エンティティには一連のプロパティがあります。
  • エンティティのプロパティには値を含めることができます。

最初の例をもう一度考えてみましょう。 組織の従業員はエンティティです。 「ピーター」がプログラマー( 従業員)で Microsoft、彼は持つことができます 属性 (プロパティ) 名前、年齢、体重、身長など。それらが彼に関連する値を保持していることは明らかです。

各属性には次のものを含めることができます 価値観。 ほとんどの場合、XNUMX つの属性には XNUMX つの値があります。 ただし、属性が 複数の値 また、たとえば、ピーターの年齢には単一の値があります。しかし、彼の「電話番号」プロパティには複数の値がある場合があります。

エンティティが持つことができるのは、 の関係 お互いに。最も単純な例を考えてみましょう。それぞれ Microsoft プログラマーにはコンピューターが与えられます。それは明らかです ピーターのコンピューター も実体です。 Peter はそのコンピュータを使用しており、Peter も同じコンピュータを使用しています。 言い換えれば、Peter と彼のコンピュータの間には相互関係があります。

In エンティティ関係モデリング、 エンティティ、その属性、エンティティ間の関係をモデル化します。

拡張エンティティ関係 (EER) モデル

拡張エンティティ関係 (EER) モデルは、元のモデルに拡張機能を提供する高レベルのデータ モデルです。 実体関連(ER) モデル。EER モデルはより詳細な設計をサポートします。EER モデリングは、非常に複雑なデータベースをモデリングするためのソリューションとして登場しました。

EER は UML 表記を使用します。 UML はの頭字語です。 統一モデリング言語; これは、オブジェクト指向システムを設計するときに使用される汎用モデリング言語です。 エンティティはクラス図として表現されます。 関係はエンティティ間の関連として表されます。 以下に示す図は、 UML表記.


拡張エンティティ関係 (EER)

ER モデルを使用する理由

簡単にできるのに、なぜ ER モデリングを使用するのかと思われるかもしれません。 データベースを作成する そしてそのすべてのオブジェクトは ER モデリングなしでしょうか? データベースの設計時に直面する課題の XNUMX つは、設計者、開発者、エンドユーザーによってデータとその使用法に対する見方が異なる傾向があるという事実です。 この状況を放置すると、ユーザーの要求を満たさないデータベースシステムが出来上がってしまう可能性があります。

ユーザーの要件を満たすデータベース システムを作成するには、すべての関係者 (技術ユーザーだけでなく非技術ユーザー) が理解できるコミュニケーション ツールが重要です。 ER モデルはそのようなツールの例です。

ER 図はリレーショナル テーブルに簡単に変換できるため、ユーザーの生産性も向上します。

ケーススタディ: 「MyFlix」ビデオ ライブラリの ER 図

次に、ER 図の概念を理解するために、MyFlix ビデオ ライブラリ データベース システムを使用してみましょう。 このチュートリアルの残りの部分では、すべての実践でこのデータベースを使用します。

MyFlix は、会員に映画をレンタルする事業体です。 MyFlix は記録を手動で保存しています。 経営陣は現在、次のような状況に移行したいと考えています。 DBMS

このデータベースの EER 図を作成する手順を見てみましょう。

  1. エンティティを特定し、それらの間に存在する関係を判断します。
  2. 各エンティティ、属性、関係には、専門知識のない人でも簡単に理解できる適切な名前が必要です。
  3. 関係は互いに直接つながってはいけません。 関係はエンティティを結び付ける必要があります。
  4. 特定のエンティティの各属性には一意の名前が必要です。

「MyFlix」ライブラリ内のエンティティ

私たちのグループに含まれるエンティティ ER図 あります。

  • 加盟国 – このエンティティはメンバー情報を保持します。
  • 動画 – このエンティティは映画に関する情報を保持します
  • カテゴリー – このエンティティは、映画を「ドラマ」、「アクション」、「エピック」などのさまざまなカテゴリに分類する情報を保持します。
  • 映画レンタル – このエンティティは、会員にレンタルされた映画に関する情報を保持します。
  • 支払 – このエンティティは、メンバーによって行われた支払いに関する情報を保持します。

エンティティ間の関係の定義

メンバーと映画

2 つのエンティティ間の相互作用に関しては、次のことが当てはまります。

  • 会員は一定期間内に複数の映画をレンタルできます。
  • 一定期間内に複数の会員が映画をレンタルできます。

上記のシナリオから、関係の性質は多対多であることがわかります。 リレーショナル データベースは多対多の関係をサポートしません。 ジャンクション エンティティを導入する必要があります。 これは、MovieRentals エンティティが果たす役割です。 これには、members テーブルと XNUMX 対多の関係があり、movie テーブルとの別の XNUMX 対多の関係があります。

映画とカテゴリのエンティティ

映画とカテゴリーについては次のことが当てはまります。

  • ムービーは XNUMX つのカテゴリにのみ属することができますが、カテゴリには複数のムービーを含めることができます。

このことから、カテゴリと映画テーブルの間の関係の性質は XNUMX 対多であることが推測できます。

会員と決済主体

会員と支払いについては次のことが当てはまります

  • メンバーはアカウントを XNUMX つしか持つことができませんが、複数回の支払いを行うことができます。

このことから、メンバーと支払いエンティティの間の関係の性質は XNUMX 対多であることが推測できます。

次に、次を使用して EER モデルを作成しましょう MySQL ワークベンチ

MySQL ワークベンチ、クリック – 「+」ボタン

エンティティ間の関係の定義

Double [図の追加] ボタンをクリックして、ER 図のワークスペースを開きます。

エンティティ間の関係の定義

次のウィンドウが表示されます

エンティティ間の関係の定義

これから扱う XNUMX つのオブジェクトを見てみましょう。

  • エンティティ間の関係の定義テーブル オブジェクトを使用すると、エンティティを作成し、特定のエンティティに関連付けられた属性を定義できます。
  • エンティティ間の関係の定義配置関係ボタンを使用すると、エンティティ間の関係を定義できます。

この メンバーの エンティティには以下の属性があります

  • 会員番号
  • 氏名
  • 性別
  • 生年月日
  • 物理アドレス
  • 郵便住所

それではメンバーテーブルを作成しましょう

1.ツールパネルからテーブルオブジェクトをドラッグします。

2.ワークスペースエリアにドロップします。 table 1 という名前のエンティティが表示されます

3.Double クリックして。以下のプロパティウィンドウが表示されます

エンティティ間の関係の定義

次 、

  1. テーブル 1 をメンバーに変更します
  2. デフォルトの idtable1 を members_number に編集します。
  3. 次の行をクリックして次のフィールドを追加します
  4. メンバーのエンティティで識別されたすべての属性に対して同じことを行います。

プロパティ ウィンドウは次のようになります。

エンティティ間の関係の定義

識別されたすべてのエンティティに対して上記の手順を繰り返します。

図のワークスペースは次のようになります。

エンティティ間の関係の定義

会員と映画レンタルの関係を築きましょう

  1. 既存の柱も使用して位置関係を選択します
  2. 「メンバー」テーブルの「membership_number」をクリックします。
  3. MovieRentals テーブルのreference_number をクリックします。

エンティティ間の関係の定義

他の関係についても上記の手順を繰り返します。 ER 図は次のようになります。

まとめ

  • ER の完全な形式は、エンティティおよび関係図です。 彼らは非常に重要な役割を果たしています データベース設計 プロセス。 これらは、技術者と非技術者のための非技術的なコミュニケーション ツールとして機能します。
  • エンティティは現実世界のものを表します。 販売注文などの概念的な場合もあれば、顧客などの物理的な場合もあります。
  • すべてのエンティティには一意の名前を付ける必要があります。
  • ER モデルを使用すると、データベース設計者はエンティティ間に存在する関係を識別して定義することもできます。

ER モデル全体を以下に添付します。単純にインポートできます MySQL ワークベンチ

ER モデルをダウンロードするにはここをクリックしてください