B / B* - Bäume

Werbung
B / B* - Bäume
Guido Hildebrandt
Seminar Datenbanksysteme
25.11.2010
Gliederung
●
Einleitung
●
Binärbaum
●
B - Baum
●
B* - Baum
●
Varianten
●
Zusammenfassung
●
Quellen
Gliederung
●
Einleitung
●
Binärbaum
●
B - Baum
●
B* - Baum
●
Varianten
●
Zusammenfassung
●
Quellen
Einleitung
●
●
Datenmengen immer komplexer
große Datenmengen nicht komplett im
Hauptspeicher haltbar
→ Organisation in mehrstufigen Speichern
mittels Mehrwegbäumen
●
Ziel : möglichst viele Kinder pro Knoten
Einleitung
Gliederung
●
Einleitung
●
Binärbaum
●
B - Baum
●
B* - Baum
●
Varianten
●
Zusammenfassung
●
Quellen
Binärbaum
Binärbäume
●
●
Ziele :
–
breite Bäume und geringe Höhe
–
schnelle Grundoperationen
–
Zugriff relativ unabhängig von Anzahl der
Datensätze
Weiterentwicklung B - Baum
Gliederung
●
Einleitung
●
Binärbaum
●
B - Baum
●
B* - Baum
●
Varianten
●
Zusammenfassung
●
Quellen
B - Baum
●
●
●
●
1970 Paper von Bayer und McCreight
Maximale Anzahl an
Sekundärspeicherzugriffen begrenzt
Seitengröße i.d.R. zwischen 2 und 16 KB
Effiziente Ausführung von
Grundoperationen
–
Suchen
–
Einfügen
–
Löschen
B - Baum
●
Def. : B - Baum vom Typ k
–
(1) Jeder Pfad von der Wurzel zu einem
Blatt hat die gleiche Länge.
–
(2) Jeder Knoten, außer der Wurzel und
den Blättern hat mind. k+1 Söhne. Die
Wurzel ist Blatt, oder hat mind. 2 Söhne.
–
(3) Jeder Knoten hat max. 2k+1 Söhne.
–
(4) Jedes Blatt, außer die Wurzel, hat
mind. k und max. 2k Einträge.
B - Baum
●
Knotenaufbau
●
b = Anzahl Schlüssel
●
Ki (Schlüssel), Di (Daten)
●
L : Größe der Seite
B - Baum
●
Einfügen
–
suche Platz zum Einfügen
–
Seite voll → Split
●
●
neue Seite holen
Aufteilung
B - Baum
B - Baum
●
Löschen
–
suche Schlüssel
–
Problem falls Anzahl Schlüssel < k
→ Ausgleich
→ Mischen
B – Baum
●
Ausgleich
B - Baum
●
Mischen (Konkatenation)
B – Baum
●
Nachteil
–
Daten/Datenverweise in den inneren
Knoten nicht sinnvoll
→ durch das Einfügen kann die
Baumhöhe steigen
→ längere Zugriffszeiten
Gliederung
●
Einleitung
●
Binärbaum
●
B - Baum
●
B* - Baum
●
Varianten
●
Zusammenfassung
●
Quellen
B* - Baum
●
weiterentwickelte Variante des B – Baums
●
am häufigsten in Praxis verwendet
●
Merkmal : Unterscheidung der Knoten
B* - Baum
●
Def. : B*- Baum vom Typ (k,k*)
–
(1) Jeder Pfad von der Wurzel zu einem
Blatt besitzt die gleiche Länge.
–
(2) Jeder Knoten außer der Wurzel und
den Blättern hat mind. k+1 Söhne, die
Wurzel mind. 2 Söhne, außer sie ist ein
Blatt.
–
(3) Jeder innere Knoten hat max. 2k+1
Söhne.
–
(4) Jeder Blattknoten, außer die Wurzel
als Blatt, hat mind. k* und max. 2k*
Einträge.
B* - Baum
●
Struktur
B* - Baum
●
Innere Knoten
–
dienen nur als Wegweiser
–
bestehen aus (Ki, Pi)
–
Daten nur in Blattknoten (Ki, Di)
→ Indexteil des B* - Baumes
B* - Baum
●
Blattknoten
–
Schlüssel und Daten sortiert
–
doppelte Verkettung der Blätter
→ effektive sequentielle Suche
B* - Baum
●
Eigenschaften
–
weniger Informationen im Index
→ höherer k – Wert als im B – Baum
→ höherer Verzweigungsgrad
→ geringere Höhe
–
Schlüssel im Index ist meist Kopie des
höchsten Schlüssels im linken Teilbaum
B* - Baum
●
Suchen
–
direkte Suche günstiger als im B – Baum
→ geringere Höhe
–
sequentielle Suche auch effektiver
B* - Baum
●
Einfügen
–
Innere Knoten : Split wie B -Baum
–
Blattknoten : max. Schlüssel als
Wegweiser in Vaterknoten (Beispiel)
B* - Baum
●
Löschen
–
Daten nur aus Blatt löschen
–
Wegweiserfunktion bleibt erhalten
–
ggf. Ausgleich der Blätter (Theorie)
–
(Beispiel)
B* - Baum
●
●
Anwendung
–
Dateisysteme (Reiser4, HFS)
–
Indexstrukturen in DBS
Typische Daten
–
Höhe 3 - 4
–
Ordnung k = 100
Gliederung
●
Einleitung
●
Binärbaum
●
B - Baum
●
B* - Baum
●
Varianten
●
Zusammenfassung
●
Quellen
Varianten
●
+
B - Baum
*
●
Präfix B - Baum
●
Virtueller B - Baum
+
B - Baum
●
Analog B* - Baum, aber Knoten 2/3 voll
●
„2 in 3“ aufgeteilt → mind. 66% Auslastung
●
Literatur : B* vs B
+
*
Präfix B - Baum
●
Schlüssel als Strings
→ zuviel Speicherplatz
●
kürzester eindeutiger Präfix
●
Bsp. :
–
Laufen
–
Gehen
–
Rennen
–
Problem : Renner
Virtueller B - Baum
●
Speichermanagement – Schema
●
Virtueller Speicher in Seiten aufgeteilt
→ auf Sekundärspeicher, und bei Bedarf
laden „Demand Paging“
●
●
Wurzel immer im Hauptspeicher
Vorteile : Hoher Geschwindigkeit, oft
genutzte Seiten bleiben im HS,
Speicherschutz
Gliederung
●
Einleitung
●
Binärbaum
●
B - Baum
●
B* - Baum
●
Varianten
●
Zusammenfassung
●
Quellen
Zusammenfassung
●
●
●
Geschwindigkeit wichtiger als Platz
B* - Bäume ideal für eindimensionale
Daten
Problem : mehrdimensionale Daten
–
keine symmetrische Datenstruktur
Gliederung
●
Einleitung
●
Binärbaum
●
B - Baum
●
B* - Baum
●
Varianten
●
Zusammenfassung
●
Quellen
Quellen
●
●
●
●
●
R. Bayer, E. M. McCreight, Organization
and Maintenance of Large Ordered
Indexes, 1970
H. Wedekind, On the Selection of Access
Paths in a Data Base System, 1974
D. Comer, Ubiquitous B-Tree, 1979
T. Härder, E. Rahm, Datenbanksysteme,
Spinger Verlag, 1999
P.C. Lockemann, J.W. Schmidt,
Datenbankhandbuch, Springer Verlag,
1987
Quellen
●
●
●
●
http://wwwlgis.informatik.unikl.de/cms/fileadmin/courses/ss2007/Inform
ationssysteme/addons/mehrwegbaeume.h
alf.pdf
http://zach.in.tuclausthal.de/teaching/info2_06/folien/03_b
aeume_4_4up.pdf
http://dbs.unileipzig.de/skripte/ADS2/PDF2/kap1.pdf
http://www.codeproject.com/KB/vb/Simple
BTree.aspx
Herunterladen