62
1 3.101 Exkurs: Zum Begriff „Zugriffspfade“

1 3.101 Exkurs: Zum Begriff „Zugriffspfade“. 2 Der Begriff des Zugriffspfads ist historisch begründet und geht davon aus, dass jede logische Kollektion

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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