# ER-Modell erklärt: Entity-Relationship-Modell

> Das Entity-Relationship-Modell (ER-Modell) ist der Bauplan einer Datenbank. Es beschreibt, welche Dinge gespeichert werden (Entitäten), welche Eigenschaften sie haben (Attribute) und wie sie zusammenhängen (Beziehungen). Aus diesem Modell entstehen später die Tabellen. Besonders wichtig sind die Kardinalitäten, die festlegen, wie viele Datensätze einander zugeordnet sind.

**Autor:** Mr. Benjamin · **Beruf:** IT-Grundlagen
**Veröffentlicht:** 2026-07-16 · **Aktualisiert:** 2026-10-28
**Quelle:** https://yellowbluetech.de/blog/er-modell-datenbanken-planen

---

Wer eine Datenbank baut, ohne sie vorher zu planen, baut sich Ärger ein: doppelte Daten, unmögliche Beziehungen, Chaos beim Erweitern. Das ER-Modell ist der Bauplan, der das verhindert – und der erste Schritt jedes ernsthaften Datenbankprojekts.

## Was ist ein Entity-Relationship-Modell?

Das **Entity-Relationship-Modell**, kurz **ER-Modell**, beschreibt die Daten eines Systems als **Entitäten** (Dinge), **Attribute** (ihre Eigenschaften) und **Beziehungen** zwischen den Entitäten. Gezeichnet wird es als **ER-Diagramm**. Es ist der Standardweg, um eine relationale Datenbank zu entwerfen.

## Warum ein Modell vor der Tabelle?

Eine [Datenbank](/blog/was-ist-eine-datenbank) besteht am Ende aus Tabellen. Aber welche Tabellen brauchst du, welche Spalten, und wie hängen sie zusammen? Diese Fragen klärt man **vor** dem Bauen – im ER-Modell. Es ist der Architektenplan, bevor der erste Stein gesetzt wird.

> **Merksatz**
>
> Erst **planen**, dann **bauen**. Das ER-Modell beschreibt die Struktur der Daten unabhängig von der konkreten Technik. Aus einem guten Modell entstehen fast von selbst saubere Tabellen.

## Die drei Bausteine

Ein ER-Modell kennt drei Elemente:

- **Entität:** ein Ding, über das Daten gespeichert werden – zum Beispiel *Azubi* oder *Berufsschulklasse*. In der Datenbank wird daraus später eine Tabelle.
- **Attribut:** eine Eigenschaft einer Entität – etwa *Name* oder *Geburtsdatum*. Daraus werden die Spalten.
- **Beziehung:** wie zwei Entitäten zusammenhängen – zum Beispiel „ein Azubi *besucht* eine Klasse".

```text
┌──────────┐        besucht        ┌──────────────────┐
│  AZUBI   │────────────────────── │ BERUFSSCHULKLASSE │
├──────────┤                       ├──────────────────┤
│ id       │                       │ id               │
│ name     │                       │ bezeichnung      │
│ geburtstag│                      │ raum             │
└──────────┘                       └──────────────────┘
```

## Kardinalitäten: wie viele gehören zusammen?

Das Herzstück des ER-Modells ist die **Kardinalität**. Sie legt fest, **wie viele** Datensätze der einen Seite mit **wie vielen** der anderen verbunden sind. Es gibt drei Grundtypen:

| Kardinalität | Bedeutung | Beispiel |
| --- | --- | --- |
| **1:1** | genau einer zu genau einem | Person ↔ Personalausweis |
| **1:n** | einer zu vielen | Klasse ↔ Azubis (eine Klasse, viele Azubis) |
| **n:m** | viele zu vielen | Azubi ↔ Kurse (viele Azubis, viele Kurse) |

> **Merksatz**
>
> Lies die Kardinalität immer **in beide Richtungen**: Eine Klasse hat viele Azubis, aber jeder Azubi ist in genau einer Klasse – das ist eine **1:n**-Beziehung. Erst beide Blickrichtungen zusammen ergeben den Typ.

## Vom Modell zur Tabelle

1:1- und 1:n-Beziehungen lassen sich direkt in Tabellen umsetzen, indem man einen **Fremdschlüssel** setzt – einen Verweis auf den Primärschlüssel der anderen Tabelle. Bei **n:m** geht das nicht direkt.

> **Prüfungstipp**
>
> Eine **n:m-Beziehung** lässt sich nicht mit zwei Tabellen abbilden. Man löst sie mit einer **Zwischentabelle** (auch Verknüpfungstabelle) auf, die die Primärschlüssel beider Seiten als Fremdschlüssel enthält. Aus „viele zu viele" werden so zwei „eins zu viele"-Beziehungen. Genau das ist ein sehr beliebter Prüfungsauftrag.

## Beispiel: n:m-Beziehung zwischen Azubi und Kurs

Azubis belegen Wahlkurse, jeder Kurs hat mehrere Teilnehmer: Das ist eine **n:m-Beziehung**. In der Datenbank entstehen daraus **drei** Tabellen:

| Tabelle | Spalten | Hinweis |
| --- | --- | --- |
| **Azubi** | azubi_id (Primärschlüssel), name | eine Zeile je Azubi |
| **Kurs** | kurs_id (Primärschlüssel), titel | eine Zeile je Kurs |
| **Belegung** | azubi_id, kurs_id | Zwischentabelle, beide Spalten zusammen sind der Primärschlüssel |

```sql
CREATE TABLE Belegung (
  azubi_id INT,
  kurs_id  INT,
  PRIMARY KEY (azubi_id, kurs_id),
  FOREIGN KEY (azubi_id) REFERENCES Azubi(azubi_id),
  FOREIGN KEY (kurs_id)  REFERENCES Kurs(kurs_id)
);
```

Jede Zeile in `Belegung` sagt: „Dieser Azubi besucht diesen Kurs." Aus der n:m-Beziehung sind so zwei saubere 1:n-Beziehungen geworden. Wie du solche Tabellen anlegst, zeigt [DDL und DML](/blog/ddl-dml-sql), und wie du sie verknüpft abfragst, [SQL-JOINs](/blog/sql-joins).

## ER-Diagramm erstellen: Schritt für Schritt

1. **Entitäten finden:** Über welche Dinge sollen Daten gespeichert werden, zum Beispiel Azubi, Kurs, Klasse?
2. **Attribute festlegen:** Welche Eigenschaften hat jede Entität? Ein Attribut wird als eindeutiger **Primärschlüssel** gekennzeichnet.
3. **Beziehungen benennen:** Wie hängen die Entitäten zusammen? Ein Verb hilft, etwa „besucht“.
4. **Kardinalitäten eintragen:** In beide Richtungen lesen und 1:1, 1:n oder n:m notieren.
5. **n:m auflösen:** Jede n:m-Beziehung bekommt eine Zwischentabelle.
6. **In Tabellen überführen:** Entität wird Tabelle, Attribut wird Spalte, Beziehung wird Fremdschlüssel.

> **Hinweis**
>
> Für ER-Diagramme gibt es mehrere Notationen, zum Beispiel die Chen-Notation und die Krähenfußnotation. In Prüfungsaufgaben ist die verwendete Schreibweise meist erkennbar oder vorgegeben, achte deshalb zuerst auf die Legende.

## Selbstkontrolle

**Frage:** Ein Azubi kann mehrere Wahlkurse belegen, und jeder Wahlkurs hat mehrere Azubis. Welche Kardinalität liegt vor?

- [ ] 1:1
- [ ] 1:n
- [x] n:m
- [ ] Es liegt keine Beziehung vor.

**Erklärung:** Da viele Azubis mit vielen Kursen verbunden sind, handelt es sich um eine n:m-Beziehung. Diese lässt sich nicht direkt in Tabellen abbilden, sondern wird über eine Zwischentabelle aufgelöst, die die Schlüssel beider Seiten enthält.

## Häufige Fragen

### Was ist ein ER-Diagramm?

Ein ER-Diagramm ist die grafische Darstellung eines ER-Modells. Es zeigt die Entitäten als Kästen, ihre Attribute und die Beziehungen dazwischen samt Kardinalitäten. Es gibt verschiedene Notationen, zum Beispiel die Chen-Notation und die Krähenfußnotation. Achte in Aufgaben darauf, welche Schreibweise verwendet wird.

### Was ist der Unterschied zwischen einer Entität und einem Attribut?

Eine Entität ist ein eigenständiges Ding, über das man Daten speichert – etwa ein Azubi oder ein Kurs. Ein Attribut ist eine Eigenschaft dieser Entität, zum Beispiel der Name oder das Geburtsdatum. In der fertigen Datenbank wird aus einer Entität eine Tabelle und aus ihren Attributen die Spalten.

### Was ist ein Fremdschlüssel?

Ein Fremdschlüssel ist eine Spalte, die auf den Primärschlüssel einer anderen Tabelle verweist. So werden Tabellen miteinander verknüpft, ohne Daten zu wiederholen. Eine Tabelle mit Azubis kann etwa über einen Fremdschlüssel auf die Tabelle der Klassen verweisen, statt bei jedem Azubi alle Klassendaten erneut zu speichern.

### Warum braucht eine n:m-Beziehung eine Zwischentabelle?

Weil sich viele-zu-viele nicht mit einem einfachen Verweis abbilden lässt: Man müsste in beiden Tabellen beliebig viele Fremdschlüssel unterbringen, was nicht funktioniert. Die Zwischentabelle nimmt je einen Verweis auf beide Seiten auf und zerlegt die n:m-Beziehung so in zwei saubere 1:n-Beziehungen.

### Ist das ER-Modell an eine bestimmte Datenbank gebunden?

Nein. Das ER-Modell beschreibt die Struktur der Daten unabhängig von der eingesetzten Datenbanksoftware. Erst bei der Umsetzung in konkrete Tabellen kommt ein bestimmtes System wie MySQL oder PostgreSQL ins Spiel. Dasselbe Modell lässt sich in verschiedenen Datenbanken umsetzen.

**Weiterlesen:** [Normalisierung: Datenbanken ohne Redundanz](/blog/normalisierung) · [DDL und DML: SQL-Befehle im Überblick](/blog/ddl-dml-sql) · [SQL-Grundlagen: Daten mit SELECT abfragen](/blog/sql-grundlagen-select) · [UML-Grundlagen: Klassendiagramm und Use Cases](/blog/uml-diagramme-grundlagen)

## Das Wichtigste in Kürze

- Das **ER-Modell** ist der **Bauplan** einer Datenbank – erst planen, dann bauen.
- Seine Bausteine: **Entität** (wird zur Tabelle), **Attribut** (wird zur Spalte), **Beziehung**.
- **Kardinalitäten** (1:1, 1:n, n:m) legen fest, wie viele Datensätze zusammengehören.
- Eine **n:m-Beziehung** wird immer über eine **Zwischentabelle** aufgelöst.
