Präsentation herunterladen
1
Physische Datenorganisation
Kapitel 10 Physische Datenorganisation
2
Lernziele Speicherhierarchie Hintergrundspeicher / RAID
Organisation von B-Bäumen, B+ Bäumen.. Hashing Organisation von mehrdimensionalen Datenstrukturen Datenbanken, SS 12 Kapitel 9: Datenorganisation
3
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 10000 Umdrehungen / Minute Ca 3ms 3. Lesezeit: Lesen des Blocks 4. Transfer von der Platte zum Hauptspeicher 100 Mb /s 15 MB/s Datenbanken, SS 12 Kapitel 9: Datenorganisation
4
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 ! Datenbanken, SS 12 Kapitel 9: Datenorganisation
5
Zugriff: Physikalische Speicherung der Daten
Datenbank-Seite (32-64 Kb) Cache Header Meyer 123 ... Schneider 145 ... Müller 129 ... -- Forwarding-RID Slot-Array Extent Table Datenbanken, SS 12 Kapitel 9: Datenorganisation
6
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, SS 12 Kapitel 9: Datenorganisation
7
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, SS 12 Kapitel 9: Datenorganisation
8
Datenbanken, SS 12 Kapitel 9: Datenorganisation
9
S.. Suchschlüssel D.. Weitere Daten V.. Verweise (SeitenNr)
Datenbanken, SS 12 Kapitel 9: Datenorganisation
10
Datenbanken, SS 12 Kapitel 9: Datenorganisation
11
Einfügen eines neuen Objekts (Datensatz) in einen B-Baum
Datenbanken, SS 12 Kapitel 9: Datenorganisation
12
Sukzessiver Aufbau eines B-Baums vom Grad k=2
7 10 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
13
Sukzessiver Aufbau eines B-Baums vom Grad k=2
3 7 10 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
14
Sukzessiver Aufbau eines B-Baums vom Grad k=2
? 3 7 10 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
15
Sukzessiver Aufbau eines B-Baums vom Grad k=2
? 3 7 10 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
16
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 ? 3 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
17
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 ? 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
18
Sukzessiver Aufbau eines B-Baums vom Grad k=2
1 10 ? 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
19
Sukzessiver Aufbau eines B-Baums vom Grad k=2
1 10 ? 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
20
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 ? 1 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
21
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 ? 1 1 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
22
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 ? 1 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
23
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 ? 2 1 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
24
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 ? 2 1 2 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
25
Sukzessiver Aufbau eines B-Baums vom Grad k=2
4 10 ? 1 2 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
26
Sukzessiver Aufbau eines B-Baums vom Grad k=2
4 10 ? 4 1 2 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
27
Sukzessiver Aufbau eines B-Baums vom Grad k=2
4 10 ? 4 1 2 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
28
Sukzessiver Aufbau eines B-Baums vom Grad k=2
4 10 ? 4 1 2 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
29
Sukzessiver Aufbau eines B-Baums vom Grad k=2
4 3 ? 10 4 1 2 3 7 13 19 Datenbanken, SS 12 Kapitel 9: Datenorganisation
30
Sukzessiver Aufbau eines B-Baums vom Grad k=2
3 ? 10 1 2 13 19 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
31
Sukzessiver Aufbau eines B-Baums vom Grad k=2
11 3 ? 10 1 2 13 19 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
32
Sukzessiver Aufbau eines B-Baums vom Grad k=2
3 ? 10 1 2 11 13 19 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
33
Sukzessiver Aufbau eines B-Baums vom Grad k=2
21 3 ? 10 1 2 11 13 19 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
34
Sukzessiver Aufbau eines B-Baums vom Grad k=2
21 3 ? 10 1 2 11 13 19 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
35
Sukzessiver Aufbau eines B-Baums vom Grad k=2
12 3 ? 10 1 2 11 13 19 21 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
36
Sukzessiver Aufbau eines B-Baums vom Grad k=2
12 3 ? 10 1 2 11 13 19 21 12 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
37
Sukzessiver Aufbau eines B-Baums vom Grad k=2
12 3 ? 10 1 2 11 13 19 21 12 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
38
Sukzessiver Aufbau eines B-Baums vom Grad k=2
12 3 ? 10 1 2 11 13 19 21 12 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
39
Sukzessiver Aufbau eines B-Baums vom Grad k=2
12 3 ? 10 13 1 2 11 13 19 21 12 4 7 Datenbanken, SS 12 Kapitel 9: Datenorganisation
40
Sukzessiver Aufbau eines B-Baums vom Grad k=2
12 3 ? 10 13 1 2 11 19 21 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
41
Sukzessiver Aufbau eines B-Baums vom Grad k=2
12 3 ? 10 13 1 2 19 21 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
42
Sukzessiver Aufbau eines B-Baums vom Grad k=2
14 3 ? 10 13 1 2 19 21 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
43
Sukzessiver Aufbau eines B-Baums vom Grad k=2
14 3 ? 10 13 1 2 14 19 21 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
44
Sukzessiver Aufbau eines B-Baums vom Grad k=2
15 3 ? 10 13 1 2 14 19 21 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
45
Sukzessiver Aufbau eines B-Baums vom Grad k=2
20 3 ? 10 13 1 2 14 15 19 21 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
46
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, SS 12 Kapitel 9: Datenorganisation
47
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, SS 12 Kapitel 9: Datenorganisation
48
Sukzessiver Aufbau eines B-Baums vom Grad k=2
20 3 ? 10 13 19 20 1 2 14 15 19 21 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
49
Sukzessiver Aufbau eines B-Baums vom Grad k=2
20 3 ? 10 13 19 20 21 1 2 14 15 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
50
Sukzessiver Aufbau eines B-Baums vom Grad k=2
5 3 ? 10 13 19 20 21 1 2 14 15 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
51
Sukzessiver Aufbau eines B-Baums vom Grad k=2
5 3 ? 10 13 19 20 21 1 2 14 15 4 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
52
Sukzessiver Aufbau eines B-Baums vom Grad k=2
5 3 ? 10 13 19 20 21 1 2 14 15 4 5 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
53
Sukzessiver Aufbau eines B-Baums vom Grad k=2
6 3 ? 10 13 19 20 21 1 2 14 15 4 5 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
54
Sukzessiver Aufbau eines B-Baums vom Grad k=2
6 3 ? 10 13 19 20 21 1 2 14 15 4 5 6 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
55
Sukzessiver Aufbau eines B-Baums vom Grad k=2
8 3 ? 10 13 19 1 2 20 21 14 15 4 5 6 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
56
Sukzessiver Aufbau eines B-Baums vom Grad k=2
8 3 ? 10 13 19 1 2 20 21 14 15 8 4 5 6 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
57
Sukzessiver Aufbau eines B-Baums vom Grad k=2
8 3 ? 10 13 19 1 2 20 21 14 15 8 4 5 6 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
58
Sukzessiver Aufbau eines B-Baums vom Grad k=2
8 3 ? 10 13 19 1 2 20 21 14 15 8 4 5 6 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
59
Sukzessiver Aufbau eines B-Baums vom Grad k=2
8 3 ? 10 13 19 1 2 20 21 4 5 14 15 8 6 7 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
60
Sukzessiver Aufbau eines B-Baums vom Grad k=2
6 3 ? 10 13 19 1 2 20 21 4 5 6 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
61
Sukzessiver Aufbau eines B-Baums vom Grad k=2
6 3 ? 10 13 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
62
Sukzessiver Aufbau eines B-Baums vom Grad k=2
6 3 ? 10 13 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
63
Sukzessiver Aufbau eines B-Baums vom Grad k=2
6 3 ? 10 13 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
64
Sukzessiver Aufbau eines B-Baums vom Grad k=2
6 3 6 3 ? 10 13 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
65
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 3 6 13 ? 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
66
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 3 6 13 ? 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
67
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 10 3 6 13 ? 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
68
Sukzessiver Aufbau eines B-Baums vom Grad k=2
B-Baum mit Minimaler Speicherplatz- ausnutzung 10 3 6 13 ? 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
69
Sukzessiver Aufbau eines B-Baums vom Grad k=2
23 10 3 6 13 ? 19 1 2 20 21 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
70
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 3 6 13 ? 19 1 2 20 21 23 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
71
Sukzessiver Aufbau eines B-Baums vom Grad k=2
14 10 3 6 13 ? 19 1 2 20 21 23 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
72
Sukzessiver Aufbau eines B-Baums vom Grad k=2
14 10 Unterlauf 3 6 13 ? 19 1 2 20 21 23 4 5 14 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
73
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 Unterlauf 3 6 13 ? 19 1 2 20 21 23 4 5 15 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
74
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 3 6 13 ? 20 1 2 21 23 4 5 15 19 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
75
Sukzessiver Aufbau eines B-Baums vom Grad k=2
5 10 3 6 13 ? 20 1 2 21 23 4 5 15 19 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
76
Sukzessiver Aufbau eines B-Baums vom Grad k=2
5 10 3 6 13 ? 20 1 2 21 23 4 5 15 19 Unterlauf 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
77
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 3 6 13 ? 20 1 2 21 23 4 15 19 merge 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
78
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 3 6 13 ? 20 1 2 21 23 4 15 19 merge 7 8 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
79
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 Unterlauf 3 13 ? 20 1 2 21 23 4 6 7 8 15 19 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
80
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 merge 3 13 ? 20 1 2 21 23 4 6 7 8 15 19 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
81
Sukzessiver Aufbau eines B-Baums vom Grad k=2
10 merge 3 13 ? 20 1 2 21 23 4 6 7 8 15 19 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
82
Sukzessiver Aufbau eines B-Baums vom Grad k=2
3 10 13 20 ? 1 2 21 23 4 6 7 8 15 19 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
83
Sukzessiver Aufbau eines B-Baums vom Grad k=2
Schrumpfung, Freie Knoten 3 10 13 20 ? 1 2 21 23 4 6 7 8 15 19 11 12 Datenbanken, SS 12 Kapitel 9: Datenorganisation
84
B-Baum (Eigenschaften)
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. Datenbanken, SS 12 Kapitel 9: Datenorganisation
85
B+-Baum Referenz- schlüssel Such- schlüssel
Datenbanken, SS 12 Kapitel 9: Datenorganisation
86
Datenbanken, SS 12 Kapitel 9: Datenorganisation
87
Datenbanken, SS 12 Kapitel 9: Datenorganisation
88
Bäume: logk(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, SS 12 Kapitel 9: Datenorganisation
89
Hashing Anforderungen an h: Beispiele für brauchbare Hash-Funktionen
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..| å |] Datenbanken, SS 12 Kapitel 9: Datenorganisation
90
Statisches Hashing Datenbanken, SS 12 Kapitel 9: Datenorganisation
91
Datenbanken, SS 12 Kapitel 9: Datenorganisation
92
Datenbanken, SS 12 Kapitel 9: Datenorganisation
93
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, SS 12 Kapitel 9: Datenorganisation
94
Datenbanken, SS 12 Kapitel 9: Datenorganisation
95
4 Datenbanken, SS 12 Kapitel 9: Datenorganisation
96
4 Datenbanken, SS 12 Kapitel 9: Datenorganisation
97
SQL: Create Index Grobsyntax: Beispiele:
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, SS 12 Kapitel 9: Datenorganisation
98
Objektballung / Clustering
clustered key PersNr / gelesenVon 2125 Name Rang … Sokrates C4 Titel VorlNr Ethik 5041 2126 Russel …. Vorlesungen VorlNr Titel SWS gelesenVon 5001 Grundzüge 4 2137 5041 Ethik 2125 5043 Erkenntnistheorie 3 2126 … Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel 232 … Datenbanken, SS 12 Kapitel 9: Datenorganisation
99
Datenbanken, SS 12 Kapitel 9: Datenorganisation
100
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; Datenbanken, SS 12 Kapitel 9: Datenorganisation
101
Oracle Clusters: Beispiel
CREATE CLUSTER ProfessorenVorlesungen (PersNo NUMBER) HASH IS PersNo HASHKEYS 150; CREATE TABLE Vorlesungen (GelesenVon NUMBER, ... ) CLUSTER ProfessorenVorlesungen (GelesenVon); Datenbanken, SS 12 Kapitel 9: Datenorganisation
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.