Rückblick: Pufferverwaltung
|
|
- Moritz Koenig
- vor 5 Jahren
- Abrufe
Transkript
1 Rückblick: Pufferverwaltung Datenbankpuffer zum Schließen der Zugriffslücke zwischen Primär- und Sekundärspeicher Ersetzungsstrategien berücksichtigen Zeitpunkte und/oder Anzahl der Zugriffe auf bestimmte Seite FIFO, LFU, LRU (als klassische Verfahren) LRU-K und CLOCK (als moderne Verfahren) Caching kommt auch an anderen Stellen in einem RDBMS, z.b. für Anfrageergebnisse, zum Einsatz 73
2 3.4 Zugriffsstrukturen Tupel einer Relation lassen sich als Datensätze in den Seiten einer Datei speichern (vgl. Kapitel 3.2) Wie können wir solch eine Datei organisieren, um effizient auf Tupel zugreifen zu können, z.b. anhand ihrer Primärschlüsselattribute Anfrage Ergebnis Welche Zugriffsstrukturen gibt es, um effizient auf Tupel zugreifen zu können, z.b. anhand anderer Nichtschlüsselattribute Anfragebearbeitung Optimierung Auswertung Pufferverwaltung Hintergrundspeicher Daten Indizes Logs 74
3 Daten und Indizes Wir machen die (vereinfachende) Annahme, dass das RDBMS Daten und Indizes voneinander getrennt speichert Daten Index Index Echte RDBMS trennen u.u. weniger scharf: Oracle kennt z.b. sogenannte Index-Organized Tables (IOTs), wobei die Daten selbst als Index gespeichert werden 75
4 Zugriffsarten Nachschlagen eines Tupels anhand von Tupelnummer (z.b. Tupel mit Tupelnummer (198,12)) Nachschlagen eines Tupels anhand von Primärschlüssel (z.b. Tupel zu Kunde mit KundenNr ) Finde Tupel mit bestimmtem Attributwert (z.b. Tupel zu Kunden mit PLZ 66117) Finde Tupel mit Kombination von Attributwerten (z.b. Tupel zu Kunden namens Müller mit PLZ 66117) 76
5 Zugriffsarten Finde Tupel mit Attributwert in bestimmten Bereich (z.b. alle Kunden mit PLZ in 661*) Finde Tupel mit Attributwerten in bestimmten Bereichen (z.b. alle Kunden namens M* mit PLZ in 661*) Wie können wir diese Zugriffsarten durch Organisation der Daten bzw. zusätzliche Indizes unterstützen? 77
6 3.4.1 Datenorganisation Welche Organisationsformen gibt es, um Tupel einer Relation als Datensätze in einer Datei abzulegen? Primäres Ziel ist effizienter Zugriff auf Datensätze anhand von Tupelnummer oder Primärschlüssel Wie gut kann die Organisationsform mit dynamischen Daten, d.h. Einfügen/Löschen von Tupeln, umgehen? 78
7 Haufen (Heap) Datensätze organisiert als Haufen (Heap, jedoch nicht zu verwechseln mit der gleichnamigen Datenstruktur) Datensätze werden ohne Ordnung in Seiten gespeichert Neue Datensätze werden am Ende der Datei angefügt Datensätze werden durch Markieren mit Löschbit gelöscht Suche von Datensätzen mittels linearer Suche (d.h. Durchlaufen einer bzw. aller Seiten) 7 11 (133, Max, Imum, PI, 1) (331, Tom, Scheel, PI, 1) (412, Nora, Nolte, WI, 7) (122, Isa, Meier, KI, 3) 79
8 Haufen (Heap) Zusammenfassung: Ineffiziente Suche von Datensätzen Effizientes Einfügen von Datensätzen Ineffizientes Löschen von Datensätzen mit zunehmender Platzverschwendung mangels Freigabe von Speicherplatz 80
9 Sequenzielle Speicherung Datensätze organisiert als sequenzielle Datei Datensätze werden sortiert gespeichert Neue Datensätze werden sortiert eingefügt Datensätze werden gelöscht mit Freigabe von Speicherplatz Suche von Datensätze mittels linearer bzw. binärer Suche (linear über Seiten, binär innerhalb einer Seite) 7 11 (122, Isa, Meier, KI, 3) (133, Max, Imum, PI, 1) (331, Tom, Scheel, PI, 1) (412, Nora, Nolte, WI, 7) 81
10 Sequenzielle Speicherung Beim Einfügen und Löschen von Datensätzen wird evtl. ein Verschieben von Datensätze innerhalb der Seite oder über Seiten hinweg notwendig Zusammenfassung: Ineffiziente Suche von Datensätzen Ineffizientes Einfügen von Datensätzen Ineffizientes Löschen von Datensätzen allerdings ohne Platzverschwendung sofern Fragmentierung vermieden wird 82
11 Indexsequenzielle Speicherung (ISAM) Datensätze organisiert in sequenzieller Datei mit zusätzlicher Indexdatei Datensätze werden sortiert gespeichert Neue Datensätze werden sortiert eingefügt Datensätze werden gelöscht bei Freigabe von Speicherplatz Suche von Datensätze mittels linearer bzw. binärer Suche (linear über Seiten der Indexdatei, binär innerhalb Seite) (122, 7) (122, Isa, Meier, KI, 3) (331, 11) (133, Max, Imum, PI, 1) (331, Tom, Scheel, PI, 1) (412, Nora, Nolte, WI, 7) 83
12 Indexsequenzielle Speicherung (ISAM) Beim Einfügen und Löschen von Datensätzen wird evtl. ein Verschieben von Datensätze innerhalb der Seite oder über Seiten hinweg notwendig; zusätzlich muss die Indexdatei entsprechend aktualisiert werden Zusammenfassung: (Relativ) effiziente Suche von Datensätzen Effizientes Einfügen von Datensätzen Effizientes Löschen von Datensätzen ohne Platzverschwendung sofern Fragmentierung vermieden wird 84
13 Indexsequenzielle Speicherung (ISAM) Indexsequenzielle Speicherung (indexed sequential access method) kann mehrstufig verwendet werden, dann ist die Indexdatei selbst wieder indexsequenziell gespeichert 85
14 3.4.2 Indexstrukturen Indexsequenzielle Speicherung (ISAM) ist eine Möglichkeit, Tupel relativ effizient zugreifbar anhand ihres Primärschlüssels zu machen Zusätzliche Indizes (sogenannte Sekundärindizes) unterstützen effizienten Zugriff anhand von (Gruppen von) Attributen Je nach Zugriffsart eignen sich verschiedene Indexstrukturen; diese greifen meist Ideen bereits bekannter Datenstrukturen auf 86
15 Rückblick: Binäre Suchbäume Binäre Suchbäume zur effizienten Suche im Hauptspeicher Balancierte binäre Suchbäume (z.b. AVL-Bäume und Rot-Schwarz-Bäume) Jeder Knoten hat bis zu zwei Kinder Suchen, Einfügen, Löschen in O(log 2 n) Wieso nicht unverändert geeignet als Indexstrukturen? 87
16 Rückblick: Binäre Suchbäume Indexstruktur ebenfalls in Seiten einer Datei gespeichert Knoten des binären Suchbaums könnten jeweils in unterschiedlichen Seiten liegen, so dass man z.b. zum Suchen O(log 2 n) Zugriffe auf den Sekundärspeicher (I/Os) bräuchte Gesucht ist ein Suchbaum, der bei einer Seitengröße B alle Operationen mit O(log B n) I/Os unterstützt und O(n/B) Seiten belegt Bemerkung: Betrachtet man die Zahl der Zugriffe auf den Sekundärspeicher, spricht man von I/O-Komplexität 88
17 B-Bäume B-Baum ist ein balancierter Suchbaum, bei dem sich die Gestalt der Knoten an der Seitengröße orientiert Knoten muss in eine Seite passen Knoten bestehen aus mehreren Werten als Schlüssel mehreren Verweisen auf Kindknoten mehreren Tupelnummern (oder gar den Tupeln selbst) 12 (2,1) 20 (7,2) 34 (9,3) 42 (2,3) 89
18 B-Bäume B-Bäume haben damit typischerweise einen höheren Verzweigungsgrad (fan out) als binäre Suchbäume Balancierung eines B-Baums wird mittels seiner Ordnung m und den Füllgraden der Knoten erreicht jeder Knoten außer der Wurzel enthält mindestens m Einträge jeder Knoten enthält höchstens 2*m Einträge jeder Knoten ist entweder Blattknoten ohne Kinder oder hat ein Kind mehr als Einträge alle Blattknoten liegen auf der gleichen Stufe 90
19 B-Bäume Beispiel: B-Baum der Ordnung m=
20 Suche in B-Bäumen Suche in B-Baum Beginne beim Wurzelknoten Falls der gesuchte Wert einem Schlüssel entspricht, gibt die zugehörige Tupelnummer zurück Verfolge ansonsten Verweis zu Kindknoten, der links vom kleinsten Schlüssel größer als gesuchter Wert steht rechts vom größten Schlüssel kleiner als gesuchter Wert steht Fahre mit Kindknoten analog fort Höhe des B-Baums ist in O(log m n) Suche auf B-Baum benötigt O(log m n) Zugriffe 92
21 Suche in B-Bäumen Beispiel: Suche nach dem Wert 22 im B-Baum Wert 22 nicht enthalten 93
22 Einfügen in B-Bäumen Einfügen in B-Baum Suche Blattknoten, in dem der einzufügende Wert stünde Enthält der Blattknoten mehr als m und weniger als 2*m Einträge, dann füge den Wert im Blattknoten ein Enthält der Blattknoten bereits genau 2*m Einträge, dann zerteile diesen in zwei Blattknoten mit je m Einträgen und reiche mittleres Element an Elternknoten hoch; dort wird analog fortgefahren Einfügen in B-Baum benötigt O(log m n) Zugriffe 94
23 Einfügen in B-Bäumen Beispiel: Einfügen des Werts
24 Einfügen in B-Bäumen Beispiel: Einfügen des Werts
25 Einfügen in B-Bäumen Beispiel: Einfügen des Werts Knoten voll 97
26 Einfügen in B-Bäumen Beispiel: Einfügen des Werts
27 Löschen in B-Bäumen Löschen im B-Baum Suche Knoten, in dem der gesuchte Wert steht Handelt es sich dabei um einen Blattknoten, so entferne den Eintrag und behandle evtl. Unterlauf des Knotens, falls Knoten danach weniger als m Einträge enthält Handelt es sich um einen inneren Knoten, so ersetze den Eintrag durch den Eintrag von einem Blattknoten mit nächstkleineren Schlüssel und behandle evtl. Unterlauf 99
28 Löschen in B-Bäumen Behandlung eines Unterlaufs (weniger als m Einträge) durch Ausgleichen oder Verschmelzen mit Nachbarknoten Hat der Nachbarknoten mehr als m Einträge, werden diese und die Einträge des untergelaufenen Knotens auf beide Knoten verteilt Hat der Nachbarknoten genau m Einträge, so werden die beiden Knoten verschmolzen und der mittlere Eintrag, wie beim Einfügen, zum Elternknoten weitergereicht Löschen im B-Baum benötigt O(log m n) Zugriffe 100
29 Löschen in B-Bäumen Beispiel: Löschen des Werts
30 Löschen in B-Bäumen Beispiel: Löschen des Werts in innerem Knoten, ersetze durch 20 aus Blattknoten 102
31 Löschen in B-Bäumen Beispiel: Löschen des Werts Unterlauf des Blattknotens 103
32 Löschen in B-Bäumen Beispiel: Löschen des Werts Ausgleichen mit Nachbarknoten 104
33 B-Bäume Im B-Baum enthalten sowohl innere Knoten als auch Blattknoten Tupelnummer (oder gar Tupel) B-Bäume unterstützen Suche nach einem bestimmten Wert effizient; die Suche nach allen Einträgen mit einem Schlüssel in einem bestimmten Wertebereich wird jedoch nicht effizient unterstützt, da eine Traversierung des entsprechenden Unterbaums notwendig wäre 105
34 B + -Bäume B + -Bäume sind eine verbesserte Variante der B-Bäume, die in der Praxis sehr häufig eingesetzt werden B + -Bäume sind hohle Bäume, d.h. Tupelnummern (oder Tupel selbst) befinden sich nur in den Blattknoten; die inneren Knoten enthalten nur Schlüssel und Verweise, sie dienen somit nur der Navigation B + -Bäume verketten die Blattknoten doppelt, wodurch Bereichsanfragen effizient ermöglicht werden 106
35 B + -Bäume Beispiel: B + -Baum der Ordnung m=
36 Bereichsanfragen in B + -Bäumen Bereichsanfrage in B + -Bäumen Suche nach linker Grenze des Wertebereichs Durchlaufe Blattknoten bis ein Schlüssel mit größerem Wert als rechte Grenze des Wertebereichs erreicht Bereichsanfrage benötigt O(log m n + r/m) Zugriffe, mit r als Anzahl der zurückgelieferten Einträge 108
37 Bereichsanfragen in B + -Bäumen Beispiel: Suche Einträge mit Schlüssen im Bereich [13,31]
38 Rückblick: Hashverfahren Hashtabellen zur effizienten Suche im Hauptspeicher Werte werden mittels Hashfunktion auf Buckets eines Arrays abgebildet Typische Hashfunktion: 2 h(k) = (k mod p) mod n mit Primzahl p und Kapazität n Kollisionen können z.b. 5 durch Verkettung behandelt werden 6 13 Suche, Einfügen, Löschen in O(1) (erwartet) p = 31 n = 7 110
39 Hashbasierte Indizes Hashbasierte Indizes in Datenbanksystemen Werte des Primärschlüssels oder anderer Attribute werden mittels einer Hashfunktion auf Buckets abgebildet Jedes Bucket entspricht initial einer Seite, in der die Tupel oder Tupelnummern gespeichert werden Kollisionen können wie im Hauptspeicher z.b. durch Verkettung von Seiten behandelt werden 111
40 Hashbasierte Indizes Hashbasierte Indizes unterstützen Suche, Einfügen und Löschen effizient, sofern vorab bekannt ist, wie viele Datensätze indiziert werden und die Zahl der Buckets entsprechend gewählt werden kann Verwendet man zu viele Buckets (Seiten) wird übermäßig viel Speicher verwendet; bei zu wenigen häufen sich die Kollisionen und die Effizienz nimmt ab Hashbasierte Indizes unterstützen nur die Suche nach einem bestimmten Wert, jedoch keine Bereichsanfragen 112
41 Indizes in RDBMSs RDBMSs (z.b. PostgreSQL und Oracle) implementieren verschiedene Arten von Indizes und erlauben dem Benutzer, die Art des Index sowie zusätzliche Parameter (z.b. den Füllgrad) anzugeben Beispiel: Hashbasierter Index in PostgreSQL 1 CREATE INDEX Studenten_MatrNr 2 ON Studenten USING hash(matrnr) Beispiel: Index (B + -Baum) über mehrere Attribute 1 CREATE INDEX Studenten_Name_Vorname 2 ON Studenten (Name, Vorname) 113
42 Zusammenfassung Datenorganisation der Tupel einer Relation als Haufen, sequenzielle Datei oder indexsequenzielle Datei Indexstrukturen zum effizienteren Zugriff auf Datensätze anhand Primärschlüssel oder anhand anderer Attribute B-Bäume als Indexstruktur auf Sekundärspeicher, die Wertanfragen effizient unterstützt B+-Bäume als Verbesserung, die auch Bereichsanfragen effizient unterstützt Hashbasierte Indizes als Indexstruktur, die Wertanfragen effizient unterstützen 114
43 Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme Eine Einführung, De Gruyter Oldenbourg, 2015 (Kapitel 7) [2] G. Saake, K.-U. Sattler und A. Heuer: Datenbanken - Implementierungstechniken, mitp Professional, 2011 (Kapitel 5) 115
Fokus bisher lag bisher auf sinnvoller Abbildung eines Ausschnitts der realen Welt in einer relationalen Datenbank
8. Datenbanktuning Motivation Fokus bisher lag bisher auf sinnvoller Abbildung eines Ausschnitts der realen Welt in einer relationalen Datenbank Beliebige SQL-Anfragen können auf den Daten ausgewertet
MehrADS: 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.
MehrBaumbasierte Strukturen
Baumbasierte Strukturen Baumbasierte Struktur / Organisation als Binärbaum Haufendateien oder sortierte Dateien nützlich für statische Dateien Dateien organisiert als Binärbaum Effizientes Einfügen und
MehrRückblick: Datenorganisation & Indexstrukturen
Rückblick: Datenorganisation & Indexstrukturen Datenorganisation der Tupel einer Relation als Haufen, sequenzielle Datei oder indexsequenzielle Datei Indexstrukturen zum effizienteren Zugriff auf Datensätze
MehrSuchbä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
MehrDatenbanken: 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
MehrRückblick: Architektur und Hintergrundspeicher
Rückblick: Architektur und Hintergrundspeicher Prototypische Architektur eines RDBMS Speicherhierarchie mit Zugriffslücke (10 5 ) zwischen Primär- und Sekundärspeicher (z.b. HDD) RAIDs zur Erhöhung der
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 2 Übung zur Vorlesung Grundlagen: Datenbanken im WS3/4 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws34/dbsys/exercises/
MehrOrganisationsformen 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
MehrMehrwegbä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
MehrDatenbanksysteme SS 2013
Datenbanksysteme SS 2013 Kapitel 4: Physikalische Datenorganisation Vorlesung vom 16.04.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Speicherhierarchie GB 10 GHertz TB 100 10 ms
MehrIndexe in Dateien. Thomas Behr. 19.November c 2015 FernUniversität in Hagen
Indexe in Dateien Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 19.November 2015 c 2015 FernUniversität in Hagen Indexe ermöglichen schnellen Zugriff
MehrB / 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
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 10. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Suchverfahren für große Datenmengen bisher betrachtete Datenstrukturen
MehrUniversität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 15. Jan Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 10
Universität Augsburg, Institut für Informatik WS 009/010 Prof. Dr. W. Kießling 15. Jan. 010 Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 10 Aufgabe 1: B-Bäume Datenbanksysteme I a) Abschätzen der Höhe
Mehr5.5 Prioritätswarteschlangen
5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte
MehrDatenbanken. 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
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann Blatt Nr. 9 Übung zur Vorlesung Grundlagen: Datenbanken im WS4/5 Harald Lang (harald.lang@in.tum.de) http://www-db.in.tum.de/teaching/ws45/grundlagen/
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 10 Übung zur Vorlesung Grundlagen: Datenbanken im WS15/16 Harald Lang, Linnea Passing (gdb@in.tum.de)
MehrEinfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden
5.6.2 AVL-Bäume Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden AVL-Bäume, benannt nach ihren Erfindern G. M. Adelson- Velskii und E. M. Landis,
MehrDatenbanksysteme II Indexstrukturen Felix Naumann
Datenbanksysteme II Indexstrukturen (Kapitel 13) 30.10.2009 Felix Naumann Motivation: Platzierung der Tupel in Blöcke 2 Naiv: Beliebig verteilen Aber: SELECT * FROM R Jeden Block untersuchen (Header-Datei)
MehrDateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1
Dateiorganisation und Zugriffsstrukturen Prof. Dr. T. Kudraß 1 Mögliche Dateiorganisationen Viele Alternativen existieren, jede geeignet für bestimmte Situation (oder auch nicht) Heap-Dateien: Geeignet
MehrKapitel 8: Physischer Datenbankentwurf
8. Physischer Datenbankentwurf Seite 1 Kapitel 8: Physischer Datenbankentwurf Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen
Mehr13. 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
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
MehrAnwendungsbeispiel 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
MehrDynamische 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
MehrDatenstrukturen und Algorithmen. Vorlesung 5
Datenstrukturen und Algorithmen Vorlesung 5 Inhaltsverzeichnis Vorige Woche: Sortierte Listen Zyrkuläre Listen Verkettete Listen auf Arrays Heute betrachten wir: Skip Listen ADT Set ADT Map Iterator ADT
MehrBä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
MehrVorlesung 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
MehrGliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen
5. Compiler Gliederung 1. Struktur eines Compilers 2. Syntaxanalyse durch rekursiven Abstieg 3. Ausnahmebehandlung 4. Arrays und Strings 6. Sortieren und Suchen 1. Grundlegende Datenstrukturen 2. Bäume
MehrContainerDatenstrukturen. 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
Mehr2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus
2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus {0, 1,..., B 1} d in Zeit O(d(n + B)) sortiert werden, indem sie zuerst gemäß dem letzten
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016
Mehr4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}
105 4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI
MehrVorlesung 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
MehrWINTERSEMESTER 2006/2007. Mehrdimensionale Bäume
ALGORITHMISCHE ANWENDUNGEN WINTERSEMESTER 2006/2007 Team: B_blau_Ala0607 Wilhelm Faber 11032935 Ioannis Chouklis 11042438 1 Inhaltsverzeichnis Inhaltsverzeichnis...2 1. Der k-d Baum...3 1.1. Inhomogene
MehrInformatik II: Algorithmen und Datenstrukturen SS 2015
Informatik II: Algorithmen und Datenstrukturen SS 2015 Vorlesung 8b, Mittwoch, 17. Juni 2015 (Balancierte Suchbäume) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik
Mehr5. Relationale Entwurfstheorie
5 Relationale Entwurfstheorie Motivation Konzeptuelles Modell (ERM) kann in ein relationales Schema mit möglichst wenigen Relationen übersetzt werden (vgl Kapitel 4) Welche Eigenschaften hat ein gutes
MehrHintergrundspeicher ISAM. Hashing
Physische Datenorganisation Themenbereiche: h Speicherhierarchie Hintergrundspeicher Speicherstrukturen ISAM B-BäumeBäume Hashing Clustering Überblick: Speicherhierarchie Register (L1/L2/L3) Cache Hauptspeicher
MehrAufgabe 7. Sei die Schema R(A, B, C, D, E) mit folgenden fkt. Abh.:
Übungen Aufgabe 6 In der folgenden Relation speichern wir die Betreuer für jeden Studenten. Ein Student kann aber gleichzeitig mehrere Hauptfächer studieren (um am Ende mehrere Diplomen zu kriegen, z.b.
MehrVorlesung 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
Mehr6.4 Minimale Überdeckung: Basis für Normalisierungsalgorithmen
6. Formaler Datenbankentwurf 6.4. Minimale Überdeckung Seite 1 6.4 Minimale Überdeckung: Basis für Normalisierungsalgorithmen Seien F Mengen von funktionalen Abhängigkeiten. Wir suchen eine minimale Überdeckung
MehrPhysische Datenorganisation
Vorlesung Datenbanksysteme vom 17.10.2016 Physische Datenorganisation Architektur eines DBMS Speicherhierarchie Index-Verfahren Ballung (Clustering) beste Zugriffsmethode Architektur eines DBMS Wichtigste
MehrKollision Hashfunktion Verkettung Offenes Hashing Perfektes Hashing Universelles Hashing Dynamisches Hashing. 4. Hashverfahren
4. Hashverfahren geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D Menge A von Speicheradressen; oft: A = {0,..., m 1} jedes Speicherverfahren realisiert h : D A mögliche Implementierungen von
MehrHash-Verfahren. Einführung
Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.
MehrHash-Verfahren. Prof. Dr. T. Kudraß 1
Hash-Verfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k.
Mehr12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.
Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen
MehrZusatzskript Datenmanagement: physische Strukturen B+- und B*-Baum B+-Baum
Seite 1 Zusatzskript Datenmanagement: physische Strukturen B+- und B*-Baum B+-Baum Bild-1 Dargestellt ist die Speicherung der Personentabelle als B+-Baum anhand der Personen-Nummer (PersNr). Die Blattebene
Mehrtechnische universität dortmund Fakultät für Informatik LS 8 Speichern von Daten Prof. Dr. Katharina Morik
Speichern von Daten Prof. Dr. Katharina Morik Unterschiede von DBMS und files! DBMS unterstützt viele Benutzer, die gleichzeitig auf dieselben Daten zugreifen concurrency control.! DBMS speichert mehr
MehrKorollar 191 In einem (a, b)-baum mit n gespeicherten Schlüsseln können die Wörterbuchoperationen in Zeit O(log a n) durchgeführt werden.
Korollar 191 In einem (a, b)-baum mit n gespeicherten Schlüsseln können die Wörterbuchoperationen in Zeit O(log a n) durchgeführt werden. Bemerkung: Die Wahl von a und b hängt wesentlich von der Anwendung
MehrWü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
MehrPhysische Datenorganisation
Vorlesung Datenbanksysteme vom 19.10.2015 Physische Datenorganisation Architektur eines DBMS Speicherhierarchie Hintergrundspeicher / RAID Index-Verfahren Ballung (Clustering) beste Zugriffsmethode Architektur
MehrVorlesung Datenbanksysteme vom Architektur eines DBMS Speicherhierarchie Hintergrundspeicher / RAID Index-Verfahren Ballung (Clustering)
Vorlesung Datenbanksysteme vom 22.10.2008 Physische Datenorganisation Architektur eines DBMS Speicherhierarchie Hintergrundspeicher / RAID Index-Verfahren Ballung (Clustering) beste b t Zugriffsmethode
MehrBisher haben wir ein RDBMS als Black Box betrachtet und gelernt, wie man es effektiv einsetzen kann
3. Datenbanksysteme Einführung Bisher haben wir ein RDBMS als Black Box betrachtet und gelernt, wie man es effektiv einsetzen kann Nun öffnen wir diese Black Box und betrachten wichtige Implementierungsaspekte
MehrB*-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
MehrOracle 10g Einführung
Kurs Oracle 10g Einführung Teil 8 Indizes und Suchbäume Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 15 Seite 1 von 15 Agenda 1 Einleitung 2 Binäre Suchbäume
MehrBaum-Indexverfahren. Einführung
Baum-Indexverfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k 2.
MehrBaum-Indexverfahren. Prof. Dr. T. Kudraß 1
Baum-Indexverfahren Prof. Dr. T. Kudraß 1 Einführung Drei Alternativen, wie Dateneinträge k* im Index aussehen können: 1. Datensatz mit Schlüsselwert k 2.
MehrEs 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
Mehr9. Sicherheitsaspekte
9. Sicherheitsaspekte Motivation Datenbanken enthalten häufig sensible Daten (z.b. personenbezogene oder unternehmenskritische) Vielzahl verschiedener Benutzer hat Zugriff (z.b. Anwendungen, Mitarbeiter,
MehrAlgorithmen und Datenstrukturen II: Hashverfahren
Algorithmen und Datenstrukturen II: Hashverfahren Prof. Dr. Oliver Braun Letzte Änderung: 10.05.2017 16:21 Algorithmen und Datenstrukturen II: Hashverfahren 1/28 Hashverfahren bisher jeder Datensatz durch
MehrDatenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik
5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen
MehrSatz 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
Mehr7.3 Baum-Indexstrukturen
7. Physischer Datenbankentwurf 7.3. Baum-Indexstrukturen Seite 1 7.3 Baum-Indexstrukturen B-Baum der Ordnung (m, l); m > 2, l > 1. Die Wurzel ist entweder ein Blatt oder hat mindestens zwei direkte Nachfolger.
MehrWiederholung. 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
Mehr3. Relationales Modell & Algebra
3. Relationales Modell & Algebra Inhalt 3.1 Relationales Modell Wie können wir Daten mathematisch formal darstellen? 3.2 Übersetzung eines konzeptuellen Modells Wie können wir ein konzeptuelles Modell
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Gefädelte
MehrHashverfahren. (Algorithmen und Datenstrukturen II) Prof. Dr. Oliver Braun. Letzte Änderung: :33. Hashverfahren 1/29
Hashverfahren (Algorithmen und Datenstrukturen II) Prof. Dr. Oliver Braun Letzte Änderung: 19.03.2018 07:33 Hashverfahren 1/29 Hashverfahren bisher jeder Datensatz durch eindeutigen Schlüssel k K gekennzeichnet
MehrAlgorithmen und Datenstrukturen II: Hashverfahren
Algorithmen und Datenstrukturen II: Hashverfahren Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 10.05.2017 16:21 Inhaltsverzeichnis Hashverfahren....................................
Mehr7. 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
MehrINDEXDATEIEN ( INDEXED FILES )
Indexdateien 1 INDEXDATEIEN ( INDEXED FILES ) ISAM (Indexed Sequential Access Method) Sätze werden nach ihren Schlüsselwerten sortiert. Schlüsselwerte sind immer vergleichbar und daher auch sortierbar.
MehrPhysische Datenorganisation
Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Dr. Thomas Gottron Wintersemester 2012/13 Lernziele Speicherhierarchie ISAM B-Bäume, B + -Bäume,... Hashing Mehrdimensionalen Datenstrukturen
MehrRückblick: Relationales Modell
Rückblick: Relationales Modell Relationales Modell als vorherrschendes Datenmodell Relationen (Tabellen) besitzen Attribute (Spalten) mit Wertebereichen und beinhalten Tupel (Zeilen) Umsetzung eines konzeptuellen
MehrDB-Zugriffsverfahren: Übersicht B-Bäume B*-Bäume Übersicht
DB-Zugriffsverfahren: Übersicht B*-Bäume N. Ritter, HMS Übersicht Zugriffsverfahren über Schlüssel Sequentielle Speicherungsstrukturen Baumsstrukturen Gestreute Speicherungsstrukturen Sequentielle Listen
MehrSuchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS
Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 309 Allgemeines Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 310
MehrIndexstrukturen in Datenbanken
für Zeichendaten und Texte sowie mehrdimensionale Dateiorganisation und Zugriffspfade 3. Juli 2014 Inhaltsverzeichnis 1 Einleitung 2 Präfix B+-Baum 3 Tries 4 k-dimensionale Bäume 5 Grid-File 6 mehrdimensionales
MehrDatenbanken 2. Indexstrukturen. Nikolaus Augsten. FB Computerwissenschaften Universität Salzburg
Datenbanken 2 Indexstrukturen Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg http://dbresearch.uni-salzburg.at WS 2018/19 Version 20. November 2018 Augsten (Univ.
MehrB-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write
B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write Thomas Maier Proseminar: Ein- / Ausgabe Stand der Wissenschaft Seite 1 von 13 Gliederung 1. Hashtabelle 3 2.B-Baum 3 2.1 Begriffserklärung 3 2.2
MehrDatenbanksysteme II Indexstrukturen Felix Naumann
Datenbanksysteme II Indexstrukturen (Kapitel 13) 5.5.2008 Felix Naumann Klausur 2 Mittwoch, 23.7. 9 13 Uhr 4 Stunden Umfang auf 1,5 Stunden ausgelegt Keine Hilfsmittel Motivation 3 Platzierung der Tupel
MehrSynchronisationsmodul Informatik Teil-Modul Datenbanken
Synchronisationsmodul Informatik Teil-Modul Datenbanken Kapitel 4: Interne Datenorganisation Kapitel 4-1 Interne Datenorganisation Inhalte des Kapitels Aufbau eines Speichermediums, Pages und Pufferverwaltung
MehrAlgorithmen 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
MehrDatenbanken Vertiefung Wintersemester 2013/ Matrikelnummer: Hinweise. Unterschrift
Fachbereich für Computerwissenschaften Prof. Dr. Nikolaus Augsten Jakob-Haringer-Str. 2 5020 Salzburg, Austria Telefon: +43 662 8044 6347 E-Mail: nikolaus.augsten@sbg.ac.at Datenbanken Vertiefung Prüfung
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrDatenbanken 1. Kapitel 4: Interne Datenorganisation 4-1. Datenbanken 1 (Bachelor)
Datenbanken 1 Kapitel 4: Interne Datenorganisation 4-1 Interne Datenorganisation Inhalte des Kapitels Aufbau eines Speichermediums, Pages und Pufferverwaltung Datenorganisation Index und B-Baum Hash-Indexe
MehrBeweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens
Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält
MehrPhysische Datenorganisat
Physische Datenorganisat Speicherhierarchie Hintergrundspeicher / RAID B-Bäume Hashing (R-Bäume ) Objektballung Indexe in SQL Kapitel 7 1 Überblick: Speicherhierarchie Register Cache Hauptspeicher Plattenspeicher
MehrPhysische Datenorganisat
Physische Datenorganisat Speicherhierarchie Hintergrundspeicher / RAID B-Bäume Hashing (R-Bäume ) Objektballung Indexe in SQL Überblick: Speicherhierarchie 1 8 Byte Compiler Register 8 128 Byte Cache Cache-Controller
MehrTeil 1: Suchen. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Suchen 1-1
Teil 1: Suchen Problemstellung Elementare Suchverfahren Hashverfahren Idee Hashfunktion Hashverfahren mit Verkettung Offene Hashverfahren Dynamische Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume
Mehr