1 / 103

Kapitel 10

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

Télécharger la présentation

Kapitel 10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kapitel 10 Physische Datenorganisation

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

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

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

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

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

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

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

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

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

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

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

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

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

  15. Sukzessiver Aufbau eines B-Baums vom Grad k=2 7 10 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation

  16. Sukzessiver Aufbau eines B-Baums vom Grad k=2 3 7 10 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation

  17. Sukzessiver Aufbau eines B-Baums vom Grad k=2 ? 3 7 10 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation

  18. Sukzessiver Aufbau eines B-Baums vom Grad k=2 ? 3 7 10 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation

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

  20. Sukzessiver Aufbau eines B-Baums vom Grad k=2 10 ? 3 7 13 19 Datenbanken für Mathematiker, WS 11/12 Kapitel 10: Datenorganisation

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

More Related