# Seite 4. ERM-Trainer

**ERM-Trainer**

Dieser interaktive Trainer gehört zur Theorie-Seite:

```text
ERM – Entity-Relationship-Modell
```

Hier übst du, aus kurzen Aufgabenstellungen die wichtigsten Bestandteile eines ERM zu erkennen:

```text
Entität 1
Entität 2
Beziehung
Kardinalität
Zwischentabelle bei n:m-Beziehungen
```

---

**Was wird trainiert?**

| Bereich | Bedeutung |
|---|---|
| **Entität erkennen** | wichtige Datenobjekte aus dem Text finden |
| **Beziehung erkennen** | passende Verbindung zwischen den Entitäten formulieren |
| **Kardinalität bestimmen** | 1:1, 1:n, n:1 oder n:m auswählen |
| **Zwischentabelle erkennen** | bei n:m-Beziehungen eine passende Zwischentabelle nennen |
| **Typische IHK-Formulierungen verstehen** | aus Textaufgaben das Datenmodell ableiten |

---

**Interaktiver ERM-Trainer**

<iframe
  src="https://trainer.ulrich-wiki.com/erm-trainer.html?v=1"
  width="100%"
  height="1450"
  style="border:1px solid #444; border-radius:12px;">
</iframe>

<div style="margin:16px 0;">
  <a
    href="https://trainer.ulrich-wiki.com/erm-trainer.html?v=1"
    target="_blank"
    rel="noopener"
    style="
      display:inline-block;
      padding:12px 18px;
      background:#2563eb;
      color:white;
      font-weight:bold;
      text-decoration:none;
      border-radius:10px;
      border:1px solid #1d4ed8;
    ">
    ERM-Trainer im Vollbild öffnen
  </a>
</div>

---

**Merksatz für den Trainer**

```text
Entität = wichtiges Datenobjekt
Beziehung = Verbindung zwischen Entitäten
Kardinalität = Wie viele gehören zusammen?
1:n = einer zu vielen
n:m = viele zu vielen
n:m = meistens Zwischentabelle nötig
```

---

**Beispiel**

Aufgabenstellung:

```text
Ein Schüler kann mehrere Kurse belegen.
Ein Kurs kann von mehreren Schülern belegt werden.
```

Lösung:

| Feld | Lösung |
|---|---|
| Entität 1 | Schüler |
| Entität 2 | Kurs |
| Beziehung | belegt |
| Kardinalität | n:m |
| Zwischentabelle | Belegung |

Warum?

```text
Viele Schüler können viele Kurse belegen.
Deshalb ist es eine n:m-Beziehung.
Eine n:m-Beziehung braucht später meistens eine Zwischentabelle.
```

---

**Mini-Testfragen**

<details>
<summary><strong>1. Was musst du im ERM-Trainer zuerst aus der Aufgabenstellung erkennen?</strong></summary>

Zuerst musst du die wichtigsten **Entitäten** erkennen.

Entitäten sind meistens wichtige Hauptwörter aus der Aufgabenstellung.

Beispiel:

```text
Ein Kunde kann mehrere Bestellungen aufgeben.
```

Mögliche Entitäten:

```text
Kunde
Bestellung
```

</details>

<details>
<summary><strong>2. Wann liegt meistens eine 1:n-Beziehung vor?</strong></summary>

Wenn ein Datensatz der einen Entität mit mehreren Datensätzen der anderen Entität verbunden sein kann.

Beispiel:

```text
Ein Kunde kann mehrere Bestellungen haben.
Eine Bestellung gehört genau zu einem Kunden.
```

Das ist:

```text
Kunde 1:n Bestellung
```

</details>

<details>
<summary><strong>3. Wann liegt meistens eine n:m-Beziehung vor?</strong></summary>

Wenn viele Datensätze der einen Entität mit vielen Datensätzen der anderen Entität verbunden sein können.

Beispiel:

```text
Ein Schüler kann mehrere Kurse belegen.
Ein Kurs kann von mehreren Schülern belegt werden.
```

Das ist:

```text
Schüler n:m Kurs
```

</details>

<details>
<summary><strong>4. Was passiert bei einer n:m-Beziehung später meistens?</strong></summary>

Die n:m-Beziehung wird durch eine **Zwischentabelle** aufgelöst.

Beispiel:

```text
Schüler n:m Kurs
```

wird zu:

```text
Schüler 1:n Belegung n:1 Kurs
```

</details>

<details>
<summary><strong>5. Warum ist die Zwischentabelle wichtig?</strong></summary>

Weil eine n:m-Beziehung in einer relationalen Datenbank nicht einfach direkt gespeichert wird.

Die Zwischentabelle speichert die Verbindung zwischen beiden Entitäten.

Beispiel:

```text
Belegung
- schueler_id
- kurs_id
- anmeldedatum
```

</details>

---

**Nächste Seite**

Danach geht es weiter mit:

```text
Relationales Datenbankmodell
```