Datenbanken & SQL

Grundlagenwissen zu Datenbanken & SQL

Diese Seite enthält grundlegende, prüfungsrelevante Themen rund um Datenbanken und SQL.

Datenarten

TypBeschreibungBeispiele
StrukturiertDaten mit festem Schema, meist in TabellenformRelationale Datenbanken, CSV
Semi-strukturiertTeils strukturiert, aber flexibel, enthält Tags oder SchlüsselJSON, XML, NoSQL (z. B. MongoDB)
UnstrukturiertKeine erkennbare Struktur, oft schwer maschinenlesbarBilder, 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

FehlerartBeschreibungBeispiel
SyntaktischFalscher SQL-Code, wird nicht ausgeführtSELEC * FORM users
LaufzeitfehlerTritt beim Ausführen trotz korrektem Syntax aufDivision 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