Übung Datenbanksysteme II Index- strukturen

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Erstellen von Raumgrundrissen mit Vorlagen
Der R-Baum Richard Göbel.
Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Prof. Dr. T. Kudraß1 Hash-Verfahren. Prof. Dr. T. Kudraß2 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit.
Einführung in die Informatik: Programmierung und Software-Entwicklung
GIN2 – 2. Vorlesung, SS04 Prof. Dr. Wolfram Conen
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Zusammenfassung der Vorwoche
B-Bäume.
7. Natürliche Binärbäume
Prioritätswarteschlangen
Pflege der Internetdienste
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Indexed Sequential Access Method
Klicke Dich mit der linken Maustaste durch das Übungsprogramm!
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Der R-Baum Richard Göbel.
Effizienz: Indexstrukturen
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Fibonacci-Heaps – Analyse) Tobias Lauer.
WS03/041 Binomial Queues Prof. Dr. S. Albers Prof.Dr.Th Ottmann.
Schwierigkeitsgrad III 6 X - 7 = X
Prof. Dr. T. Kudraß1 Baum-Indexverfahren. Prof. Dr. T. Kudraß2 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Kap. 6.2 Binäre B-Bäume Ullmann: (2, 3) - Bäume
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Externe Datenstruktur lineare Liste
Heaps und Priority Queues
Inhalte und Maßnahmen eingegeben haben,
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Zusatzfolien zu B-Bäumen
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Effiziente Algorithmen
...ich seh´es kommen !.
Diskrete Mathematik II
Effiziente Algorithmen
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Präsentation läuft auch vollautomatisch ab … wie du möchtest
Auslegung eines Vorschubantriebes
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Vorlesung Binärer Suchbaum II-
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Graphen und Bäume.
SAP Seminar 2007 Materialstammsätze anlegen
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Analyseprodukte numerischer Modelle
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Der Erotik Kalender 2005.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Binärer Baum, Binärer Suchbaum I
Raumbezogene Zugriffsverfahren
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
 Präsentation transkript:

Übung Datenbanksysteme II Index- strukturen Thorsten Papenbrock

Rückblick: Hausaufgabe 1 Submit: Bitte beachten: Bei JEDER Submission BEIDE Autoren angeben! Notifications sind raus; Korrekturen einsehbar; Anmerkungen jetzt natürlich in Freitextfeldern statt direkt auf Zetteln Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

Rückblick: TPMMS Phase 1: Phase 2: 2 5 4 11 10 8 1 7 12 3 9 6 2 5 4 11 Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

Rückblick: TPMMS Phase 1: n Blöcke hat die gesamte Relation m Blöcke passen gleichzeitig in den RAM I/O Zeit Phase 1 = 𝑛 𝑚  m Blöcke sequentiell lesen + 𝑛 𝑚  m Blöcke sequentiell schreiben Phase 2: I/O Zeit Phase 2 = n Blöcke selektiv lesen + n Blöcke selektiv schreiben Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

Quiz: Zuordnung Indexstrukturen b. d. dichtbesetzter Index dünnbesetzter Index mehrstufiger Index nicht-eindeutige Attribute Sekundärindex invertierter Index f. a. Sekundärindex  unsortierte Daten c. e. Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

Quiz: Richtig oder Falsch? Dicht- und dünnbesetzte Indexe Es ist für jedes Datenfile möglich, zwei separate dünnbesetzte Level-1-Indexe auf unterschiedlichen Attributen anzulegen. Es ist für jedes Datenfile möglich, zwei separate dichtbesetzte Level-1-Indexe auf unterschiedlichen Attributen anzulegen. Es ist für jedes Datenfile möglich, einen dünnbesetzten Level-1- Index mit einem dichtbesetzten Level-2-Index anzulegen. Beide Indexe sind sinnvoll. Es ist für jedes Datenfile möglich, einen dichtbesetzten Level-1- Index mit einem dünnbesetzten Level-2-Index anzulegen. Beide Indexe sind sinnvoll. Falsch Bei zwei Schlüsseln kann nur nach einem Schlüssel sortiert werden. Beide dünnbesetzte Level-1-Indexe benötigten daher eine Sortierung nach ihrem Schlüssel-Attribut. Das ist gleichzeitig nicht möglich! Wahr Dichtbesetzte Level-1-Indexe benötigen keine Sortierung. Es können daher mehrere dichtbesetzte Indexe auf unterschiedlichen Schlüsseln angelegt werden! Falsch Ein dichtbesetzter Level-2-Index auf einen Level-1-Index ist sinnlos, da er alle Werte noch einmal indexiert, dabei zusätzlich Speicher belegt und keinen Mehrwert schafft. Antworten: F, W, F, W Wahr Ein dünnbesetzter Level-2-Index auf einem dichtbesetzten Level-1-Index ist sinnvoll, da der dünnbesetzte Index nur die ersten Elemente der Blöcke indexiert und so letztendlich Speicher und Zugriffszeit spart. Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Baume: Aufbau Wurzel Knoten Blatt Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

Quiz: Richtig oder Falsch? B+-Baume B+-Bäume können Overflow-Buckets benötigen. Ein Block eines B+-Baums speichert n Pointer und n+1 Suchschlüssel. Der durch Löschen eines Schlüssels entstehende B+-Baum ist nicht eindeutig bestimmt. B+-Bäume können nur als Primärindexe verwendet werden. B+-Bäume können auf eindeutigen und nicht-eindeutigen Attributen angelegt werden. Falsch Statt Overflow-Buckets zu generieren nutzen B+-Baume split-Operationen um den Index beim Überlauf eines Knotens oder Blattes zu erweitern. Falsch Ein Block (= Knoten bzw. Blatt) speichert bis zu n Suchschlüssel und bis zu n+1 Pointer. Wahr Beim Geschwister-Klauen und beim Merge ist nicht eindeutig bestimmt, mit welchem anderen Knoten die Operation durchgeführt wird! Falsch B+-Baume können verschiedene Index-Rollen übernehmen. Dabei können sie auch eine Sortierung des indexierten Attributes nutzen, benötigen diese aber nicht zwangsläufig. B +-Baume sind daher nicht nur als Primärindex einsetzbar. Wahr Ein B+-Baum ist ein mehrstufiger Index, der sowohl auf eindeutigen als auch auf nicht-eindeutigen Attributen aufgebaut werden kann. Bei doppelten Attributwerten müssen wir uns mit einem zusätzlichen Level unter den Blättern behelfen, da doppelte Schlüsselwerte nicht erlaubt sind! Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT Suche entsprechendes Blatt Füge Schlüssel und Pointer ein Überlauf? Nein Fertig Ja Split Teile Knoten N in zwei Teile N1, N2 und verteile Schlüssel gleichmäßig Erzeuge neue Wurzel (mit nur einem Schlüssel) N Wurzel? Ja Nein Blatt? Ja Nein Kopiere kleinsten Schlüssel in N2 nach oben Ziehe größten Schlüssel in N1 nach oben Einfügen des neuen Schlüssel/Pointer-Paares im Elternknoten

B+-Bäume: INSERT INSERT(17) _ _ o 42 o _ o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT INSERT(17) INSERT(18) _ o 42 o _ o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT INSERT(17) INSERT(18) INSERT(19) o 42 o _ o _ o _ o 𝑁1 = 𝑛+1 2 𝑁2 = 𝑛+1 2 o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT INSERT(17) INSERT(18) INSERT(19) o 42 o _ o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT INSERT(17) INSERT(18) INSERT(19) INSERT(11) o 42 o _ o _ o _ o 10 o 12 o 18 o 23 o 32 o o 12 o 23 o 32 o _ o o … o … o _ o _ o o 6 o 8 o 9 o 10 o o 6 o 8 o 9 o _ o o 10 o 11 o _ o _ o o 23 o 24 o 28 o _ o o 32 o 38 o _ o _ o o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT INSERT(17) INSERT(18) INSERT(19) INSERT(11) o 18 o 42 o _ o _ o o 42 o _ o _ o _ o 𝑁1 = 𝑛 2 𝑁2 = 𝑛 2 o 10 o 12 o 18 o _ o o 10 o 12 o _ o _ o o 23 o 32 o _ o _ o o … o … o _ o _ o o 6 o 8 o 9 o 10 o o 6 o 8 o 9 o _ o o 10 o 11 o _ o _ o o 23 o 24 o 28 o _ o o 32 o 38 o _ o _ o o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT INSERT(17) INSERT(18) INSERT(19) INSERT(11) o 18 o 42 o _ o _ o o 42 o _ o _ o _ o o 10 o 12 o _ o _ o o 23 o 32 o _ o _ o o … o … o _ o _ o o 6 o 8 o 9 o _ o o 6 o 8 o 9 o 10 o o 10 o 11 o _ o _ o o 23 o 24 o 28 o _ o o 32 o 38 o _ o _ o o 12 o 15 o 17 o _ o o 18 o 19 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: DELETE Suche entsprechendes Blatt Lösche Schlüssel und Pointer = weniger 𝑛+1 2 Child-Pointer in Knoten bzw. 𝑛+1 2 Daten-Pointer in Blatt gesetzt? Nein Unterbesetzt? Fertig Ja “linker“ und “rechter“ Geschwisterknoten beim Merge sind relativ und abhängig von der Ent- scheidung, mit welchem Geschwisterknoten der unterbestzte Knoten gemerged werden soll! Umverteilen mit Geschwistern? Ja Nein Ja Blatt? Nein Merge Ziehe den Split-Key des Vaterknoten in den linken Geschwisterknoten Umverteilen Ziehe alle Schlüssel vom rechten in den linken Geschwisterknoten und verwerfe rechten (leeren) Knoten Beim Mergen ist "linker" und "rechter" Geschwisterknoten relativ zu sehen. Wenn ihr euch beim Mergen für zwei Knoten entschieden habt, dann ist einer davon der linke und der andere der rechte Geschwisterknoten. Der ursprüngliche, unterbesetzte Knoten kann also sowohl der linke als auch der rechte Knoten sein. Das hängt ganz davon ab, ob ihr mit dessen linken oder rechten Geschwisterknoten mergen möchtet. In der Merge-Operation müsst ihr dann von den beiden gewählten Knoten den Split-Key des Vaterknotens auf jeden Fall zwischen die Keys der beiden zu mergenden Knoten ziehen. Genau das tut ihr, wenn ihr den Key in den linken Geschwisterknoten zieht und dann die Keys vom rechten in den linken Knoten rüber holt. Als kleiner Tipp: Wenn ihr einen Knoten mergen müsst, dann wählt am besten einen Geschwisterknoten aus, der denselben Vaterknoten hat. Mit unterschiedlichen Vaterknoten könnte man auch mergen, allerdings ist das Anpassen der Eltern-Schlüssel dann viel komplizierter! Schlüsselwerte der Eltern anpassen

B+-Bäume: INSERT DELETE(17) o 18 o 42 o _ o _ o o 10 o 12 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

Ursprünglichen Schlüssel B+-Bäume: INSERT DELETE(17) DELETE(18) Ursprünglichen Schlüssel durch neuen kleinsten Schlüssel im rechten Blatt ersetzen o 19 o 42 o _ o _ o o 18 o 42 o _ o _ o o 10 o 12 o _ o _ o o 23 o 32 o _ o _ o o 24 o 32 o _ o _ o o … o … o _ o _ o o 6 o 8 o 9 o _ o o 6 o 8 o 9 o 10 o o 32 o 38 o _ o _ o o 10 o 11 o _ o _ o o 12 o 15 o _ o _ o o 19 o 23 o _ o _ o o 18 o 19 o _ o _ o o 19 o _ o _ o _ o o 23 o 24 o 28 o _ o o 24 o 28 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT DELETE(17) DELETE(18) DELETE(23) o 19 o 42 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT DELETE(17) DELETE(18) DELETE(23) o _ o 42 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: INSERT DELETE(17) DELETE(18) DELETE(23) o 42 o _ o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: Übungsaufgabe Gegeben: B+-Baum, entstanden durch Einfügen von 9, 22, 19, 21, 13, 17, 1, 6, 23, 15 Füge nacheinander ein: 14, 29, 4, 24 Lösche nacheinander: 6, 13, 15 Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: Übungsaufgabe – Übersicht Füge nacheinander ein: 14, 29, 4, 24 Lösche nacheinander: 6, 13, 15 Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: Übungsaufgabe – Lösung 1 Füge nacheinander ein: 14, 29, 4, 24 Lösche nacheinander: 6, 13, 15 o 17 o _ o _ o _ o o 6 o 13 o _ o _ o o 21 o 24 o _ o _ o o 1 o 2 o 4 o _ o o 13 o 14 o 15 o _ o o 21 o 22 o 23 o _ o o 6 o 9 o _ o _ o o 17 o 19 o _ o _ o o 24 o 29 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen

B+-Bäume: Übungsaufgabe – Lösung 2 Füge nacheinander ein: 14, 29, 4, 24 Lösche nacheinander: 6, 13, 15 o 4 o 14 o 21 o 24 o o 1 o 2 o _ o _ o o 14 o 17 o 19 o _ o o 21 o 22 o 23 o _ o o 4 o 9 o _ o _ o o 24 o 29 o _ o _ o Thorsten Papenbrock | Übung Datenbanksysteme II – Indexstrukturen