Algorithmen und Datenstrukturen 1

Ähnliche Dokumente
ADS: Algorithmen und Datenstrukturen

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

Mehrwegbäume Motivation

Algorithmen und Datenstrukturen 1

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

Organisationsformen der Speicherstrukturen

Algorithmen und Datenstrukturen 1

Dynamische Datenstrukturen

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

Datenbanken: Indexe. Motivation und Konzepte

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik.

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Baum-Indexverfahren. Einführung

Algorithmen und Datenstrukturen 1

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Suchbäume mit inneren Knoten verschiedener Knotengrade.

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

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

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.

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Randomisierte Datenstrukturen

Vorlesung Datenstrukturen

Satz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).

ADS: Algorithmen und Datenstrukturen

Nachtrag zu binären Suchbäumen (nicht (nur) AVL Bäumen: Löschen von Elementen in binären Suchbäumen. 1. Fall: zu löschendes Element ist Blatt: löschen

Datenstrukturen und Algorithmen

ADS 1: Algorithmen und Datenstrukturen

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Algorithmen und Datenstrukturen

ContainerDatenstrukturen. Große Übung 4

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

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

Datenbanken. Interne Datenorganisation:

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:

Suchen in linearen Feldern. Datenstrukturen & Algorithmen. Laufzeitverhalten der Suchverfahren. Anzahl der Vergleiche für 10 9 Elemente

Datenstrukturen & Algorithmen

Ziel: Schaffung einer zusätzlichen, schnellen Zugriffsmöglichkeit unabhängig von Primärorganisation der Datei

Logische Datenstrukturen

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

Kapitel Andere dynamische Datenstrukturen

Nachtrag zu binären Suchbäumen

Mehrdimensionale Zugriffspfade und Dateiorganisation

7 Weitere Baumstrukturen und Heapstrukturen

Hash-Verfahren. Einführung

NAME, VORNAME: Studiennummer: Matrikel:

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

Bäume, Suchbäume und Hash-Tabellen

3.2. Divide-and-Conquer-Methoden

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Vorlesung Datenstrukturen

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume B-Bäume Digitale Suchbäume

Transkript:

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 (Arrays, Listen, Binärbäume) und Algorithmen waren auf im Hauptspeicher vorliegende Daten ausgerichtet effiziente Suchverfahren für große Datenmengen auf Externspeicher erforderlich (persistente Speicherung) große Datenmengen können nicht vollständig in Hauptspeicher- Datenstrukturen abgebildet werden Zugriffsgranulat sind Seiten bzw. Blöcke von Magnetplatten: z.b. 4-16 KB Zugriffskosten 5 Größenordnungen langsamer als für Hauptspeicher (5 ms vs. 50 ns) Institut für Informatik Algorithmen und Datenstrukturen I 2

Sequentieller Dateizugriff Sequentielle Dateiorganisation - Datei besteht aus Folge gleichartiger Datensätze - Datensätze sind auf Seiten/Blöcken gespeichert - ggf. bestimmte Sortierreihenfolge (bzgl. eines Schlüssels) bei der Speicherung der Sätze (sortiert-sequenzielle Speicherung) Sequenzieller Zugriff - Lesen aller Seiten / Sätze vom Beginn der Datei an - sehr hohe Zugriffskosten, v.a. wenn nur ein Satz benötigt wird Optimierungsmöglichkeiten - "dichtes Packen" der Sätze innerhalb der Seiten (hohe Belegungsdichte) - Clusterung zwischen Seiten, d.h. "dichtes Packen" der Seiten einer Datei auf physisch benachbarte Plattenbereiche, um geringe Zugriffszeiten zu ermöglichen Schneller Zugriff auf einzelne Datensätze erfordert Einsatz von zusätzlichen Indexstrukturen, z.b. Mehrwegbäume Alternative: gestreute Speicherung der Sätze (-> Hashing) Institut für Informatik Algorithmen und Datenstrukturen I 3

Dichtbesetzter vs. dünnbesetzter Index I Dichtbesetzter Index (dense index) - für jeden Datensatz existiert ein Eintrag in Indexdatei - höherer Indexaufwand als bei dünnbesetztem Index - breiter anwendbar, u.a. auch bei unsortierter Speicherung der Sätze - einige Auswertungen auf Index möglich, ohne Zugriff auf Datensätze (Existenztest, Häufigkeitsanfragen, Min/Max-Bestimmung) Anwendungsbeispiel - 1 Million Sätze, B=20, 200 Indexeinträge pro Seite - Dateigröße: - Indexgröße: - mittlere Zugriffskosten: Institut für Informatik Algorithmen und Datenstrukturen I 4

Dichtbesetzter vs. dünnbesetzter Index II Dünnbesetzter Index (sparse index) - nicht für jeden Schlüsselwert ex. Eintrag im Index - sinnvoll v.a. bei Clusterung gemäß Sortierreihenfolge des Indexattributes: ein Indexeintrag pro Datenseite indexsequentielle Datei (ISAM): sortiertesequentielle Datei mit dünnbesetztem Index für Sortierschlüssel Anwendungsbeispiel - 1 Million Sätze, B=20, 2 Indexeinträge pro Seite - Dateigröße: - Indexgröße: - mittlere Zugriffskosten: Mehrstufiger Index - Indexdatei entspricht sortiert sequentieller Datei -> kann selbst wieder indexiert werden - auf höheren Stufen kommt nur dünnbesetzte Indexierung in Betracht - beste Umsetzung im Rahmen von Mehrwegbäumen (B-/B*-Bäume) Institut für Informatik Algorithmen und Datenstrukturen I 5

Mehrwegbäume Ausgangspunkt: Binäre Suchbäume (balanciert) - entwickelt für Hauptspeicher - ungeeignet für große Datenmengen Externspeicherzugriffe erfolgen auf Seiten - Abbildung von Schlüsselwerten/Sätzen auf Seiten - Index-Datenstruktur für schnelle Suche Alternativen: - m-wege-suchbäume - B-Bäume - B*-Bäume Grundoperationen: Suchen, Einfügen, Löschen Kostenanalyse im Hinblick auf Externspeicherzugriffe Institut für Informatik Algorithmen und Datenstrukturen I 6

m-wege-suchbäume I Def.: Ein m-wege-suchbaum oder ein m-ärer Suchbaum B ist ein Baum, in dem alle Knoten einen Grad m besitzen. Entweder ist B leer oder er hat folgende Eigenschaften: (1) Jeder Knoten des Baums mit b Einträgen, b m-1, hat folgende Struktur: Die P i, 0 i b, sind Zeiger auf die Unterbäume des Knotens und die K i und D i, 1 i b sind Schlüsselwerte und Daten. (2) Die Schlüsselwerte im Knoten sind aufsteigend geordnet: K i K i+1, 1 i < b. (3) Alle Schlüsselwerte im Unterbaum von P i sind kleiner als der Schlüsselwert K i+1, 0 i < b. (4) Alle Schlüsselwerte im Unterbaum von P b sind größer als der Schlüsselwert K b. (5) Die Unterbäume von P i, 0 i b sind auch m-wege-suchbäume. Die D i können Daten oder Zeiger auf die Daten repräsentieren - direkter Index: eingebettete Daten (weniger Einträge pro Knoten; kleineres m) - indirekter Index: nur Verweise; erfordert separaten Zugriff auf Daten zu dem Schlüssel Institut für Informatik Algorithmen und Datenstrukturen I 7

m-wege-suchbäume II Beispiel: Aufbau eines m-wege-suchbaumes (m = 4) 30 50 80 30 50 70 10 15 60 90 30 50 80 10 15 20 35 60 90 95 5 25 1 Beobachtungen - Die Schlüssel in den inneren Knoten besitzen zwei Funktionen. Sie identifizieren Daten(sätze) und sie dienen als Wegweiser in der Baumstruktur - Der m-wege-suchbaum ist im allgemeinen nicht ausgeglichen Institut für Informatik Algorithmen und Datenstrukturen I 8

m-wege-suchbäume III Wichtige Eigenschaften für alle Mehrwegbäume: S(P i ) sei die Seite, auf die P i zeigt, und K(P i ) sei die Menge aller Schlüssel, die im Unterbaum mit Wurzel S(P i ) gespeichert werden können. Dann gelten folgende Ungleichungen: (1) x K(P O ): x < K 1 (2) x K(P i ): K i < x < K i+1 für i = 1, 2,..., b-1 (3) x K(P b ): K b < x Kostenanalyse - Die Anzahl der Knoten N in einem vollständigen Baum der Höhe h, h 1, ist - Im ungünstigsten Fall ist der Baum völlig entartet: n = N = h - Schranken für die Höhe eines m-wege-suchbaums: log m (n+1) h n Institut für Informatik Algorithmen und Datenstrukturen I 9

Mehrwegbäume I Ziel: Aufbau sehr breiter Bäume von geringer Höhe - in Bezug auf Knotenstruktur vollständig ausgeglichen - effiziente Grundoperationen auf Seiten (= Transporteinheit zum Externspeicher) - Zugriffsverhalten weitgehend unabhängig von Anzahl der Sätze - Einsatz als Zugriffs-/Indexstruktur für 10 als auch für 10 10 Sätze Grundoperationen: - direkter Schlüsselzugriff auf einen Satz - sortiert sequentieller Zugriff auf alle Sätze - Einfügen eines Satzes; Löschen eines Satzes Institut für Informatik Algorithmen und Datenstrukturen I 10

Mehrwegbäume II Varianten - ISAM-Dateistruktur (1965; statisch, periodische Reorganisation) - Weiterentwicklungen: B- und B*-Baum - B-Baum: 1970 von R. Bayer und E. McCreight entwickelt dynamische Reorganisation durch Splitten und Mischen von Seiten Breites Spektrum von Anwendungen ("The Ubiquitous B-Tree" ) - Dateiorganisation ("logische Zugriffsmethode", VSAM) - Datenbanksysteme (Varianten des B*-Baumes sind in allen DBS zu finden!) - Text- und Dokumentenorganisation... Institut für Informatik Algorithmen und Datenstrukturen I 11

B-Bäume I Def.: Seien k, h ganze Zahlen, h 0, k > 0. Ein B-Baum B der Klasse τ(k,h) ist entweder ein leerer Baum oder ein geordneter Baum mit folgenden Eigenschaften: 1. Jeder Pfad von der Wurzel zu einem Blatt hat die gleiche Länge h-1. 2. Jeder Knoten außer der Wurzel und den Blättern hat mindestens k+1 Söhne. Die Wurzel ist ein Blatt oder hat mindestens 2 Söhne 3. Jeder Knoten hat höchstens 2k+1 Söhne 4. Jedes Blatt mit der Ausnahme der Wurzel als Blatt hat mindestens k und höchstens 2k Einträge. Für einen B-Baum ergibt sich folgendes Knotenformat: Institut für Informatik Algorithmen und Datenstrukturen I 12

B-Bäume II Einträge - Die Einträge für Schlüssel, Daten und Zeiger haben die festen Längen l b, l K, l D und l p. - Die Knoten- oder Seitengröße sei L. - Maximale Anzahl von Einträgen pro Knoten: Reformulierung der Definition (4) und (3). Eine Seite darf höchstens voll sein. (4) und (2). Jede Seite (außer der Wurzel) muss mindestens halb voll sein. Die Wurzel enthält mindestens einen Schlüssel. (1) Der Baum ist, was die Knotenstruktur angeht, vollständig ausgeglichen Balancierte Struktur: - unabhängig von Schlüsselmenge - unabhängig ihrer Einfügereihenfolge Institut für Informatik Algorithmen und Datenstrukturen I 13

B-Bäume III Beispiel: B-Baum der Klasse τ(2,3) - In jedem Knoten stehen die Schlüssel in aufsteigender Ordnung mit K 1 <K 2 <...< K b - Jeder Schlüssel hat eine Doppelrolle als Identifikator eines Datensatzes und als Wegweiser im Baum -Die Klassen τ(k,h) sind nicht alle disjunkt. Beispielsweise ist ein maximaler Baum aus τ(2,3) ebenso in τ(3,3) und τ(4,3). Höhe h: Bei einem Baum der Klasse τ(k,h) mit n Schlüsseln gilt für seine Höhe: log 2k+1 (n+1) h log k+1 ((n+1)/2)+1 für n 1 und h = 0 für n = 0 Institut für Informatik Algorithmen und Datenstrukturen I 14

Einfügen in B-Bäumen I Was passiert, wenn Wurzel überläuft? Fundamentale Operation: Split-Vorgang 1. Anforderung einer neuen Seite und 2. Aufteilung der Schlüsselmenge nach folgendem Prinzip - mittlere Schlüssel (Median) wird zum Vaterknoten gereicht - Ggf. muß Vaterknoten angelegt werden (Anforderung einer neuen Seite). - Blattüberlauf erzwingt Split-Vorgang, was Einfügung in den Vaterknoten impliziert - Wenn dieser überläuft, folgt erneuter Split-Vorgang - Split-Vorgang der Wurzel führt zu neuer Wurzel: Höhe des Baumes erhöht sich um 1 Institut für Informatik Algorithmen und Datenstrukturen I 15

Einfügen in B-Bäumen II Bei B-Bäumen ist Wachstum von den Blättern zur Wurzel hin gerichtet Einfügealgorithmus (ggf. rekursiv) Suche Einfügeposition: Wenn Platz vorhanden ist, speichere Element, sonst schaffe Platz durch Split-Vorgang und füge ein Split-Vorgang als allgemeines Wartungsprinzip Institut für Informatik Algorithmen und Datenstrukturen I 16

Beispiel: Aufbau eines B-Baumes der Klasse τ(2,h) I 12 48 69 77 48 89 48 12 33 37 45 69 77 83 91 97 12 33 69 77 89 97 33 48 89 2 5 12 37 45 57 69 77 83 90 91 95 97 Institut für Informatik Algorithmen und Datenstrukturen I 17