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 FeldNULLakzeptiert. | 
| 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_idinkunden | 
| Fremdschlüssel | Verknüpfung zu anderen Tabellen | kunden_idinbestellungen | 
| Kombinationsschlüssel | Kombination mehrerer Attribute als Schlüssel | (benutzer_id, event_id)inteilnahmen | 
| 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.