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, SS 12Kapitel 9: Datenorganisation2 Lernziele Speicherhierarchie Hintergrundspeicher / RAID Organisation von B-Bäumen, B+ Bäumen.. Hashing Organisation von mehrdimensionalen Datenstrukturen

3 Datenbanken, SS 12Kapitel 9: Datenorganisation3 Lesen von Daten von der Festplatte 1. Seek Time: Arm positionieren auf entsprechende Spur 5ms 2. Latenzzeit: ½ Plattenumdrehung (im Durchschnitt) Rotation der Platte bis Kopf über zu lesender/schreibender Stelle steht Umdrehungen / Minute Ca 3ms 3. Lesezeit: Lesen des Blocks 4. Transfer von der Platte zum Hauptspeicher 100 Mb /s 15 MB/s

4 Datenbanken, SS 12Kapitel 9: Datenorganisation4 Random versus Chained IO 1000 Blöcke à 4KB sind zu lesen Random I/O: jedesmal zum Pluto fliegen Jedesmal Arm positionieren Jedesmal Latenzzeit 1000 * (5 ms + 3 ms) + Transferzeit von 4 MB > 8000 ms + 300ms 8s Chained IO: Rakete zum Pluto soll möglichst voll beladen sein Einmal positionieren, dann von der Platte kratzen 5 ms + 3ms + Transferzeit von 4 MB 8ms ms 1/3 s Also ist Chained IO ein bis zwei Größenordnungen schneller als Random IO in Datenbank-Algorithmen unbedingt beachten !

5 Datenbanken, SS 12Kapitel 9: Datenorganisation5 Zugriff: Physikalische Speicherung der Daten 123HeaderMeyer Müller129 Datenbank-Seite (32-64 Kb)... Schneider Slot-Array -- Forwarding-RID Extent Table Cache

6 Datenbanken, SS 12Kapitel 9: Datenorganisation6 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

7 Datenbanken, SS 12Kapitel 9: Datenorganisation7 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

8 Datenbanken, SS 12Kapitel 9: Datenorganisation8

9 Datenbanken, SS 12Kapitel 9: Datenorganisation9 S.. Suchschlüssel D.. Weitere Daten V.. Verweise (SeitenNr)

10 Datenbanken, SS 12Kapitel 9: Datenorganisation10

11 Datenbanken, SS 12Kapitel 9: Datenorganisation11 Einfügen eines neuen Objekts (Datensatz) in einen B-Baum

12 Datenbanken, SS 12Kapitel 9: Datenorganisation12 Sukzessiver Aufbau eines B-Baums vom Grad k=

13 Datenbanken, SS 12Kapitel 9: Datenorganisation13 Sukzessiver Aufbau eines B-Baums vom Grad k=

14 Datenbanken, SS 12Kapitel 9: Datenorganisation14 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

15 Datenbanken, SS 12Kapitel 9: Datenorganisation15 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

16 Datenbanken, SS 12Kapitel 9: Datenorganisation16 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10

17 Datenbanken, SS 12Kapitel 9: Datenorganisation17 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10

18 Datenbanken, SS 12Kapitel 9: Datenorganisation18 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

19 Datenbanken, SS 12Kapitel 9: Datenorganisation19 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

20 Datenbanken, SS 12Kapitel 9: Datenorganisation20 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

21 Datenbanken, SS 12Kapitel 9: Datenorganisation21 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 1

22 Datenbanken, SS 12Kapitel 9: Datenorganisation22 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 2

23 Datenbanken, SS 12Kapitel 9: Datenorganisation23 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

24 Datenbanken, SS 12Kapitel 9: Datenorganisation24 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

25 Datenbanken, SS 12Kapitel 9: Datenorganisation25 Sukzessiver Aufbau eines B-Baums vom Grad k= ? 10 4

26 Datenbanken, SS 12Kapitel 9: Datenorganisation26 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

27 Datenbanken, SS 12Kapitel 9: Datenorganisation27 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

28 Datenbanken, SS 12Kapitel 9: Datenorganisation28 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

29 Datenbanken, SS 12Kapitel 9: Datenorganisation29 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

30 Datenbanken, SS 12Kapitel 9: Datenorganisation30 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

31 Datenbanken, SS 12Kapitel 9: Datenorganisation31 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

32 Datenbanken, SS 12Kapitel 9: Datenorganisation32 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

33 Datenbanken, SS 12Kapitel 9: Datenorganisation33 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

34 Datenbanken, SS 12Kapitel 9: Datenorganisation34 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

35 Datenbanken, SS 12Kapitel 9: Datenorganisation35 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

36 Datenbanken, SS 12Kapitel 9: Datenorganisation36 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

37 Datenbanken, SS 12Kapitel 9: Datenorganisation37 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

38 Datenbanken, SS 12Kapitel 9: Datenorganisation38 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

39 Datenbanken, SS 12Kapitel 9: Datenorganisation39 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

40 Datenbanken, SS 12Kapitel 9: Datenorganisation40 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

41 Datenbanken, SS 12Kapitel 9: Datenorganisation41 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

42 Datenbanken, SS 12Kapitel 9: Datenorganisation42 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

43 Datenbanken, SS 12Kapitel 9: Datenorganisation43 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

44 Datenbanken, SS 12Kapitel 9: Datenorganisation44 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

45 Datenbanken, SS 12Kapitel 9: Datenorganisation45 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

46 Datenbanken, SS 12Kapitel 9: Datenorganisation46 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

47 Datenbanken, SS 12Kapitel 9: Datenorganisation47 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

48 Datenbanken, SS 12Kapitel 9: Datenorganisation48 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

49 Datenbanken, SS 12Kapitel 9: Datenorganisation49 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

50 Datenbanken, SS 12Kapitel 9: Datenorganisation50 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

51 Datenbanken, SS 12Kapitel 9: Datenorganisation51 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

52 Datenbanken, SS 12Kapitel 9: Datenorganisation52 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

53 Datenbanken, SS 12Kapitel 9: Datenorganisation53 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

54 Datenbanken, SS 12Kapitel 9: Datenorganisation54 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

55 Datenbanken, SS 12Kapitel 9: Datenorganisation55 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

56 Datenbanken, SS 12Kapitel 9: Datenorganisation56 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

57 Datenbanken, SS 12Kapitel 9: Datenorganisation57 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

58 Datenbanken, SS 12Kapitel 9: Datenorganisation58 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

59 Datenbanken, SS 12Kapitel 9: Datenorganisation59 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

60 Datenbanken, SS 12Kapitel 9: Datenorganisation60 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

61 Datenbanken, SS 12Kapitel 9: Datenorganisation61 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

62 Datenbanken, SS 12Kapitel 9: Datenorganisation62 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

63 Datenbanken, SS 12Kapitel 9: Datenorganisation63 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

64 Datenbanken, SS 12Kapitel 9: Datenorganisation64 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

65 Datenbanken, SS 12Kapitel 9: Datenorganisation65 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

66 Datenbanken, SS 12Kapitel 9: Datenorganisation66 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

67 Datenbanken, SS 12Kapitel 9: Datenorganisation67 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

68 Datenbanken, SS 12Kapitel 9: Datenorganisation68 Sukzessiver Aufbau eines B-Baums vom Grad k= ? B-Baum mit Minimaler Speicherplatz- ausnutzung

69 Datenbanken, SS 12Kapitel 9: Datenorganisation69 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

70 Datenbanken, SS 12Kapitel 9: Datenorganisation70 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

71 Datenbanken, SS 12Kapitel 9: Datenorganisation71 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

72 Datenbanken, SS 12Kapitel 9: Datenorganisation72 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Unterlauf

73 Datenbanken, SS 12Kapitel 9: Datenorganisation73 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Unterlauf

74 Datenbanken, SS 12Kapitel 9: Datenorganisation74 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

75 Datenbanken, SS 12Kapitel 9: Datenorganisation75 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

76 Datenbanken, SS 12Kapitel 9: Datenorganisation76 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Unterlauf

77 Datenbanken, SS 12Kapitel 9: Datenorganisation77 Sukzessiver Aufbau eines B-Baums vom Grad k= ? merge

78 Datenbanken, SS 12Kapitel 9: Datenorganisation78 Sukzessiver Aufbau eines B-Baums vom Grad k= ? merge

79 Datenbanken, SS 12Kapitel 9: Datenorganisation79 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Unterlauf

80 Datenbanken, SS 12Kapitel 9: Datenorganisation80 Sukzessiver Aufbau eines B-Baums vom Grad k= ? merge

81 Datenbanken, SS 12Kapitel 9: Datenorganisation81 Sukzessiver Aufbau eines B-Baums vom Grad k= ? merge

82 Datenbanken, SS 12Kapitel 9: Datenorganisation82 Sukzessiver Aufbau eines B-Baums vom Grad k= ?

83 Datenbanken, SS 12Kapitel 9: Datenorganisation83 Sukzessiver Aufbau eines B-Baums vom Grad k= ? Schrumpfung, Freie Knoten

84 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, SS 12Kapitel 9: Datenorganisation84

85 Datenbanken, SS 12Kapitel 9: Datenorganisation85 B + -Baum Referenz- schlüssel Such- schlüssel

86 Datenbanken, SS 12Kapitel 9: Datenorganisation86

87 Datenbanken, SS 12Kapitel 9: Datenorganisation87

88 Datenbanken, SS 12Kapitel 9: Datenorganisation88 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

89 Datenbanken, SS 12Kapitel 9: Datenorganisation89 Hashing Abbildung h: D [0..m-1], genannt Hash-Funktion, von Schlüsseln x1,..., xn aus Domain D (z.B. Strings) auf Positionen h(x1),..., h(xn) in Array a[0..m-1], genannt Hash-Tabelle (mit n < m) Speicherung von Schlüssel xi in a[h(xi)] Anforderungen an h: sehr effiziente Berechenbarkeit zufällige Streuung (Randomisierung) von x1,..., xn auf [0..m-1] Urbilder von j1, j2 [0..m-1] annähernd gleich groß für alle j1, j2 und alle möglichen x1,..., xn für geordnete Schlüssel x1 < x2 <... < xn sollte die Ordnung von h(x1), h(x2),..., h(xn) eine zufällige Permutation sein Beispiele für brauchbare Hash-Funktionen h(x) = (ax + b) mod m für Integers x mit Konstanten a, b h(x) = (mittlere k Ziffern von x2) mod m für k-stellige Integers x h(x) = (ord(c1)+...+ord(ck)) mod m für Strings c1c2...ck k mit ord: S [1..| |]

90 Datenbanken, SS 12Kapitel 9: Datenorganisation90 Statisches Hashing

91 Datenbanken, SS 12Kapitel 9: Datenorganisation91

92 Datenbanken, SS 12Kapitel 9: Datenorganisation92

93 Datenbanken, SS 12Kapitel 9: Datenorganisation93 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 = )

94 Datenbanken, SS 12Kapitel 9: Datenorganisation94

95 Datenbanken, SS 12Kapitel 9: Datenorganisation

96 Datenbanken, SS 12Kapitel 9: Datenorganisation

97 Datenbanken, SS 12Kapitel 9: Datenorganisation97 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

98 Datenbanken, SS 12Kapitel 9: Datenorganisation98 Objektballung / Clustering clustered key PersNr / gelesenVon 2125NameRang… SokratesC4… TitelVorlNr… Ethik5041… 2126NameRang… RusselC4… ……….… Professoren PersNrNameRangRaum 2125SokratesC RusselC4232 ………… Vorlesungen VorlNrTitelSWSgelesenV on 5001Grundzüge Ethik Erkenntnistheorie32126 …………

99 Datenbanken, SS 12Kapitel 9: Datenorganisation99

100 Datenbanken, SS 12Kapitel 9: Datenorganisation100 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 );

101 Datenbanken, SS 12Kapitel 9: Datenorganisation101 Oracle Clusters: Beispiel CREATE CLUSTER ProfessorenVorlesungen (PersNo NUMBER) HASH IS PersNo HASHKEYS 150; CREATE TABLE Vorlesungen (GelesenVon NUMBER,... ) CLUSTER ProfessorenVorlesungen (GelesenVon);


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

Ähnliche Präsentationen


Google-Anzeigen