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