Datenbanksysteme Klausurvorbereitung

Speicher- und Indexstrukturen

Eigenschaften idealen Speichers

nicht-funktionale Eigenschaften

funktionale Eigenschaften

Speicherhierarchie

image-20210709090438034

Verwaltungsaufgaben

Seitenbasierte Organisation

Datensätze werden in größeren physischen Einheiten fester Größe verwaltet. Diese Seiten (Blöcke) werden nur komplett zwischen Haupt- (RAM) und Externspeicher (Festplatten, SSDs) transferiert.

Eigenschaften von Seiten:

Seitenzuordnungsverfahren

VerfahrenVisualisierungAdressierungZugriffskostenFlexibilität
Statische Datei-Zuordnungimage-20210709090510081direktminimalkeine
Dynamische Datei-Zuordnungimage-20210709090543835über kleine Tabellegeringmoderat
Dynamische Block-Zuordnungimage-20210709090558895über große Tabellehochmaximal

Systempuffer

image-20210709090620694

Pufferverwaltung

AufgabeImplementierungsmöglichkeit
Prüfung, ob Seite im Puffer und wenn ja in welchem FrameVerwaltung von (Seiten, Frame)-Paaren in Hashmap
Zurverfügungstellen freier FramesVerkettung der freien Frames in einer Liste
Bestimmung, welche Seiten auf Puffer entfernt werdenLeast-Recently-Used (Verkettung belegter Frames nach letztem Nutzungszeitpunkt der Seite)
Schreiben modifizierter SeitenAbsprache mit Transaktionsverwaltung (siehe ACID-Bedingungen)

Zugriffssystem

Datensätze einer Relation sollen auf Seiten abgebildet werden.

Tuple-Identifier (TID, RowID, RID)

Recordmanager

Zugriff auf Tupel einer Relation

ZugriffsvarianteBeschreibungVisualisierungEinsatzzweck
Relationen-ScanDurchlaufen der zur Relation gehörenden Seitenimage-20210709090657442niedrige Selektivität (Zugriff auf viele Datensätze)
Index-Scanindirekter Zugriff über Indeximage-20210709090714055hohe Selektivität (Zugriff auf wenige Datensätze)
Beispiel

Suche nach Datensatz mit Schlüssel 1000

image-20210709090729231

Indexe

Indextrukturen

B+-Bäume

Idee: "fette" Knoten mit maximaler Anzahl an Einträgen (so dass gerade noch in Seite passt)

image-20210709095231100

Definition: B+Baum Typ (b, c)
Beispiel

image-20210709155731036

Exakte Suche

Suche Datensatz mit Attributwert 42

Suche Datensatz mit Attributwert 41

image-20210709160104107

Die Suche ist auf einen Pfad beschränk Kosten: mit Höhe des Baums h

Bereichssuche

Suche alle Datensätze im [40, 50]

image-20210709160449363

Einfügen in B+-Baum

Algorithmus: (Einfügen von Schlüssel k)

  1. Exakte Suche nach k

  2. Einfügen von k

  3. Konfliktbeseitigung (wenn maximale Anzahl der Einträge pro Blatt verletzt)

    1. Knotenaufteilung bei der Hälfte

      image-20210710181948225

    2. Hinzufügen von Verweis auf höherer Ebene: Obergrenze von neuem (aufgeteiltem) Knoten

      image-20210710182009291

  4. Konfiktbeseitigung (wenn maximale Anzahl der Kinder pro Zwischenknoten verletzt)

    1. Verschieben von mittlerem Eintrag auf höhere Ebene

      image-20210710182525049

      Ergebnis:

      image-20210710182611019

Löschen aus B+-Baum

Algorithmus: (Löschen von Schlüssel k)

  1. Löschen von k (im Beispiel 24)

    image-20210710183429812

  2. Konfliktbeseitigung (wenn minimale Anzahl der Einträge pro Blatt verletzt)

    Verschiebe restliche Einträge in rechtes Blatt

    image-20210710183454893

  3. Konfliktbeseitigung (wenn maximale Anzahl der Einträge pro Blatt verletzt)

    1. Knotenaufteilung bei der Hälfte
    2. Hinzufügen des Index (höchster Wert des neuen Knotens) im höheren Knoten

    image-20210710183844895

Leistung
Operationworst-case-Kosten
exakte Suche
Bereichanfrage
Einfügen
Löschen