B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write
|
|
|
- Paul Berger
- vor 9 Jahren
- Abrufe
Transkript
1 B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write Thomas Maier Proseminar: Ein- / Ausgabe Stand der Wissenschaft Seite 1 von 13
2 Gliederung 1. Hashtabelle 3 2.B-Baum Begriffserklärung Motivation Definition Suchen von Daten Einfügen von Daten Löschen von Daten Verschieben von Daten Verschmelzung von Knoten Löschen aus inneren Knoten Aufwand Beispiel(B -Baum) Parallele Operationen auf B-Bäume 9 3. Copy-on-Write 10 4.Shadowing/Cloning Stand der Wissenschaft (BTRFS) Zusammenfassung Quellen 13 Seite 2 von 13
3 Hashtabelle Eine Hashtabelle verwaltet Daten in einer Tabelle. Sie wird verwendet, um große Datenmengen effizient zu verwalten. Die Hashtabelle besitzt eine mathematische Funktion, welche Daten auf einen Integer Wert abbildet. Dieser Wert entspricht dann dem Index eines Arrays, in der diese Datei gespeichert wird. Im Idealfall bildet die Funktion jede Datei auf genau einen Integer Wert ab. In diesem Fall kann eine Datei direkt in eingefügt, gelöscht oder gefunden werden, da der Aufwand 1 ist. Die Problematik einer Hashtabelle liegt jedoch darin, dass relativ schnell mehrere Kollisionen entstehen. Das heißt, dass mehrere Daten auf den gleichen Wert abgebildet werden und somit in den gleichen Index gespeichert werden. Daraus folgt, dass die Tabelle entartet und der Aufwand gegen konvergiert. Beispiel einer Hashtabelle: B-Bäume Der B-Baum (engl. B-tree) ist eine Daten- / Indexstruktur in Form eines vollständig ausbalancierten Baumes, welcher häufig in Datenbanken eingesetzt wird. Der B-Baum wurde 1972 von Rudolf Bayer und Edward M. McCreight entwickelt. Begriffserklärung: Der oberste Knoten eines Baumes wird Wurzel genannt. Die untersten Knoten werden als Blattknoten bezeichnet und alle Knoten zwischen Wurzel und Blattknoten werden innere Knoten genannt. Seite 3 von 13
4 Motivation: Bevor wir zur Definition des B-Baumes kommen, betrachten wir einen binären Baum(siehe Abb. 1), welcher eine große Menge an Daten verwaltet. Der Aufwand eine Datei zu finden liegt bei h. Da es sich hier jedoch um einen binären Baum handelt, wird h bei einer großen Menge von Daten sehr groß. Somit wird der Aufwand bei einer großen Anzahl an Elementen sehr hoch und der Zugriff auf die Datenbank relativ langsam. Abbildung 1 Definition: Der B-Baum hat folgende Eigenschaften: Jeder Knoten hat eine variable Anzahl an Schlüsseln, welche jeweils auf eine Datei verweisen und der Größe nach geordnet sind. Diese Anzahl wird mit der Variable bezeichnet. Des Weiteren gibt es zu jedem Baum einen Parameter, welcher auch als die Ordnung des Baumes bezeichnet wird. Durch diesen Parameter wird beschränkt, denn für jeden Knoten, außer der Wurzel, gilt, dass die Anzahl der Schlüssel zwischen und 2 liegen muss. Für die Wurzel gilt, dass diese mindestens einen und höchstens 2 Schlüssel enthalten darf. Zusätzlich gilt für jeden inneren Knoten, dass er +1 verweise auf Kindsknoten hat. Beispiel eines Knotens: Dieser Knoten hat 3 Schlüssel und 4 verweise auf Kindsknoten( ). B-Bäume sind vollständig ausbalanciert. Das Bedeutet, dass sich jedes Blatt des Baumes auf derselben Höhe befindet. Suchen von Daten: In einem B-Baum soll ein Schlüssel gesucht werden. Die Suche beginnt in der Wurzel. Dort wird der kleinste Schlüssel ermittelt, für den gilt. Nun unterscheidet man in 3 Fälle: 1. Fall ( = ): In diesem Fall wurde der Schlüssel gefunden und wir können die Suche erfolgreich beenden. 2. Fall ( < : In diesem Fall gehen wir in den Unterbaum links von und wiederholen den Schritt im aktuellen Knoten. Seite 4 von 13
5 3. Fall (Es existiert kein solches ): In diesem Fall gehen wir in den Unterbaum ganz rechts und wiederholen den Schritt. Wenn wir uns in einem Blatt befinden und der 2. oder 3. Fall eintritt, endet die Suche erfolglos. Beispiel: Wir betrachten den folgenden Baum und wollen dort den Schlüssel =31 suchen. Wir starten in der Wurzel (Abb. 2, roter Pfeil). Nun suchen wir den kleinsten Schlüssel, welcher größer als 31 ist (Abb. 3, blauer Pfeil). Es tritt der 2. Fall ein und wir wandern in den Unterbaum links von der 32 (Abb. 3, roter Pfeil). Wir befinden uns nun in einem anderen Knoten und wiederholen den Schritt. Es tritt der 3. Fall ein, da sich in diesem Knoten kein Schlüssel befindet, welcher größer als 31 ist. Wir wandern also in den Unterbaum ganz rechts und wiederholen das Ganze erneut. Es trifft nun der erste Fall ein, da sich dort der Schlüssel 31 befindet (Abb. 4, grüner Pfeil). Da wir nun den Schlüssel gefunden haben endet die Suche erfolgreich und wir sind fertig. Abbildung 2 Abbildung 3 Abbildung 4 Seite 5 von 13
6 Einfügen von Daten: Nun wollen wir einen Schlüssel einfügen. Der erste Schritt ist es, den Schlüssel, mit dem oben genannten Algorithmus, zu suchen. Wenn wir den Schlüssel finden, wird das Einfügen abgebrochen, da sich der Schlüssel bereits im Baum befindet. Andernfalls endet die Suche erfolglos in einem Blatt. In diesem Blatt wird der Schlüssel eingefügt. Dabei sind wieder 2 Fälle zu unterscheiden. 1. Fall (das Blatt ist nicht voll, d.h. enthält weniger als 2 Schlüssel): In diesem Fall fügen wir den Schlüssel einfach ein und sind fertig. 2. Fall (das Blatt ist voll): In diesem Fall fügen wir den Knoten ebenfalls ein. Da wir nun aber gegen die Ordnung des Baumes verstoßen, splitten wir den Knoten wie folgt: Wir ziehen den mittleren Schlüssel raus. Dieser bildet mit der linken bzw. rechten Hälfte des Knotens je einen neuen Knoten (Abb. 5). Nun fügen wir den mittleren einelementigen Knoten rekursiv in den Vaterknoten ein. Beispiel: Wir wollen nun im folgendem Baum mit der Ordnung = 1 den Schlüssel = 23 einfügen. Also wird dieser Schlüssel zunächst in dem Baum gesucht. Da dieser Schlüssel noch nicht existiert endet die Suche erfolglos in einem Blatt(Abb. 6, roter Pfeil). Da dieser Knoten voll ist betrachten wir den oben beschriebenen 2. Fall. Wir fügen den Abbildung 5 gewünschten Schlüssel ein (Abb.7) und splitten Abbildung 6 anschließend den Knoten (Abb. 8). Nun wird der mittlere Schlüssel (in unserem Fall = 23) in den Vaterknoten eingefügt (Abb. 9) und wir sind fertig. Abbildung 7 Abbildung 8 Abbildung 9 Seite 6 von 13
7 Löschen von Daten: Das Löschen von Daten aus einem B-Baum ist eine sehr komplexe Operation. Hierbei wird wieder in zwei Fälle unterschieden. Der erste Fall behandelt das Löschen aus einem Blatt und der zweite Fall beschreibt das Löschen aus einem inneren Knoten. In beiden Fällen muss selbstverständlich die Ordnung des Baumes wiederhergestellt werden. Bevor wir jedoch die Fälle betrachten werden wir zwei nützliche Verfahren anschauen. Verschieben von Schlüsseln: Dazu betrachten wir den folgenden Teilbaum (Abb. 10). Nehmen wir an wir wollen im linken Knoten einen Schlüssel löschen. Dann stehen wir vor dem Problem, dass wir gegen die Ordnung verstoßen. Im Rechten Knoten haben wir jedoch einen Schlüssel übrig. Also verschieben wir den Schlüssel in den linken Knoten und den Schlüssel in seinen Vaterknoten. Der Pfad zum Knoten wird nach rechts zu verlegt und wir erhalten den folgenden Baum aus Abbildung 11. Der Pfad vom Knoten kann verschoben werden, da jeder Schlüssel aus größer als und kleiner als ist. Abbildung 10 Abbildung 11 Verschmelzung zweier Knoten: Wir betrachten nun den folgenden Teilbaum (Abb. 12). Wenn wir nun einen Schlüssel aus den unteren beiden Knoten löschen wollen, haben wir das Problem, dass wir in beiden Knoten zu wenig Schlüssel haben und auch keine Schlüssel verschieben können. Deshalb wird der Schlüssel nach unten gezogen und mit den beiden Kindsknoten verschmolzen(abb. 13). Nun muss nur noch der gewünschte Schlüssel aus dem unteren Knoten entfernt werden, damit die Ordnung erhalten bleibt. Jetzt sind wir in der Lage jeden Knoten aus einem Blatt zu löschen. Abbildung 12 Abbildung 13 Seite 7 von 13
8 Betrachten wir nun das Verfahren für den 2. Fall (löschen aus einem inneren Knoten). Dazu betrachten wir den folgenden Teil eines B-Baumes (Abb. 14). Abbildung 14 Wir wollen nun den rot markierten Schlüssel löschen. Zunächst definieren wir aber noch den symmetrischen Vorgänger und den symmetrischen Nachfolger von. Der symmetrischer Vorgänger von, wird mit bezeichnet und ist der größte Schlüssel aus allen Blattknoten, welcher kleiner ist als. Dieser wird wie folgt ermittelt: Wir wandern den Pfad links von in den Kindsknoten und wählen anschließend immer wieder den Pfad ganz rechts in den nächsten Knoten, bis wir uns in einem Blatt befinden. Dort befindet sich ganz rechts der symmetrische Vorgänger. Es gilt: 1 # %&' < Der symmetrische Nachfolger von wird mit %( bezeichnet und ist der kleinste Schlüssel aus allen Blattknoten, welcher größer ist als. Dieser wird wie folgt ermittelt: Wir wandern den Pfad rechts von in den Knoten ) und folgen stets dem Pfad ganz links bis zum Blattknoten. Dort befindet sich ganz links der symmetrische Nachfolger von. Es gilt: ) 1 # : %( > Wenn wir nun den Schlüssel aus dem inneren Knoten löschen wollen, gehen wir wie folgt vor: Wir ermitteln zunächst den symmetrischen Vorgänger und Nachfolger. Anschließend ersetzen wir durch den symmetrischen Vorgänger oder Nachfolger und löschen diesen anschließend aus dem Blatt. Die Wahl ob der Vorgänger oder Nachfolger gewählt wird, hängt von der Anzahl der Schlüssel der jeweiligen Knoten von %&' bzw. %( ab. Seite 8 von 13
9 Aufwand: Da wir nun wissen wie B-Bäume implementiert sind, können wir nun dessen Aufwand betrachten. Der Aufwand ist log 0. Dieser ist wesentlich kleiner als der von binären Bäumen (dort war der Aufwand log ), da die Basis in der Realität viel größer ist als 2. Ein weiterer Vorteil ist, dass B-Bäume nicht entarten können wie binäre Bäume, da Sie stets vollständig ausbalanciert sind. Somit kann der Aufwand nicht gegen konvergieren. Dies Entarteter Baum erfordert allerdings nach jedem Einfügen und Löschen von Schlüsseln eine Reorganisation der Elemente, was zwar mit einem sehr kleinen Aufwand verbunden ist, aber extrem häufig vorkommt. Beispiel (B + -Baum): In der Praxis werden häufig B + -Bäume verwendet. Bei diesen Bäumen verweisen lediglich die Schlüssel der Blätter auf Daten. Alle restlichen Schlüssel sind Metadaten und dienen lediglich dazu, die Schlüssel in den Blättern zu finden. Des Weiteren sind alle Blattknoten von links nach rechts verkettet. Dies hat den Vorteil direkt den nächstgrößeren Schlüssel aufzurufen, ohne erneut durch den Baum wandern zu müssen. B + -Baum Parallele Operationen auf B-Bäume: Wir betrachten das folgende Szenario 1 : Zwei Prozesse versuchen gleichzeitig auf den B- Baum (Abb. 15) zuzugreifen. Der erste Prozess möchte die Datei 12 suchen. Der zweite Prozess möchte die Datei 3 einfügen. Der erste Prozess geht in den Knoten B. Nun fügt der zweite Prozess die 3 ein und spaltet den Knoten B in zwei Knoten B und C (siehe Abb. 16), wobei der erste Prozess in B bleibt (roter Pfeil). Da sich der erste Prozess nun in einem Blatt ohne 12 befindet wird die Suche fälschlicherweise erfolglos beendet. Abbildung 15 Abbildung Modifiziertes Beispiel von: Seite 9 von 13
10 Einfachste Lösung: Jeder Prozess markiert die Wurzel wie folgt mit einer Sperre. Jeder Leseprozess markiert sie mit einem S. Die Sperre S lässt dann nur noch lesende Prozesse zu, da diese den Baum nicht verändern. Jeder schreibende Prozess markiert die Wurzel mit einem X. Die Sperre X sperrt alle anderen Prozesse, so dass der schreibende Prozess die Struktur des Baumes verändern kann. Mit dieser Lösung entsteht aber ein neues Problem. Wenn immer ein lesender Prozess im Baum ausgeführt wird, kann nie geschrieben werden. Die schreibenden Prozesse würden also verhungern und der Baum könnte nicht aktualisiert werden. Das nächste Kapitel löst unser jetziges Problem. Copy-On-Write Copy on Write bedeutet Kopieren beim Schreiben und ist ein Verfahren um schreibende Prozesse auf Dateisystemen problemlos ausführen zu können. Bei diesem Verfahren greift jeder lesende Prozess auf das Abbildung 17 originale Dateisystem zu, da das System bei diesen Prozessen nicht verändert wird. Bei den schreibenden Prozessen wird zunächst eine Schattenkopie des betroffenen Teilbaumes des Systems erstellt (Abb. 17) und anschließend auf dieser Kopie der Schreibvorgang ausgeführt. Wenn dieser erfolgreich ausgeführt wurde wird der alte Pfad aktualisiert Abbildung 18 und die weiteren Prozesse können auf den neuen Teilbaum zugreifen (Abb. 18). Das Copy-On-Write Verfahren bietet also die Möglichkeit lesende und schreibende Prozesse parallel ausführen zu können. Shadowing/ Cloning Das Shadowing beziehungsweise Cloning ist ein Verfahren, welches zur Laufzeit eine exakte Schattenkopie des Dateisystems auf einer anderen Serverinstanz erstellt. Im Notfall kann diese mit einem minimalen Zeitverlust aktiviert werden und die Produktionsdatenbank ersetzen. Dieses Verfahren wird unter anderen auch beim Copy-on-Write Verfahren genutzt. Seite 10 von 13
11 Vorteile: Das Shadowing bietet einen zusätzlichen Schutz zu Backups. Bei einem Systemausfall, kann die Schattenkopie von einer anderen Serverinstanz mit minimalem Zeitverlust aktiviert werden. Des Weiteren läuft das Verfahren ohne Verwaltungsaufwand im Hintergrund. Da die Schattenkopie ein exaktes Abbild der Produktionsdatenbank ist, benötigt diese wesentlich weniger Speicher als Logdateien. Nachteile: Wie bereits oben erwähnt, ist dieses Verfahren nur ein zusätzlicher Schutz zu Backups. Das liegt daran, dass beim Shadowing nicht vor Benutzerfehlern geschützt wird und es somit kein ganzes Sicherheitssystem ersetzt. Zudem lässt sich die Datenbank nicht zurücksetzen. Dadurch, dass die Kopie live erstellt bzw. aktualisiert wird, entsteht ein kleiner Leistungsabfall, da jeder Prozess zweimal ausgeführt wird. Stand der Wissenschaft (BTRFS) BTRFS steht für B-Tree Filesystem und ist ein Copy-on-Write Dateisystem von der Oracle Corporation, welches mit B-Bäumen arbeitet. Das System ist seit 2007 in der Entwicklungsphase (Stand 29.April 2013). Ursprünglich sollte es das ext-3 System ersetzen. Da es nun bereits ext-4 Systeme gibt, ist geplant, dass diese nun von BTRFS ersetzt werden. BTRFS hat viele neue Features. Beispielsweise ist es möglich, das System während des Betriebs zu defragmentieren oder Datenkompressionen vorzunehmen. Des Weiteren verfügt das System über einen erweiterten Speicherbereich von 2 64 Byte (= 16 Exbibyte) *Quelle: Aufgrund dieser neuen Features speichert BTRFS effizienter als ext- 3/4 Systeme. Zusätzlich ist es auch für Solid-State-Drives optimiert und in der Lage selbstständig Fehler zu finden und diese zu beheben. BTRFS speichert in zwei Baumstrukturen. Eine für Verzeichnis- und Dateinamen und die andere für Datenblöcke. In der unteren Tabelle wurden, auf denselben Testrechner, ein paar Testwerte von den 3 Systemen ext-3/4 und BTRFS ermittelt. EXT-3 EXT-4 BTRFS Anlegen von acht Dateien á 1 GByte Zeit 155.8s 145.1s 120.6s Durchsatz beim Schreiben 55.4 Mbyte 59.3 MByte 68.5 Mbyte Löschen von acht Dateien á 1GByte Zeit 11.87s 0.33s 0.63s zufällige Lese-/ Schreiboperationen in 8GByte Operationen/s 80.0s s Werte von Wie wir an den Performancewerten sehen können, ist BTRFS, beim Anlegen der Daten mehrere Sekunden schneller als EXT-3/4. Beim Löschen jedoch braucht das System ca. doppelt so lange wie EXT-4. Wir können daraus schließen, dass BTRFS sehr hohes Potenzial hat, jedoch kein Performancewunder ist. Seite 11 von 13
12 Die erste stabile Version 1.0 von BTRFS wurde bereits 2008 geplant, wurde aber seitdem noch nicht veröffentlicht (Stand ). Die Betaversion gibt es aber schon seit dem 9. Januar Es wurde in den Linuxkernel das erste Mal aufgenommen. Zusammenfassung Wir haben zwei Möglichkeiten behandelt große Dateisysteme zu verwalten. Die Hashtabellen und die B-Bäume. Die Hashtabelle hat einen Aufwand von 1 und ist theoretisch enorm schnell. In der Praxis jedoch entarten solche Systeme sehr schnell und der Aufwand konvergiert gegen. B-Bäume verwalten ihre Daten in großen Baumstrukturen. Der Aufwand hängt bei diesen Systemen von ihrer Ordnung ab. Da diese aber relativ groß ist, bleibt der Aufwand relativ klein. Weiterhin sind B-Bäume vollständig ausbalanciert, was verhindert, dass die Struktur ausarten kann. Das Copy-on-Write Verfahren ermöglicht mehrere parallele Zugriffe auf die Datenbank und nutzt dabei live Kopien der Produktionsdatenbank. Das aktuellste System zur Verwaltung großer Dateisystemen ist derzeit BTRFS. BTRFS bietet viele Features und soll zeitnah ext-3/4 ersetzen. Es befindet sich jedoch seit 2007 in der Entwicklungsphase und ist momentan nicht für den produktiven Gebrauch bestimmt. Seite 12 von 13
13 Quellen B-Baum - ( ) - ( ) - ( ) - ( ) Shadowing/Cloning - ( ) - ( ) - ( ) - ( ) - ( ) Hashtabelle - ( ) - SE 1 Script Copy-on-Write - ( ) - ( ) - ( ) BTRFS - ( ) - ( ) - ( ) - ( ) Seite 13 von 13
Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen
Suchbäume Suchbäume Prinzip Suchbaum Der Wert eines Knotens wird als Schlüssel verstanden Knoten kann auch weitere Daten enthalten, die aber hier nicht weiter betrachtet werden Werte der Schlüssel müssen
t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen.
.3 B-Bäume t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen. Wird der t-äre Baum zur Verwaltung von Daten
Algorithmen und Datenstrukturen I AVL-Bäume
Algorithmen und Datenstrukturen I AVL-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 01.12.2017 14:42 Algorithmen und Datenstrukturen I, AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum
Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n)
.6 Ausgeglichene Mehrweg-Suchbäume Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n) Methoden: lokale Transformationen (AVL-Baum) Stochastische
ADS: Algorithmen und Datenstrukturen
ADS: Algorithmen und Datenstrukturen Teil X Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 13.
ContainerDatenstrukturen. Große Übung 4
ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne
Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 18. März
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 10. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Suchverfahren für große Datenmengen bisher betrachtete Datenstrukturen
Mehrwegbäume Motivation
Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung
Dynamische Datenstrukturen
Dynamische Datenstrukturen B-Bäume größere Datenmengen verwalten Extern speichern Art der Speicherung berücksichtigen sonst kein optimaler Datenzugriff möglich Art der Speicherung großer Datenmengen Magnetplatten
Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 Bruder-Bäume, B-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei Wörterbuchoperationen
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] [email protected] Gefädelte
Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1
Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene
B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme
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
Humboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
Datenbanken: Indexe. Motivation und Konzepte
Datenbanken: Indexe Motivation und Konzepte Motivation Warum sind Indexstrukturen überhaupt wünschenswert? Bei Anfrageverarbeitung werden Tupel aller beteiligter Relationen nacheinander in den Hauptspeicher
7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure
7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,
4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik.
4.3 Bäume Bäume sind eine sehr wichtige Datenstruktur der Informatik. Definition des Baumes Ein Baum besteht aus einer nichtleeren Menge von Knoten und einer Menge von Kanten. Jede Kante verbindet genau
Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April
Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).
2.6 Vergleichsbasierte Sortierverfahren Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schlüssel k, k (außer in Zuweisungen) nur in Vergleichsoperationen der Form
Anwendungsbeispiel MinHeap
Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente
Bäume, Suchbäume und Hash-Tabellen
Im folgenden Fokus auf Datenstrukturen, welche den assoziativen Zugriff (über einen bestimmten Wert als Suchkriterium) optimieren Bäume: Abbildung bzw. Vorberechnung von Entscheidungen während der Suche
(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen
Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl
a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:
1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 6 Suchbäume Version vom 25. November 2016 1 / 75 Vorlesung 10 22. November 2016 2
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei
Übung zur Vorlesung Algorithmische Geometrie
Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)
7 Weitere Baumstrukturen und Heapstrukturen
7 Weitere Baumstrukturen und Heapstrukturen Man kann kurze Suchzeiten in Baumstrukturen erreichen durch Rebalancierung bei Einfügungen und Löschungen (AVL Bäume, gewichtsbalancierte Bäume, Bruderbäume,
Motivation Binäre Suchbäume
Kap..: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Zusätzliche Lernraumbetreuung Morteza Monemizadeh: Jeden Montag von :00 Uhr-:00 Uhr in
Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen
Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet
Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO
Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO INF.02031UF (2-4)-Bäume [email protected] 1 7. Bäume Bäume als Datenstruktur Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen
Organisationsformen der Speicherstrukturen
Organisationsformen der Speicherstrukturen Bäume und Hashing 1 Motivation Ablage von Daten soll einfachen, schnellen und inhaltsbezogenen Zugriff ermöglichen (z.b. Zeige alle Schüler des Lehrers X am heutigen
elementare Datenstrukturen
elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber [email protected] elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste
Algorithmen und Datenstrukturen 12
12. Juli 2012 1 Besprechung Blatt 11 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Sortierverfahren Allgemein Heapsort Bubblesort Insertionsort Mergesort Quicksort
B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.
B*-Bäume 1 B*-BÄUME Beobachtung: Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records. Es gibt keinen Grund, warum man nicht einen Index über einem Index haben sollte, und
Bäume und der Sequence ADT
Bäume und der Sequence ADT Motivation: Der Sequence ADT Bei der Vorstellung verschiedener Implementierungen für Stacks, Queues und Deques wurde vor allem auf die Unterschiede zwischen Arrays fester Größe,
Datenbanken. Interne Datenorganisation:
Interne Datenorganisation: Bisher: Konzeptionelle Betrachtungen einer Datenbank aus Sicht der Anwendung: Modellierung, Normalisieren, Sprache zum Einfügen, Ändern, Löschen, Lesen Jetzt: Betrachtung der
Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion
Abschnitt 1 Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Aufgabe 1: Binäre Suchbäume: Iteratives Suchen/Einfügen/Löschen Das Material dieser Übung enthält in der Klasse Tree0 die
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
Abschnitt 18: Effizientes Suchen in Mengen
Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes
Nachtrag zu binären Suchbäumen
Nachtrag zu binären Suchbäumen (nicht notwendigerweise zu AVL Bäumen) Löschen 1 3 2 10 4 12 1. Fall: Der zu löschende Knoten ist ein Blatt: einfach löschen 2. Fall: Der zu löschende Knoten hat ein Nachfolgeelement
{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen
4.4 MX-Quadtrees (I) MatriX Quadtree Verwaltung 2-dimensionaler Punkte Punkte als 1-Elemente in einer quadratischen Matrix mit Wertebereich {0,1} rekursive Aufteilung des Datenraums in die Quadranten NW,
1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee
AVL-Bäume. Aufgabentyp Fügen Sie in einen anfangs leeren AVL Baum die folgenden Schlüssel ein:... Wenden Sie hierbei konsequent den Einfüge /Balancierungsalgorithmus an und dokumentieren Sie die ausgeführten
Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 8. März
Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:
Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Prioritätswarteschlangen Maike Buchin 18. und 23.5.2017 Prioritätswarteschlange Häufiges Szenario: dynamische Menge von Objekten mit Prioritäten, z.b. Aufgaben, Prozesse, in der
Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 26. März
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen
Sortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: [email protected] Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.
Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten
Nachtrag zu binären Suchbäumen (nicht (nur) AVL Bäumen: Löschen von Elementen in binären Suchbäumen. 1. Fall: zu löschendes Element ist Blatt: löschen
Nachtrag zu binären Suchbäumen (nicht (nur) AVL Bäumen: Löschen von Elementen in binären Suchbäumen 3 1. Fall: zu löschendes Element ist Blatt: löschen 1 2 4 9 10 11 12 13 2. Fall: zu löschendes Element
Lösungen zu Aufgabenblatt 9
Fachbereich Informatik Prof. Dr. Peter Becker Objektrelationale Datenbanksysteme Wintersemester 2011/ 14. Januar 2013 Lösungen zu Aufgabenblatt 9 Aufgabe 1 (Einfügen in B-Bäume) In einen leeren B-Baum
13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)
AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen B4. Priority Queues und Heaps Marcel Lüthi and Gabriele Röger Universität Basel 28. März 2018 Einführung Kollektion von Elementen Grundlegende Operationen sind Einfügen
1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
Datenstrukturen Teil 3. Traversierung und AVL- Bäume. Traversierung. Traversierung. Traversierung
Traversierung Datenstrukturen Teil 3 Traversierung und AVL- Bäume Traversierung: bezeichnet verschiede Verfahren einer Routenbestimmung durch baumförmige Graphen Dabei wird jeder Knoten und jede Kante
