はじめに
エンティティ関係図(ERD)は、データベース設計およびソフトウェア工学における必須のツールです。これらは、システム内の異なるエンティティ間のデータ構造と関係を視覚的に表現します。本記事は、ERDの理解を深め、主要な概念を検討し、実際の応用例を提示することで、包括的なガイドとして機能することを目的としています。
ERDの主要な概念
エンティティ
エンティティは、データベースにおける基本的なオブジェクトまたは概念です。顧客、製品、注文など、現実世界の事物を表します。各エンティティには、その性質を記述する属性があります。たとえば、「顧客」エンティティには、「顧客ID」、「名」、「姓」、「メールアドレス」などの属性があるかもしれません。
関係
関係は、エンティティどうしがどのように相互作用するかを定義します。一対一、一対多、多対多のいずれかです。たとえば、「顧客」エンティティと「注文」エンティティの間に一対多の関係がある場合、1人の顧客が複数の注文を出すことができるということを示します。
属性
属性は、エンティティの性質や特徴を表します。エンティティに関する詳細情報を提供します。たとえば、「映画」エンティティの属性には、「タイトル」、「公開年」、「評価」などが含まれるかもしれません。
主キー
主キーは、エンティティの固有の識別子です。これにより、エンティティ内の各レコードが一意に識別可能になります。たとえば、「顧客ID」は「顧客」エンティティの主キーとなる可能性があります。
外部キー
外部キーは、あるエンティティ内の属性で、別のエンティティの主キーを参照するものです。これにより、エンティティ間の関係が確立され、維持されます。たとえば、「注文」エンティティに「顧客ID」という外部キーがあり、これにより「顧客」エンティティを参照している場合があります。
事例研究:映画レンタルシステム
ERDの実際の応用を説明するために、映画レンタルシステムの事例を検討しましょう。このシステムのERDは、提示された図に示されています。

エンティティと属性
- 映画:レンタル可能な映画を表す。
- 属性:映画ID、タイトル、説明、公開年、レンタル期間、レンタル料、長さ、補償費用、評価、特別特徴、全文
- カテゴリ:映画のジャンルやカテゴリを表す。
- 属性:カテゴリID、名前
- 映画カテゴリ:映画とカテゴリの多対多の関係を表す。
- 属性:映画ID、カテゴリID
- 言語:映画が利用可能な言語を表す。
- 属性: LanguageID、Name
- 俳優: 映画に出演する俳優を表します。
- 属性: ActorID、FirstName、LastName
- 映画俳優: 映画と俳優の多対多の関係を表します。
- 属性: FilmID、ActorID
- 在庫: レンタル可能な映画の在庫を表します。
- 属性: InventoryID、FilmID
- レンタル: レンタル取引を表します。
- 属性: RentalID、StaffID、CustomerID、InventoryID、RentalDate、ReturnDate
- 支払い: レンタルに対する支払いを表します。
- 属性: PaymentID、RentalID、CustomerID、Amount、PaymentDate
- 顧客: レンタルシステムの顧客を表します。
- 属性: CustomerID、AddressID、FirstName、LastName、Email、Active、CreateDate
- 住所: 顧客およびスタッフの住所を表します。
- 属性: AddressID、CityID、Address、Address2、District、PostalCode、Phone
- 都市: 顧客およびスタッフが居住する都市を表します。
- 属性: CityID、City、CountryID
- 国: 顧客およびスタッフが居住する国を表します。
- 属性: CountryID、Country
- スタッフ: レンタルシステムのスタッフを表します。
- 属性: スタッフID、住所ID、店舗ID、名、姓、メールアドレス、有効、画像URL
- 店舗: レンタル店舗を表します。
- 属性: 店舗ID、住所ID
関係
- 映画とカテゴリ: 以下のエンティティを介しての多対多の関係映画カテゴリエンティティ。
- 映画と俳優: 以下のエンティティを介しての多対多の関係映画俳優エンティティ。
- 映画と在庫: 1対多の関係で、1本の映画に対して複数の在庫アイテムが存在できます。
- 在庫とレンタル: 1対多の関係で、1つの在庫アイテムが複数回レンタルできます。
- レンタルと支払い: 1対1の関係で、各レンタルには1つの支払いがあります。
- レンタル と 顧客: 1対多の関係で、1人の顧客が複数のレンタルを行うことができる。
- 顧客 と 住所: 1対1の関係で、各顧客は1つの住所を持つ。
- 住所 と 都市: 1対多の関係で、1つの都市に複数の住所が存在することができる。
- 都市 と 国: 1対多の関係で、1つの国に複数の都市が存在することができる。
- スタッフ と 店舗: 1対多の関係で、1つの店舗に複数のスタッフが勤務できる。
- 店舗 と 住所: 1対1の関係で、各店舗は1つの住所を持つ。
結論
エンティティ関係図 (ERD)は強力なツールデータベース構造の設計と理解に役立つ。エンティティ、属性、関係を視覚的に表現することで、ERDは効率的で整理されたデータベースの作成を支援する。映画レンタルシステムの事例は、ERDが複雑なシステムをモデル化し、データの整合性と一貫性を確保するのにどのように利用できるかを示している。データベースデザイナー、ソフトウェアエンジニア、データアナリストのいずれであっても、ERDを習得することは、効果的なデータベース管理とシステム設計にとって不可欠である。












