Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation.

Slides:



Advertisements
Ähnliche Präsentationen
Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Advertisements

Informatik II: Algorithmen und Datenstrukturen SS 2013
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Programmierung 1 - Repetitorium
Polynomial Root Isolation
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Prof. Dr. W. Conen 15. November 2004
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Dr. Brigitte Mathiak Kapitel 9 Physische Datenorganisation (ganz kurz)
3. Kapitel: Komplexität und Komplexitätsklassen
Kapitel 6. Suchverfahren
2. Kapitel: Komplexität und Komplexitätsklassen
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUTE University of Paderborn Algorithms and Complexity Algorithmen und Komplexität Teil 1: Grundlegende.
Algorithmische Geometrie
Christian Schindelhauer
Christian Schindelhauer
Hauptseminar Automaten und Formale Sprachen
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Einführung in die Programmierung
Effiziente Algorithmen
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Einführung in die Programmierung
Diskrete Mathematik II
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Algorithmen und Datenstrukturen Übungsmodul 10
Algorithmen und Datenstrukturen SS 2005
Suchen In Texten Von Adriano Feola & Marc Draschl.
? Laufzeit Speicherbedarf Bubblesort Quicksort Selectionsort Radixsort
Algorithmen und Datenstrukturen Übungsmodul 8
Komplexität von Algorithmen
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
Algorithmen und Datenstrukturen
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
 Präsentation transkript:

Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation2 Lernziele Indexe Wie sie funktionieren (B+ Bäumen, Hashing) Was sie bringen Wie man das misst Organisation von mehrdimensionalen Datenstrukturen

Motivation Datenbanken sind nicht automatisch schnell Um ein bestimmtes Datenelement zu finden muss im Zweifelsfall die gesamte Datenbank durchsucht werden. Im Falle eines Joins vielleicht sogar mehrmals. Der größte bottle neck dabei ist in der Praxis die Festplatte*. Idealerweise kann jedes Datenelement mit nur einem Zugriff gefunden werden. Um das zu realisieren gibt es eine Anzahl von algorithmischen Tricks beispielsweise Indexe und Caching. Wir betrachten hier Indexe, da Caching im Allgemeinen auch ohne Eingriffe gut funktioniert. Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation3

Wie schnell ist meine Suche? Es gibt 2 Methoden die Geschwindigkeit eines Algorithmus zu messen: 1.Benchmarking: Dabei wird eine standardisierte Anfrage auf einem standardisierten System ausgeführt und dabei die Zeit gemessen. Nachteil: Es gibt relativ viele Störfaktoren, z.B. Betriebssystem, Hardware weiterer Nachteil: Es kann nur eine Aussage zu genau dieser Konfiguration getroffen werden 2.Mathematische Laufzeitanalyse: Dabei wird untersucht wie der Algorithmus selbst sich verhält Nachteil: Es gibt in der Realität Störfaktoren, die nicht mit einfließen (z.B. Festplattenzugriffe vs. RAM) Vorteil: Man erhält eine Einschätzung wie gut das System im Extremfall funktioniert (Achtung! Oft zu optimistisch) Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation4

O-Notation Die O-Notation gibt eine Einschätzung der Komplexitätsklasse des Algorithmus. Formal ist es eine Funktion von n Beispiele: O(n), O(n²), O(log n), … n ist dabei die Variable, normalerweise Länge der Eingabe Beispiel: Anzahl der Datenelemente, Länge des Textes, … Die Komplexitätsklasse bezieht sich normalerweise auf die Laufzeit, manchmal auch auf den Speicherbedarf, oder was auch immer knapp ist Definition: f(n) = O(g(n)) gdw. Es existiert K, n0, so dass |f(n)| = K |g(n)| für alle n > n0 Anschauung: Für ausreichend große n wächst g(n) wie f(n) Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation5

Beispiel f(n) = 8n³ + n² + 76 ist O(n³) wegen f(n) 1 Graphische Bedeutung: O-Notation betont die dominante Größe im Wachstum Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation6

Rechenbeispiele 3n² = O(n²) Regel: konstante Faktoren werden auf 1 gesetzt n² + n = O(n²) Regel: Bei f(n) = g(n)+ h(n) und O(g(n))>O(h(n)) gilt f(n) = O(g(n)) Dabei gilt O(1)<O(log n)<O(n)<O(n log n)<O(n)<O(n²) … Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation7

Laufzeitanalyse Man zählt die Anzahl der Schritte in Abhängigkeit von n und unterwirft die der O-Notation. Dabei zählt stets der schlechteste Fall. Beispiel: int max = 0; // 1 Schritt for (int i=0;i<n;i++) // n-mal if (a[i]>max) max=a[i]; // 1 oder 2 Schritte Läuft in 1+n*(1 oder 2) = O(1+2n) = O(2n) = O(n) Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation8

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation9 Einfacher Index: Binäre Suchbaum Schlüssel (mit den ihnen zugeordneten Daten) bilden die Knoten eines binären Baums mit der Invariante: für jeden Knoten t mit Schlüssel t.key und alle Knoten l im linken Teilbaum von t, t.left, und alle Knoten r im rechten Teilbaum von t gilt: l.key t.key r.key Worst-Case-Suchzeit für n Schlüssel: O(n) bei geeigneten Rebalancierungsalgorithmen (AVL-Bäume, Rot-Schwarz-Bäume, usw.): O(log n) Suchen eines Schlüssels k: Traversieren des Pfades von der Wurzel bis zu k bzw. einem Blatt Einfügen eines Schlüssels k: Suchen von k und Anfügen eines neuen Blatts Löschen eines Schlüssel k: Ersetzen von k durch das rechteste Blatt links von k

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation10 Beispiel für einen binären Suchbaum London, Paris, Madrid, Kopenhagen, Lissabon, Zürich, Frankfurt, Wien, Amsterdam, Florenz London Paris Madrid Kopenhagen LissabonZürichFrankfurt WienAmsterdam Florenz

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation11

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation12 S.. Suchschlüssel D.. Weitere Daten V.. Verweise (SeitenNr)

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation13

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation14 Einfügen eines neuen Objekts (Datensatz) in einen B-Baum

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation15 Sukzessiver Aufbau eines B-Baums vom Grad k=

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation16 Sukzessiver Aufbau eines B-Baums vom Grad k=

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation17 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation18 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation19 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation20 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation21 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation22 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation23 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation24 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation25 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 2

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation26 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation27 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation28 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 4

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation29 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation30 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation31 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation32 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation33 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation34 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation35 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation36 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation37 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation38 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation39 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation40 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation41 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation42 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation43 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation44 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation45 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation46 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation47 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation48 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation49 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation50 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation51 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation52 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation53 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation54 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation55 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation56 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation57 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation58 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation59 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation60 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation61 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation62 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation63 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation64 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation65 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation66 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation67 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation68 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation69 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation70 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation71 Sukzessiver Aufbau eines B-Baums vom Grad k= ? B-Baum mit Minimaler Speicherplatz- ausnutzung

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation72 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation73 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation74 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation75 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Unterlauf

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation76 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Unterlauf

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation77 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation78 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation79 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Unterlauf

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation80 Sukzessiver Aufbau eines B-Baums vom Grad k= ? merge

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation81 Sukzessiver Aufbau eines B-Baums vom Grad k= ? merge

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation82 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Unterlauf

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation83 Sukzessiver Aufbau eines B-Baums vom Grad k= ? merge

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation84 Sukzessiver Aufbau eines B-Baums vom Grad k= ? merge

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation85 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation86 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Schrumpfung, Freie Knoten

Die Höhe h ist bei Grad t und n Einträgen Daher dauert die Suche O(log n) Beim Einfügen kommt evtl. ein split dazu O(1) Beim Löschen ein evtl. merge O(1) Alle Operationen dauern O(log n) Allerdings können so nur Zahlen gespeichert werden. B-Baum (Eigenschaften) Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation87

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation88 B + -Baum Referenz- schlüssel Such- schlüssel

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation89

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation90

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation91 Hashing Bäume: log k (n) viele Seitenzugriffe.. Hashing: Fast eindeutige Zuordnung von Datum zu Bucket (Behälter) h: S B -S Schlüssel (in diesem Kontext hier: nicht notwendigerweise Schlüssel im Sinne eines logischen Schema) -B: Nummerierung von n Behältern -Zugriff innerhalb von 1-2 Schritten -Charakteristiken der gesuchten Hash-Funktion Fester vs flexibler Wertebereich Gute Verteilung über den Wertebereich, auch bei schlechter Verteilung der Datencharakteristiken über den Eingabebereich

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation92 Hashing Abbildung h: D [0..m-1], genannt Hash-Funktion, von Schlüsseln x 1,..., x n aus Domain D (z.B. Strings) auf Positionen h(x 1 ),..., h(x n ) in Array a[0..m-1], genannt Hash-Tabelle Speicherung von Schlüssel x i in a[h(x i )] Anforderungen an h: sehr effiziente Berechenbarkeit gute Streuung (Pseudo-Randomisierung) von x 1,..., x n auf [0..m-1] Urbilder von j 1, j 2 [0..m-1] annähernd gleich groß für alle j 1, j 2 und alle möglichen x 1,..., x n für geordnete Schlüssel x 1 < x 2 <... < x n sollte die Ordnung von h(x 1 ), h(x 2 ),..., h(x n ) eine zufällige Permutation sein Pearson hashing Ist eine häufig benutzte Hashfunktion um Nachrichten xi auf 8 Bit abzubilden h=0 for each byte b in xi loop h = T[h xor b]; T ist dabei eine ein Array gefüllt mit einer zufälligen Permutation der Zahlen 0 bis 256

Kollisionsbehandlung Trotz der möglichst gleichen Verteilung, ist es recht wahrscheinlich, dass es zu einer Kollision kommt O(Wurzel n) Um diese aufzufangen, haben die einzelnen Buckets eine Liste von Werten Ist diese Liste voll, wird dynamisch eine neue Liste erstellt, in die dann die zusätzlichen Werte kommen. Damit werden die Buckets zur Verketteten Liste Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation93

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation94 Statisches Hashing

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation95 Hashfunktion für erweiterbares Hashing h: Schlüsselmenge {0,1}* Der Bitstring muss lang genug sein, um alle Objekte auf ihre Buckets abbilden zu können Anfangs wird nur ein (kurzer) Präfix des Hashwertes (Bitstrings) benötigt Wenn die Hashtabelle wächst wird aber sukzessive ein längerer Präfix benötigt Beispiel-Hashfunktion: gespiegelte binäre PersNr h(004) = (4= ) h(006) = (6= ) h(007) = (7 = ) h(013) = (13 = ) h(018) = (18 = ) h(032) = (32 = ) h(048) = (48 = )

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation96

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation97

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation100 SQL: Create Index Grobsyntax: CREATE [UNIQUE] INDEX Indexname ON Tabellenname (Attribut1, Attribut2..) DROP INDEX Indexname Primary Key hat immer einen Index (muss nicht explizit indexiert werden).. Oracle: default-Indextyp ist ein B+ Baum Beispiele: CREATE INDEX Studenten_idx1 ON Studenten(Semester) DROP INDEX Studenten_idx1

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation101 Oracle Clusters und Indexierung Mit einem B+ Baum: CREATE CLUSTER cluster name ( attribute type,... ); CREATE INDEX index name ON cluster name; CREATE TABLE table name ( usual parameters) CLUSTER cluster name ( attribute name ); Mit Hashing: CREATE CLUSTER cluster name ( attribute type,... ) [HASH IS hashfunktion] HASHKEYS anzahl; CREATE TABLE table name ( usual parameters) CLUSTER cluster name ( attribute name );

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation102 Oracle Clusters: Beispiel CREATE CLUSTER ProfessorenVorlesungen (PersNo NUMBER) HASH IS PersNo HASHKEYS 150; CREATE TABLE Vorlesungen (GelesenVon NUMBER,... ) CLUSTER ProfessorenVorlesungen (GelesenVon);

Fazit Indexe beschleunigen die Zugriffszeiten auf große Datenmengen Nachteil ist der zusätzlich benötigte Speicherplatz B-Bäume sind optimal geeignet für Bereichsabfragen … WHERE value > 465 Und verbrauchen recht wenig Extraspeicher. Hashing ist optimal geeignet für Einzelwertabfragen … WHERE value = 465 Sie verdoppeln für den Speicherverbrauch in etwa. Primary Keys werden in dem meisten DBs automatisch mit Index versehen. Mit welchem? Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation103