Datenbanksysteme I WS 2012/13 - Übung 0 - Bernhard Pietsch Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken und Informationssysteme

Größe: px
Ab Seite anzeigen:

Download "Datenbanksysteme I WS 2012/13 - Übung 0 - Bernhard Pietsch Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken und Informationssysteme"

Transkript

1 Datenbanksysteme I WS 2012/13 - Übung 0 - Bernhard Pietsch Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken und Informationssysteme

2 Organisatorisches (I) Prüfungsmodalitäten Organisatorisches und Hinweise Ergänzende Materialien zur Vorlesung und Übung Klausur: 18. Februar Uhr HS 1, Carl-Zeiss-Str. 3 Klausurteilnahme nur für angemeldete Studenten: B.Sc.: elektronisch über Friedolin Diplom und M.Sc.: schriftlich über Formular 2 DBS1-Übung

3 Organisatorisches (II) 2 Übungsgruppen Mo, 14:15 15:45 Uhr, SR 130 CZ Do, 08:15 9:45 Uhr, SR 226 CZ Einschreibung per Friedolin 7 Übungstermine Vertiefung und praktische Erprobung des Vorlesungsstoffes Vorbereitung auf die Klausur 1. Übungstermin: Zugriffspfade Motivation Mehrwegbäume (B-Bäume, B*-Bäume) Streuspeicherverfahren (Hashing, Extendible Hashing) Übungstermin: Besprechung der Aufgabenblätter 3 DBS1-Übung

4 Seite / Page grundlegende Einheit der Datenspeicherung in DBMS Dateneinheit fester Größe, welche bei den meisten DBMS von Datenbankadministrator festgelegt werden kann Typische Seitengrößen sind 4,8,16 oder 32 KB enthält einen Header und eine Menge von Datensätzen Header 11 Küspert Pietsch Göbel Koch Büchse Friedel Eichner 3244 Header 12 Rossak 3243 Datensätze werden seitenweise auf Externspeicher abgelegt Um schnellen Zugriff zu erzielen, werden einige Seiten im Arbeitsspeicher gepuffert 4 DBS1-Übung

5 Zielstellung der Ablage Ablage von Daten soll einfachen, schnellen und inhaltsbezogenen Zugriff ermöglichen Bsp: "Gib mir alle Angestellten, die im Raum 3240 arbeiten und deren Nachname mit B beginnt. Randbedingungen Große Datenmengen nicht komplett im Hauptspeicher ablegbar I.d.R. mehr Suchanfragen als Änderungen auf Informationen Header 11 Küspert Pietsch Göbel Koch Büchse Friedel Eichner 3244 Header 12 Rossak DBS1-Übung

6 Zugriffspfade Motivation: Sequentielle Suche über GB/TB an Daten nicht akzeptabel Zielstellung: Minimierung der Anzahl von Externspeicherzugriffen (Latenz um Faktor 10 6 langsamer als beim Arbeitsspeicher) Zugriff auf Daten mit konstantem oder logarithmischem Aufwand durch zusätzliche Speicherpfade Zielkonflikt: Zugriffsbeschleunigung vs. Aktualisierungsaufwand Header 11 Küspert Pietsch Göbel Koch Büchse Friedel Eichner 3244 Header 12 Rossak DBS1-Übung

7 Speicherstrukturen Entnommen aus Datenbanksysteme: Konzepte und Techniken der Implementierung von Theo Härder, Erhard Rahm 7 DBS1-Übung

8 Mehrwegbäume Ausgangspunkt: vollständig balancierter binärer Suchbaum Abbildung der Knoten inkl. ausgehender Kanten auf eine Seite Pro Knoten aber nur ein Schlüsselwert Seiten sind nur zu einem Bruchteil ausgelastet geringer Verzweigungsgrad und große Baumhöhe viele Seitenzugriffen und somit viele Externspeicherzugriffe Zielstellung der Mehrwegbäume Zusammenfassung mehrerer Sätze/Schlüssel zu einem Knoten Höherer Verzweigungsgrad führt zu niedriger Baumhöhe Kompromiss für wahlfreien Schlüsselzugriff und sortierte Verarbeitung Aufwand von Änderungsoperationen akzeptabel Beispiele: B- und B+, B*-Baum 8 DBS1-Übung

9 B-Baum Vorschlag von R. Bayer und E. McCreight (1970) Daten und Suchinformationen in Baumstruktur angeordnet Baumknoten werden auf Seiten abgebildet, die vom DBMS verwaltet werden Seiten- bzw. Knotenaufbau: Beispielknoten: DBS1-Übung

10 B-Baum Definition eines B-Baums mit Ordnung n: Jeder Weg von der Wurzel zum Blatt hat die gleiche Länge h Jeder Knoten (außer Wurzel und Blätter) hat mindestens n+1 Söhne. Die Wurzel ist ein Blatt oder hat mindestens 2 Söhne. Jedes Blatt besitzt mindestens n Einträge. Jeder Knoten hat höchstens 2n+1 Söhne Beispiel mit n=2: Beschränkung der Höhe für N Datensätze (N>0): log 2n +1 ( N +1 ) h log n +1 ( N DBS1-Übung )

11 Suchen im B-Baum 11 DBS1-Übung

12 Einfügen im B-Baum (I) 12 DBS1-Übung

13 Einfügen im B-Baum (II) 13 DBS1-Übung

14 Löschen im B-Baum (I) 14 DBS1-Übung

15 Löschen im B-Baum (II) 15 DBS1-Übung

16 Löschen im B-Baum (III) 16 DBS1-Übung

17 Löschen im B-Baum (IV) 17 DBS1-Übung

18 Löschen im B-Baum (V) 18 DBS1-Übung

19 Bewertung B-Baum ist robust gegen Entartung durch Reorganisation Ordnung n beeinflusst Effizienz großes n niedrige Baumhöhe bessere Performance Jede zusätzliche Seitenanforderung kostet viel Zeit ( Pufferverwaltung) Wurzelknoten möglichst im Hauptspeicher halten ABER: n ist durch Seitengröße beschränkt (z.b. 4, 8, 16 KB) Doppelrolle der Schlüsselwerte s i s i bildet ab auf Datensatz d i und ist Weiche zur Suchsteuerung Datenteil für Suchsteuerung nicht erforderlich Idee: Datenteile nur auf Blattebene speichern B+-Baum 19 DBS1-Übung

20 B+-Baum 20 DBS1-Übung

21 B+-Baum Häufigste Art der Index-Implementierung in DBMS Indexbaum: keine Datensätze, sondern Schlüssel und Zeiger auf Kinder Datensätze befinden sich ausschl. in der Blattebene des B+-Baums Gesamtbaum somit flacher als B-Baum Platz für mehr Schlüssel bei fester Seitengröße Lösch-Vorgang einfacher als im B-Baum Daten werden nur in Blättern entfernt Schlüssel in inneren Knoten bleiben als Wegweiser erhalten Weniger Seiten müssen geändert werden 21 DBS1-Übung

22 Verkettung der Blätter im B+-Baum Blattfolge entspricht sequentieller Datei, üblicherweise mit (doppelter) Verkettung zwischen den Seiten Gleiche logarithmische Zugriffszeit für alle Daten sequentieller sortierter Zugriff und wahlfreier Schlüsselzugriff sind effizient Bereichsanfragen, Extremwertanfragen 22 DBS1-Übung

23 B+-Bäume in der Praxis Typische Werte: Ordnung: 100 Höhe: 3-4 Füllfaktor: 70% Durchschnittliche Anzahl von Söhnen: ~133 Daraus resultierende Kapazitäten: Höhe 3: = 2,352,637 Sätze Höhe 4: = 312,900,700 Sätze Pufferung der obersten Stufen: Ebene 0: 1 Seite = 8 KB Ebene 1: 133 Seiten = 1 MB Ebene 2: 17,689 Seiten = 133 MB 23 DBS1-Übung

24 Historie und Terminologie Überblick der Baumarten: D. Comer: The Ubiquitous B-Tree. ACM Computing Surveys, 11:2, Juni 1979, pp Originalpublikation B-Baum: R. Bayer, E. M. McCreight: Organization and Maintenance of Large Ordered Indexes. Acta Informatica, 1: Originalpublikation B*-Baum: D. E. Knuth: The Art of Computer Programming, Vol. 3, Addison-Wesley, Heutige Literatur: B*-Baum = B+-Baum 24 DBS1-Übung

25 Speicherstrukturen Entnommen aus Datenbanksysteme: Konzepte und Techniken der Implementierung von Theo Härder, Erhard Rahm 25 DBS1-Übung

26 Statisches Hashing: Beschreibung Hashtabelle als Indexstruktur ("Von der Ordnung ins Chaos") Verwendung von Streuspeicherverfahren bzw. Hashfunktionen Berechnung der Speicheradresse eines Datensatzes über den Schlüssel (Schlüsseltransformation) Hashfunktion h(x) liefert die Seite (Bucket) bzw. Speicheradresse mit dem Dateneintrag zu Schlüssel x Beispiel einer Hashfunktion: "Divisionsrestverfahren" Geeignete Division des Schlüssels Rest der Division ergibt die relative Adresse in der Hashtabelle 26 DBS1-Übung

27 Statisches Hashing: Hashfunktion Hashfunktion h: S {1, 2,..., n} S = Schlüsselraum, n = Größe des statischen Hash-Bereichs (Anzahl der Buckets) Idealfall: h ist injektiv (keine Kollisionen) Nur in Ausnahmefällen möglich Jeder Satz kann mit einem Seitenzugriff referenziert werden Ziel: möglichst gute Gleichverteilung einer konkreten Schlüsselmenge 27 DBS1-Übung

28 Statisches Hashing: Operationen (vereinfacht) Gegeben: Hashfunktion h, Wertebereich der Hashfunktion W, mit h: S W Datensatz D i mit Schlüssel K i Einfügen Generierung der zukünftigen Speicheradresse: h(k i ) = W i Datensatz D i mit Schlüssel K i wird auf Adresse W i gespeichert Direkte Suche Ermittlung der zugehörigen Speicheradresse: h(k i ) = W i Bereitstellung von Datensatz D i mit Schlüssel K i von Adresse W i 28 DBS1-Übung

29 Statisches Hashing: Operationen (vereinfacht) II Gegeben: Hashfunktion h, Wertebereich der Hashfunktion W, mit h: S W Datensatz D i mit Schlüssel K i Löschen Ermittlung der zugehörigen Speicheradresse: h(k i ) = W i Datensatz D i mit Schlüssel K i wird auf Adresse W i gelöscht Sequentielle Suche Sequentieller Durchlauf des Wertebereichs W = W 1... W n Keine geordnete Schlüsselfolge keine sequentielle Suche möglich! 29 DBS1-Übung

30 Statisches Hashing: Kollision Definition: Zwei Schlüssel K i und K n kollidieren bezüglich einer Hashfunktion h, wenn gilt: h(k i ) = h(k n ) K i und K n nennt man dann auch Synonyme, sie gehören zu einer Kollisionsklasse Kollisionsbehandlung umfasst folgende Aufgaben Einfügen: Finden einer freien Speicheradresse beim Einfügen Suchen: Auffinden eines Schlüssels, der nicht auf der Adresse gespeichert wurde, die die Hashfunktion bestimmt Alle Operationen werden durch Kollisionsbehandlung komplexer Viele Hashfunktionen (z.b. Modulo) bilden eine größere Schlüsselmenge in einen kleineren Wertebereich ab Kollision ist dann zwangsläufig 30 DBS1-Übung

31 Statisches Hashing: Kollisionsbehandlung Offenes Hashen Kollisionen werden im Primärbereich untergebracht Suche einer anderen noch nicht belegten Adresse in der Hashtabelle Lineares/quadratisches Sondieren, Doppeltes Hashen Gleiche Strategie beim Wiederauffinden Lösch-Problematik: Einträge dürfen nicht einfach gelöscht werden, sonst herrschen veränderte Voraussetzungen (Lösung: Delete-Flag) h(k x ) = h(k m ) K x K m K i K x K o 31 DBS1-Übung

32 Statisches Hashing: Kollisionsbehandlung II Geschlossenes Hashen Kollisionen werden im separaten Überlaufbereich gespeichert Überlaufbereich für alle Kollisionen Überlaufbereich pro Adresse Gefahr der Entartung Überlauflisten werden zu lang Performance sinkt (Suche in einer Liste!) h(k x ) = h(k m ) K x K m K x K i K o 32 DBS1-Übung

33 Statisches Hashing: Fazit Vorteile: Bei Kollisionsfreiheit: Suchen/Einfügen/Löschen in O(1) Nachteile: Meist Kollisionsbehandlung nötig: Suchen/Einfügen/Löschen in O(n) Kein sequentieller Zugriff auf Daten möglich Hashfunktion entscheidend für die Qualität des Hashverfahrens beeinflusst Performance, Berechnungs-Komplexität, Datenverteilung und Kollisions-Wahrscheinlichkeit Es gibt keine optimale Hashfunktion für beliebige Schlüsselmengen! Ineffizienz bei unvorhersehbaren / stark wachsenden Datenmengen Primärbereich anfangs überdimensioniert (a priori Allokation des benötigten Speichers), Freihalten von Leerstellen Wachsende Überlaufketten verschlechtern Laufzeitverhalten Nachträgliche Vergrößerung der Hashtabelle (Re-Hash) teuer / nicht möglich (24h-Dauerbetrieb!) Übergang zum Erweiterbaren Hashing (Fagin et al, 1979) 33 DBS1-Übung

34 Erweiterbares Hashing: Ziele Dynamisches Wachsen und Schrumpfen des Wertebereichs der Hashfunktion Buckets werden erst bei Bedarf bereitgestellt Dichte Speicherplatzbelegung möglich Vermeidung von Überlaufmechanismen und totaler Reorganisation Konstantes Laufzeitverhalten Zugriffszeit unabhängig vom Umfang des Datenbestands Auffinden eines Satzes soll nicht mehr als zwei Seitenzugriffe erfordern 34 DBS1-Übung

35 Erweiterbares Hashing: Beschreibung Hashtabelle gegliedert in zwei Bereiche Directory (Inhaltsverzeichnis) Eigentliche Hashbuckets Zugriff zu den Werten in den Hashbuckets nur über Directory möglich Zusätzliche Indirektion (evtl. Externspeicherzugriff!) Notwendiges Hilfsmittel für die gewünschten Erweiterungseigenschaften Bucket mit fester Länge (z.b. Seitengröße 4KB) und Kapazität b Abhängig von den zu hashenden Daten (Wertlänge) Abhängig von Datenintegration (Einbettung vs. Auslagerung) Hashfunktion h generiert Pseudoschlüssel zu einem Satz x 35 DBS1-Übung

36 Erweiterbares Hashing: Realistische Werte Bucketkapazität: b=100, b=1000 Abhängig von der Seitengröße (2, 4, 8, 16 KB, etc.) Abhängig von Wahl der Einbettung (eingebetteter vs. ausgelagerter Ansatz) h(x) mit h: S [0, ] Gewährleistet hinreichend viele Bitpositionen 36 DBS1-Übung

37 Erweiterbares Hashing: Beispiel (1) Ein leeres Bucket mit Bucket-Kapazität b = 4 Hashfunktion h(x) = x mod 32 Lokale Tiefe eines Bucket d : Anzahl von Bits, die benötigt wird, um zu entscheiden, ob ein Eintrag in dieses Bucket gehört Globale Tiefe des Directory d: Maximale Anzahl Bits, die benötigt wird, um zu entscheiden, in welches Bucket ein Eintrag gehört (d = max(d )) d = 0 d = 0 B 1 37 DBS1-Übung

38 Erweiterbares Hashing: Beispiel (2) Schrittweiser Aufbau einer Hashtabelle durch sukzessives Einfügen einiger Werte in der vorgegebenen Reihenfolge: x h(x) [h(x)] Einfügen von Werten 134, 8, 113 und 89 B Alle Werte in Bucket B [00110] 8 [01000] 17 [10001] 25 [11001] 38 DBS1-Übung

39 Erweiterbares Hashing: Beispiel (3) / Split Im Beispiel: Einfügen von Wert 20 Bucket-Überlauf in B 1 Splitting von B 1 Allokation eines neuen Buckets B 2 mit d (B 2 ) = d (B 1 ) Erhöhung der lokalen Tiefen von B 1 und B 2 um 1 Hinweis: mögliche weitere lokale Tiefen werden nicht verändert Hashfunktion h generiert Pseudoschlüssel der Einträge Füllen der Buckets: jedes Bucket enthält nur Sätze, deren Pseudoschlüssel in den ersten d' Bits übereinstimmen Falls d max(d ): Erhöhung der globalen Tiefe um 1 Directory enthält 2 d Einträge verdoppelt sich mit jedem zusätzlichen Bit B 1 B [00110] 8 [01000] 17 [10001] 20 [10100] 25 [11001] 39 DBS1-Übung

40 Erweiterbares Hashing: Beispiel (4) Einfügen des Werts 118 Suche des zugehörigen Buckets ergibt B 2 aufgrund 1. Bitposition Freie Kapazität in B 2 ( B 2 < b) B 1 B [00110] 8 [01000] 17 [10001] 20 [10100] 22 [10110] 25 [11001] Einfügen des Werts 30 Bucket-Überlauf in B 2 Splitting und Erhöhung der lokalen Tiefe (d'=2) in Buckets B 2 und B 3 Erhöhung globaler Tiefe (d=2) Directory-Verdopplung Differenzierung bei Neuverteilung gemäß ersten zwei Bits im Hashwert Bucket B 1 bleibt unverändert mit lokaler Tiefe d'= B 1 B 2 B [00110] 8 [01000] 17 [10001] 20 [10100] 22 [10110] 25 [11001] 30 [11110] 40 DBS1-Übung

41 Erweiterbares Hashing: Beispiel (5) Einfügen der Werte 107, 37 und 77 Wert 107 wird in Bucket B 1 abgelegt durch Zuordnung über "01..." Wert 37 wird in Bucket B 1 abgelegt durch Zuordnung über "00..." Bucket-Überlauf in B 1 bei Wert 77, Splitting in B 1 und B 4 Erhöhung der lokalen Tiefe für Bucket B 1 und B 4 (d'=2) Keine Directory-Verdopplung, da weiterhin die globale Tiefe mit d=2 (d=max(d')) bleibt B 1 B 4 B 2 B [00101] 6 [00110] 8 [01000] 11 [01011] 13 [01101] 17 [10001] 20 [10100] 22 [10110] 25 [11001] 30 [11110] 41 DBS1-Übung

42 Erweiterbares Hashing: Operationen Gegeben: Hashfunktion h, Buckets B 1,, B n mit Kapazität b Datensatz D mit Schlüssel K Suche von D: Anwendung der Hashfunktion h(k) ergibt Pseudoschlüssel für Directory Ermittlung des zugeordneten Buckets B i über das Directory Durchsuchen von Bucket B i nach K (z.b. mit binärer Suche) Einfügen von D: Suche von D gefunden? Ja: Fehlermeldung, fertig! Nein: Ist noch Platz im Bucket B i, also B i <b? Ja: Einfügen von D in Bucket B i Nein: Splitting von Bucket B i zwei neue Buckets» Lokale Neuverteilung der Einträge aus B i und Verweiskorrektur» Eventuell Verdopplung des Directory wegen Selektivität 42 DBS1-Übung

43 Erweiterbares Hashing: Fazit Hashfunktion sollte gut gewählt sein Möglichst "zufälliges" Ergebnis h(x) sollte an jeder Bitposition den Wert 0/1 mit gleicher Wahrscheinlichkeit (0.5) generieren Hashverfahren reagieren empfindlich auf unausgewogene Hashfunktionen 43 DBS1-Übung

44 Erweiterbares Hashing: Sonderfall 1 (Entartung) Eine Einfügung kann mehrere Directory-Verdopplungen zur Folge haben Alle betrachteten b+1 Hashwerte h(x) haben an Position i den gleichen Wert 0 oder 1 Bei guter Hashfunktion und großer Bucketkapazität b sehr selten Beispiel: b=2, h(x): S [0, 31] Einfügereihenfolge: 2 (00010), 3 (00011), 6 (00110) 44 DBS1-Übung

45 Extendible Hashing vs. B+-Baum Speicherplatzbelegung: Extendible Hashing: 70% [ln2] für gesamten (!) Hash- Bucket-Bereich (nur Einfügen, ideale Hashfunktion) Zusatzaufwand (Speicher) für Directory moderat (anwachsend) B+-Baum: 70% [ln2] Füllgrad der Baumknoten Wahlfreier Zugriff Extendible Hashing: O(1) durch Anwenden der Hashfunktion B+-Baum: O(log n N) durch Abstieg im Indexbaum Sequentieller Zugriff: Extendible Hashing: Keine direkte Unterstützung B+-Baum: Abstieg im Baum und Nutzung der verketteten Blattebene 45 DBS1-Übung

Organisationsformen der Speicherstrukturen

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

Mehr

Datenbank- und Informationssysteme - Ergänzungsfach B.A. - Übung

Datenbank- und Informationssysteme - Ergänzungsfach B.A. - Übung - Ergänzungsfach B.A. - Übung - Speicherstrukturen und Datenzugriff - Wintersemester 2011/2012 Institut für Informatik Lehrstuhl für Datenbanken und Informationssysteme Dipl.-Inf. Matthias Liebisch 01.11.2011

Mehr

Überlaufbehandlung ohne Verkettung

Überlaufbehandlung ohne Verkettung 3.2 Statische Hash-Verfahren direkte Berechnung der Speicheradresse (Seitenadresse) eines Satzes über Schlüssel (Schlüsseltransformation) Hash-Funktion h: S {, 2,..., n} S = Schlüsselraum, n = Größe des

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen 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

Mehr

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

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

Mehr

ADS: Algorithmen und Datenstrukturen

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.

Mehr

Hash-Verfahren. Einführung

Hash-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.

Mehr

Hash-Verfahren. Prof. Dr. T. Kudraß 1

Hash-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.

Mehr

Datenbanken: Indexe. Motivation und Konzepte

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

Mehr

Teil VII. Hashverfahren

Teil 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:

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 2. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Behandlung von Kollisionen Zwei Ansätze,

Mehr

Bäume, Suchbäume und Hash-Tabellen

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

Mehr

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.

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. 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

Mehr

Seminar Datenbanken Martin Gerstmann

Seminar Datenbanken Martin Gerstmann Seminar Datenbanken Martin Gerstmann Gliederung 1. Ziele 2. Arten 2.1. erweiterbares Hashing 2.2. lineares Hashing 2.3. virtuelles Hashing 3. Bewertung 1. Ziele wachsende/schrumpfende Datenmengen verwalten

Mehr

DB-Zugriffsverfahren: Übersicht B-Bäume B*-Bäume Übersicht

DB-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

Mehr

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. 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

Mehr

7. Hash-basierte Zugriffspfade

7. Hash-basierte Zugriffspfade 7. Hash-basierte Zugriffspfade Ziele - Nutzung der Schlüsseltransformation als Entwurfsprinzip für Zugriffspfade auf die Sätze einer Tabelle bei denen ein Suchkriterium unterstützt wird - Einschränkung

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 2 Effizienz

Mehr

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung

Hashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group https://moves.rwth-aachen.de/teaching/ss-18/dsal/ 2 Effizienz

Mehr

TU 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. 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/

Mehr

Programmiertechnik II

Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision: Paar von Schlüsseln mit

Mehr

TU 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. 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)

Mehr

Themen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren

Themen. Hashverfahren. Stefan Szalowski Programmierung II Hashverfahren Themen Hashverfahren Einleitung Bisher: Suchen in logarithmischer Zeit --> Binärsuche Frage: Geht es eventuell noch schneller/effektiver? Finden von Schlüsseln in weniger als logarithmischer Zeit Wichtig

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11 Hashverfahren: Allgemeiner Rahmen) Prof. Dr. Susanne Albers Das Wörterbuch-Problem (1) Das Wörterbuch-Problem (WBP) kann wie folgt beschrieben

Mehr

Datenbanken. Interne Datenorganisation:

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

Mehr

Mehrdimensionale Zugriffspfade und Dateiorganisation

Mehrdimensionale Zugriffspfade und Dateiorganisation Mehrdimensionale Zugriffspfade und Dateiorganisation Gliederung Begriffe, Anforderungen und Probleme, Anwendungsgebiete Konkrete Techniken Bäume Grid-File Mehrdimensionales Hashing Begriffe Eindimensionale

Mehr

Hashing. Überblick Aufgabe Realisierung

Hashing. Überblick Aufgabe Realisierung Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion mit Verkettung der Überläufer Offene Universelles 2/33 Überblick Aufgabe Realisierung Aufgabe Dynamische Verwaltung

Mehr

Fokus bisher lag bisher auf sinnvoller Abbildung eines Ausschnitts der realen Welt in einer relationalen Datenbank

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

Mehr

Hashverfahren I. Algorithmen und Datenstrukturen 251 DATABASE SYSTEMS GROUP

Hashverfahren I. Algorithmen und Datenstrukturen 251 DATABASE SYSTEMS GROUP Hashverfahren I Bisher: Suchen mit Hilfe von Schlüsselvergleichen Jetzt: Stattdessen Adressberechnung Auswertung einer Funktion (Hash- oder Adressfunktion) Vorteil: Suche erfolgt weitgehend unabhängig

Mehr

Beweis: 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 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

Mehr

Hash-basierte Dateien

Hash-basierte Dateien Hash-basierte Dateien Hashing Hash-Verfahren ermöglichen es, die Adresse eines Datensatzes basierend auf dem Wert eines Feldes zu finden Idee: Verwendung einer Hashfunktion, die den Wert eines Suchschlüssels

Mehr

Rückblick: Pufferverwaltung

Rückblick: Pufferverwaltung 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

Mehr

14. Hashing. Motivation. Naive Ideen. Bessere Idee? k(s) = s i b i

14. Hashing. Motivation. Naive Ideen. Bessere Idee? k(s) = s i b i Motivation 14. Hashing Hash Tabellen, Geburtstagsparadoxon, Hashfunktionen, Perfektes und universelles Hashing, Kollisionsauflösung durch Verketten, offenes Hashing, Sondieren [Ottan/Widayer, Kap. 4.1-4.3.2,

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 Offenes Hashing) Prof. Dr. Susanne Albers Hashing: Allgemeiner Rahmen Schlüsselmenge S Universum U aller möglichen Schlüssel Hashfunktion h 0,,m-1

Mehr

Hashtabellen. Hashverfahren, was ist das eigentlich?

Hashtabellen. Hashverfahren, was ist das eigentlich? Hashverfahren, was ist das eigentlich? Das Hashverfahren ist ein Algorithmus zum Suchen von Datenobjekten in großen Datenmengen. Es basiert auf der Idee, dass eine mathematische Funktion die Position eines

Mehr

Praktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07

Praktische Informatik I Algorithmen und Datenstrukturen Wintersemester 2006/07 6 Hashverfahren zum Namen Hash : engl für zerhacken gestreute Speicherung 61 Grundbegriffe Wir unterstellen ein direkt adressierbares Speichermedium mit einer Menge von Adressen, dem Adressraum Die Datensätze

Mehr

TU 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 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/

Mehr

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

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

Mehr

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Gliederung. 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

Mehr

Mehrwegbäume Motivation

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

Mehr

Kapitel 5 Hash-basierte Indizes

Kapitel 5 Hash-basierte Indizes Kapitel 5 Hash-basierte Indizes Überblick Statisches Hashing Extendible Hashing Linear Hashing 1 Architektur und Implementierung von Datenbanksystemen WS 009/10 Melanie Herschel Universität Tübingen Hash-basierte

Mehr

ADS: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen ADS: Algorithmen und Datenstrukturen Teil XI Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 20.

Mehr

4. Hashverfahren. geg.: Wertebereich D, Schlüsselmenge S = {s 1,..., s n } D. Menge A von Speicheradressen; oft: A = {0,..., m 1}

4. 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

Mehr

Programmiertechnik II

Programmiertechnik II Programmiertechnik II Hash-Tabellen Überblick Hashfunktionen: Abbildung von Schlüsseln auf Zahlen Hashwert: Wert der Hashfunktion Hashtabelle: Symboltabelle, die mit Hashwerten indiziert ist Kollision:

Mehr

Kapitel 9: Physische Datenorganisation

Kapitel 9: Physische Datenorganisation Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2006/2007 Kapitel 9: Physische Datenorganisation Vorlesung:

Mehr

EADS 3.3 Gewichtsbalancierte Bäume 95/598 ľernst W. Mayr

EADS 3.3 Gewichtsbalancierte Bäume 95/598 ľernst W. Mayr 3.3 Gewichtsbalancierte Bäume Siehe zu diesem Thema Seite 189ff in Kurt Mehlhorn: Data structures and algorithms 1: Sorting and searching, EATCS Monographs on Theoretical Computer Science, Springer Verlag:

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Kollision Hashfunktion Verkettung Offenes Hashing Perfektes Hashing Universelles Hashing Dynamisches Hashing. 4. Hashverfahren

Kollision 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

Mehr

Algorithmen und Datenstrukturen Hashverfahren

Algorithmen und Datenstrukturen Hashverfahren Algorithmen und Datenstrukturen Hashverfahren Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Prinzip Details Anwendungen Motivation Hashverfahren

Mehr

Datenstrukturen. Dortmund, Oktober 1998

Datenstrukturen. Dortmund, Oktober 1998 Datenstrukturen Dortmund, Oktober 1998 Prof. Dr. Heinz-Michael Winkels, Fachbereich Wirtschaft FH Dortmund Emil-Figge-Str. 44, D44227-Dortmund, TEL.: (0231)755-4966, FAX: (0231)755-4902 1 Inhalt Seite

Mehr

Physische Datenorganisat

Physische 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

Mehr

Physische Datenorganisat

Physische 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

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

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

Mehr

Hashing Hashfunktionen Kollisionen Ausblick. Hashverfahren. Dank an: Beate Bollig, TU Dortmund! 1/42. Hashverfahren

Hashing Hashfunktionen Kollisionen Ausblick. Hashverfahren. Dank an: Beate Bollig, TU Dortmund! 1/42. Hashverfahren Dank an: Beate Bollig, TU Dortmund! 1/42 Hashing Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion mit Verkettung der Überläufer Offene Universelles Hashing 2/42

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 Hashverfahren: Verkettung der Überläufer) Prof. Dr. Susanne Albers Möglichkeiten der Kollisionsbehandlung Kollisionsbehandlung: Die Behandlung

Mehr

Baumbasierte Strukturen

Baumbasierte 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

Mehr

P ( Mindestens zwei Personen haben am gleichen Tag Geb. ) (1) = 1 P ( Alle Personen haben an verschiedenen Tagen Geb. ) (2)

P ( Mindestens zwei Personen haben am gleichen Tag Geb. ) (1) = 1 P ( Alle Personen haben an verschiedenen Tagen Geb. ) (2) 1 Hashing Einleitung Eine sehr naive Herangehensweise zur Implementierung eines Wörterbuchs ist die Benutzung eines hinreichend grossen unsortierten Arrays, in dem jeweils an eine freie Position eingefügt

Mehr

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

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

Mehr

Satz 23 In einer Hashtabelle der Größe n mit m Objekten tritt mit Wahrscheinlichkeit

Satz 23 In einer Hashtabelle der Größe n mit m Objekten tritt mit Wahrscheinlichkeit Satz 23 In einer Hashtabelle der Größe n mit m Objekten tritt mit Wahrscheinlichkeit 1 e m(m 1) 2n 1 e m2 2n mindestens eine Kollision auf, wenn für jeden Schlüssel jede Hashposition gleich wahrscheinlich

Mehr

Indexstrukturen in Datenbanken

Indexstrukturen 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

Mehr

Indexe in Dateien. Thomas Behr. 19.November c 2015 FernUniversität in Hagen

Indexe 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

Mehr

Dynamische Datenstrukturen

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

Mehr

Hashing. Überblick Aufgabe Realisierung

Hashing. Überblick Aufgabe Realisierung Überblick Aufgabe Realisierung Aufgabe Realisierung Anforderungen Wahl einer Hashfunktion it Verkettung der Überläufer Offene Universelles 2/33 Überblick Aufgabe Realisierung Aufgabe Dynaische Verwaltung

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2009 1. Vorlesung Uwe Quasthoff Universität Leipzig Institut für Informatik quasthoff@informatik.uni-leipzig.de Zur Vorlesung allgemein Vorlesungsumfang:

Mehr

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2 Hashorganisation HASHORGANISATION Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 982, Kapitel 2.2 Die Sätze der Datei werden auf eine Menge von Buckets aufgeteilt. Jedes Bucket

Mehr

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen

6/23/06. Universelles Hashing. Nutzen des Universellen Hashing. Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen Universelles Hashing Problem: h fest gewählt es gibt ein S U mit vielen Kollisionen wir können nicht annehmen, daß die Keys gleichverteilt im Universum liegen (z.b. Identifier im Programm) könnte also

Mehr

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Dateiorganisation 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

Mehr

Informatik II: Algorithmen und Datenstrukturen SS 2015

Informatik 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

Mehr

7. Hash-basierte Zugriffspfade

7. Hash-basierte Zugriffspfade 7. Hash-basierte Zugriffsfade Gestreute Seicherungsstrukturen (Hash-Verfahren) Ziele - Nutzung der Schlüsseltransformation als Entwurfsrinzi für Zugriffsfade auf die Sätze einer Tabelle bei denen ein Suchkriterium

Mehr

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min

Klausur Algorithmen und Datenstrukturen SS August Arbeitszeit 90 min TU Ilmenau, Fakultät für Informatik und Automatisierung FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. M. Dietzfelbinger, Dipl.-Ing. C. Mattern Klausur Algorithmen und Datenstrukturen

Mehr

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.

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

Mehr

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-4. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-09 Überblick 1 Verkettete Listen 2 Unbeschränkte Felder 3 Amortisierte Laufzeitanalyse

Mehr

Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n)

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

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

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

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. 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

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

Teil 1: Suchen. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Suchen 1-1

Teil 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

Kapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 )

Kapitel 4. Streuen. (h K injektiv) k 1 k 2 K = h(k 1 ) h(k 2 ) Kapitel 4 Streuen Wir behandeln nun Ipleentationen ungeordneter Wörterbücher, in denen die Schlüssel ohne Beachtung ihrer Sortierreihenfolge gespeichert werden dürfen, verlangen aber, dass es sich bei

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 8 (13.5.2016) Hashtabellen I Algorithmen und Komplexität Dictionary mit sortiertem Array Laufzeiten: create: O(1) insert: O(n) find: O(log

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

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

Mehr

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

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

Mehr

Datenbanksysteme II Indexstrukturen Felix Naumann

Datenbanksysteme 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)

Mehr

Überblick. 2. Eindimensionale Zugriffsstrukturen. Bäume. Anforderungen

Überblick. 2. Eindimensionale Zugriffsstrukturen. Bäume. Anforderungen 2. Eindimensionale Zugriffsstrukturen Überblick Anforderungen eindimensionale Zugriffsstrukturen: B + - Bäume und Varianten erweitertes Splitting Schlüsselkomprimierung Hash-Verfahren statische Verfahren

Mehr

Kapitel 9: Physische Datenorganisation

Kapitel 9: Physische Datenorganisation Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 2008/2009 Kapitel 9: Physische Datenorganisation Vorlesung:

Mehr

Was ist ein assoziativer Speicher?

Was ist ein assoziativer Speicher? Überblick 17. Datenstrukturen 17.1 Einleitung 17.2 Listen 17.3 Assoziative Speicher 17.4 Bäume 17.5 Mengen 17.6 Das Collections-Framework in Java 17.7 Zusammenfassung 17 Datenstrukturen 3 Assoziative Speicher

Mehr

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

12. 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

Mehr

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS

Suchstrukturen. Ü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

Mehr

Datenbanksysteme SS 2013

Datenbanksysteme 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

Mehr

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03.

Informationssysteme SS 2013 Lösungsvorschläge zu Übungsblatt 2. Übungsblatt 2. Für die Übungen in der Woche vom 29. April bis 03. Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Fachbereich Informatik Technische Universität Kaiserslautern Übungsblatt 2 Für die Übungen in der Woche vom 29. April bis 03. Mai 2013 Aufgabe

Mehr

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume

Mehr

Logische Datenstrukturen

Logische Datenstrukturen Lineare Listen Stapel, Warteschlangen Binärbäume Seite 1 Lineare Liste Begriffe first Funktion: sequentielle Verkettung von Datensätzen Ordnungsprinzip: Schlüssel Begriffe: first - Anker, Wurzel; Adresse

Mehr