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

🎯 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