1.03k likes | 1.17k Views
Kapitel 10. Physische Datenorganisation. 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
E N D
Kapitel 10 Physische Datenorganisation
Lernziele • Indexe • Wie sie funktionieren (B+ Bäumen, Hashing) • Was sie bringen • Wie man das misst • Organisation von mehrdimensionalen Datenstrukturen Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
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/12 Kapitel 10: Datenorganisation
Wie schnell ist meine Suche? • Es gibt 2 Methoden die Geschwindigkeit eines Algorithmus zu messen: • 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, Hardwareweiterer Nachteil: Es kann nur eine Aussage zu genau dieser Konfiguration getroffen werden • Mathematische Laufzeitanalyse: Dabei wird untersucht wie der Algorithmus selbst sich verhältNachteil: 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/12 Kapitel 10: Datenorganisation
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/12 Kapitel 10: Datenorganisation
Beispiel • f(n) = 8n³ + n² + 76 ist O(n³) wegen f(n) < 85n³ für alle n > 1 • Graphische Bedeutung: • O-Notation betont die dominante Größe im Wachstum Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
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/12 Kapitel 10: Datenorganisation
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/12 Kapitel 10: Datenorganisation
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 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 Worst-Case-Suchzeit für n Schlüssel: O(n) bei geeigneten Rebalancierungsalgorithmen (AVL-Bäume, Rot-Schwarz-Bäume, usw.): O(log n) Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Beispiel für einen binären Suchbaum London, Paris, Madrid, Kopenhagen, Lissabon, Zürich, Frankfurt, Wien, Amsterdam, Florenz London Kopenhagen Paris Frankfurt Lissabon Madrid Zürich Amsterdam Wien Florenz Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
S.. Suchschlüssel D.. Weitere Daten V.. Verweise (SeitenNr) Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Einfügen eines neuen Objekts (Datensatz) in einen B-Baum Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 7 10 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 3 7 10 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 ? 3 7 10 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 ? 3 7 10 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 10 ? 3 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 10 ? 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 1 10 ? 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 1 10 ? 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 10 ? 1 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 10 ? 1 1 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 10 ? 1 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 10 ? 2 1 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 2 10 ? 2 1 2 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 10 ? 1 2 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 10 ? 4 1 2 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 10 ? 4 1 2 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 10 ? 4 1 2 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 4 3 10 ? 4 1 2 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 3 10 ? 1 2 13 19 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 11 3 10 ? 1 2 13 19 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 3 10 ? 1 2 11 13 19 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 21 3 10 ? 1 2 11 13 19 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 21 3 10 ? 1 2 11 13 19 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 3 10 ? 1 2 11 13 19 21 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 3 10 ? 1 2 11 13 19 21 12 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 3 10 ? 1 2 11 13 19 21 12 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 3 10 ? 1 2 11 13 19 21 12 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 3 10 13 ? 1 2 11 13 19 21 12 4 7 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 3 10 13 ? 1 2 11 19 21 4 7 11 12 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 3 10 13 ? 1 2 19 21 4 7 11 12 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 14 3 10 13 ? 1 2 19 21 4 7 11 12 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 14 3 10 13 ? 1 2 14 19 21 4 7 11 12 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 15 3 10 13 ? 1 2 14 19 21 4 7 11 12 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 20 3 10 13 ? 1 2 14 15 19 21 4 7 11 12 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 20 3 10 13 ? 20 1 2 14 15 19 21 4 7 11 12 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation
Sukzessiver Aufbau eines B-Baums vom Grad k=2 20 3 10 13 ? 20 1 2 14 15 19 21 4 7 11 12 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation