- 1 Section
- 8 Lessons
- unbegrenzt
Relationale Modelle und Schlüsselkonzepte
Das relationale Datenbankmodell ist heute das am weitesten verbreitete Modell.
Fast jedes moderne Datenbanksystem – MySQL, PostgreSQL, MariaDB, Oracle, SQL Server – basiert darauf.
Das Wort „relational“ kommt nicht von „Beziehung“ im Sinne von „Beziehung zwischen Menschen“,
sondern vom englischen „Relation“ = „Tabelle“.
Eine Datenbank besteht also aus mehreren Relationen, also Tabellen, die über Schlüssel miteinander verknüpft sind.
1. Grundidee des relationalen Modells
Daten werden in Tabellen gespeichert.
Jede Tabelle beschreibt eine Entität – also eine Art von Objekt (z. B. Kunden, Produkte, Bestellungen).
Die Zeilen repräsentieren Datensätze, die Spalten Attribute.
Beispiel: Tabelle Kunden
| Kundennummer | Name | Ort |
|---|---|---|
| 1001 | Anna Beispiel | Berlin |
| 1002 | Max Mustermann | Hamburg |
| 1003 | Lisa Schulz | Köln |
Beispiel: Tabelle Bestellungen
| Bestellnr | Kundennummer | Datum | Betrag |
|---|---|---|---|
| 5001 | 1001 | 2025-01-10 | 89,90 € |
| 5002 | 1002 | 2025-01-12 | 59,00 € |
| 5003 | 1001 | 2025-02-02 | 39,00 € |
Diese Tabellen sind nicht isoliert, sondern über eine gemeinsame Spalte verknüpft:
→ Kundennummer.
2. Primärschlüssel (Primary Key)
Ein Primärschlüssel ist ein eindeutiges Merkmal, mit dem jeder Datensatz identifiziert wird.
Keine zwei Zeilen dürfen denselben Primärschlüssel haben.
Beispiele:
Kundennummer in der Kundentabelle
Bestellnummer in der Bestelltabelle
Beispiel in SQL:
CREATE TABLE kunden (
kundennummer INT PRIMARY KEY,
name VARCHAR(50),
ort VARCHAR(50)
);
Wichtig:
Ein Primärschlüssel darf niemals leer sein (NULL) und muss eindeutig sein.
Wenn ein Datensatz z. B. doppelt vorkommt, würde das gegen die Integrität der Tabelle verstoßen.
3. Fremdschlüssel (Foreign Key)
Ein Fremdschlüssel ist ein Feld, das auf einen Primärschlüssel in einer anderen Tabelle verweist.
Er sorgt dafür, dass Zusammenhänge zwischen Tabellen bestehen – und dass sie korrekt bleiben.
Beispiel:
CREATE TABLE bestellungen (
bestellnr INT PRIMARY KEY,
kundennummer INT,
datum DATE,
betrag DECIMAL(6,2),
FOREIGN KEY (kundennummer) REFERENCES kunden(kundennummer)
);
Damit garantiert das System:
Jede Bestellung gehört zu einem existierenden Kunden.
Es kann keine Bestellung mit einer ungültigen Kundennummer geben.
Anschaulich:
Kunde → Bestellung = 1:n-Beziehung
Ein Kunde kann viele Bestellungen haben,
aber eine Bestellung gehört immer nur zu genau einem Kunden.
4. Eindeutige Schlüssel (Unique Key)
Manchmal sollen Daten eindeutig sein, aber nicht der Hauptschlüssel der Tabelle sein.
Dann verwendet man ein UNIQUE-Attribut.
Beispiel:
E-Mail-Adressen sollen in der Kundentabelle nicht doppelt vorkommen.
CREATE TABLE kunden (
kundennummer INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(80) UNIQUE
);
Damit kann ein zweiter Datensatz mit derselben E-Mail nicht gespeichert werden.
5. Zusammengesetzte Schlüssel (Composite Keys)
Manche Tabellen brauchen zwei oder mehr Spalten, um einen Datensatz eindeutig zu identifizieren.
Das nennt man zusammengesetzten Primärschlüssel.
Beispiel: Tabelle mitarbeiter_projekt
| mitarbeiter_id | projekt_id | stunden |
|---|---|---|
| 1 | 10 | 12 |
| 1 | 11 | 8 |
| 2 | 10 | 15 |
Hier bilden (mitarbeiter_id, projekt_id) gemeinsam den Primärschlüssel.
Ein Mitarbeiter kann also in mehreren Projekten sein,
aber pro Projekt nur einmal vorkommen.
SQL:
CREATE TABLE mitarbeiter_projekt (
mitarbeiter_id INT,
projekt_id INT,
stunden INT,
PRIMARY KEY (mitarbeiter_id, projekt_id)
);
6. Beziehungen zwischen Tabellen
1:1-Beziehung
Ein Datensatz A gehört genau zu einem Datensatz B.
(z. B. Person ↔ Ausweis)
1:n-Beziehung
Ein Datensatz A kann mehrere Datensätze B haben.
(z. B. Kunde ↔ Bestellung)
n:m-Beziehung
Mehrere A können mehreren B zugeordnet sein.
(z. B. Schüler ↔ Kurse)
Für n:m braucht man immer eine Zwischentabelle (Relationstabelle).
Relationale Modelle und Schlüsselkonzepte
Wähle eine Beziehungsart aus. Die Tabellen zeigen dir, wie Primärschlüssel (PK) und Fremdschlüssel (FK) in relationalen Datenbanken zusammenarbeiten, um 1:1-, 1:n- und n:m-Beziehungen abzubilden.
Person
| person_id (PK) | name |
|---|---|
| 1 | Anna |
| 2 | Max |
Ausweis
| ausweis_nr (PK) | person_id (FK) |
|---|---|
| A-100 | 1 |
| A-200 | 2 |
Jede Person hat genau einen Ausweis und jeder Ausweis gehört genau zu einer Person. Die Spalte person_id (PK) identifiziert die Person eindeutig, und die Spalte person_id (FK) in der Ausweistabelle verweist genau auf diesen Primärschlüssel. Das ist eine 1:1-Beziehung.
Kunden
| kundennummer (PK) | name |
|---|---|
| 1001 | Anna Beispiel |
| 1002 | Max Mustermann |
Bestellungen
| bestellnr (PK) | kundennummer (FK) | betrag |
|---|---|---|
| 5001 | 1001 | 89,90 € |
| 5002 | 1001 | 39,00 € |
| 5003 | 1002 | 59,00 € |
Ein Kunde kann mehrere Bestellungen haben, aber jede Bestellung gehört genau zu einem Kunden. Die Spalte kundennummer (PK) identifiziert den Kunden in der Kundentabelle eindeutig. In der Bestelltabelle verweist kundennummer (FK) auf diesen Primärschlüssel – so entsteht eine 1:n-Beziehung.
Schüler
| schueler_id (PK) | name |
|---|---|
| 1 | Anna |
| 2 | Ben |
Kurse
| kurs_id (PK) | titel |
|---|---|
| 10 | Datenbanken |
| 11 | Netzwerke |
Schüler_Kurs (Relationstabelle)
| schueler_id (PK, FK) | kurs_id (PK, FK) |
|---|---|
| 1 | 10 |
| 1 | 11 |
| 2 | 10 |
Eine Schülerin kann mehrere Kurse besuchen und ein Kurs kann mehrere Schüler haben. Die Zuordnung geschieht über die Relationstabelle Schüler_Kurs. Dort bilden schueler_id und kurs_id gemeinsam den Primärschlüssel (zusammengesetzter Schlüssel) und sind gleichzeitig Fremdschlüssel (FK) auf die Tabellen Schüler und Kurse. So entsteht eine n:m-Beziehung.
7. Integrität in relationalen Systemen
Ein relationales System schützt Daten automatisch durch sogenannte Integritätsregeln:
| Regeltyp | Bedeutung |
|---|---|
| Entity Integrity | Jeder Datensatz braucht einen gültigen Primärschlüssel |
| Referential Integrity | Jeder Fremdschlüssel muss auf einen existierenden Datensatz zeigen |
| Domain Integrity | Datentypen und Wertebereiche sind festgelegt (z. B. Zahl, Text, Datum) |
Beispiel:
Wenn du einen Kunden löschst, zu dem noch Bestellungen existieren,
verhindert die Datenbank den Löschvorgang – oder löscht automatisch die abhängigen Datensätze („Cascade“).
8. Zusammenfassung
Das relationale Modell besteht aus Tabellen (Relationen).
Primärschlüssel identifizieren Datensätze eindeutig.
Fremdschlüssel verbinden Tabellen logisch miteinander.
Eindeutige Schlüssel verhindern doppelte Werte.
Zusammengesetzte Schlüssel kombinieren mehrere Spalten zur Eindeutigkeit.
Integrität ist das Herzstück relationaler Systeme:
Sie stellt sicher, dass Daten logisch und widerspruchsfrei bleiben.
