1 / 12

Einführung in Datenbanken

Fachinformatiker Ausbildung

Grundlagen der Datenbankentwicklung und -verwaltung

SQL & NoSQL | Datenmodelle | CRUD & ACID

Was ist eine Datenbank?

Definition

Eine Datenbank ist eine strukturierte Sammlung von Daten, die elektronisch gespeichert und verwaltet wird.

Hauptzweck

Alltägliche Beispiele

Strukturierte vs. Unstrukturierte Daten

Aspekt Strukturierte Daten Unstrukturierte Daten
Format Festes Schema, Tabellen Kein festes Format
Beispiele Kundendaten, Rechnungen, Inventar E-Mails, Bilder, Videos, Social Media
Speicherung Relationale Datenbanken NoSQL, Data Lakes
Abfrage SQL, einfach Spezielle Tools, komplex
Analyse Direkt analysierbar Vorverarbeitung nötig

Semi-strukturierte Daten

Mischform: JSON, XML - haben Struktur, aber flexibles Schema

Arten von Datenbanken

Relationale DB

Struktur: Tabellen mit Zeilen/Spalten

Beispiele: MySQL, PostgreSQL, Oracle

Ideal für: Strukturierte Daten, Transaktionen

Dokumenten-DB

Struktur: JSON/BSON Dokumente

Beispiele: MongoDB, CouchDB

Ideal für: Flexible Schemas, Web-Apps

Graph-DB

Struktur: Knoten und Kanten

Beispiele: Neo4j, ArangoDB

Ideal für: Beziehungsanalyse, Empfehlungen

Key-Value-DB

Struktur: Schlüssel-Wert Paare

Beispiele: Redis, DynamoDB

Ideal für: Caching, Sessions

SQL vs. NoSQL

Kriterium SQL (Relationale DB) NoSQL
Schema Fest definiert, wenig flexibel Dynamisch, sehr flexibel
Skalierung Vertikal (mehr Power) Horizontal (mehr Server)
Konsistenz ACID - stark konsistent Eventually consistent
Abfragesprache Standardisiertes SQL Verschiedene APIs/Sprachen
Anwendungsfall Komplexe Beziehungen, Transaktionen Big Data, schnelle Entwicklung

Wann SQL, wann NoSQL?

SQL: E-Commerce, Banking, ERP-Systeme

NoSQL: Social Media, IoT, Real-time Analytics

CRUD Operationen

CRUD = Create, Read, Update, Delete

Die vier Grundoperationen für jede Datenbank

SQL Beispiele

CREATE (Erstellen):
INSERT INTO kunden (name, email) VALUES ('Max Müller', 'max@email.de');
READ (Lesen):
SELECT * FROM kunden WHERE stadt = 'Berlin';
UPDATE (Aktualisieren):
UPDATE kunden SET email = 'max.neu@email.de' WHERE id = 1;
DELETE (Löschen):
DELETE FROM kunden WHERE id = 1;

In Web-Anwendungen

ACID Eigenschaften

Die vier fundamentalen Eigenschaften für Datenbank-Transaktionen

Atomicity (Atomarität)

Transaktion ist unteilbar - entweder komplett erfolgreich oder komplett rückgängig

Beispiel: Geldüberweisung - Abbuchung UND Gutschrift müssen klappen

Consistency (Konsistenz)

Datenbank bleibt immer in gültigem Zustand

Beispiel: Konto kann nie negativen Saldo haben (wenn Regel definiert)

Isolation

Gleichzeitige Transaktionen beeinflussen sich nicht

Beispiel: Zwei Personen buchen letzten Kinositz - nur einer bekommt ihn

Durability (Dauerhaftigkeit)

Erfolgreiche Änderungen gehen nie verloren

Beispiel: Nach Stromausfall sind alle bestätigten Buchungen noch da

Datenmodelle

Hierarchisches Modell

Netzwerk-Modell

Relationales Modell

Am weitesten verbreitet! Daten in Tabellen mit Beziehungen

  • Tabelle: Entity (Kunden, Bestellungen)
  • Zeile: Datensatz (ein spezifischer Kunde)
  • Spalte: Attribut (Name, Email, Adresse)
  • Schlüssel: Eindeutige Identifikation

Objektorientiertes Modell

Entity-Relationship-Modell (ERM)

Was ist ein ERM?

Grafische Darstellung der Datenstruktur - zeigt Entitäten und ihre Beziehungen

Grundbausteine

Entity (Entität)

Objekt der realen Welt

Beispiele: Kunde, Produkt, Bestellung

Symbol: Rechteck

Attribut

Eigenschaft einer Entität

Beispiele: Kundenname, Preis, Datum

Symbol: Oval

Beziehung (Relationship)

Verbindung zwischen Entitäten

Beispiele: "kauft", "gehört zu"

Symbol: Raute

Kardinalitäten

KUNDENameEmailKundenIDBESTELLUNGDatumBestellID1ntätigt
Chen-Notation: 1:n-Beziehung mit Attributen

Normalisierung

Ziel der Normalisierung

Redundanzen vermeiden und Datenintegrität sicherstellen

Die drei Normalformen

1 Erste Normalform (1NF)

2 Zweite Normalform (2NF)

3 Dritte Normalform (3NF)

Beispiel Denormalisiert:
Bestellung: ID, Kunde_Name, Kunde_Stadt, Kunde_PLZ, Produkt_Name, Preis

Problem: Kundendaten werden bei jeder Bestellung wiederholt

Datenbanksprachen

DDL - Data Definition Language

Struktur der Datenbank definieren

CREATE TABLE kunden (
  id INT PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  email VARCHAR(100) UNIQUE
);

DQL - Data Query Language

Daten abfragen und lesen

SELECT name, email FROM kunden
WHERE stadt = 'Berlin'
ORDER BY name;

DML - Data Manipulation Language

Daten ändern, einfügen, löschen

INSERT INTO kunden VALUES (1, 'Max Müller', 'max@email.de');
UPDATE kunden SET email = 'neu@email.de' WHERE id = 1;
DELETE FROM kunden WHERE id = 1;

DCL - Data Control Language

Berechtigungen und Zugriffskontrolle

GRANT SELECT, INSERT ON kunden TO 'user123';
REVOKE DELETE ON kunden FROM 'user123';

Praktische Anwendung & Zusammenfassung

Typische Einsatzgebiete

Wichtigste Erkenntnisse

Grundlagen

Strukturierte vs. unstrukturierte Daten verstehen

Technologien

SQL für komplexe Beziehungen, NoSQL für Flexibilität

Operationen

CRUD als Basis aller Datenbank-Interaktionen

Qualität

ACID für zuverlässige Transaktionen

Nächste Schritte in der Ausbildung

Praktische Übungen mit MySQL/PostgreSQL, Datenbankdesign-Projekte, NoSQL-Experimente mit MongoDB