Selbsttest-Unterlage · Kompaktversion

📚 Datenbanken — Kompakt-Spickzettel

1 · Grundlagen

Datenbasis = strukturierte Datensammlung (Symbol: Zylinder). DBMS = verwaltet Zugriff, Speicherung, Datenmodell, Mehrbenutzer, Sicherheit, Datenschutz. Bsp: Access, MySQL, PostgreSQL, Oracle, SAP HANA.

ANSI/SPARC — 3 Schichten

1 · ExternNutzersicht
nur relevante Daten
Multi-User, Rechte
2 · Konzeptionellalle Entities +
Beziehungen
wertfrei, stabil
3 · Internphysische Speicherung
Indizierung, Sortierung
technisch, verborgen

2 · Betriebskonzepte

TypMerkmalVor-/NachteilBeispiele
Stand-Alonelokal, 1 Nutzereinfach, keine RechtedBase, Access, Filemaker
File-ShareNetz-Zugriff, Verwaltung lokal je Client+ keine Redundanz / − hoher Netzverkehr, schlechte Sperren
Client-ServerVerwaltung zentral auf Server+ Sicherheit/Leistung/Flexibilität / − braucht DBAOracle, DB2, SQL Server, MySQL, MAXDB

3 · Datenmodelle / DB-Arten

ModellPrinzipBeispiele
HierarchischBaum, 1 Vorgänger/Datensatz → Redundanz möglichIMS DB
Netzwerkmehrere Vorgänger → m:n möglich, weniger Redundanz
RelationalTabellen + Beziehungen, Standard seit 1970, schwach bei Big DataMySQL, SQL Server, SQLite
ObjektDaten + Funktionen OO, mächtig aber komplexdb4o
Objektrelationalrelational + OO kombiniertPostgreSQL

NoSQL (4 Arten)

ArtPrinzipBeispiele
Key-ValueSchlüssel-Wert-Paare, flexibelAmazon Dynamo, BigTable
Dokumentstrukturiert/unstrukturiert, CMS/BlogsMongoDB, BaseX
Graphvernetzte Daten, Beziehungen (soz. Netzwerke)Neo4j, HyperGraphDB
Spaltenorientiertspaltenweise Speicherung, gut für AnalysenCassandra, Sybase IQ

4 · Designprozess (4 Phasen)

1 · Analyse

Kundenanforderungen ermitteln/strukturieren → informelle Problembeschreibung ("Miniwelt")

2 · Konzeptionell

ER-Modell erstellen: Entitätstypen, Attribute, Beziehungen, Kardinalitäten

3 · Logisch

Transformation ins relationale Modell, Normalisierung, PK/FK festlegen

4 · Physisch

Implementation: physische DB via SQL, Datentypen, Wertebereiche, Indizes

5 · ER-Modell — Grundbegriffe

Kardinalitäten

TypBeispiel
1:1Mitarbeiter ↔ genau eine Personalakte
1:nGebäude ↔ mehrere Räume (Raum gehört nur zu 1 Gebäude)
m:nKunde ↔ mehrere Artikel, Artikel ↔ mehrere Kunden

Beispieldiagramm: Kunde – Bestellung – Produkt

Kunde
ID
Name
Adresse
1:N
gibt auf
1:N
Bestellung
Bestell_Nr
Datum
1:N
enthält
1:N
Produkt
ID
Name
Preis

Beispiel-ERM: Lehrer – Kurs – Schüler

Lehrer
PersonalNr
Vorname
Nachname
Email
1
unterrichtet
n
Kurs
KursID
Name
Halbjahr
n
belegt
m
Schüler
SchuelerID
Vorname
Nachname
Geburtsdatum
Strasse, PLZ, Ort

6 · Relationales Modell

Primärschlüssel (PK) — genau 1 pro Tabelle

Eindeutigkeine Duplikate
Minimalmöglichst wenige Spalten
UnveränderlichWerte ändern sich nicht

Fremdschlüssel (FK): verweist auf PK einer anderen/derselben Tabelle; gleicher Datentyp wie PK; 0, 1 oder mehrere FK pro Tabelle möglich.

Transformationsregeln ER → Relational

  1. Jeder Entitätstyp → eigene Tabelle (mit allen Attributen)
  2. Jede Tabelle braucht PK (ggf. künstlicher Schlüssel)
  3. 1:n → PK der "1"-Seite als FK in die "n"-Seite
  4. m:n → eigene Verbindungstabelle mit PKs beider Seiten als FK (+ eigene Attribute möglich)
Kunde
ID (PK)
Name
Adresse
Bestellung
Bestell_Nr (PK)
Datum
Kunden_ID (FK → Kunde)
Bestellposition
ID (PK)
Bestell_Nr (FK)
Produkt_Nr (FK)
Preis, Menge

7 · Normalisierung — Fachbegriffe

BegriffDefinition
NormalisierungRedundanz reduzieren → Anomalien vermeiden, Konsistenz erhöhen
Datenredundanzgleiche Info mehrfach gespeichert
DatenkonsistenzDaten sind widerspruchsfrei/korrekt
Änderungsanomaliemehrfach gespeicherte Daten → beim Ändern werden Kopien übersehen
EinfügeanomalieDaten nur zusammen mit anderen erfassbar (z. B. MA ohne Abteilung)
LöschanomalieLöschen entfernt ungewollt weitere Daten (Abteilung löschen → MA-Daten weg)
Referenzielle IntegritätFK-Werte müssen in PK-Tabelle existieren

8 · Normalformen (Flug-Beispiel)

Ausgangslage: unnormalisierte Tabelle mit mehreren Flügen pro Kunde in einer Zelle.

1 NF — alle Attribute atomar

Keine Mengen/Listen → jede Kunde-Flug-Kombination bekommt eine eigene Zeile:

KundeNameFlugZielLandFluggesellschaft
K1013Meier, R.M107ParisFMoeve
K1013Meier, R.AT286EdmontonCAAirTrans
K8516Schulz, BAT286EdmontonCAAirTrans

2 NF — voll funktional vom ganzen PK abhängig

Aufteilen, da Name nur von Kunde, und Ziel/Land/Fluggesellschaft nur von Flug abhängen:

Kunden 2NF
Kunde (PK)
Name
Flüge 2NF
Flug (PK)
Ziel, Land, Fluggesellschaft
Flugbuchungen 2NF
Kunde (FK)
Flug (FK)

3 NF — keine transitive Abhängigkeit

Land → Fluggesellschaft wäre transitiv über Flug abhängig → weiter aufteilen:

Flüge 3NF
Flug (PK)
Ziel → FK
Ziele 3NF (neu)
Ziel (PK)
Land

Ergebnis 3NF: Kunden, Flugbuchungen, Flüge (ohne Land), Ziele — Abhängigkeit Land→Fluggesellschaft aufgelöst.

Weitere Normalformen

FormRegel
BCNFalle funktionalen Abhängigkeiten gehen vom PK aus
4NFkeine mehrwertigen Abhängigkeiten
5NFnur triviale Verbundabhängigkeiten
Nachteile der Normalisierung: viele kleine Tabellen → Leistungsprobleme (langsamer) · viele künstliche Schlüssel/Verknüpfungen → höhere Komplexität, mehr Fehleranfälligkeit · zusätzliche Schlüssel = mehr Speicherbedarf (= eine Art Redundanz)

9 · Vollständiges Beispiel-Schema (Schule)

ERM: Lehrer —1:n— unterrichtet —n:m— belegt —Schüler (über Kurs)

Lehrer
ID (PK)
Vorname, Name, Kuerzel
Kurs
ID (PK)
Name, Halbjahr, Kuerzel
LehrerID (FK)
Kursbelegung (löst m:n)
ID (PK)
Note
SchuelerID (FK)
KursID (FK)
Schueler
SchuelerID (PK)
Vorname, Nachname, Geburtsdatum, Geschlecht
AnschriftID (FK)
Anschrift
AnschriftID (PK)
Strasse, HausNr, PLZ, Ort

Beziehungen: Schüler (1)–(N) Kursbelegung · Kurs (1)–(N) Kursbelegung · Kurs (N)–(1) Lehrer · Schüler (N)–(1) Anschrift

Merksätze zur Reihenfolge

DesignAnalyse
Konzeptionell (ERM)
Logisch (Relational + Norm.)
Physisch (SQL)
Normalform1NF (atomar)
2NF (voll v. PK abh.)
3NF (keine transitive Abh.)
BCNF → 4NF → 5NF