bäume

7
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

Upload: armani

Post on 05-Jan-2016

39 views

Category:

Documents


1 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Bäume

Baumlume

bull Kernidee Speicherung von Daten in einer Baumstruktur

bull Grundtechnik in nahezu allen DB-Systemen

bull Elemente = Wurzel Knoten Blaumltter Kanten

bull Balancierte (ausgeglichene) Baumlume =

ndash alle Pfade von Wurzel zu Blaumlttern gleich langndash Jeder Knoten weist gleich viele Indexeintraumlge auf

B-Baum

B steht nicht fuumlr Binaumlr-Baum Sondern fuumlr Balanciert

bull Jede Seite auszliger der Wurzel enthaumllt zwischen m und 2m Daten

Knoten = Speicherbloumlcke (Seiten) fester Laumlnge

jede Seite kann bis zu 2n Datensaumltze (Eintraumlge) aufnehmen

n heiszligt Ordnung des B-Baumes

jede Seite (auszliger der Wurzel) enthaumllt stets m Datensaumltzefester Laumlnge wobei gilt n le m le 2n

jeder Eintrag hat einen Schluumlsselteil und einen Datenteil(Datenteil enthaumllt oft nur Zeiger auf den bdquoechtenldquo Datensatz)

die Datensaumltze innerhalb einer Seite sind aufsteigend nachPrimaumlrschluumlssel geordnet

eine Seite ist entweder Blattseite oder sie hat m+1 Nachfolger

alle Blattseiten befinden sich auf derselben Houmlhe

B-Baum - Eigenschaften und Merkmale

Suchen nach Schluumlssel S

1 Lese Wurzelseite

2 Suche S in Seite

gefunden gib Datensatz aus fertig

nicht gefunden1048657 Seite ist Blatt Schluumlssel nicht in Baum fertig

1048657 Seite ist kein Blatt

bestimme kleinstes Ki mit S lt Ki1048657 setze Suche in Block pi fort

solches Ki nicht vorhanden1048657 setze Suche in Block pm+1 fort

Einfuumlgen von Schluumlssel S

1 Suche S in Baum

gefunden Fehlermeldung fertig nicht gefunden b = Block (Blattseite) in der die Suche nach S

abgebrochen wurde

2 Fuumlge S in b ein

b hat noch Platz Einfuumlgen fertig b laumluft uumlber ()

1 Fuumlge S temporaumlr in b ein2 bdquoMittlererldquo Schluumlssel in b ist nun Kn+13 Splitte b in blinks (K1 Kn) und brechts (Kn+2 K2n)4 Setze S zu Kn+15 Fuumlge S in Vater von b ein setze Pointer in Vater von b aufblinks und brechtsFalls Vaterknoten uumlberlaumluft setze b = Vaterknoten dannweiter bei () Ggf wird hierbei ein neuer Wurzelknoten erzeugt(dh der B-Baum waumlchst um eine Stufe)

Loumlschen von Schluumlssel S1 Suche S in Baum

nicht gefunden Fehlermeldung fertig gefunden b ist der Block in dem S gefunden wurde

2 Loumlsche S in b

b ist Blatt

1048657 b hat nach Loumlschung noch mind n Eintraumlge fertig1048657 b hat weniger als n Eintraumlge rArr Unterlaufbehandlung fertig

b ist kein Blatt

1 Ersetze S in b durch groumlszligtes (kleinstes) Blattelement( Blatt b) im linken (rechten) Teilbaum von SrArr2 Fuumlhre ggf Unterlaufbehandlung fuumlr b durch fertig

Unterlaufbehandlung b ist der Unterlauf-Knoten

b hat einen linken (rechten) Bruder mit genau n Eintraumlgen rArr Zusammenfassen ggf Unterlaufbehandlung fuumlrVaterknoten fertig[Anmerkung Gilt sowohl fuumlr Blatt als auch Nicht-Blatt]

sonst

1048657 b ist Blatt fuumlhre bdquokleineldquo Rotation uumlber Vaterknoten nachrechts (links) aus fertig

1048657 b ist kein Blattfuumlhre bdquogroszligeldquo Rotation uumlber Vaterknoten mit linkem (rechtem)Bruder-Teilbaum von b aus fertig[Anmerkung Ausgleich durch Umhaumlngen eines ganzen Teilbaumes]

  • Baumlume
  • B-Baum
  • B-Baum - Eigenschaften und Merkmale
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
Page 2: Bäume

B-Baum

B steht nicht fuumlr Binaumlr-Baum Sondern fuumlr Balanciert

bull Jede Seite auszliger der Wurzel enthaumllt zwischen m und 2m Daten

Knoten = Speicherbloumlcke (Seiten) fester Laumlnge

jede Seite kann bis zu 2n Datensaumltze (Eintraumlge) aufnehmen

n heiszligt Ordnung des B-Baumes

jede Seite (auszliger der Wurzel) enthaumllt stets m Datensaumltzefester Laumlnge wobei gilt n le m le 2n

jeder Eintrag hat einen Schluumlsselteil und einen Datenteil(Datenteil enthaumllt oft nur Zeiger auf den bdquoechtenldquo Datensatz)

die Datensaumltze innerhalb einer Seite sind aufsteigend nachPrimaumlrschluumlssel geordnet

eine Seite ist entweder Blattseite oder sie hat m+1 Nachfolger

alle Blattseiten befinden sich auf derselben Houmlhe

B-Baum - Eigenschaften und Merkmale

Suchen nach Schluumlssel S

1 Lese Wurzelseite

2 Suche S in Seite

gefunden gib Datensatz aus fertig

nicht gefunden1048657 Seite ist Blatt Schluumlssel nicht in Baum fertig

1048657 Seite ist kein Blatt

bestimme kleinstes Ki mit S lt Ki1048657 setze Suche in Block pi fort

solches Ki nicht vorhanden1048657 setze Suche in Block pm+1 fort

Einfuumlgen von Schluumlssel S

1 Suche S in Baum

gefunden Fehlermeldung fertig nicht gefunden b = Block (Blattseite) in der die Suche nach S

abgebrochen wurde

2 Fuumlge S in b ein

b hat noch Platz Einfuumlgen fertig b laumluft uumlber ()

1 Fuumlge S temporaumlr in b ein2 bdquoMittlererldquo Schluumlssel in b ist nun Kn+13 Splitte b in blinks (K1 Kn) und brechts (Kn+2 K2n)4 Setze S zu Kn+15 Fuumlge S in Vater von b ein setze Pointer in Vater von b aufblinks und brechtsFalls Vaterknoten uumlberlaumluft setze b = Vaterknoten dannweiter bei () Ggf wird hierbei ein neuer Wurzelknoten erzeugt(dh der B-Baum waumlchst um eine Stufe)

Loumlschen von Schluumlssel S1 Suche S in Baum

nicht gefunden Fehlermeldung fertig gefunden b ist der Block in dem S gefunden wurde

2 Loumlsche S in b

b ist Blatt

1048657 b hat nach Loumlschung noch mind n Eintraumlge fertig1048657 b hat weniger als n Eintraumlge rArr Unterlaufbehandlung fertig

b ist kein Blatt

1 Ersetze S in b durch groumlszligtes (kleinstes) Blattelement( Blatt b) im linken (rechten) Teilbaum von SrArr2 Fuumlhre ggf Unterlaufbehandlung fuumlr b durch fertig

Unterlaufbehandlung b ist der Unterlauf-Knoten

b hat einen linken (rechten) Bruder mit genau n Eintraumlgen rArr Zusammenfassen ggf Unterlaufbehandlung fuumlrVaterknoten fertig[Anmerkung Gilt sowohl fuumlr Blatt als auch Nicht-Blatt]

sonst

1048657 b ist Blatt fuumlhre bdquokleineldquo Rotation uumlber Vaterknoten nachrechts (links) aus fertig

1048657 b ist kein Blattfuumlhre bdquogroszligeldquo Rotation uumlber Vaterknoten mit linkem (rechtem)Bruder-Teilbaum von b aus fertig[Anmerkung Ausgleich durch Umhaumlngen eines ganzen Teilbaumes]

  • Baumlume
  • B-Baum
  • B-Baum - Eigenschaften und Merkmale
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
Page 3: Bäume

Knoten = Speicherbloumlcke (Seiten) fester Laumlnge

jede Seite kann bis zu 2n Datensaumltze (Eintraumlge) aufnehmen

n heiszligt Ordnung des B-Baumes

jede Seite (auszliger der Wurzel) enthaumllt stets m Datensaumltzefester Laumlnge wobei gilt n le m le 2n

jeder Eintrag hat einen Schluumlsselteil und einen Datenteil(Datenteil enthaumllt oft nur Zeiger auf den bdquoechtenldquo Datensatz)

die Datensaumltze innerhalb einer Seite sind aufsteigend nachPrimaumlrschluumlssel geordnet

eine Seite ist entweder Blattseite oder sie hat m+1 Nachfolger

alle Blattseiten befinden sich auf derselben Houmlhe

B-Baum - Eigenschaften und Merkmale

Suchen nach Schluumlssel S

1 Lese Wurzelseite

2 Suche S in Seite

gefunden gib Datensatz aus fertig

nicht gefunden1048657 Seite ist Blatt Schluumlssel nicht in Baum fertig

1048657 Seite ist kein Blatt

bestimme kleinstes Ki mit S lt Ki1048657 setze Suche in Block pi fort

solches Ki nicht vorhanden1048657 setze Suche in Block pm+1 fort

Einfuumlgen von Schluumlssel S

1 Suche S in Baum

gefunden Fehlermeldung fertig nicht gefunden b = Block (Blattseite) in der die Suche nach S

abgebrochen wurde

2 Fuumlge S in b ein

b hat noch Platz Einfuumlgen fertig b laumluft uumlber ()

1 Fuumlge S temporaumlr in b ein2 bdquoMittlererldquo Schluumlssel in b ist nun Kn+13 Splitte b in blinks (K1 Kn) und brechts (Kn+2 K2n)4 Setze S zu Kn+15 Fuumlge S in Vater von b ein setze Pointer in Vater von b aufblinks und brechtsFalls Vaterknoten uumlberlaumluft setze b = Vaterknoten dannweiter bei () Ggf wird hierbei ein neuer Wurzelknoten erzeugt(dh der B-Baum waumlchst um eine Stufe)

Loumlschen von Schluumlssel S1 Suche S in Baum

nicht gefunden Fehlermeldung fertig gefunden b ist der Block in dem S gefunden wurde

2 Loumlsche S in b

b ist Blatt

1048657 b hat nach Loumlschung noch mind n Eintraumlge fertig1048657 b hat weniger als n Eintraumlge rArr Unterlaufbehandlung fertig

b ist kein Blatt

1 Ersetze S in b durch groumlszligtes (kleinstes) Blattelement( Blatt b) im linken (rechten) Teilbaum von SrArr2 Fuumlhre ggf Unterlaufbehandlung fuumlr b durch fertig

Unterlaufbehandlung b ist der Unterlauf-Knoten

b hat einen linken (rechten) Bruder mit genau n Eintraumlgen rArr Zusammenfassen ggf Unterlaufbehandlung fuumlrVaterknoten fertig[Anmerkung Gilt sowohl fuumlr Blatt als auch Nicht-Blatt]

sonst

1048657 b ist Blatt fuumlhre bdquokleineldquo Rotation uumlber Vaterknoten nachrechts (links) aus fertig

1048657 b ist kein Blattfuumlhre bdquogroszligeldquo Rotation uumlber Vaterknoten mit linkem (rechtem)Bruder-Teilbaum von b aus fertig[Anmerkung Ausgleich durch Umhaumlngen eines ganzen Teilbaumes]

  • Baumlume
  • B-Baum
  • B-Baum - Eigenschaften und Merkmale
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
Page 4: Bäume

Suchen nach Schluumlssel S

1 Lese Wurzelseite

2 Suche S in Seite

gefunden gib Datensatz aus fertig

nicht gefunden1048657 Seite ist Blatt Schluumlssel nicht in Baum fertig

1048657 Seite ist kein Blatt

bestimme kleinstes Ki mit S lt Ki1048657 setze Suche in Block pi fort

solches Ki nicht vorhanden1048657 setze Suche in Block pm+1 fort

Einfuumlgen von Schluumlssel S

1 Suche S in Baum

gefunden Fehlermeldung fertig nicht gefunden b = Block (Blattseite) in der die Suche nach S

abgebrochen wurde

2 Fuumlge S in b ein

b hat noch Platz Einfuumlgen fertig b laumluft uumlber ()

1 Fuumlge S temporaumlr in b ein2 bdquoMittlererldquo Schluumlssel in b ist nun Kn+13 Splitte b in blinks (K1 Kn) und brechts (Kn+2 K2n)4 Setze S zu Kn+15 Fuumlge S in Vater von b ein setze Pointer in Vater von b aufblinks und brechtsFalls Vaterknoten uumlberlaumluft setze b = Vaterknoten dannweiter bei () Ggf wird hierbei ein neuer Wurzelknoten erzeugt(dh der B-Baum waumlchst um eine Stufe)

Loumlschen von Schluumlssel S1 Suche S in Baum

nicht gefunden Fehlermeldung fertig gefunden b ist der Block in dem S gefunden wurde

2 Loumlsche S in b

b ist Blatt

1048657 b hat nach Loumlschung noch mind n Eintraumlge fertig1048657 b hat weniger als n Eintraumlge rArr Unterlaufbehandlung fertig

b ist kein Blatt

1 Ersetze S in b durch groumlszligtes (kleinstes) Blattelement( Blatt b) im linken (rechten) Teilbaum von SrArr2 Fuumlhre ggf Unterlaufbehandlung fuumlr b durch fertig

Unterlaufbehandlung b ist der Unterlauf-Knoten

b hat einen linken (rechten) Bruder mit genau n Eintraumlgen rArr Zusammenfassen ggf Unterlaufbehandlung fuumlrVaterknoten fertig[Anmerkung Gilt sowohl fuumlr Blatt als auch Nicht-Blatt]

sonst

1048657 b ist Blatt fuumlhre bdquokleineldquo Rotation uumlber Vaterknoten nachrechts (links) aus fertig

1048657 b ist kein Blattfuumlhre bdquogroszligeldquo Rotation uumlber Vaterknoten mit linkem (rechtem)Bruder-Teilbaum von b aus fertig[Anmerkung Ausgleich durch Umhaumlngen eines ganzen Teilbaumes]

  • Baumlume
  • B-Baum
  • B-Baum - Eigenschaften und Merkmale
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
Page 5: Bäume

Einfuumlgen von Schluumlssel S

1 Suche S in Baum

gefunden Fehlermeldung fertig nicht gefunden b = Block (Blattseite) in der die Suche nach S

abgebrochen wurde

2 Fuumlge S in b ein

b hat noch Platz Einfuumlgen fertig b laumluft uumlber ()

1 Fuumlge S temporaumlr in b ein2 bdquoMittlererldquo Schluumlssel in b ist nun Kn+13 Splitte b in blinks (K1 Kn) und brechts (Kn+2 K2n)4 Setze S zu Kn+15 Fuumlge S in Vater von b ein setze Pointer in Vater von b aufblinks und brechtsFalls Vaterknoten uumlberlaumluft setze b = Vaterknoten dannweiter bei () Ggf wird hierbei ein neuer Wurzelknoten erzeugt(dh der B-Baum waumlchst um eine Stufe)

Loumlschen von Schluumlssel S1 Suche S in Baum

nicht gefunden Fehlermeldung fertig gefunden b ist der Block in dem S gefunden wurde

2 Loumlsche S in b

b ist Blatt

1048657 b hat nach Loumlschung noch mind n Eintraumlge fertig1048657 b hat weniger als n Eintraumlge rArr Unterlaufbehandlung fertig

b ist kein Blatt

1 Ersetze S in b durch groumlszligtes (kleinstes) Blattelement( Blatt b) im linken (rechten) Teilbaum von SrArr2 Fuumlhre ggf Unterlaufbehandlung fuumlr b durch fertig

Unterlaufbehandlung b ist der Unterlauf-Knoten

b hat einen linken (rechten) Bruder mit genau n Eintraumlgen rArr Zusammenfassen ggf Unterlaufbehandlung fuumlrVaterknoten fertig[Anmerkung Gilt sowohl fuumlr Blatt als auch Nicht-Blatt]

sonst

1048657 b ist Blatt fuumlhre bdquokleineldquo Rotation uumlber Vaterknoten nachrechts (links) aus fertig

1048657 b ist kein Blattfuumlhre bdquogroszligeldquo Rotation uumlber Vaterknoten mit linkem (rechtem)Bruder-Teilbaum von b aus fertig[Anmerkung Ausgleich durch Umhaumlngen eines ganzen Teilbaumes]

  • Baumlume
  • B-Baum
  • B-Baum - Eigenschaften und Merkmale
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
Page 6: Bäume

Loumlschen von Schluumlssel S1 Suche S in Baum

nicht gefunden Fehlermeldung fertig gefunden b ist der Block in dem S gefunden wurde

2 Loumlsche S in b

b ist Blatt

1048657 b hat nach Loumlschung noch mind n Eintraumlge fertig1048657 b hat weniger als n Eintraumlge rArr Unterlaufbehandlung fertig

b ist kein Blatt

1 Ersetze S in b durch groumlszligtes (kleinstes) Blattelement( Blatt b) im linken (rechten) Teilbaum von SrArr2 Fuumlhre ggf Unterlaufbehandlung fuumlr b durch fertig

Unterlaufbehandlung b ist der Unterlauf-Knoten

b hat einen linken (rechten) Bruder mit genau n Eintraumlgen rArr Zusammenfassen ggf Unterlaufbehandlung fuumlrVaterknoten fertig[Anmerkung Gilt sowohl fuumlr Blatt als auch Nicht-Blatt]

sonst

1048657 b ist Blatt fuumlhre bdquokleineldquo Rotation uumlber Vaterknoten nachrechts (links) aus fertig

1048657 b ist kein Blattfuumlhre bdquogroszligeldquo Rotation uumlber Vaterknoten mit linkem (rechtem)Bruder-Teilbaum von b aus fertig[Anmerkung Ausgleich durch Umhaumlngen eines ganzen Teilbaumes]

  • Baumlume
  • B-Baum
  • B-Baum - Eigenschaften und Merkmale
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7
Page 7: Bäume

Unterlaufbehandlung b ist der Unterlauf-Knoten

b hat einen linken (rechten) Bruder mit genau n Eintraumlgen rArr Zusammenfassen ggf Unterlaufbehandlung fuumlrVaterknoten fertig[Anmerkung Gilt sowohl fuumlr Blatt als auch Nicht-Blatt]

sonst

1048657 b ist Blatt fuumlhre bdquokleineldquo Rotation uumlber Vaterknoten nachrechts (links) aus fertig

1048657 b ist kein Blattfuumlhre bdquogroszligeldquo Rotation uumlber Vaterknoten mit linkem (rechtem)Bruder-Teilbaum von b aus fertig[Anmerkung Ausgleich durch Umhaumlngen eines ganzen Teilbaumes]

  • Baumlume
  • B-Baum
  • B-Baum - Eigenschaften und Merkmale
  • Folie 4
  • Folie 5
  • Folie 6
  • Folie 7