![Page 1: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/1.jpg)
1
3.101 Exkurs: Zum Begriff „Zugriffspfade“
![Page 2: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/2.jpg)
2 Der Begriff des Zugriffspfads ist historisch begründet und
geht davon aus, dass jede logische Kollektion in genau einer internen Datei und diese in genau einer physischen Datenstruktur gespeichert ist. Dabei gibt es dann zu jedem logischen Datenelement einen
physischen Datensatz, der das Datenelement physisch repräsentiert.
Zugriffspfade sind Strukturen, die den Datensätzen überlagert werden. Sie bestehen aus Stellvertretern der Datensätze.
Die physischen Datensätze oder deren Anteile, die die logischen Datenelemente speichern, werden als Primärdaten, die Zugriffspfade als Sekundärdaten bezeichnet.
Zur Historie: Der Begriff des „Zugriffspfads“
![Page 3: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/3.jpg)
3 Ein logischer Zugriffspfad ist eine abstrakte Datenstruktur,
die eine Menge von Datensätzen gemäß einer vorzugsweisen Zugriffsabfolge verwaltet, und die Operationen für sequenzielle Zugriffe, direkte Zugriffe und den Aufbau und die Änderung zur Verfügung stellt.
Ein physischer Zugriffspfad ist die spezielle Implementierung eines logischen Zugriffspfads. Bei einem eingebetteten Zugriffspfad sind die Stellvertreter in
die verwalteten Datensätze „eingebettet“. Bei einem getrennten Zugriffspfad sind die Stellvertreter
getrennt von den verwalteten Datensätzen gespeichert.
Zur Historie: Der Begriff des „Zugriffspfads“
![Page 4: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/4.jpg)
4
Beispiel: Schlüsselsequentielle Organisation der physischen Dateiverwaltung
HauptdateiÜberlauf-bereich
Index
Zur Historie: Der Begriff des „Zugriffspfads“
eingebetteter Zugriffspfad
(Primär-/Sekundärdaten)
Primärdatengetrennter Zugriffspfad
(Sekundärdaten)
![Page 5: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/5.jpg)
5
3.102 Wiederholung und Vertiefung: B*-Bäume
![Page 6: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/6.jpg)
6 Wertbasierter Zugriff: Zugriff aufgrund eines Attributwertes
(häufig etwas unpräzise als „Schlüssel“ bezeichnet). Klassische Techniken für wertbasierten Zugriff im
Hauptspeicher (linear sortierte Anordnung oder binär-baumartige Struktur der zu durchsuchenden Elemente) sind nicht ohne weiteres auf persistente Datenhaltung übertragbar: Sortieranordnung: Elemente, die weit auseinanderliegen,
müssen aufgesucht werden zu viele Seitenzugriffe auf Hintergrundspeicher
Baumförmige Anordnung: Suchweg durch Baum unbekannt kontrollierbare Abbildung auf Seiten nicht ohne weiteres
angebbar
Wertbasierter Zugriff
![Page 7: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/7.jpg)
7
Ziel: Anzahl der Seitenzugriffe auch bei unbekanntem Zugriffsverhalten gering halten.
Vorgehensweise: Schrittweise und zugleich starke Begrenzung des Suchbereichs. Führt auf Baumstruktur.
Alle für DB-Zugriff relevanten baumstrukturierten Organisationsformen müssen für Seitenstrukturen konzipiert sein. Daher: Jeder Schritt beinhaltet einen Zugriff auf eine Seite, auf der dann eine große Zahl von Suchschritten im Hauptspeicher vollzogen werden. Sei s Zahl der Suchschritte pro Seite und N die Gesamtzahl
der Sätze. Dann ist die Anzahl der Seitenzugriffe beim Fortschreiten in einem ausgewogenen Baum O(logs(N)).
s = 2 BinärbaumZiel: s > 100 Mehrwegbaum
Baumförmige Anordnungen
![Page 8: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/8.jpg)
8
Vergleich Binärbaum und Mehrwegbaum
Binärbaum (s=2)520
356 740
231 409 622 834
587 701 822 910123 277 386 469
65 143 241 278 361 399 420 501 534 597 679 712 780 831 878 923
![Page 9: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/9.jpg)
9
Vergleich Binärbaum und MehrwegbaumMehrwegbaum (s=6) 277 409 578 740 910
65 123 143 231 241
278 361 356 386 399
420 469 501 520 534
597 622 679 701 712
780 822 831 834 878
923
s=6
![Page 10: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/10.jpg)
10
Ein Knoten des Baums wird auf einer Seite gespeichert. Damit bei direktem Zugriff nur auf wenige Seiten
zugegriffen werden muss, ist ein sehr hoher Verzweigungsgrad der Wurzel und der internen Knoten anzustreben (s im Bereich 100 bis 500).
Damit lässt sich selbst bei hoher Skalierung die Höhe eines Mehrwegbaums auf 3 bis 4 begrenzen. Eine Höhe über 4 kommt praktisch nie vor.
Zugleich müssen bei sortierter sequenzieller Verarbeitung aller Sätze die Elemente eines Knotens die Zugriffsabfolge widerspiegeln.
Eigenschaften von Mehrwegbäumen
![Page 11: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/11.jpg)
11 Allerdings sollte dann zusätzlich gelten:
Der Baum ist balanciert, um ein ausgewogenes Zugriffsverhalten zu garantieren.
Die Datensätze sind möglichst kompakt auf wenigen Seiten gespeichert, d.h. der Füllgrad der Seiten ist möglichst hoch.
Da jedoch Änderungen Balancierung und Füllgrad beeinflussen, wird man zur Wiederherstellung der Balance und eines hohen Füllgrads fordern, dass die Reorganisation auf einen möglichst kleinen Teil des Baums begrenzt bleibt.
Das flexible Verhalten bei Änderungsoperationen verlangt Kompromisse.
Wir studieren diese an den am weitesten verbreiteten B- und B*-Bäumen in ihren verschiedenen Varianten.
Eigenschaften von Mehrwegbäumen
![Page 12: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/12.jpg)
12
Ein B-Baum vom Typ (k,h) ist ein leerer Baum oder ein Baum mit folgenden Eigenschaften:
1. Jeder Weg von der Wurzel zu einem Blatt hat die gleiche Länge h (Länge = Zahl der Knoten). h daher als Höhe bezeichnet.
2. Jeder Knoten j, der nicht Blatt ist, hat nj+1 Kinder. Ist der Knoten Wurzel so gilt 1 nj 2k, andernfalls k nj 2k.
3. Jeder Knoten mit nj+1 Kindern ist mit nj sortiert angeordneten Schlüsseln belegt (sowie mit Datensätzen).
4. Seien S1,…,Sn die Schlüssel eines Knotens j mit nj+1 Söhnen. Seien Z0, Z1, …, Zn die Zeiger auf diese Kinder.
a) Z0 weist auf Teilbaum mit Schlüsseln kleiner S1 b) Zi (i=1, …, nj-1) weist auf Teilbaum, dessen Schlüssel echt zwischen
Si und Si+1 liegen. c) Zn weist auf Teilbaum mit Schlüsseln größer Sn. d) In den Blattknoten sind die Zeiger nicht definiert.
B-Baum
![Page 13: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/13.jpg)
13Interne Struktur der Knoten (1)
Z0 S1 D1 Z1 S2 D2 Z2 … Sn Dn Zn frei
Schlüsselwert Satzdaten Zeiger auf Kindknoten
Di enthält nur den Datensatz zum Schlüssel Si
Eindeutige Schlüsselwerte
Di enthält Anzahl der Datensätze und die Datensätze selbst
Di enthält Anzahl der Datensätze, zu jedem Datensatz die Länge und die Datensätze selbst
Di enthält ein Längenfeld und den Datensatz zum Schlüssel Si
Mehrere Datensätze mit gleichem Schlüssel zugelassen
Sätze fester Länge Sätze variabler Länge
![Page 14: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/14.jpg)
14 Lösungen für die Satzdaten Di:
Datensätze direkt in den Knoten des Baums (eingebettete Datensätze).
Stellvertreter (Verweise auf die Datensätze) in den Knoten des Baums (ausgelagerte Datensätze). Die Datensätze selbst sind getrennt auf anderen Seiten (durch externe Platzierung) gespeichert.
Die Entscheidung fällt auf der internen Ebene. Beispiel: Ausgelagerte Datensätze:
Man definiert eine Datei F1, die Schlüsselwerte und Verweise auf eine Datei F2 enthält.
Wird F1 in einem B-Baum gespeichert, dann erhält man einen B-Baum mit ausgelagerten Datensätzen.
Daher einheitliche Betrachtungsweise: Ein B-Baum enthält somit immer die vollständigen Datensätze der internen Datei, die er physisch repräsentiert.
Interne Struktur der Knoten (2)
![Page 15: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/15.jpg)
15Annahme: k=1
Beispiel für einen B-Baum
50 50 „white“
„brown“ 70 „red“
„blue“
„yellow“
40 „black“
„green“„red“
„yellow“
30 30 70 70
40 80 80 90 90
60 6020 2010 10
Schlüssel Datensatz
Höhe eines B-Baums mit N Datenseiten:log 2k+1(N+1) h 1+logk+1((N+1)/2) (N 1)
Aus der Sicht der nächsten Ebene:
SeparatorAus der Sicht des
Knotens: Wegweiser
![Page 16: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/16.jpg)
16 Eineindeutige Zuordnung von Knoten und Seiten. Ein Knoten wird auf irgendeiner frei wählbaren Seite des
Segmentes gespeichert. Folge: h beschreibt maximale Anzahl der Seitenzugriffe bei
direktem Zugriff. Niedriges h ist anzustreben, somit hohes k („fan-out“)
notwendig. Fan-out k ist jedoch abhängig von Satzlänge! Errechne sich
die maximal mögliche Zahl der Einträge pro Seite zu m. Dann ist k = (m/2).
Zuordnung von B-Baum-Knoten zu Seiten
Beispiel: Seitengröße = 4 KB Zeiger- und Schlüssellänge = 4 B Satzlänge = 120 B: 2k = 32 (z.B. Einbettung) Satzlänge = 8 B: 2k = 256 (z.B. Auslagerung)
![Page 17: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/17.jpg)
17 Jeder Knoten enthält n Schlüssel mit
k n 2k Einfügen eines neuen Datensatzes erfordert 2 Phasen:
1. Suche nach dem Schlüssel des neuen Datensatzes (notfalls bis zum Blatt).
2a. Falls gefunden: Einfügen des neuen Datensatzes in den entsprechenden Knoten des B-Baums (bei nichteindeutigem Schlüssel).
2b. Falls nicht gefunden: Einfügen des neuen Datensatzes in das bei der Suche erreichte Blatt.
Einfügen eines Datensatzes
![Page 18: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/18.jpg)
18Beispiel: Einfügen des Datensatzes [ 32, „gray“, ]
Einfügen eines Datensatzes
50 50 „white“
„brown“ 70 „red“
„blue“
„yellow“
40 „black“
„green“„red“
„yellow“
30 30 70 70
40 80 80 90 90
60 6020 2010 10
3232 „gray“
![Page 19: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/19.jpg)
19Beispiel: Einfügen des Datensatzes [42, „rose“, ]
Einfügen eines Datensatzes
50 50 „white“
„brown“ 70 „red“
„blue“
„yellow“
40 „black“
„green“„red“
„yellow“
30 30 70 70
40 80 80 90 90
60 6020 2010 10
3232 „gray“
Knotenüberlauf!
![Page 20: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/20.jpg)
20 Bei Überlauf eines Knotens wird der Knoten gespalten, d.h.
die Einträge des Knotens werden auf zwei Knoten verteilt. Die alte Seite wird weiterverwendet (z.B. für den ersten
Knoten). Für den zweiten Knoten wird eine zusätzliche Seite von der Seitenverwaltung angefordert.
Der Datensatz, der in der Mitte des übergelaufenen Knotens liegt, wird zum Elternknoten propagiert.
Einfügen eines Datensatzes
S1 < S2< … < Sk < Sk+1 < S k+2 < … < S2k+1
alter Knoten
Propagation zum Elternknoten
neuer Knoten
![Page 21: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/21.jpg)
21
„brown“ 30 30
40 „black“40 3232 „gray“
70 „red“ 70 70
Beispiel: Einfügen des Datensatzes [42, „rose“, ]
Einfügen eines Datensatzes
50 50 „white“
„blue“
„yellow“ „green“„red“
„yellow“80 80 90 90
60 6020 2010 10
32
„brown“
42 „rose“
30 30
42 32 „gray“
„black“ 40 40
![Page 22: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/22.jpg)
22 Spalten von Knoten kann sich im Elternknoten rekursiv
fortsetzen. Schlimmster Fall:
Alle Knoten bis zur Wurzel laufen über und werden gespalten. Wenn sogar die Wurzel überläuft, wird auch sie gespalten. Folge: Der Baum wächst in der Höhe um 1.
Einfügen eines Datensatzes
![Page 23: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/23.jpg)
23
Entfernen eines Datensatzes erfordert 2 Phasen: Suche nach dem zu entfernenden Datensatz anhand seines
Schlüssels. Entferne ihn. Zwei Fälle:
1. Datensatz befindet sich in einem Blatt. 2. Datensatz befindet sich in einem internen Knoten oder in der
Wurzel.
Entfernen eines Datensatzes
![Page 24: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/24.jpg)
24Fall 1, Beispiel: Entfernen des Datensatzes [ 32, „gray“, ]
Entfernen eines Datensatzes
50 50 „white“
„blue“ „yellow“80 80 90 90
„green“ 60 60
„yellow“ „red“ 20 2010 10
42 „rose“42 3232 „gray“
„brown“ 30 30 „black“ 40 40
Falls der Blattknoten nunmehr weniger als k Datensätze enthält, entsteht ein Knoten-Unterlauf
70 „red“ 70 70
![Page 25: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/25.jpg)
25
Knoten-Unterlauf: Invarianz des B-Baums: Jeder Knoten hat n Datensätze mit
k n 2k. Nach dem Entfernen hat Knoten weniger als k Datensätze. Es wird versucht, Datensätze aus den Nachbarknoten in den
Knoten mit Unterlauf zu verschieben.
Entfernen eines Datensatzes
![Page 26: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/26.jpg)
26Entfernen eines Datensatzes
50 50 „white“
„blue“ „yellow“80 80 90 90
„green“ 60 60
„red“ 20 20„yellow“10 10
42 „rose“42
„brown“ 30 30 „black“ 40 40
„red“ 20 20
„brown“ 30 30
70 „red“ 70 70
![Page 27: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/27.jpg)
27 Problem: Wenn alle Nachbarknoten nur minimal belegt sind,
kann kein Ausgleich stattfinden (das Entfernen von Datensätzen aus den Nachbarknoten würde dort zu einem Unterlauf führen).
In diesem Fall wird der Unterlauf-Knoten mit einem seiner Nachbarknoten zusammengelegt.
Die freiwerdende Seite wird an die Seitenverwaltung zurückgegeben.
Das Zusammenlegen zweier Knoten führt zu dem Verschieben des Separator-Datensatzes aus dem Elternknoten in den neuen, durch das Zusammenlegen entstehenden Knoten.
Wie beim Splitten von Knoten kann sich das Zusammenlegen von Knoten bis zur Wurzel fortsetzen.
Folge: Der Baum schrumpft in der Höhe um 1.
Entfernen eines Datensatzes
![Page 28: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/28.jpg)
28Entfernen eines Datensatzes
50 50 „white“
„blue“ „yellow“80 80 90 90
„green“ 60 60
„yellow“10 10
42 „rose“42
„brown“ 30 30 „black“ 40 40„red“ 20 20
„brown“ 30 30
Fall 1, Beispiel: Entfernen des Datensatzes [ 30, „brown“, ]
„black“ 40 40
70 „red“ 70 70
![Page 29: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/29.jpg)
29
Fall 2: Finde einen neuen Separator-Datensatz als Ersatz für den
zu entfernenden Datensatz. Zwei Alternativen für Auswahl des Separator-Datensatzes:
1. Wähle den Datensatz mit dem kleinsten Schlüssel, der größer ist als der Schlüssel des zu entfernenden Datensatzes (Inorder-Nachfolger).
2. Wähle den Datensatz mit dem größten Schlüssel, der kleiner ist als der Schlüssel des zu entfernenden Datensatzes (Inorder-Vorgänger).
Der ausgewählte Separator-Datensatz wird aus seinem Knoten entfernt (rekursiver Aufruf der
Operation zum Entfernen von Datensätzen!) und ersetzt den zu entfernenden Datensatz in dessen Knoten.
Entfernen von Datensätzen
![Page 30: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/30.jpg)
30Fall 2, Beispiel: Entfernen des Datensatzes [ 30, „brown“, ]
Entfernen eines Datensatzes
50 50 „white“
„blue“ „yellow“80 80 90 90
„green“ 60 60
42 „rose“42 3232 „gray“
„brown“ 30 30 „black“ 40 40„red“ 20 20
„red“ 20 20„yellow“10 10
neuerSeparator-Datensatz
70 „red“ 70 70
![Page 31: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/31.jpg)
31
Gewünschte Aussage:Baumstrukturen bieten einen attraktiven und ausgewogenen
Kompromiss zwischen günstigem direktem Schlüsselzugriff, günstiger sortierter sequenzieller Verarbeitung aller Sätze, flexiblem Verhalten bei Änderungsoperationen.
Bewertung B-Baum
+-+
![Page 32: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/32.jpg)
32
Abhilfe: Führe informationstragende Einträge (Satzdaten Di) ausschließlich in den Blattknoten und organisiere sie dort als verkettete Liste.
Folge: Schlüssel in allen anderen Knoten haben daher ausschließlich Wegweiserfunktion (Redundanzen!).
Charakterisierung: Man spricht daher von „blattorientierten“ oder „hohlen“ Bäumen.
Andere Bezeichnung: B+-Baum. Mehrere Definitionen gebräuchlich, die hier verwendete lehnt
sich eng an den B-Baum an.
B*-Baum
![Page 33: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/33.jpg)
33Ein B-Baum vom Typ (k,h) ist ein leerer Baum oder ein Baum mit folgenden
Eigenschaften:1. Jeder Weg von der Wurzel zu einem Blatt hat die gleiche Länge h (Länge = Zahl
der Knoten). h daher als Höhe bezeichnet.2. Jeder Knoten j, der nicht Blatt ist, hat nj+1 Söhne. Ist der Knoten Wurzel so gilt 1
nj 2k, andernfalls k nj 2k. 3. Jeder Knoten mit nj+1 Söhnen ist mit nj sortiert angeordneten Schlüsseln belegt
(sowie mit Datensätzen).4. Seien S1,…,Sn die Schlüssel eines Knotens j mit nj+1 Söhnen. Seien Z0, Z1, …, Zn
die Zeiger auf diese Söhne.a) Z0 weist auf Teilbaum mit Schlüsseln kleiner S1
b) Zi (i=1, …, nj-1) weist auf Teilbaum, dessen Schlüssel echt zwischen Si und Si+1 liegen.
c) Zn weist auf Teilbaum mit Schlüsseln größer Sn.
d) In den Blattknoten sind die Zeiger nicht definiert.
B-Baum
![Page 34: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/34.jpg)
34Ein B*-Baum vom Typ (k,k*,h) ist ein leerer Baum oder ein Baum mit folgenden
Eigenschaften:1. Jeder Weg von der Wurzel zu einem Blatt hat die gleiche Länge h (Länge = Zahl
der Knoten). h daher als Höhe bezeichnet.2. Jeder Knoten j, der nicht Blatt ist, hat nj+1 Söhne. Ist der Knoten Wurzel so gilt 1
nj 2k, andernfalls k nj 2k.
3. Jeder Knoten mit nj+1 Söhnen ist mit nj sortiert angeordneten Schlüsseln (Wegweisern) belegt.
4. Seien S1,…,Sn die Schlüssel eines Knotens j mit nj+1 Söhnen. Seien Z0, Z1, …, Zn die Zeiger auf diese Söhne.
a) Z0 weist auf Teilbaum mit Schlüsseln kleiner oder gleich S1
b) Zi (i=1, …, nj-1) weist auf Teilbaum, dessen Schlüssel zwischen Si und Si+1 liegen und Si+1 einschließen können.
c) Zn weist auf Teilbaum mit Schlüsseln größer Sn.
5. Jeder Blattknoten enthält mindestens k* und höchstens 2k* Einträge. Ist die Wurzel Blatt, so enthält sie mindestens einen Eintrag.
6. Die Blattknoten sind doppelt verkettet in auf- bzw. absteigender Schlüsselreihenfolge.
B*-Baum
![Page 35: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/35.jpg)
35 Format eines internen Knotens:
Format eines Blattknotens:
Interne Struktur der Knoten
Z0 S1 Z1 S2 … Sn Zn frei
Wegweiser-Schlüssel Kindzeiger
P S1 D1 S2 D2 … NfreiSn Dn
Previous-Zeiger Schlüssel Satzdaten Next-Zeiger
![Page 36: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/36.jpg)
36Annahme: k=1
Beispiel für einen B-Baum
50 50 „white“
„brown“ 70 „red“
„blue“
„yellow“
40 „black“
„green“„red“
„yellow“
30 30 70 70
40 80 80 90 90
60 6020 2010 10
Schlüssel Datensatz
Höhe eines B-Baums mit N Datenseiten:log 2k+1(N+1) h 1+logk+1((N+1)/2) (N 1)
![Page 37: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/37.jpg)
37Beispiel für einen B*-Baum
Annahme: k=2, k*=1
„yellow“ „red“20 2010 10
25 45 65 75
„blue“ „yellow“90 9080 80
„brown“ „black“40 4030 30 „red“70 70
„white“ „green“60 6050 50
Schlüssel Datensatz
Wegweiser
Höhe h eines B*-Baums mit N Datenelementen: )2(
2log2
2log1 112 ≥⎟⎠
⎞⎜⎝⎛+≤≤⎟⎠
⎞⎜⎝⎛+ ∗+∗+ h
kNh
kN
kk
![Page 38: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/38.jpg)
38Beispiel für einen B*-Baum
Annahme: k=2, k*=1
„yellow“ „red“20 2010 10
25 45 65 75
„blue“ „yellow“90 9080 80
„brown“ „black“40 4030 30 „red“70 70
„white“ „green“60 6050 50
Schlüssel Datensatz
Wegweiser
Im Beispiel kommt keiner der Separator-Schlüssel der Wurzel in den Blättern vor; d.h. keiner der Separator-Schlüssel taucht in der Datei auf, die in dem B*-Baum gespeichert ist.
Prinzipiell dürfen die Separator-Schlüssel auch unter den in der Datei vorkommenden Schlüsseln gewählt werden; in diesem Fall werden Schlüssel mehrfach (redundant) gespeichert.
![Page 39: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/39.jpg)
39Vergleich B-Baum mit B*-Baum
B-Baum
B*-Baum
S
S S
…
Indexteil mit Datensätzen
Indexteil mit Schlüsseln
(Wegweisern)
Blattknoten mit Datensätzen
S
![Page 40: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/40.jpg)
40
Blattknoten sind als geclusterte Liste in auf- und in absteigender Reihenfolge verkettet, um die sortierte sequenzielle Verarbeitung der Datensätze zu beschleunigen.
Da die internen Knoten ausschließlich Wegweiser enthalten, ergibt sich ein höherer Verzweigungsgrad
als beim B-Baum. Geringer Preis: Zusätzliche Speicherung der Wegweiser-
Schlüssel. Typischer Wert für die Höhe eines B*-Baums: Höhe 3-4 bei
105 - 107 Datensätzen.
Vergleich B-Baum mit B*-Baum
![Page 41: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/41.jpg)
41
Prinzip wie beim B-Baum: Suche den Schlüssel des neuen Datensatzes im Baum. Die Suche führt beim B*-Baum immer zu einem Blatt, da
Datensätze nur in Blättern gespeichert sind. Füge neuen Datensatz in das Blatt ein. Falls der Blattknoten überläuft, wird der Knoten gespalten. Beim Spalten eines Knotens wird ein neuer Separator-
Schlüssel bestimmt und in den Vaterknoten eingefügt.
Einfügen eines Datensatzes
![Page 42: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/42.jpg)
42Einfügen eines Datensatzes
„yellow“ „red“20 2010 10
25 45 65 75
„blue“ „yellow“90 9080 80
„brown“ „black“40 4030 30 „red“70 70
„white“ „green“60 6050 50
![Page 43: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/43.jpg)
43
...
... 6050 ...
30
Einfügen eines Datensatzes mit Schlüssel 74:
Einfügen eines Datensatzes
... 2010
25 45 65 75
...
... 40 70
... 9080 ...
... ... 74
![Page 44: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/44.jpg)
44
...
... 6050 ...
30
Einfügen eines Datensatzes mit Schlüssel 51:
Einfügen eines Datensatzes
... 2010
25 45 65 75
...
... 40 70
... 9080 ...
... ... 74
k=2, k*=1
Überlauf
![Page 45: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/45.jpg)
45
... 30
Einfügen eines Datensatzes mit Schlüssel 51:
Einfügen eines Datensatzes
... 2010
25 45 65 75
...
... 40 70
... 9080 ...
... ... 74
k=2, k*=1
... 50 ... 51 ... 60
Neuer Separator:55
Überlauf
![Page 46: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/46.jpg)
46
... 30
Einfügen eines Datensatzes mit Schlüssel 51:
Einfügen eines Datensatzes
... 2010
25 45 65 75
...
... 40 70
... 9080 ...
... ... 74
k=2, k*=1
... 50 ... 51 ... 60
55
![Page 47: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/47.jpg)
47
Beachte: Beim B-Baum wurde unter den Datensätzen des
übergelaufenen Knotens ein Separator-Datensatz ausgewählt und in den Vaterknoten verschoben.
Beim B*-Baum wird ein beliebiger Schlüssel bestimmt, der die Datensätze des übergelaufenen Knotens in zwei Teilmengen teilt.
Der Schlüssel braucht nicht in den Datensätzen des Knotens vorzukommen. Hierdurch hat man beim B*-Baum mehr Freiheiten, die Datensätze eines übergelaufenen Knotens in zwei Teilmengen zu separieren.
Einfügen eines Datensatzes
![Page 48: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/48.jpg)
48Wahl eines Separatorschlüssels:
Einfügen eines Datensatzes
20 21 22 23 24 9019 20 21 22 23 24 90
22
19
Einfügen von „19“, k=3
Aufteilung der Datensätze des übergelaufenen Knotens in zwei möglichst gleich große Teilmengen.
Gleichmäßige Füllgrade der beiden Seiten, so dass weitere Einfügungen nicht direkt wieder zu einem Spalten führen. Bei Gleichverteilung der Schlüssel werden sich jedoch sehr viele Datensätze im rechten Teilbaum ansammeln, so dass dort sehr viele Spaltungen vorkommen werden.
![Page 49: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/49.jpg)
49Wahl eines Separatorschlüssels:
Einfügen eines Datensatzes
Einfügen von „19“, k=3
20 21 22 23 24 90 20 21 22 23 24 90
55
19 19
Zukünftige Einfügungen von Datensätzen sollen möglichst gleichmäßig auf die beiden durch den Separatorschlüssel getrennten Teilbäume verteilt werden. (Die Verfolgung dieses Ziels erfordert Wissen über die Verteilung der Schlüssel in der Datei.)
Vorteil: Auf lange Sicht guter Separatorschlüssel, da der „Schlüsselraum“ in zwei gleich große Teile geteilt wird. Nachteil: Kurzfristige Gefahr des Überlaufens der linken Seite, da diese sehr stark gefüllt ist.
![Page 50: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/50.jpg)
50
Spalten der Wurzel bei B- und B*-Baum: Die Wurzel eines Baums ist der Einstiegspunkt in den Baum. Die
Seitennummer des Wurzelknotens ist daher an verschiedenen Stellen der Datenbasis (bspw. in Katalogen, die die physischen Daten-strukturen verwalten) gespeichert.
Wird beim Spalten der Wurzel eine neue Seite für die Speicherung der neuen Wurzel genommen, dann müsste an allen Stellen der Verweis auf die alte Wurzel-Seite durch die Nummer der neuen Wurzel-Seite ersetzt werden.
Um diesen Aufwand zu sparen, wird über die gesamte Lebensdauer eines B- oder B*-Baums dieselbe Seite zur Speicherung der Wurzel genommen.
D.h.: Beim Anlegen eines neuen Wurzelknotens werden die Einträge der bisherigen Wurzel auf zwei neuen Seiten verteilt, und der neue Wurzelknoten wird auf der bisherigen Wurzel-Seite gespeichert.
Einfügen eines Datensatzes
![Page 51: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/51.jpg)
51Einfügen eines Datensatzes
P123
P401 P532
P123
![Page 52: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/52.jpg)
52
Das Entfernen von Datensätzen beginnt beim B*-Baum immer in einem Blattknoten.
Die Unterlauf-Behandlung und die Strategien für den Ausgleich zwischen Knoten sind ähnlich wie beim B-Baum.
Entfernen von Datensätzen
![Page 53: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/53.jpg)
53Beim B-Baum erfolgt die sequenzielle Verarbeitung der Datensätze in Schlüsselreihenfolge durch eine Inorder-Traversierung des Baums.
Sequenzielle Verarbeitung von Datensätzen
Keine gute Unterstützung der sequenziellen Verarbeitung, da auf innere Knoten und die Wurzel mehrfach zugegriffen wird.
![Page 54: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/54.jpg)
54Sequenzielle Verarbeitung von Datensätzen
S
S S
…
S
Beim B*-Baum erfolgt die sequenzielle Verarbeitung durch Verfolgen der Zeiger in den Blattseiten.
Gute Unterstützung der sequenziellen Verarbeitung, da auf jeden Knoten nur einmal zugegriffen wird.
![Page 55: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/55.jpg)
55 Die Suchzeit ist bei hohen Werten von k bzw. k* nicht
vernachlässigbar. Sprung- und Binärsuche statt sequenzieller Suche nur bei
konstanten Datensatzlängen und überwiegend eindeutigen Schlüsselwerten.
Suchzeit innerhalb eines Knotens
Sprungsuche
Sequenzielle Suche
Binärsuche
m m
4m
2m
teSuchschrit 1log2 −≈ m
m
![Page 56: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/56.jpg)
56Welche Anfragen werden häufig gestellt?
1. Exact Match Queries (EMQ): Zugriffe auf einen Schlüsselwertselect A1,A2,...,An
from R where Ai = c2. Range Queries (RQ): Bereichszugriffeselect A1,A2,...,An
from Rwhere Aic2 and Aic1
Leistungsbetrachtungen B*-Baum
![Page 57: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/57.jpg)
57
Dominanz von Exact Match Queries (EMQ):Niedrige Höhe anstreben hohe Werte für k und ggf. k* und hohe Werte für den Füllgrad ni eines Knotens, k ni 2k bzw. k* ni 2k*
Dominanz von Range Queries (RQ): Bei kleinen Schlüsselintervallen wie EMQ Bei großen Schlüsselintervallen kompakte Speicherung der
Datensätze auf den Blattseiten hohe Werte für deren Füllgrad und ggf. k*
Mix von EMQs und RQs:Es dominiert i.allg. die Bearbeitungszeit für die RQs (besonders bei großen Suchintervallen).
Wie bei RQs ist ein hoher Füllgrad der Blattseiten wichtiger als eine niedrige Höhe des Baums.
Leistungsbetrachtungen B*-BaumHöhe h eines B*-Baums mit N Datenelementen:
)2( 2
log22
log1 112 ≥⎟⎠⎞⎜⎝
⎛+≤≤⎟⎠⎞⎜⎝
⎛+ ∗+∗+ hkNh
kN
kk
![Page 58: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/58.jpg)
58 Füllgrad ist bei jedem Knoten außer Wurzel: > 50%. Ungünstigster Fall: sequenzielles Laden des Baums sortiert
nach auf- oder absteigenden Schlüsseln: = 50%. Mittlerer Füllgrad bei zufälligem Einfügen und Löschen:
= 69% Höhere Belegung lässt sich durch Verzögerung des
Spaltens von Seiten erreichen: Spalten erst, wenn m um den Einfügepunkt gruppierte Knoten
voll sind: m (m+1). Abändern des Einfügealgorithmus mit Inspektion der
Nachbarknoten und Ausgleich der Knotenbelegung. Nachteil: Höhere Einfügekosten, steil ansteigend für m > 3.
Beeinflussung des Füllgrads
![Page 59: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/59.jpg)
59
Vergrößerung von k durch Vergrößerung der Seitengröße. Vergrößerung von k bei unveränderter Seitengröße:
Übergang von B-Baum zu B*-Baum (keine Sätze in den Zwischenknoten).
Einsatz von Verfahren zur Schlüsselkomprimierung.
Beeinflussung des Verzweigungsgrades
![Page 60: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/60.jpg)
60 Zeichenkomprimierung, bspw. durch Entfernen führender
Nullen, abschließender Zwischenräume. Bei B*-Baum: Systematische Konstruktion von
Separatoren / Wegweisern minimaler Länge. Folge:
Variable Schlüssellänge k variabel über Knotenmenge und zeitlich schwankend über
Knoten. Aufspalten von Seiten dann nicht mehr über Zahl der Einträge,
sondern nach der Speicherbelegung.
Möglichkeiten zur Schlüsselkomprimierung
![Page 61: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/61.jpg)
61 Gegeben: Schlüssel eines gespeicherten Satzes, der die
Separatorfunktion wahrnehmen könnte. Idee: Beschränkung auf für diese Funktion signifikanten
Teil: Weglassen des für die Unterscheidung unerheblichen hinteren
Teils. Präfix-B-Bäume Zusätzliche Komprimierung des übriggebliebenen Präfix. Präfix-Suffix-Komprimierung (front and rear compression)
Systematische Wegweiserkonstruktion
![Page 62: 1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion](https://reader035.vdocuments.pub/reader035/viewer/2022062502/570491c81a28ab14218dc516/html5/thumbnails/62.jpg)
62 B-Baum:
Originalpublikation: R. Bayer und E. M. McCreight. Organization and Maintenance of Large Ordered Indexes. Acta Informatica, 1:4. 1972. 290-306.
Überblick: D. Comer: The Ubiquitous B-Tree. ACM Computing Surveys, 11:2, Juni 1979, Seiten 121-137.
B*-Baum: Originalpublikation:
D. E. Knuth: The Art of Programming, Vol. 3, Addison-Wesley, 1973. Zur Terminologie: Bei Knuth
B*-Baum ist ein B-Baum mit garantierter 2 / 3-Auslastung der Knoten B+-Baum ist ein hohler Baum derart wie hier dargestellt. Heutige Datenbankliteratur: B*-Baum = B+-Baum.
Historie und Terminologie