Schlüssel in Datenbanken
Primärschlüssel (Primary Key)
Ein Primärschlüssel ist ein Attribut (oder eine Attributkombination), das jeden Datensatz eindeutig identifiziert. Es darf nicht NULL sein und keine Duplikate enthalten.
Eigenschaften:
- Jeder Datensatz muss einen eindeutigen Wert im Primärschlüssel haben.
- Pro Tabelle darf es nur einen Primärschlüssel geben.
Beispiel:
CREATE TABLE kunden (
kunden_id INT PRIMARY KEY,
name VARCHAR(50)
);
Fremdschlüssel (Foreign Key)
Ein Fremdschlüssel ist ein Attribut, das auf den Primärschlüssel einer anderen Tabelle verweist. Er stellt die Beziehung zwischen zwei Tabellen her.
Eigenschaften:
- Muss entweder NULL sein oder auf einen existierenden Primärschlüssel zeigen.
- Ermöglicht die referenzielle Integrität zwischen Tabellen.
Beispiel:
CREATE TABLE bestellungen (
bestell_id INT PRIMARY KEY,
kunden_id INT,
FOREIGN KEY (kunden_id) REFERENCES kunden(kunden_id)
);
Kombinationsschlüssel (Composite Key)
Ein Kombinationsschlüssel (auch zusammengesetzter Schlüssel) besteht aus mehreren Attributen, die zusammen einen Datensatz eindeutig identifizieren.
Beispiel: In einer Tabelle teilnahmen
für ein Event-System:
CREATE TABLE teilnahmen (
benutzer_id INT,
event_id INT,
PRIMARY KEY (benutzer_id, event_id)
);
benutzer_id
und event_id
ist eindeutig.Referenzielle Integrität
Die referenzielle Integrität stellt sicher, dass Fremdschlüssel nur auf existierende Primärschlüssel zeigen. Sie schützt vor inkonsistenten Daten.
Regeln:
- Es darf kein Fremdschlüsselwert existieren, der nicht auf einen existierenden Primärschlüssel verweist.
- Beim Löschen oder Ändern von referenzierten Datensätzen müssen Regeln definiert sein (
ON DELETE
,ON UPDATE
).
Beispiel:
CREATE TABLE bestellungen (
bestell_id INT PRIMARY KEY,
kunden_id INT,
FOREIGN KEY (kunden_id)
REFERENCES kunden(kunden_id)
ON DELETE CASCADE
);
Optionen für ON DELETE
und ON UPDATE
Option | Beschreibung |
---|---|
CASCADE | Führt die Änderung oder Löschung automatisch in der abhängigen Tabelle durch. |
SET NULL | Setzt den Fremdschlüsselwert auf NULL . Nur erlaubt, wenn das Feld NULL akzeptiert. |
SET DEFAULT | Setzt den Fremdschlüsselwert auf einen definierten Standardwert (DEFAULT ). |
RESTRICT | Verhindert die Änderung/Löschung, wenn abhängige Datensätze existieren. Sofortige Prüfung. |
NO ACTION | Wie RESTRICT , aber Prüfung kann verzögert erfolgen (meist identisch in Wirkung). |
Zusammenfassung
Schlüsselart | Funktion | Beispiel |
---|---|---|
Primärschlüssel | Eindeutige Identifikation von Datensätzen | kunden_id in kunden |
Fremdschlüssel | Verknüpfung zu anderen Tabellen | kunden_id in bestellungen |
Kombinationsschlüssel | Kombination mehrerer Attribute als Schlüssel | (benutzer_id, event_id) in teilnahmen |
Referenzielle Integrität | Sicherstellung gültiger Verweise | FOREIGN KEY (...) REFERENCES ... |
SQL Joins
Erklärung der wichtigsten SQL-JOIN-Arten mit einfachen Beispielen. Joins verbinden Tabellen logisch und sind essenziell für komplexe Datenabfragen.
Normalformen in Datenbanken
Eine verständliche Erklärung der ersten drei Normalformen mit anschaulichen Beispielen. Die Normalisierung ist entscheidend für ein sauberes und wartbares Datenbankdesign.