DBMS - ERモデルの基本概念

こんにちは、将来のデータベース魔法使いの皆さん!今日は、エンティティ・リレーションシップ(ER)モデルの興味深い世界に飛び込みます。あなたの近所の親切なコンピュータサイエンスの先生として、この旅をガイドするためにここにいます。コードを書いたことがない人でも大丈夫です。虚拟のメモ帳を手に取り、始めましょう!

DBMS - ER Model Basic Concepts

エンティティ

エンティティとは?

エンティティはデータベースの宇宙の星です。物、人、場所、または概念で、私たちが情報を保存したいものです。図書館のデータベースを作成していると仮定しましょう。本、著者、読者はすべてエンティティです。

簡単な例を見てみましょう:

エンティティ 説明
物理またはデジタルの読み物
著者 本を書く人
読者 本を借りる人

### エンティティセット

今、図書館のすべての本が入っている大きな箱「本」を思い浮かべてください。この箱はエンティティセットと呼ばれるものです。この箱の中のそれぞれの本は「本」エンティティセット内のユニークなエンティティです。

## 属性

### 属性とは?

エンティティがデータベースの宇宙の星ならば、属性はそれぞれの星をユニークにする twinkling(光り輝く)詳細です。属性はエンティティを説明するプロパティや特性です。

図書館の例を拡張してみましょう:


| エンティティ | 属性                               |
|--------------|-----------------------------------|
| 本           | ISBN、タイトル、出版日、ジャンル   |
| 著者         | 著者ID、名前、生年月日、国籍       |
| 読者         | 読者ID、名前、住所、電話番号       |

これらの属性は、エンティティをより正確に特定して説明するのに役立ちます。例えば、ISBN(国際標準書籍番号)は各本のユニークな識別子です。

属性の種類

すべての属性は平等ではありません。異なる種類を見てみましょう:

  1. 単純属性:これらは原子単位で、例えば人の年齢です。
  2. 複合属性:これらはより小さな部分に分割できます。例えば住所(通り、市、郵便番号)。
  3. 単一値属性:これらは特定のエンティティに対して chỉ 一つの値を持っています。例えば人の生年月日。
  4. 複数値属性:これらは複数の値を持つことができます。例えば人の電話番号。
  5. 派生属性:これらは他の属性から計算されます。例えば年齢(生年月日から計算)。

以下にこれらの種類をまとめた表があります:

属性の種類
単純 年齢
複合 住所(通り、市、郵便番号)
単一値 生年月日
複数値 電話番号
派生 年齢(生年月日から計算)

## リレーションシップ

### リレーションシップとは?

今、データベースの宇宙の星を結びつけましょう!リレーションシップは2つ以上のエンティティ間の関連です。図書館の例では、著者が「書く」本、読者が「借りる」本です。

### リレーションの種類

リレーションは、どれだけのエンティティが関わっているかによって異なります:

1. **一元的リレーション**:同じエンティティセットのインスタンス間のリレーション。
2. **二元的リレーション**:2つのエンティティセットのインスタンス間のリレーション。
3. **三元的リレーション**:3つのエンティティセットのインスタンス間のリレーション。

図書館の例でこれらを図示します:


| リレーション種類 | 例                                    |
|------------------|---------------------------------------|
| 一元的           | 本「は続編として」本                  |
| 二元的           | 著者「が書く」本                      |
| 三元的           | 読者「が借りる」本「から」図書館支店|

リレーションのカーディナリティ

カーディナリティはデータベースの宇宙の交通ルールのようです。これは、1つのエンティティのインスタンスが他のエンティティのインスタンスとどれだけ関連できるかを定義します。主な種類は以下の通りです:

  1. 1対1(1:1):エンティティAの1つのインスタンスがエンティティBの正好1つのインスタンスに関連し、その逆も然り。
  2. 1対多(1:N):エンティティAの1つのインスタンスがエンティティBの複数のインスタンスに関連し、Bの各インスタンスはAの1つのインスタンスに関連します。
  3. 多対多(M:N):エンティティAの複数のインスタンスがエンティティBの複数のインスタンスに関連します。

図書館にこれを適用してみましょう:

カーディナリティ
1対1 本「は」ISBN(各本にはユニークなISBNがあります)
1対多 著者「が書く」本(1人の著者が複数の本を書く)
多対多 読者「が借りる」本(多くの読者が多くの本を借りる)


そして、皆さん!私たちはERモデルの基本概念の旅を終えました。良いストーリーのように、よく設計されたデータベースは、そのキャラクター(エンティティ)、その特性(属性)、そして彼らの相互作用(リレーション)について教えてくれます。

最後に、私の教師としての初期のエピソードを思い出しました。あるとき、リレーションをロマンチックコメディのアナロジーで説明を試みました。データベースのリレーションをデートシナリオに例えると、生徒たちは非常に混乱し(そして笑い)ました!

これらの概念を練習し続けることで、あなたはすぐにエンティティやリレーションをどこにでも見るようになるでしょう - あなたのお気に入りのカフェからソーシャルメディアのフィードまで。ハッピーモデリング!

Credits: Image by storyset