![Page 1: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/1.jpg)
1 Petra Mutzel DAP2 SS09
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis
Professor Dr. Petra Mutzel
Lehrstuhl für Algorithm Engineering, LS11
Fakultät für Informatik, TU Dortmund
13./14. VO DAP2 SS 2009 2./4. Juni 2009
1
![Page 2: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/2.jpg)
2 Petra Mutzel DAP2 SS09
2. Übungstest
• Termin: Di 16. Juni 2009 im AudiMax, Beginn: 12:15 Uhr (bitte um 12:00 Uhr anwesend sein)
• Dauer: 30 Minuten
• Stoff: aus VO-Folien, Skript und Übungen bis inkl. B-Bäume (schwerpunktmäßig ab Heap-Sort inkl.)
• Dann ab ca. 12:50 Uhr: Vorlesung bis 13:45 Uhr
![Page 3: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/3.jpg)
3 Petra Mutzel DAP2 SS09
Motivation
„Was ist daran Besonderes?“
„Warum soll ich heute hier bleiben?“
praxis-relevant für Datenbanken
Mal ganz andere Suchbäume
![Page 4: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/4.jpg)
4 Petra Mutzel DAP2 SS09
Überblick
• Eigenschaften von B-Bäumen
• Realisierung und Analyse
• Einführung von B-Bäumen
• Varianten von B-Bäumen
![Page 5: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/5.jpg)
5 Petra Mutzel DAP2 SS09
B-Bäume
• Einführung von Rudolf Bayer und Eduard M. McCreight 1972
• Datenstruktur zur Verwaltung von Indizes für das relationale Datenmodell von Edgar F. Codd 1972
• → Entwicklung des ersten SQL-Datenbanksystems System R bei IBM
• B-Bäume sind ausgeglichene Mehrwegbäume • Idee: jeder Knoten eines B-Baums der Ordnung m
besitzt zwischen ⌈m/2⌉ und m Kinder.
![Page 6: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/6.jpg)
6 Petra Mutzel DAP2 SS09
Motivation für B-Bäume • Minimierung von externen Speicherzugriffen (Festplatten) • Man wählt i.A. die Ordnung m gerade so gross, dass jeweils
alle Schlüssel eines B-Knotens genau einer page (Blockgröße bei einem Lesezugriff) entsprechen
• typische Größen, z.B. m=100 oder m=5000 • Beispiel:
• 1 Mio. Datensätze, m=100: Höhe eines B-Baumes: 2 • also nur 2 Speicherzugriffe (bei Wurzel im
Hauptspeicher) • im Vergleich hierzu Binärbäume: Höhe: 20
![Page 7: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/7.jpg)
Worst Case Analyse von BinarySearch B-Bäume • Ein Knoten mit k+1 Zeigern c0,c1,…,ck auf die
Unterbäume besitzt k Schlüssel s1,…,sk
• Diese sind in sortierter Reihenfolge gespeichert und trennen die jeweiligen Unterbäume.
c0 c1 c2
s1 s2
![Page 8: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/8.jpg)
Worst Case Analyse von BinarySearch Definition B-Bäume
(1) Kein Schlüsselwert kommt mehrfach vor (2) Für jeden Knoten α mit k+1 Zeigern c0,c1,…,ck
auf Unterbäume gilt: a) α hat k Schlüssel s1,…,sk, wobei gilt: s1<…<sk
b) Für jeden Schlüssel s im Teilbaum mit Wurzel ci gilt: si < s < si+1, wobei s0=-∞ und sk+1=+∞
c) Ein Schlüssel si wird als Trennschlüssel der Teilbäume mit Wurzel ci-1 und ci bezeichnet.
• Ein B-Baum der Ordnung m>2 ist ein Baum mit folgenden Eigenschaften (1)-(6):
jeder Schlüssel entweder in Blatt oder Trennschlüssel
![Page 9: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/9.jpg)
Worst Case Analyse von BinarySearch Definition B-Bäume ff (3) Der Baum ist leer, oder die Wurzel hat
mindestens 2 Zeiger auf Kinder. (4) Jeder Knoten mit Ausnahme der Wurzel enthält
mindestens ⌈m/2⌉ Zeiger. (5) Jeder Knoten hat höchstens m Zeiger. (6) Alle Blätter haben die gleiche Tiefe.
c0 c1 c2
s1 s2 m=4
![Page 10: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/10.jpg)
10 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Existenz von B-Bäumen
Theorem: Für jede beliebige Menge von Schlüsseln und jedes beliebige m>2 existiert ein gültiger B-Baum der Ordnung m.
Beweisidee: Besteht die Schlüsselmenge aus weniger als m Schlüsseln, dann besteht der B-Baum einfach aus einem einzigen Wurzelknoten, der alle Schlüssel enthält.
Sonst: benutze folgendes Lemma.
![Page 11: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/11.jpg)
Worst Case Analyse von BinarySearch Beweisidee der Existenz von B-Bäumen
Lemma: Gegeben sei eine Menge M aus n Schlüsseln und m≥3 mit n≥m. Wir setzen l:=⌊n/m⌋.
Wir könnenlTrennschlüssel aus Mso auswählen, dass die übrigen Schlüssel inl+1 TeilmengenS0,…,Slzerfallen, die jeweils eine gültige Befüllung eines Knotens in einem B-Baum der Ordnungmdarstellen.
Durchschnittliche Größe einer Teilmenge: (n+1)/(l+1)-1 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
n=33 m=4 l=8
Weiter mit Beweis zu Theorem: Diese l+1 Teilmengen Si bilden die Blätter unseres B-Baums. Wiederhole diese Aufteilung rekursiv für die Trennschlüssel.
![Page 12: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/12.jpg)
12 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Größe von B-Bäumen Lemma: Die Größe eines B-Baums ist linear in n,
der Anzahl der Schlüssel.
Beweis: • Jeder Schlüssel kommt im Baum vor, deshalb: Größe ist
in Ω(n). • Sei t die Anzahl der Knoten im Baum. Da jeder Knoten
mindestens einen Schlüssel enthält, gilt t=O(n). • Da in jedem Knoten mit k Schlüsseln gilt, dass er k+1
Zeiger enthält, haben wir insgesamt n+t=O(n) viele Zeiger.
• Also gezeigt: Ω(n) und O(n).
![Page 13: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/13.jpg)
13 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Minimale Höhe von B-Bäumen Lemma: Die minimale Höhe eines B-Baums
mit n Schlüsseln ist ⌈log m(n+1)⌉ - 1
Beweis: Ein B-Baum hat die kleinste Höhe, wenn alle Knoten m-1 Schlüssel enthalten.
Bei Höhe h des Baums enthält er dann mh Blätter. Ein B-Baum mit l+1 Blättern hat l Schlüssel in inneren
Knoten. Insgesamt: n = mh(m-1) + (mh-1) = mh+1 -1
Schlüssel in Blättern Schlüssel in
inneren Knoten
![Page 14: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/14.jpg)
Worst Case Analyse von BinarySearch Maximale Höhe von B-Bäumen Lemma: Die maximale Höhe eines B-Baums
mit n Schlüsseln ist ⌊log ⌈m/2⌉((n+1)/2)⌋
Beweis: Ein B-Baum hat die größte Höhe, wenn die Wurzel nur einen einzigen Schlüssel enthält und die beiden Teilbäume und deren Teilbäume (rekursiv) jeweils nur ⌈m/2⌉-1 Schlüssel.
Insgesamt bei Höhe h: n = 1 + 2(⌈m/2⌉h -1) = 2 ⌈m/2⌉h -1 linker Teilbaum: ⌈m/2⌉h-1
Schlüssel in Blättern
![Page 15: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/15.jpg)
15 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Datenstruktur eines B-Baums
Interne Repräsentation eines B-Baums: BTreeNode root
struct BTreeNode int k // Anzahl der Schlüssel KeyType key[1..k] DataType data[1..k] BTreeNode child[0..k]
![Page 16: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/16.jpg)
16 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Implementierung von SEARCH(r,s) in B-Bäumen
1. Vergleiche s mit allen Schlüsseln in der Wurzel (des Teilbaums)
2. Falls gefunden: STOP! 3. Sonst: Folge dem Zeiger, der sich zwischen
den beiden im Wurzelknoten benachbarten Schlüsseln befindet. Gehe zu 1.
4. Ausgabe: nicht gefunden!
Im Wesentlichen wie im Binärbaum:
![Page 17: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/17.jpg)
17 Petra Mutzel DAP2 SS09
SEARCH(p,s)
(1) If p==NULL then return NULL (2) else { (3) i:=1 (4) while i≤p.k and s>p.key[i] do (5) i:=i+1 (6) if i≤p.k and s==p.key[i] then (7) return p.data[i] (8) else return SEARCH(p.child[i-1],s) (9) }
Suche in Baum mit Wurzel p den Schlüssel s
![Page 18: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/18.jpg)
18 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Analyse von SEARCH(r,s)
• In Implementierung: lineare Suche • besser: binäre Suche • Aber asymptotisch: beide Male Suche
innerhalb eines Knotens konstant (wegen m konstant)
• Insgesamt: Laufzeit: O(Höhe von B)
![Page 19: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/19.jpg)
19 Petra Mutzel DAP2 SS09
Einfügen eines Schlüssels in einen B-Baum
• Baum vor dem Einfügen von 10, m=3
![Page 20: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/20.jpg)
20 Petra Mutzel DAP2 SS09
Einfügen in B-Baum
Blatt wird zu groß: hat nun 3 Schlüssel!
![Page 21: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/21.jpg)
21 Petra Mutzel DAP2 SS09
Einfügen in B-Baum nicht erlaubt:
![Page 22: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/22.jpg)
22 Petra Mutzel DAP2 SS09
Einfügen in B-Baum
Blatt wird zu groß: hat nun 3 Schlüssel!
![Page 23: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/23.jpg)
23 Petra Mutzel DAP2 SS09
Aufspalten: mittlerer Schlüssel geht in den Elternknoten
Elternknoten wird zu groß:
Einfügen in B-Baum
![Page 24: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/24.jpg)
Aufspalten der Wurzel → neue Wurzel
B-Bäume wachsen „nach oben“
Einfügen in B-Baum
![Page 25: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/25.jpg)
Einfügen von 10
![Page 26: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/26.jpg)
26 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Implementierung von INSERT(r,s) in B-Bäumen
1. Einfügeposition suchen: SEARCH(r,s) 2. Einfügen in Blatt 3. Wiederhole
• Falls dieser Knoten zu viele Schlüssel enthält, dann Aufspalten: der mittlere Schlüssel wird zum Elterknoten verschoben.
bis Knoten nicht mehr zu groß. 4. Falls wir die Wurzel aufspalten mußten, setze:
neue Wurzel.
![Page 27: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/27.jpg)
27 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Analyse von INSERT(r,s)
Laufzeit: O(Höhe des Baums)=Θ(log n)
![Page 28: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/28.jpg)
28 Petra Mutzel DAP2 SS09
Entfernen in B-Bäumen • B-Baum der Ordnung 5 • Baum vor dem Entfernen von 33
Idee: überschreiben mit einem Schlüssel aus dem Blatt:
31
Problem: zu wenig Schlüssel
![Page 29: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/29.jpg)
29 Petra Mutzel DAP2 SS09
Entfernen in B-Bäumen
• Entfernen von 33
Lösung: Rotation
Problem: zu wenig Schlüssel
![Page 30: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/30.jpg)
30 Petra Mutzel DAP2 SS09
• B-Baum nach der Rotation
Entfernen in B-Bäumen
Lösung: Rotation Problem: zu wenig Schlüssel
![Page 31: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/31.jpg)
31 Petra Mutzel DAP2 SS09
Lösung: Rotation
Problem: zu wenig Schlüssel nach Entfernen von 3331
![Page 32: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/32.jpg)
Rotation
![Page 33: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/33.jpg)
35 Petra Mutzel DAP2 SS09
Entfernen in B-Bäumen
• Entfernen von 7 Beispiel 2:
![Page 34: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/34.jpg)
36 Petra Mutzel DAP2 SS09
• Entfernen von 7
Entfernen in B-Bäumen Problem: zu wenig Schlüssel
Rotation nicht möglich Lösung: Verschmelzen
![Page 35: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/35.jpg)
37 Petra Mutzel DAP2 SS09
Entfernen in B-Bäumen
• Entfernen von 7 Problem: wieder zu wenig Schlüssel
Lösung: Verschmelzen
![Page 36: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/36.jpg)
38 Petra Mutzel DAP2 SS09
• Entfernen von 7
Entfernen in B-Bäumen
B-Bäume schrumpfen „von oben“
![Page 37: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/37.jpg)
39 Petra Mutzel DAP2 SS09
Verschmelzen
![Page 38: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/38.jpg)
Worst Case Analyse von BinarySearch Entfernen in B-Bäumen (1) Den zu entfernenden Schlüssel s suchen (2) Falls s in einem Blatt ist: einfach entfernen (3) Sonst: Suche direkten Vorgänger (dieser ist Blatt),
überschreibe s mit dessen Schlüssel und entferne das Blatt.
(4) Falls dieses Blatt β nun zu wenige Schlüssel besitzt, dann entweder (5) oder (6)
(5) Reparatur A: Rotation: Falls ein Geschwisterblatt von β genug Schlüssel enthält, dann wird ein Schlüssel daraus verwendet um die Größe von β wiederherzustellen.
(6) Reparatur B: Verschmelzen: Sei γ ein Geschwisterblatt von β. Wir verschmelzen γ, β und ihren Trennschlüssel in einen neuen großen Knoten
(7) Setze die Reparatur rekursiv fort (evtl. nach (6) nötig)
![Page 39: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/39.jpg)
41 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Diskussion zum Entfernen (1) • Warum ist Reparatur B korrekt? • Wir wissen, dass
– β nur ⌈m/2⌉-2 Schlüssel enthält – beide Geschwister (bzw. γ) von β nur ⌈m/2⌉-1
Schlüssel enthalten – damit: der neue Knoten höchstens m-1
Schlüssel besitzt. – Denn: ≤ ⌈m/2⌉-2 + ⌈m/2⌉-1 +1 Schlüssel – Fall: m ungerade: = 2((m+1)/2)-2 = m-1 – Fall: m gerade: = 2(m/2)-2 = m-2
![Page 40: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/40.jpg)
42 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Analyse von Delete(r,s)
Laufzeit: Θ(Höhe des Baums)=Θ(log n)
![Page 41: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/41.jpg)
43 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Diskussion zum Entfernen (2) • Alternative zu Reparatur B wäre eine erweiterte
Rotation:
• Falls ein Geschwister γ´ von einem Geschwisterknoten γ von β genügend Schlüssel besitzen würde, wäre eine doppelte Rotation denkbar: zunächst von γ´ nach γ, danach von γ nach β.
• Also wäre es denkbar solange alle Nachbarn abzusuchen, bis ein Knoten gefunden wird.
• Die Zeit hierfür wäre O(m).
• Aber: Reparatur B ist besser, weil Zeit: O(log n), und in der Praxis log n < m
![Page 42: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/42.jpg)
44 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Varianten zum Einfügen/Entfernen
• Wir durchlaufen für diese Operationen den Baum einmal von oben nach unten, einmal von unten nach oben.
• Es existieren auch Alternativen bei denen beim Einfügen und Entfernen der Baum jeweils nur einmal von oben nach unten durchwandert wird:
• Hierbei werden die besuchten Knoten des Baumes gleich „auf Verdacht“ gespalten (falls sie groß sind) bzw. verschmolzen (falls sie klein sind).
![Page 43: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/43.jpg)
45 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Varianten von B-Bäumen • Alternative Realisierungen garantieren jeweils eine 2/3
Füllung der Knoten.
• oder erweitern den Baum durch Zeiger zwischen den Geschwistern.
• oder akkumulieren „falsche“ Balancierungen auf und reparieren diese später gemeinsam.
• Es gibt immer wieder neue gute Einfälle!
• Auch in der praktischen Umsetzung gibt es immer wieder Neues!
bis heute: aktuelles Forschungsthema
![Page 44: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/44.jpg)
46 Petra Mutzel DAP2 SS09
Spezielle B-Bäume
• 2-3 Baum = B-Baum der Ordnung 3 [Hopcroft ‘70]
• 2-3-4 Baum = B-Baum der Ordnung 4
• Rot-Schwarz-Baum = 2-3-4 Baum in dem große Knoten durch binäre Teilbäume simuliert werden
![Page 45: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/45.jpg)
47 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch B+-Bäume
• Im Wesentlichen B-Bäume bei denen die Datensätze nur in den Blättern stehen.
• Die inneren Knoten enthalten ausschliesslich Schlüssel (und Zeiger) zur Suchsteuerung.
In Literatur auch: „B*-Bäume“
![Page 46: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/46.jpg)
48 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch B+-Bäume • Vorteil: Ein innerer Knoten kann mehr
Schlüssel aufnehmen (da er keine info-Daten speichern muß)
• Dadurch wird Verzweigungsgrad erhöht und die Höhe nimmt ab.
![Page 47: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/47.jpg)
49 Petra Mutzel DAP2 SS09
B+-Baum der Ordnung (m,m+) • Die inneren Knoten besitzen zwischen ⌈m/2⌉-1
und m-1 viele Schlüssel. • In jedem Blatt sind zwischen ⌈m+/2⌉-1 und m+-1
viele Schlüssel-Daten-Paare gespeichert. • Dies führt zu besseren
Externspeicherbedingungen.
![Page 48: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/48.jpg)
50 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Operationen in B+-Bäumen
• Suchen, Einfügen, Entfernen: sehr ähnlich wie in B-Bäumen.
![Page 49: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/49.jpg)
51 Petra Mutzel DAP2 SS09
Worst Case Analyse von BinarySearch Kap. 4.6: Dictionary-
Realisierungen in der Praxis
Quelle: K. Mehlhorn, S. Näher: LEDA: A platform for combinatorial and geometric computing, Cambridge University Press, 1999, S. 127
![Page 50: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/50.jpg)
52 Petra Mutzel DAP2 SS09
Untersuchte Realisierungen
• bin_tree: binäre Suchbäume • rs_tree: zufällige binäre Suchbäume • avl_tree: AVL-Bäume • bb_tree: B-Bäume der Ordnung m=? • ab_tree: 2-3-4 Bäume • rb_tree: rot-schwarz Bäume • skiplist: Skiplisten
bin_tree ∪ heap für zufällige prio-Werte)
Simulationen von 2-3-4 Bäumen auf binären Suchbäumen
![Page 51: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/51.jpg)
Zufällige Eingabefolge
search
ab-tree: 2-3-4 Bäume
Laufzeit nach je 105 Operationen
Integers aus [0..107]
Sek
![Page 52: Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxisls11-€¦ · Petra Mutzel DAP2 SS09 1 Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Petra Mutzel Lehrstuhl](https://reader034.vdocument.in/reader034/viewer/2022050500/5f9354f14f9fcf06a5260e5e/html5/thumbnails/52.jpg)
Sortierte Eingabefolge
BinTree: 2704 für insert, 1354 für search
search
Laufzeit nach je 105 Operationen
Integers: 0,1,2,…
Sek
ab-tree: 2-3-4 Bäume