ER図(実体関連図)とは?構成要素と種類を具体例付きでわかりやすく解説
ER図(Entity-Relationship Diagram:実体関連図)は、現実世界を「エンティティ(実体)」として捉えるデータベース設計のための図式表現手法です。1976年にP.P.チェン(P.P.Chen)によって提唱され、「ERモデル」といった名称でも広く知られています。ER図を使うことで、エンティティ集合同士の関係性を視覚的に把握できるようになります。
まずは、ER図を構成する基本的な要素から順に見ていきましょう。
エンティティ(Entity)
DBMSにおけるエンティティとは、独立した存在を持つ現実世界のオブジェクトを指します。例えば学校のデータベースであれば、教師、学生、科目などがエンティティに該当します。

属性(Attributes)
エンティティには「属性」が紐づきます。属性とは、そのエンティティの特徴や性質を記述するものです。例えば教師エンティティの場合、教師名(Teacher_Name)、住所(Teacher_Address)、担当科目(Teacher_Subject)などが属性となります。これらの属性値はデータベース内に保存されます。

弱エンティティ(Weak Entity)
弱エンティティとは、主キーを持たず、親となるエンティティに依存して存在するエンティティのことです。単独では識別できず、他のエンティティとの関係によって成り立ちます。典型的な例としては、教授の「扶養家族」などが挙げられます。

強エンティティ(Strong Entity)
強エンティティは主キーを持ち、他のエンティティに依存することなく独立して存在できるエンティティです。弱エンティティは、この強エンティティに依存する形で存在します。
例えば「教授」は強エンティティに該当します。

主キー(Primary Key)
すべてのテーブルには必ず1つの主キーが設定され、NULL値(空の値)を持つことは許されません。主キーの例としては、学籍番号(StudentID)、社会保障番号(SSN)、口座番号(AccountNumber)などが挙げられます。

多値属性(Multivalued Attribute)
単一のエンティティに対して、同時に複数の値を持ちうる属性を「多値属性」と呼びます。
例えば、ある学生の技術スキルは「プログラミング」「Web開発」など複数の値を取り得るため、多値属性に該当します。

複合属性(Composite Attribute)
2つ以上の下位属性に分割できる属性を「複合属性」と呼びます。
例えば「学生名」は、姓(First Name)・ミドルネーム(Middle Name)・名(Last Name)という3つの属性に分解できます。

派生属性(Derived Attribute)
その名の通り、他の属性の値から計算・導出できる属性を「派生属性」と呼びます。
例えば「学生の年齢」は、生年月日(Date-of-birth)から算出できるため、派生属性にあたります。

ER図の具体例:病院データベース
ここで、病院を題材としたER図の例を見てみましょう。
- 「患者(Patient)」「医師(Doctor)」「検査(Tests)」の3つのエンティティで構成されている
- 患者エンティティの「年齢(Age)」は派生属性である
- 検査エンティティの「名前(Name)」は主キーである
- 医師エンティティの「ID」は主キーである
- 患者エンティティの「ID」は主キーである

-
HTML pattern属性とは?使い方とサンプルコードをわかりやすく解説
HTMLのpattern属性は、<input>要素に入力された値が、あらかじめ指定した正規表現に一致するかどうかを検証するための属性です。この属性を活用すれば、JavaScriptを書かなくてもブラウザ側で手軽に入力チェック(バリデーション)を実装でき、フォームの利便性を高めることができます。pattern属性を指定した入力欄に正規表現と一致しない値が入力された場合、フォーム送信時にエラーメッセージが表示され、送信がブロックされます。利用できるのはtext・search・tel・url・email・passwordなどのテキスト系入力タイプです。構文pattern属性の基本構文は次
-
ER図の最小化:カーディナリティ別に見る最適なテーブル数
問題の概要ER図(Entity Relationship Diagram)とは、データベースを構成するさまざまなテーブルと、それらの間の関係を視覚的に表現した図のことです。ER図を適切に設計・分析することで、データベースに必要なテーブル数を削減し、効率的なスキーマを構築することができます。1対1のカーディナリティまず、1対1のカーディナリティを持つ以下のER図を見てみましょう。このER図は、次の3つのエンティティで構成されています。従業員(Employee)エンティティ:emp_name という属性を持ち、emp_id が主キーとなります。会社(Company)エンティティ:cmp_name