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

⚡ スマートサマリー

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

  • 🧩 それは何ですか: ERモデリングとは、データ要素とその関係性を定義する、高レベルのグラフィカルなデータモデルである。
  • 🗂️ ビルディングブロック: エンティティは現実世界の事物を表し、属性はその事物の特性を記述し、関係性はエ​​ンティティ間の相互作用を捉える。
  • 🔗 カーディナリティ: 関係は1対1、1対多、または多対多であり、結合エンティティによって解決されます。
  • 🚀 EERモデル: 拡張ERモデルは、UML表記法と、非常に複雑なデータベースのための追加構成要素を使用します。
  • 🎬 MyFlixの事例研究: ビデオライブラリの例では、会員、映画、カテゴリ、レンタル、支払いをER図にマッピングしています。
  • 🤖 AI支援: AIツールとGitHub Copilotは、自然言語による記述をER図とSQLスキーマに変換します。

ERモデリング

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

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

エンティティとは、現実世界において周囲の環境と区別できる物や対象物のことです。例えば、組織の各従業員はそれぞれ独立したエンティティです。以下に、エンティティの主な特徴をいくつか示します。

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

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

各属性には値を設定できます。ほとんどの場合、1つの属性には1つの値しかありません。しかし、属性が複数の値を持つこともあります。例えば、ピーターの年齢は1つの値ですが、「電話番号」という属性には複数の値を設定できます。

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

エンティティ関係モデリングでは、エンティティ、その属性、およびエンティティ間の関係をモデル化します。

ERモデルを使用する理由とは?

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

関係者全員(技術系ユーザーと非技術系ユーザーの両方)が理解できるコミュニケーションツールは、ユーザーの要求を満たすデータベースシステムを構築する上で非常に重要です。ERモデルはそのようなツールの一例です。

ER図は、リレーショナルテーブルに容易に変換できるため、ユーザーの生産性向上にもつながります。

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

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

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

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

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

それでは、MyFlixビデオライブラリのデータベースシステムを使って、ER図の概念を理解していきましょう。このチュートリアルでは、すべての実習でこのデータベースを使用します。

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

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

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

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

私たちのグループに含まれるエンティティ ER図 には次の値があります:

  • 会員情報 – この組織は会員情報を保持します。
  • 映画 – このエンティティは映画に関する情報を保持します。
  • カテゴリ – このエンティティには、映画を「ドラマ」、「アクション」、「叙事詩」などのさまざまなカテゴリに分類する情報が格納されます。
  • 映画レンタル – この組織は、会員にレンタルされた映画に関する情報を保持します。
  • 支払い – この組織は、会員が行った支払いに関する情報を保持します。

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

メンバーと映画

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

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

上記のシナリオから、関係の性質が多対多であることがわかります。リレーショナルデータベースは多対多の関係をサポートしていません。そのため、結合エンティティを導入する必要があります。これがMovieRentalsエンティティの役割です。MovieRentalsエンティティは、Membersテーブルと一対多の関係を持ち、Moviesテーブルとも一対多の関係を持ちます。

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

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

  • 映画は1つのカテゴリーにしか属することができませんが、1つのカテゴリーには複数の映画を登録することができます。

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

会員と決済主体

会員と支払いに関して、以下のことが当てはまります。

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

このことから、会員と決済機関との関係は一対多であると推測できる。

EERモデルを作成するために MySQL ワークベンチ

In MySQL ワークベンチ「+」ボタンをクリックしてください。

EERモデルを作成するために MySQL ワークベンチ

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

図を追加する MySQL ワークベンチ

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

MySQL ワークベンチEERモデリング環境

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

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

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

  • 会員番号
  • 氏名
  • ジェンダー
  • 生年月日
  • 物理アドレス
  • 郵便住所

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

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

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

3. Double それをクリックすると、下図のようなプロパティウィンドウが表示されます。

メンバーテーブルプロパティ MySQL ワークベンチ

次に、

  1. 表1を「メンバー」に変更してください。
  2. デフォルトのidtable1をmembership_numberに編集します。
  3. 次の行をクリックして、次のフィールドを追加してください。
  4. Membersエンティティで識別されたすべての属性についても同様の手順を実行してください。

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

メンバーエンティティ属性が定義されています

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

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

ダイアグラムワークスペース内のMyFlixエンティティ

メンバーと映画レンタルとの関係を構築しましょう

  1. 既存の列ツールを使用して、場所の関係を選択します。
  2. メンバー表の「membership_number」をクリックしてください。
  3. MovieRentalsテーブルのreference_numberをクリックしてください。

メンバーと映画レンタル会社との関係構築

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

MyFlixのER図が完成しました

よくあるご質問

ER図は、エンティティを長方形、属性を楕円、リレーションシップをひし形で表すという3つの主要な構成要素を使用します。下線付きの属性は主キーを示します。

一般的な属性の種類としては、単純属性(原子属性)、複合属性(分割可能属性)、派生属性(計算属性)、多値属性(複数の値を持つ属性)、およびエンティティを識別するキー属性があります。

カーディナリティとは、あるエンティティのインスタンスが別のエンティティとどれだけ関連しているかを定義するもので、1対1、1対多、または多対多のいずれかです。ジャンクションエンティティは、サポートされていない多対多リンクを解決します。

強力なエンティティは独自の主キーを持ち、独立して存在します。弱いエンティティは完全なキーを持たず、所有者エンティティに依存します。

カラスの足記法は、鳥の足に似た線端で基数を表します。突起は複数の辺を示し、棒と円は単一の辺と省略可能な辺を示します。

ERモデルは、エンティティとリレーションシップを視覚的に表現した高レベルの設計図です。リレーショナルモデルは、これをDBMS内のテーブル、行、列、キーとして実装します。

AIツールは、自然言語による記述をER図に変換し、エンティティとリレーションシップを提案し、SQLスキーマを生成します。設計者は、実装前に出力結果を確認し、修正します。

Yes. GitHubコパイロット エンティティ、リレーションシップ、テーブル構造を提案し、それらを構築するためのSQLを生成します。また、Mermaidのようなダイアグラム・アズ・コードを作成し、ER図としてレンダリングすることもできます。