Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation.

Ähnliche Präsentationen


Präsentation zum Thema: "Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation."—  Präsentation transkript:

1 Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation

2 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

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/12Kapitel 10: Datenorganisation3

4 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

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/12Kapitel 10: Datenorganisation5

6 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

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)

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;imax) 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

9 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

10 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

87 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

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

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

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

91 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

92 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

93 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

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

95 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 = )

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

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

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

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

100 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

101 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 );

102 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);

103 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


Herunterladen ppt "Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation."

Ähnliche Präsentationen


Google-Anzeigen