Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Bäume Kernidee: Speicherung von Daten in einer Baumstruktur Grundtechnik in nahezu allen DB-Systemen Elemente = Wurzel, Knoten, Blätter, Kanten Balancierte.

Ähnliche Präsentationen


Präsentation zum Thema: "Bäume Kernidee: Speicherung von Daten in einer Baumstruktur Grundtechnik in nahezu allen DB-Systemen Elemente = Wurzel, Knoten, Blätter, Kanten Balancierte."—  Präsentation transkript:

1 Bäume Kernidee: Speicherung von Daten in einer Baumstruktur Grundtechnik in nahezu allen DB-Systemen Elemente = Wurzel, Knoten, Blätter, Kanten Balancierte (ausgeglichene) Bäume = – alle Pfade von Wurzel zu Blättern gleich lang – Jeder Knoten weist gleich viele Indexeinträge auf

2 B-Baum B steht nicht für Binär-Baum!!!!! Sondern für Balanciert ! Jede Seite außer der Wurzel enthält zwischen m und 2m Daten.

3 Knoten = Speicherblöcke (Seiten) fester Länge jede Seite kann bis zu 2*n Datensätze (Einträge) aufnehmen n heißt Ordnung des B-Baumes jede Seite (außer der Wurzel) enthält stets m Datensätze fester Länge, wobei gilt: n m 2*n jeder Eintrag hat einen Schlüsselteil und einen Datenteil (Datenteil enthält oft nur Zeiger auf den echten Datensatz) die Datensätze innerhalb einer Seite sind aufsteigend nach Primärschlüssel geordnet eine Seite ist entweder Blattseite oder sie hat m+1 Nachfolger alle Blattseiten befinden sich auf derselben Höhe B-Baum - Eigenschaften und Merkmale

4 Suchen nach Schlüssel S: 1.Lese Wurzelseite 2. Suche S in Seite: gefunden: {gib Datensatz aus; fertig!} nicht gefunden: Seite ist Blatt: {Schlüssel nicht in Baum; fertig!} Seite ist kein Blatt: bestimme kleinstes Ki mit S < Ki: {setze Suche in Block pi fort} solches Ki nicht vorhanden: {setze Suche in Block pm+1 fort}

5 Einfügen von Schlüssel S: 1.Suche S in Baum: gefunden: {Fehlermeldung; fertig!} nicht gefunden: {b = Block (Blattseite), in der die Suche nach S abgebrochen wurde} 2. Füge S in b ein: b hat noch Platz: {Einfügen; fertig!} b läuft über: (*) 1. Füge S temporär in b ein. 2. Mittlerer Schlüssel in b ist nun Kn Splitte b in blinks (K1... Kn) und brechts (Kn+2... K2*n). 4. Setze S zu Kn Füge S in Vater von b ein; setze Pointer in Vater von b auf blinks und brechts. Falls Vaterknoten überläuft, setze b := Vaterknoten, dann weiter bei (*). Ggf. wird hierbei ein neuer Wurzelknoten erzeugt (d.h. der B-Baum wächst um eine Stufe).

6 Löschen von Schlüssel S: 1.Suche S in Baum: nicht gefunden: {Fehlermeldung; fertig!} gefunden: {b ist der Block, in dem S gefunden wurde} 2. Lösche S in b: b ist Blatt: b hat nach Löschung noch mind. n Einträge: {fertig!} b hat weniger als n Einträge: { Unterlaufbehandlung; fertig!} b ist kein Blatt: 1. Ersetze S in b durch größtes (kleinstes) Blattelement ( Blatt b') im linken (rechten) Teilbaum von S; 2. Führe ggf. Unterlaufbehandlung für b' durch; fertig!}

7 Unterlaufbehandlung: {b ist der Unterlauf-Knoten} b hat einen linken (rechten) Bruder mit genau n Einträgen: { Zusammenfassen; ggf. Unterlaufbehandlung für Vaterknoten; fertig!} [Anmerkung: Gilt sowohl für Blatt als auch Nicht-Blatt] sonst: b ist Blatt: {führe kleine Rotation über Vaterknoten nach rechts (links) aus; fertig!} b ist kein Blatt: {führe große Rotation über Vaterknoten mit linkem (rechtem) Bruder-Teilbaum von b aus; fertig!} [Anmerkung: Ausgleich durch Umhängen eines ganzen Teilbaumes]


Herunterladen ppt "Bäume Kernidee: Speicherung von Daten in einer Baumstruktur Grundtechnik in nahezu allen DB-Systemen Elemente = Wurzel, Knoten, Blätter, Kanten Balancierte."

Ähnliche Präsentationen


Google-Anzeigen