Seite 5. Relationales Datenbankmodell
Relationales Datenbankmodell
Diese Seite erklärt das relationale Datenbankmodell so, dass du es schnell für IHK-Aufgaben anwenden kannst.
Das relationale Datenbankmodell beschreibt, wie Daten in Tabellen gespeichert werden.
Dabei sind besonders wichtig:
Tabellen
Datensätze
Attribute / Spalten
Primärschlüssel
Fremdschlüssel
Beziehungen zwischen Tabellen
Grafik 1: Grundlagen des relationalen Datenbankmodells
Diese Grafik zeigt dir die wichtigsten Grundbegriffe:
- Tabelle
- Datensatz
- Primärschlüssel
- Fremdschlüssel
- Zusammenhang zwischen Zeilen, Spalten und Schlüsseln
Wofür braucht man das relationale Datenbankmodell?
Das relationale Datenbankmodell wird benutzt, um ein fachliches Datenmodell technisch näher an eine echte Datenbank zu bringen.
Ein ERM zeigt zuerst fachlich:
Kunde gibt Bestellung auf
Das relationale Modell macht daraus Tabellen:
Kunde
Bestellung
Und legt fest:
Welche Spalten gibt es?
Was ist der Primärschlüssel?
Wo wird ein Fremdschlüssel benötigt?
Wie hängen die Tabellen zusammen?
Woran erkenne ich in einer Aufgabe, dass ein relationales Datenbankmodell gemeint ist?
Typische Signalwörter:
| Signalwort / Formulierung | Hinweis |
|---|---|
| Tabelle | Daten sollen tabellarisch dargestellt werden |
| Datensatz | Es geht um Zeilen in einer Tabelle |
| Attribut / Spalte | Es geht um Felder einer Tabelle |
| Primärschlüssel | Eindeutige Kennzeichnung eines Datensatzes |
| Fremdschlüssel | Verweis auf eine andere Tabelle |
| Relation | Tabelle oder Beziehung zwischen Tabellen |
| Normalisierung | Tabellen sollen sauber strukturiert werden |
| n:m auflösen | Zwischentabelle wird benötigt |
| ERM in Tabellen überführen | Relationales Modell ist gemeint |
Grundbegriffe
| Begriff | Bedeutung | Beispiel |
|---|---|---|
| Tabelle | Sammlung gleichartiger Datensätze | Kunde, Bestellung, Produkt |
| Datensatz | Eine Zeile in einer Tabelle | ein bestimmter Kunde |
| Attribut / Spalte | Eigenschaft eines Datensatzes | name, email, preis |
| Primärschlüssel | eindeutige ID einer Tabelle | kunden_id |
| Fremdschlüssel | Verweis auf Primärschlüssel einer anderen Tabelle | kunden_id in Bestellung |
| Relation | Tabelle oder Beziehung zwischen Tabellen | Kunde 1:n Bestellung |
Tabelle
Eine Tabelle speichert gleichartige Daten.
Beispiel Tabelle Kunde:
| kunden_id | name | |
|---|---|---|
| 1 | Müller | [email protected] |
| 2 | Schmidt | [email protected] |
Die Tabelle hat:
- Spalten
- Zeilen
- Datensätze
- einen Primärschlüssel
Datensatz
Ein Datensatz ist eine einzelne Zeile in einer Tabelle.
Beispiel:
| kunden_id | name | |
|---|---|---|
| 1 | Müller | [email protected] |
Dieser eine Kunde ist ein Datensatz.
Merksatz:
Datensatz = eine vollständige Zeile einer Tabelle
Attribut / Spalte
Ein Attribut ist im relationalen Modell eine Spalte.
Beispiel Tabelle Kunde:
kunden_id
name
email
telefon
Diese Spalten beschreiben den Kunden genauer.
Merksatz:
Attribut im ERM wird meistens zur Spalte in der Tabelle.
Primärschlüssel
Ein Primärschlüssel identifiziert jeden Datensatz eindeutig.
Beispiel:
kunden_id
produkt_id
bestellung_id
Warum ist das wichtig?
Namen sind nicht eindeutig.
Beispiel:
Müller
kann mehrfach vorkommen.
Aber:
kunden_id = 1
ist eindeutig.
Merksatz:
Jede Tabelle sollte einen Primärschlüssel haben.
Fremdschlüssel
Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle.
Beispiel:
Tabelle Kunde:
| kunden_id | name |
|---|---|
| 1 | Müller |
| 2 | Schmidt |
Tabelle Bestellung:
| bestellung_id | bestelldatum | kunden_id |
|---|---|---|
| 101 | 01.02.2026 | 1 |
| 102 | 03.02.2026 | 1 |
Hier ist:
kunden_id
in der Tabelle Bestellung ein Fremdschlüssel.
Warum?
Weil er auf die Tabelle Kunde verweist.
Bestellung.kunden_id → Kunde.kunden_id
Grafik 2: Vom ERM zum relationalen Modell
Diese Grafik zeigt:
- Aus der Entität Kunde wird die Tabelle Kunde
- Aus der Entität Bestellung wird die Tabelle Bestellung
- Die 1:n-Beziehung wird durch einen Fremdschlüssel auf der n-Seite abgebildet
- In der Tabelle Bestellung steht deshalb
kunden_idals Fremdschlüssel
ERM vs. relationales Datenbankmodell
| ERM | Relationales Datenbankmodell |
|---|---|
| fachliches Modell | tabellarisches Modell |
| zeigt Entitäten | zeigt Tabellen |
| zeigt Attribute | zeigt Spalten |
| zeigt Beziehungen | zeigt Fremdschlüssel |
| zeigt Kardinalitäten | zeigt Schlüsselbeziehungen |
| eher Planung | näher an Datenbank / SQL |
Merksatz:
ERM = Was gibt es fachlich?
Relationales Modell = Wie wird es tabellarisch gespeichert?
Aus Entitäten werden Tabellen
Im ERM hast du zum Beispiel:
Kunde
Bestellung
Produkt
Im relationalen Modell werden daraus Tabellen:
Tabelle Kunde
Tabelle Bestellung
Tabelle Produkt
Beispiel:
Entität Kunde
wird zu:
Kunde(kunden_id, name, email)
Aus Attributen werden Spalten
ERM:
Kunde
- kunden_id
- name
- email
Relationales Modell:
| kunden_id | name |
|---|
Merksatz:
Attribute werden im relationalen Modell zu Spalten.
1:1-Beziehung im relationalen Modell
Beispiel:
Person 1 --- 1 Personalausweis
Mögliche Tabellen:
Person(person_id, name)
Personalausweis(ausweis_id, ausweisnummer, person_id)
Hier kann person_id in Personalausweis als Fremdschlüssel gespeichert werden.
Wichtig:
Bei 1:1 ist fachlich zu prüfen, ob man beide Tabellen wirklich getrennt braucht.
1:n-Beziehung im relationalen Modell
Beispiel:
Kunde 1 --- n Bestellung
Das bedeutet:
Ein Kunde kann mehrere Bestellungen haben.
Eine Bestellung gehört genau zu einem Kunden.
Tabellen:
Kunde(kunden_id, name, email)
Bestellung(bestellung_id, bestelldatum, kunden_id)
Wichtig:
Der Fremdschlüssel kommt auf die n-Seite.
Also:
kunden_id
steht in:
Bestellung
Merksatz:
Bei 1:n steht der Fremdschlüssel auf der n-Seite.
n:m-Beziehung im relationalen Modell
Beispiel:
Bestellung n --- m Produkt
Das bedeutet:
Eine Bestellung kann mehrere Produkte enthalten.
Ein Produkt kann in mehreren Bestellungen vorkommen.
Eine n:m-Beziehung kann man nicht sauber direkt mit nur einem Fremdschlüssel abbilden.
Deshalb braucht man eine Zwischentabelle.
Aus:
Bestellung n:m Produkt
wird:
Bestellung 1:n Bestellposition n:1 Produkt
Tabellen:
Bestellung(bestellung_id, bestelldatum)
Produkt(produkt_id, bezeichnung, preis)
Bestellposition(bestellung_id, produkt_id, menge)
Die Tabelle Bestellposition enthält mindestens:
| Spalte | Bedeutung |
|---|---|
| bestellung_id | Fremdschlüssel auf Bestellung |
| produkt_id | Fremdschlüssel auf Produkt |
| menge | Zusatzinformation zur Beziehung |
Warum braucht man bei n:m eine Zwischentabelle?
Beispiel:
Eine Bestellung enthält mehrere Produkte.
Ein Produkt kann in mehreren Bestellungen vorkommen.
Zusätzlich muss man speichern:
Wie oft wurde ein Produkt bestellt?
Welcher Preis galt zum Bestellzeitpunkt?
Gab es Rabatt?
Diese Informationen gehören nicht nur zur Bestellung und nicht nur zum Produkt.
Sie gehören zur Verbindung zwischen Bestellung und Produkt.
Deshalb braucht man:
Bestellposition
Typische Umwandlung von ERM zu relationalem Modell
| ERM | Relationales Modell |
|---|---|
| Entität | Tabelle |
| Attribut | Spalte |
| Primärschlüssel | Primärschlüssel |
| 1:n-Beziehung | Fremdschlüssel auf n-Seite |
| n:m-Beziehung | Zwischentabelle |
| Kardinalität | Schlüsselbeziehung |
Beispiel: Kunde und Bestellung
Fachliche Beschreibung:
Ein Kunde kann mehrere Bestellungen aufgeben.
Eine Bestellung gehört genau zu einem Kunden.
ERM:
Kunde 1 --- n Bestellung
Relationales Modell:
Kunde(kunden_id, name, email)
Bestellung(bestellung_id, bestelldatum, kunden_id)
Erklärung:
kunden_id ist Primärschlüssel in Kunde.
kunden_id ist Fremdschlüssel in Bestellung.
Beispiel: Schüler und Kurs
Fachliche Beschreibung:
Ein Schüler kann mehrere Kurse belegen.
Ein Kurs kann von mehreren Schülern belegt werden.
ERM:
Schüler n --- m Kurs
Relationales Modell:
Schüler(schueler_id, vorname, nachname)
Kurs(kurs_id, kursname)
Belegung(schueler_id, kurs_id, anmeldedatum)
Erklärung:
Belegung ist die Zwischentabelle.
schueler_id ist Fremdschlüssel auf Schüler.
kurs_id ist Fremdschlüssel auf Kurs.
Primärschlüssel und Fremdschlüssel markieren
In der Prüfung kannst du Schlüssel zum Beispiel so kennzeichnen:
PK = Primary Key = Primärschlüssel
FK = Foreign Key = Fremdschlüssel
Beispiel:
Kunde(
kunden_id PK,
name,
email
)
Bestellung(
bestellung_id PK,
bestelldatum,
kunden_id FK
)
Oder kompakt:
Kunde(kunden_id PK, name, email)
Bestellung(bestellung_id PK, bestelldatum, kunden_id FK)
Zusammengesetzter Primärschlüssel
Bei Zwischentabellen kann der Primärschlüssel aus mehreren Spalten bestehen.
Beispiel:
Belegung(schueler_id, kurs_id, anmeldedatum)
Hier könnten zusammen den Datensatz eindeutig machen:
schueler_id + kurs_id
Das nennt man einen zusammengesetzten Primärschlüssel.
Alternative:
Man kann auch eine eigene ID verwenden:
belegung_id
Dann sieht die Tabelle so aus:
Belegung(belegung_id PK, schueler_id FK, kurs_id FK, anmeldedatum)
Beides kann je nach Aufgabenstellung sinnvoll sein.
Normalisierung kurz erklärt
Normalisierung bedeutet:
Daten so strukturieren, dass Wiederholungen und Fehler vermieden werden.
Einfach gesagt:
Gleiche Informationen sollen nicht unnötig mehrfach gespeichert werden.
Schlechtes Beispiel:
| bestellung_id | kundenname | kundenemail | produkt |
|---|---|---|---|
| 1 | Müller | [email protected] | Monitor |
| 2 | Müller | [email protected] | Tastatur |
Problem:
Kundendaten werden mehrfach gespeichert.
Besser:
Kunde(kunden_id, name, email)
Bestellung(bestellung_id, kunden_id)
Dann stehen die Kundendaten nur einmal in der Tabelle Kunde.
Vorgehensweise in der Prüfung
Wenn du ein relationales Datenbankmodell erstellen sollst, gehe so vor:
| Schritt | Frage |
|---|---|
| 1 | Welche Entitäten gibt es? |
| 2 | Welche Tabellen entstehen daraus? |
| 3 | Welche Attribute werden zu Spalten? |
| 4 | Was ist der Primärschlüssel jeder Tabelle? |
| 5 | Gibt es eine 1:n-Beziehung? |
| 6 | Wo muss der Fremdschlüssel stehen? |
| 7 | Gibt es eine n:m-Beziehung? |
| 8 | Welche Zwischentabelle wird benötigt? |
| 9 | Welche Zusatzattribute gehören in die Zwischentabelle? |
Typische IHK-Fehler
| Fehler | Warum problematisch? |
|---|---|
| Primärschlüssel vergessen | Datensätze sind nicht eindeutig erkennbar |
| Fremdschlüssel auf falscher Seite | Beziehung wird falsch abgebildet |
| n:m ohne Zwischentabelle | Relational unsauber |
| Attribute doppelt speichern | führt zu Redundanz |
| Entität und Attribut verwechseln | falsche Tabellenstruktur |
| Zwischentabelle ohne Fremdschlüssel | Verbindung zwischen Tabellen fehlt |
| Kardinalität nicht beachtet | falsche Modellierung |
Prüfungs-Merksätze
Tabelle = Sammlung gleichartiger Datensätze
Datensatz = eine Tabellenzeile
Attribut = Spalte
Primärschlüssel = eindeutige ID
Fremdschlüssel = Verweis auf andere Tabelle
1:n = Fremdschlüssel auf der n-Seite
n:m = Zwischentabelle nötig
ERM = fachliche Sicht
Relationales Modell = Tabellen- und Schlüssel-Sicht
Mini-Beispiel 1
Aufgabe:
Ein Kunde kann mehrere Bestellungen haben.
Eine Bestellung gehört genau zu einem Kunden.
Lösung:
Kunde(kunden_id PK, name, email)
Bestellung(bestellung_id PK, bestelldatum, kunden_id FK)
Begründung:
1:n-Beziehung.
Der Fremdschlüssel kunden_id steht auf der n-Seite, also in Bestellung.
Mini-Beispiel 2
Aufgabe:
Ein Schüler kann mehrere Kurse belegen.
Ein Kurs kann von mehreren Schülern belegt werden.
Lösung:
Schüler(schueler_id PK, vorname, nachname)
Kurs(kurs_id PK, kursname)
Belegung(schueler_id FK, kurs_id FK, anmeldedatum)
Begründung:
n:m-Beziehung.
Deshalb braucht man eine Zwischentabelle.
Mini-Beispiel 3
Aufgabe:
Eine Bestellung kann mehrere Produkte enthalten.
Ein Produkt kann in mehreren Bestellungen vorkommen.
Lösung:
Bestellung(bestellung_id PK, bestelldatum)
Produkt(produkt_id PK, bezeichnung, preis)
Bestellposition(bestellung_id FK, produkt_id FK, menge)
Begründung:
n:m-Beziehung.
Bestellposition löst die Beziehung auf und speichert zusätzlich die Menge.
Mini-Testfragen
1. Was ist eine Tabelle?
Eine Tabelle speichert gleichartige Datensätze.
Beispiel:
Kunde
Produkt
Bestellung
2. Was ist ein Datensatz?
Ein Datensatz ist eine einzelne Zeile in einer Tabelle.
Beispiel:
kunden_id = 1, name = Müller, email = [email protected]
3. Was ist ein Primärschlüssel?
Ein Primärschlüssel identifiziert jeden Datensatz eindeutig.
Beispiel:
kunden_id
produkt_id
bestellung_id
4. Was ist ein Fremdschlüssel?
Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle.
Beispiel:
Bestellung.kunden_id verweist auf Kunde.kunden_id
5. Wo steht der Fremdschlüssel bei einer 1:n-Beziehung?
Der Fremdschlüssel steht auf der n-Seite.
Beispiel:
Kunde 1:n Bestellung
Dann steht:
kunden_id
in der Tabelle:
Bestellung
6. Was braucht man bei einer n:m-Beziehung?
Eine n:m-Beziehung braucht eine Zwischentabelle.
Beispiel:
Schüler n:m Kurs
wird zu:
Schüler 1:n Belegung n:1 Kurs
7. Warum ist eine Zwischentabelle bei Bestellung und Produkt sinnvoll?
Weil eine Bestellung mehrere Produkte enthalten kann und ein Produkt in mehreren Bestellungen vorkommen kann.
Außerdem können Zusatzinformationen gespeichert werden:
menge
einzelpreis
rabatt
Diese gehören zur Verbindung zwischen Bestellung und Produkt.
8. Was bedeutet Normalisierung ganz einfach?
Normalisierung bedeutet, Daten so zu strukturieren, dass unnötige Wiederholungen und Fehler vermieden werden.
Merksatz:
Informationen möglichst nur einmal speichern.
Nächste Seite
Danach kommt die eigene Trainer-Seite:
Relationales-Datenbankmodell-Trainer
Dort bauen wir den interaktiven Trainer mit Aufgaben zu:
Tabellen ableiten
Primärschlüssel bestimmen
Fremdschlüssel richtig platzieren
1:n-Beziehungen umsetzen
n:m-Beziehungen mit Zwischentabelle auflösen