Datenbanken & SQL
Grundlagenwissen zu Datenbanken & SQL
Diese Seite enthält grundlegende, prüfungsrelevante Themen rund um Datenbanken und SQL.
Datenarten
| Typ | Beschreibung | Beispiele | 
|---|---|---|
| Strukturiert | Daten mit festem Schema, meist in Tabellenform | Relationale Datenbanken, CSV | 
| Semi-strukturiert | Teils strukturiert, aber flexibel, enthält Tags oder Schlüssel | JSON, XML, NoSQL (z. B. MongoDB) | 
| Unstrukturiert | Keine erkennbare Struktur, oft schwer maschinenlesbar | Bilder, Videos, Freitexte | 
Relationale vs. nicht-relationale Datenbanken
- Relationale DBs:- Arbeiten mit Tabellen
- SQL-basiert
- Starke Konsistenz und referenzielle Integrität
- Beispiel: MySQL, PostgreSQL
 
- Nicht-relationale DBs (NoSQL):- Flexiblere Datenmodelle (Dokumente, Key-Value, Graphen)
- Skalierbarer bei großen Datenmengen
- Beispiel: MongoDB, Redis, Neo4j
 
Was ist CRUD?
CRUD steht für die vier grundlegenden Operationen auf Daten:
- Create – Daten erstellen
- Read – Daten lesen
- Update – Daten ändern
- Delete – Daten löschen
SQL-Beispiel:
INSERT INTO users (...) -- Create  
SELECT * FROM users     -- Read  
UPDATE users SET ...    -- Update  
DELETE FROM users WHERE ... -- Delete
NULL-Werte
- NULL = Kein Wert vorhanden
- Bedeutet weder 0 noch leerer String!
- Wichtig bei Bedingungen, JOINs und Aggregatfunktionen
Beispiel:
SELECT * FROM kunden WHERE telefonnummer IS NULL;
Atomare Werte
Ein atomarer Wert ist unteilbar und enthält genau einen Wert pro Attribut.
Beispiel:vorname = "Lena" (atomar)farben = "rot, blau" (nicht atomar)
Anomalien in Datenbanken
Treten bei nicht normalisierten Tabellen auf:
- Einfüge-Anomalie: Neue Daten können nicht gespeichert werden, weil andere Infos fehlen
- Änderungs-Anomalie: Änderung an einem Ort, aber nicht überall
- Lösch-Anomalie: Löschen eines Datensatzes löscht unbeabsichtigt auch andere Infos
Indizierung
- Indizes beschleunigen Datenzugriffe
- Werden automatisch bei Primärschlüsseln erstellt
- Können auch manuell gesetzt werden
CREATE INDEX idx_name ON kunden(name);
Achtung: Zu viele Indizes = langsamer beim Schreiben!
Trigger
- Trigger sind automatische Aktionen bei bestimmten DB-Ereignissen (INSERT, UPDATE, DELETE)
Beispiel: Protokoll schreiben bei Löschung
CREATE TRIGGER log_delete
AFTER DELETE ON kunden
FOR EACH ROW
INSERT INTO log (...);
Stored Procedures
- Gespeicherte Prozeduren sind vordefinierte Abläufe in der Datenbank
Beispiel:
CREATE PROCEDURE zeige_kunde(IN kunde_id INT)
BEGIN
  SELECT * FROM kunden WHERE id = kunde_id;
END;
Aufrufen:
CALL zeige_kunde(3);
Vorteile:
- Wiederverwendbar
- Performance-Gewinn
Fakultative vs. obligatorische Parameter
- Fakultativ = Optional (Enthält einen DEFAULTWert)
- Obligatorisch = Pflicht
In SQL z. B. bei Funktionen mit Default-Werten:
CREATE PROCEDURE beispiel(IN name VARCHAR(50), IN alter INT DEFAULT 18)
Transaktionen
Eine Transaktion ist eine logische Einheit aus mehreren DB-Operationen:
ACID-Prinzip
- Atomicity – Entweder wird alles ausgeführt oder nichts.
- Consistency – Die Datenbank bleibt immer in einem gültigen Zustand.
- Isolation – Gleichzeitige Transaktionen beeinflussen sich nicht.
- Durability – Einmal bestätigte Änderungen bleiben dauerhaft erhalten.
BEGIN;
UPDATE konto SET betrag = betrag - 100 WHERE id = 1;
UPDATE konto SET betrag = betrag + 100 WHERE id = 2;
COMMIT;
Laufzeit- vs. syntaktische Fehler
| Fehlerart | Beschreibung | Beispiel | 
|---|---|---|
| Syntaktisch | Falscher SQL-Code, wird nicht ausgeführt | SELEC * FORM users | 
| Laufzeitfehler | Tritt beim Ausführen trotz korrektem Syntax auf | Division durch 0, NULL-Problem | 
Data Warehouse
- Zentrale, strukturierte Sammlung von Unternehmensdaten
- Für Analyse & Reporting
- Daten sind konsolidiert, historisch und meist read-only
- Nutzt oft ETL-Prozesse (Extract, Transform, Load)
Data Lake
- Speicherort für große Mengen roher Daten
- Kein einheitliches Schema notwendig
- Unterstützt strukturierte, semi- und unstrukturierte Daten
- Ideal für Big Data & Machine Learning