Das Datenbanksystem verwendet folgende Organisationsstrukturen, um die Daten der Datenbank zu speichern:
● Seitenketten
● Seiten in B*-Bäumen
Um Undo-Log-Einträge und SAP liveCache-Daten (C++-Objekte) zu speichern und später darauf zuzugreifen, verwendet das Datenbanksystem Seitenketten.
Eine Seitenkette ist eine Folge von Seiten, die logisch zusammengehören. Jede Seite hat genau eine nachfolgende Seite. Die erste Seite der Seitenkette wird als Wurzelseite bezeichnet. Die Wurzelseite enthält interne Verwaltungsinformationen, wie z. B. die Identifikation der letzten Seite der Seitenkette.
Seitenkette
B*-Bäume legt das Datenbanksystem für folgende Datenbankobjekte an:
● einen B*-Baum pro Tabelle für die Datensätze (Anwendungsdaten)
● einen oder mehrere zusätzliche B*-Bäume für die LONG-Werte einer Tabelle
Siehe B*-Bäume für Tabellen mit LONG-Spalten.
● einen zusätzlichen B*-Baum für jeden Index einer Tabelle
Siehe B*-Baum für jeden Index einer Tabelle
Ein B*-Baum besteht aus einer Wurzelebene, einer oder mehreren B*-Baum-Indexebenen und einer Blattebene. Jede Ebene besteht aus einer oder mehreren Seiten. Wenn das Datenbanksystem nach einem Datensatz sucht, schränkt es den Suchbereich schrittweise ein, ausgehend von der Wurzelseite des B*-Baums.
B*-Baum mit drei Ebenen
Die Seiten der Wurzel- und B*-Baum-Indexebenen eines B*-Baums enthalten die Separatoren.
Ein Separator zeigt auf die logischen Adressen (Seitennummern) von Seiten auf der nächst tieferen Ebene. In einem Separator ist der signifikante Teil des Primärschlüssels enthalten, der zur Unterscheidung zum Folgeeintrag benötigt wird. Auf diese Weise wird der von diesen Seiten benötigte Speicherplatz minimiert. Die durchschnittliche Länge der Separatoren hängt von der Struktur und Selektivität des Schlüssels ab.
Der erste Separator in der äußersten linken Seite pro Ebene (einschließlich der Wurzelebene) enthält nur den Zeiger auf die äußerste linke Seite auf der nächst tiefer gelegenen Ebene.
Blattseite eines B*-Baums
Die Seiten der Blattebene (Blattseiten) enthalten die eigentlichen Datensätze (Tabellenzeilen) und eine Positionsliste. Zu jedem Datensatz gehört ein Eintrag in der Positionsliste, der auf den physischen Speicherort des Datensatzes in der Seite zeigt. Das Datenbanksystem legt die Datensätze in einer Seite unsortiert ab, sortiert aber die Positionseinträge in der Positionsliste aufsteigend.
Die Anzahl der Datensätze auf einer Blattseite hängt von der Gesamtlänge der Datensätze ab.
Das Datenbanksystem führt einen automatischen Ausgleich zwischen den B*-Bäumen durch und macht dadurch eine manuelle Reorganisation der Daten überflüssig. Siehe Belegungsausgleich.
Siehe auch: