zusammenfassungen/Writerside/topics/04/Datenbanken/02_semantischeDatenmodellierung.md
David Schirrmeister 8fc91f469f update
2025-06-12 13:22:57 +02:00

1.9 KiB

Interne Datenorganisation

Index und B-Baum

Dünner Index

  • Indexeinträge für jede Page
    • Indizierte Daten müssen innerhalb der Page sortiert sein und einmalig vorkommen
  • Hat weniger Datensätze als eigentliche Tabelle
  • Enthält nur die Page-Nummer und den Schlüsselwert
    • Meistens verwendet für Primärschlüssel
  • image_895.png

Dichter Index

  • Indexeinträge für jeden Record
    • Indizierte Daten müssen nicht sortiert sein
    • Indexeinträge können mehrfach vorkommen
  • Hat gleiche Anzahl Datensätze wie die eigentliche Tabelle
  • Enthält Page-Nummer, Record-Nummer und den Schlüsselwert
  • image_896.png

Mehrstufiger Index (Baum)

  • Indexeinträge sind in einem Baum organisiert
  • Jeder Knoten enthält Schlüsselwerte und Zeiger auf die Kinderknoten

B-Baum

  • Balancierter mehrstufiger Index
  • image_897.png

Suchen in B-Bäumen

  • Suche beginnt an der Wurzel
  • Ist x im Knoten enthalten?
    • Ja: Suche beendet
    • Nein: Gehe zum Kindknoten, dessen Schlüsselwert am nächsten an x liegt
      • Ist Knoten Blattknoten?
        • Ja: Suche erfolglos beendet
        • Nein: Wiederhole Suche im Kindknoten
          • Zwischen welchen Schlüsselwerten liegt x?
            • Gehe zum jeweiligen Kindknoten (> → rechts / < → links)

Einfügen in B-Bäume

  • Suche nach der Position, an der x eingefügt werden soll
  • Ist der Knoten voll? (Anzahl der Schlüsselwerte = 2m)
    • Ja: Knoten teilen
      • Mittleren Schlüsselwert in den Elternknoten einfügen
      • Falls Elternknoten voll wiederhole Teilung nach oben
        • Falls Elternknoten Wurzel ist, wird eine neue Wurzel erstellt
          • B-Baum wächst um eine Stufe
    • Nein: Einfügen des Wertes in den Knoten

Variante B+ Baum

  • Keine Daten in den Knoten
    • Nur Schlüsselwerte und Zeiger auf die Kinderknoten
    • Daten befinden sich in den Blattknoten
  • Suche, Einfügen, Löschen immer O(log n)