/
/
·
·
/
/
·
·
  • Einführung
  • Die Idee in einem Satz
  • Die zwei klassischen Index-Typen
  • B-Baum vs. Hash, wann welcher?
  • Index-Trade-offs
  • Klausur-Klassiker: wann legt die DB automatisch einen Index an?
  • Visualisierung
  • Klausur-Faustregeln
  • Typische Stolpersteine
ThemenDatenbankenIndexstrukturen (B-Baum & Hash)
Datenbanken·4Lerneinheiten·23min·Stand17.07.2026

Indexstrukturen (B-Baum & Hash).

Indexstrukturen (B-Baum & Hash-Index)

Du hast eine Tabelle mit 10 Millionen Studierenden und suchst die MatrNr 1.234.567. Ohne Index: die DB liest jede Zeile, einmal nach der anderen (Full Scan), 10M Vergleiche, langsam. Mit Index: ~3–4 Sprünge im B-Baum, fertig. Indexstrukturen sind der Performance-Hauptschalter für jede produktive DB. Klausur-Pflicht in 8/12 WInf-DB-Klausuren (P2).

Ein Index ist eine zusätzliche Datenstruktur, die die DB beim Suchen anstatt der Tabelle benutzt, schneller als linear durchgehen.

Wie ein Inhaltsverzeichnis in einem Buch: das Buch ist die Tabelle, das Inhaltsverzeichnis der Index. Du springst zur richtigen Seite, ohne alles durchzulesen.

1. B-Baum (B-Tree), der Standard

Balancierter Suchbaum mit hoher Verzweigung. Jeder Knoten hat mehrere Schlüssel + Verweise auf Kinder. Speziell: ein B+-Baum speichert alle echten Daten in den Blättern, innere Knoten haben nur Such-Schlüssel.

Eigenschaften:

  • Höhe O(log n), bei 10M Einträgen ist die Höhe ~3–4.
  • Such-Pfad: Wurzel → Verzweigung → Blatt. Bei jedem Knoten: binäre Suche, dann zum passenden Kind.
  • Bereichs-Suchen sehr schnell (Blätter sind verkettet).

Beispiel. Eine MatrNr-Suche in einem B-Baum mit Ordnung 3 (max. 3 Schlüssel pro Knoten):

                    [50]
                   /    \
              [20|40]    [70|90]
              /   |   \  /  |  \
        [10] [25][45] [60][80][95]

Suche nach 45: starte bei [50] → kleiner als 50 → gehe links zu [20|40] → größer als 40 → gehe rechts zu [45] → gefunden. 3 Vergleiche statt 9.

2. Hash-Index

Wert wird durch eine Hash-Funktion in einen Bucket gemappt. Sehr schnell bei exakter Gleichheit.

Eigenschaften:

  • Such-Zeit O(1) im Durchschnitt, eine einzige Hash-Berechnung.
  • Funktioniert nicht für Bereichs-Suchen (MatrNr BETWEEN 1000 AND 2000), die DB müsste alle Hash-Buckets durchgehen.
  • Beispiel-Anwendung: Primärschlüssel-Lookups, JOIN-Indizes.
OperationB-BaumHash
Exakte Gleichheit (=)✓ O(log n)✓ O(1)
Bereich (BETWEEN, <, >)✓ O(log n + Treffer)✗ Full Scan
Sortierte Reihenfolge✓ sequentiell aus Blättern✗ unsortiert
LIKE 'abc%' (Präfix)✓ (sortiert)✗
LIKE '%abc' (Suffix)✗✗

Faustregel: wenn du nicht genau weißt, was du brauchst → B-Baum. Hash nur, wenn du garantiert nur exakte Gleichheit suchst (z.B. PK-Lookups).

Indizes beschleunigen Lesen, verlangsamen Schreiben.

  • INSERT: Index muss zusätzlich aktualisiert werden → langsamer als ohne Index.
  • UPDATE einer indizierten Spalte: alter Eintrag löschen + neuen einfügen.
  • DELETE: Index-Eintrag entfernen.

Faustregel: Indizes auf Spalten, die oft in WHERE/JOIN vorkommen, aber selten geändert werden. Klassiker: PK, FK, häufig gesuchte Felder.

ConstraintAutomatischer Index?
PRIMARY KEY✓ ja (B-Baum)
UNIQUE✓ ja (B-Baum)
FOREIGN KEY✗ NEIN (manchmal Diskussion)
NOT NULL✗ NEIN

Klausur-Falle: Foreign Keys haben keinen automatischen Index in den meisten DBs (PostgreSQL nicht; MySQL InnoDB ja). Wenn JOIN-Performance wichtig ist, manuell Index auf FK-Spalte anlegen.

Schau, wie eine Suche in einem B-Baum den Pfad von der Wurzel zum Blatt verfolgt:

Lade Visualisierung...
  1. B-Baum-Höhe ist O(log n). Bei Millionen Einträgen nur 3–4 Sprünge. Das ist der Hauptgrund warum DBs schnell sind.
  2. Hash nur für exakte Gleichheit. Bei Range-Queries → B-Baum.
  3. PK/UNIQUE = automatischer Index. FK = kein automatischer Index.
  4. Index kostet Schreib-Performance. Trade-off zwischen Lese-Speed und Schreib-Speed.
  5. EXPLAIN PLAN ist dein Freund. Wenn die Query langsam ist, prüfe ob ein Index benutzt wird (oder ob ein Full Scan passiert).

1. Index auf jeder Spalte. Falsch, Indizes kosten Speicher und Schreib-Performance. Nur auf wirklich oft-gesuchte Spalten.

2. Index hilft bei LIKE '%xyz'. NEIN, Suffix-Suchen können keinen Index nutzen, weil der Anfang variabel ist. Nur bei 'xyz%' (Präfix) hilft B-Baum.

3. Hash-Index für Range-Queries. Funktioniert nicht. DB macht Full Scan trotz Index → manchmal sogar schlechter als ohne Index.

4. Composite Index (mehrere Spalten). Die Reihenfolge der Spalten im Index ist relevant. Index (A, B) hilft bei WHERE A=... und WHERE A=... AND B=..., aber NICHT bei WHERE B=... allein.

Klicke einen Suchwert und beobachte, wie sich der Suchpfad durch den B-Baum bewegt, wenige Sprünge selbst bei tausenden Einträgen.

Lade Visualisierung...

Klausur-Tipp: Bei "wie schnell findet man Wert X in einem B-Baum mit n Einträgen?" → O(log n). Bei n=10M ist das ~23 Vergleiche, bei n=1Mrd ~30. Linear wäre 10M bzw. 1Mrd.

Anmelden, um den Fortschritt zu speichern.

Nächster Schritt

Wenn du fertig bist: jetzt üben.

Aktives Abrufen festigt Wissen schneller als nochmal lesen.

War das hilfreich?

Verwandte Themen

  • JOINs
  • GROUP BY + Aggregate
  • ER-Diagramm
  • Normalformen (1NF → BCNF)
  • Funktionale Abhängigkeiten

Tools

Bald: Karteikarten · Spaced-Repetition · Mind-Map-Export

Fachliche Qualität
Noch nicht klassifiziertNoch nicht geprüft.

Diese Lerneinheit wurde für typische Bachelor-Klausuren konzipiert. So prüfen wir · Fehler entdeckt? Melde ihn uns oder markiere die fragliche Stelle direkt im Text oben.

Klausur-ÜbersichtKomplette Übersicht: alle Tabs als linearer Text zum Lernen
▾

Alle Tabs der Lerneinheit (Erklärung · B-Baum-Explorer · Praxis-Übung · Klausur-Quiz) als durchgehender Text. Ideal zum Wiederholen vor der Klausur, und für Suchmaschinen wie Google, Bing und KI-Suche (ChatGPT, Perplexity).

Inhalt dieser Übersicht

  1. Erklärung(Erklärung)
  2. B-Baum-Explorer(Visualisierung / Interaktiv)
  3. Praxis-Übung(Quiz / Klausurfragen)
  4. Klausur-Quiz(Quiz / Klausurfragen)
Teil 1·Erklärung

Erklärung

Indexstrukturen (B-Baum & Hash-Index)

Du hast eine Tabelle mit 10 Millionen Studierenden und suchst die MatrNr 1.234.567. Ohne Index: die DB liest jede Zeile, einmal nach der anderen (Full Scan), 10M Vergleiche, langsam. Mit Index: ~3–4 Sprünge im B-Baum, fertig. Indexstrukturen sind der Performance-Hauptschalter für jede produktive DB. Klausur-Pflicht in 8/12 WInf-DB-Klausuren (P2).

Die Idee in einem Satz

Ein Index ist eine zusätzliche Datenstruktur, die die DB beim Suchen anstatt der Tabelle benutzt, schneller als linear durchgehen.

Wie ein Inhaltsverzeichnis in einem Buch: das Buch ist die Tabelle, das Inhaltsverzeichnis der Index. Du springst zur richtigen Seite, ohne alles durchzulesen.

Die zwei klassischen Index-Typen

1. B-Baum (B-Tree), der Standard

Balancierter Suchbaum mit hoher Verzweigung. Jeder Knoten hat mehrere Schlüssel + Verweise auf Kinder. Speziell: ein B+-Baum speichert alle echten Daten in den Blättern, innere Knoten haben nur Such-Schlüssel.

Eigenschaften:

  • Höhe O(log n), bei 10M Einträgen ist die Höhe ~3–4.
  • Such-Pfad: Wurzel → Verzweigung → Blatt. Bei jedem Knoten: binäre Suche, dann zum passenden Kind.
  • Bereichs-Suchen sehr schnell (Blätter sind verkettet).

Beispiel. Eine MatrNr-Suche in einem B-Baum mit Ordnung 3 (max. 3 Schlüssel pro Knoten):

                    [50]
                   /    \
              [20|40]    [70|90]
              /   |   \  /  |  \
        [10] [25][45] [60][80][95]

Suche nach 45: starte bei [50] → kleiner als 50 → gehe links zu [20|40] → größer als 40 → gehe rechts zu [45] → gefunden. 3 Vergleiche statt 9.

2. Hash-Index

Wert wird durch eine Hash-Funktion in einen Bucket gemappt. Sehr schnell bei exakter Gleichheit.

Eigenschaften:

  • Such-Zeit O(1) im Durchschnitt, eine einzige Hash-Berechnung.
  • Funktioniert nicht für Bereichs-Suchen (MatrNr BETWEEN 1000 AND 2000), die DB müsste alle Hash-Buckets durchgehen.
  • Beispiel-Anwendung: Primärschlüssel-Lookups, JOIN-Indizes.

B-Baum vs. Hash, wann welcher?

OperationB-BaumHash
Exakte Gleichheit (=)✓ O(log n)✓ O(1)
Bereich (BETWEEN, <, >)✓ O(log n + Treffer)✗ Full Scan
Sortierte Reihenfolge✓ sequentiell aus Blättern✗ unsortiert
LIKE 'abc%' (Präfix)✓ (sortiert)✗
LIKE '%abc' (Suffix)✗✗

Faustregel: wenn du nicht genau weißt, was du brauchst → B-Baum. Hash nur, wenn du garantiert nur exakte Gleichheit suchst (z.B. PK-Lookups).

Index-Trade-offs

Indizes beschleunigen Lesen, verlangsamen Schreiben.

  • INSERT: Index muss zusätzlich aktualisiert werden → langsamer als ohne Index.
  • UPDATE einer indizierten Spalte: alter Eintrag löschen + neuen einfügen.
  • DELETE: Index-Eintrag entfernen.

Faustregel: Indizes auf Spalten, die oft in WHERE/JOIN vorkommen, aber selten geändert werden. Klassiker: PK, FK, häufig gesuchte Felder.

Klausur-Klassiker: wann legt die DB automatisch einen Index an?

ConstraintAutomatischer Index?
PRIMARY KEY✓ ja (B-Baum)
UNIQUE✓ ja (B-Baum)
FOREIGN KEY✗ NEIN (manchmal Diskussion)
NOT NULL✗ NEIN

Klausur-Falle: Foreign Keys haben keinen automatischen Index in den meisten DBs (PostgreSQL nicht; MySQL InnoDB ja). Wenn JOIN-Performance wichtig ist, manuell Index auf FK-Spalte anlegen.

Visualisierung

Schau, wie eine Suche in einem B-Baum den Pfad von der Wurzel zum Blatt verfolgt:

Interaktive Visualisierung

Interaktive Komponente: probiere sie im Topic-Player oben aus.

Klausur-Faustregeln

  1. B-Baum-Höhe ist O(log n). Bei Millionen Einträgen nur 3–4 Sprünge. Das ist der Hauptgrund warum DBs schnell sind.
  2. Hash nur für exakte Gleichheit. Bei Range-Queries → B-Baum.
  3. PK/UNIQUE = automatischer Index. FK = kein automatischer Index.
  4. Index kostet Schreib-Performance. Trade-off zwischen Lese-Speed und Schreib-Speed.
  5. EXPLAIN PLAN ist dein Freund. Wenn die Query langsam ist, prüfe ob ein Index benutzt wird (oder ob ein Full Scan passiert).

Typische Stolpersteine

1. Index auf jeder Spalte. Falsch, Indizes kosten Speicher und Schreib-Performance. Nur auf wirklich oft-gesuchte Spalten.

2. Index hilft bei LIKE '%xyz'. NEIN, Suffix-Suchen können keinen Index nutzen, weil der Anfang variabel ist. Nur bei 'xyz%' (Präfix) hilft B-Baum.

3. Hash-Index für Range-Queries. Funktioniert nicht. DB macht Full Scan trotz Index → manchmal sogar schlechter als ohne Index.

4. Composite Index (mehrere Spalten). Die Reihenfolge der Spalten im Index ist relevant. Index (A, B) hilft bei WHERE A=... und WHERE A=... AND B=..., aber NICHT bei WHERE B=... allein.

Teil 2·Visualisierung / Interaktiv

B-Baum-Explorer

B-Baum-Explorer

Klicke einen Suchwert und beobachte, wie sich der Suchpfad durch den B-Baum bewegt, wenige Sprünge selbst bei tausenden Einträgen.

Interaktive Visualisierung

Interaktive Komponente: probiere sie im Topic-Player oben aus.

Klausur-Tipp: Bei "wie schnell findet man Wert X in einem B-Baum mit n Einträgen?" → O(log n). Bei n=10M ist das ~23 Vergleiche, bei n=1Mrd ~30. Linear wäre 10M bzw. 1Mrd.

Teil 3·Quiz / Klausurfragen

Praxis-Übung

Indexstrukturen, Praxis-Übung

6 Aufgaben zu B-Baum, Hash-Index, Index-Auswahl, Trade-offs.

Klausurfragen mit Lösungen (6)

F1.Welche Such-Komplexität hat ein B-Baum-Index?

Antwort: O(log n)

Erklärung: B-Baum ist balanciert mit hoher Verzweigung → Höhe O(log n). Bei 10M Einträgen sind das ~23 Vergleiche binär, in Praxis (typ. Verzweigung 100+) sogar nur 3–4.

F2.Wann ist ein Hash-Index NICHT geeignet?

Antwort: Bei Range-Queries (BETWEEN, <, >)

Erklärung: Hash-Indizes machen keine Sortierung, die Werte sind 'gehasht' auf zufällig verteilte Buckets. Range-Queries würden alle Buckets durchgehen müssen, also faktisch Full Scan. Für Range immer B-Baum.

F3.Welche Constraints führen meist zu automatisch erzeugten Indizes?

Antwort: PRIMARY KEY und UNIQUE

Erklärung: PRIMARY KEY und UNIQUE bekommen automatisch einen B-Baum-Index. FOREIGN KEY NICHT in PostgreSQL/Oracle (Klausur-Falle); MySQL InnoDB tut es. Wenn JOIN-Performance wichtig ist, FK-Index manuell anlegen.

F4.Mehr Indizes machen die Datenbank in jeder Hinsicht schneller.

Antwort: Falsch

Erklärung: FALSCH. Indizes beschleunigen Lesen (SELECT), verlangsamen Schreiben (INSERT/UPDATE/DELETE), weil der Index jedes Mal aktualisiert werden muss. Plus Speicher-Overhead. Faustregel: Indizes auf häufig gesuchte, selten geänderte Spalten.

Typ: Wahr/Falsch

F5.Ordne die Operation der besten Index-Struktur zu:

Zuordnungen:

  • WHERE MatrNr = 1001 → Hash oder B-Baum
  • WHERE Note BETWEEN 1.0 AND 2.0 → B-Baum
  • WHERE Name LIKE 'Mül%' → B-Baum (Sortierung)
  • WHERE Beschreibung LIKE '%suche%' → Kein Standard-Index (Full-Text Search)

Erklärung: B-Baum ist universeller, funktioniert für Gleichheit, Range, Präfix. Hash nur für exakte Gleichheit. Suffix/Substring-Suchen brauchen spezielle Full-Text-Indizes (z.B. PostgreSQL GIN).

Typ: Zuordnung

F6.Welche Aussage über Composite-Indizes (auf mehrere Spalten) ist KORREKT?

Antwort: Index (A, B) hilft bei WHERE A=... AND B=...

Erklärung: Composite (A, B) ist ein einziger sortierter B-Baum mit A als Hauptsortierung, B als Sekundär. Hilft bei A=... oder A=... AND B=..., aber NICHT bei B=... allein (Spalten-Reihenfolge zählt). Klausur-Klassiker.

Teil 4·Quiz / Klausurfragen

Klausur-Quiz

Klausurfragen mit Lösungen (6)

F1.Eine Tabelle hat 1M Zeilen. Ohne Index: 1M Vergleiche. Wie viele mit B-Baum (typ. Verzweigung 100)?

Antwort: ~3

Erklärung: log₁₀₀(1.000.000) = 3. Drei Sprünge im B-Baum statt 1.000.000 sequentiell. Das ist der Grund warum Datenbanken überhaupt skalierbar sind.

F2.Welcher Index-Typ unterstützt Range-Queries (WHERE x BETWEEN a AND b)?

Antwort: B-Baum / B+-Baum

Erklärung: B-Baum/B+-Baum: Blätter sind sequenziell verkettet (B+-Baum), Range-Scan startet bei a-Position und läuft sequenziell bis b. Hash kann das nicht.

F3.In den meisten Datenbanken (PostgreSQL, Oracle) wird beim Anlegen eines FOREIGN KEY automatisch ein Index auf die FK-Spalte erzeugt.

Antwort: Falsch

Erklärung: FALSCH. PostgreSQL und Oracle legen KEINEN automatischen Index auf FK. Das ist eine häufige Quelle für JOIN-Performance-Probleme. MySQL InnoDB legt einen an. Klausur-Trick.

Typ: Wahr/Falsch

F4.Sortiere die Schritte einer B-Baum-Suche für MatrNr=1005:

Richtige Reihenfolge:

  1. Starte an der Wurzel: vergleiche MatrNr mit Schlüsseln
  2. Folge dem passenden Kind-Pointer
  3. Im inneren Knoten: erneut vergleichen, weiter zum Kind
  4. Erreiche das Blatt mit dem Schlüssel (oder Disqualifikation)
  5. Hole die zugehörigen Daten (oder bestätige Nicht-Vorhanden)

Erklärung: Klassischer Top-Down-B-Baum-Search. Jeder Schritt entscheidet welches Kind. Bei B+-Baum sind nur die Blätter Daten, innere Knoten dienen nur als Wegweiser.

Typ: Reihenfolge

F5.Welche Operation kann KEIN Index beschleunigen?

Antwort: WHERE LOWER(x) = 'abc'

Erklärung: Funktion auf indizierte Spalte (LOWER(x)) verhindert Index-Nutzung, DB muss für jede Zeile LOWER() ausrechnen. Lösung: Funktionsbasierter Index (PostgreSQL: CREATE INDEX ... ON tbl(LOWER(x))). Klausur-Stolperstein.

F6.Ein B-Baum-Index hat Suchzeit {{1}} und unterstützt Range-Queries. Ein Hash-Index hat Suchzeit {{2}} für Gleichheit, aber {{3}} für Range. PK und UNIQUE bekommen meist {{4}} einen Index.

Lösungen pro Lücke:

  • {{1}}: O(log n)
  • {{2}}: O(1)
  • {{3}}: O(n) / Full Scan
  • {{4}}: automatisch

Erklärung: Klausur-Pflichtwissen-Lückentext. B-Baum-O(log n), Hash-O(1), Hash-keine Range, PK/UNIQUE = automatischer Index.

Typ: Lückentext

Zur KategorieDatenbanken.Mehr Themen entdeckenZum Themen-Hub.

UniProMax ist eine themenbasierte Lernplattform für Studierende an deutschen Unis.

Wir glauben, dass Verstehen besser ist als Auswendiglernen. Wir bauen Lerneinheiten die zeigen statt erzählen. Code, Visualisierung, Quiz. Auf Deutsch.

Marke

UniProMaxUniProMax

Themenbasiert, visuell, interaktiv.

Inhalte

  • Alle Themen (Hub)
  • Programmiergrundlagen
  • Algorithmen
  • Mathematik
  • Statistik
  • Datenbanken
  • Rechnungswesen
  • VWL

Studiengang-Filter

  • Informatik
  • Wirtschaftsinformatik
  • BWL
  • Data Science
  • VWL
  • Wirtschaftsingenieurwesen
  • Mathe
  • Psychologie
  • weitere Studiengänge folgen

Plattform

  • Mein Fortschritt
  • Impressum
  • Datenschutz
© 2026 UniProMaxAlle Systeme onlinev0.2 / Sommersemester 2026
UniProMaxUniProMaxUniProMaxUniProMax