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
DEFAULT
Wert) - 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