Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Jakob Zigler Geändert vor über 9 Jahren
2
Kapitel 7 Physische Datenorganisation Speicherhierarchie Hintergrundspeicher / RAID Speicherstrukturen B-Bäume Hashing R-Bäume
3
2 Überblick: Speicherhierarchie Register (L1/L2/L3) Cache Hauptspeicher Plattenspeicher Archivspeicher
4
3 Überblick: Speicherhierarchie Register Cache Hauptspeicher Plattenspeicher Archivspeicher 1 – 8 Byte Compiler 8 – 128 Byte Cache-Controller 4 – 64 KB Betriebssystem Benutzer
5
4 Überblick: Speicherhierarchie 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher sec Archivspeicher Zugriffslücke 10 5
6
5 Überblick: Speicherhierarchie 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher sec Archivspeicher Zugriffslücke 10 5 Kopf (1min) Raum (10 min) München (1.5h) Pluto (2 Jahre) Andromeda (2000 Jahre)
7
6
8
7 Magnetplattenspeicher
9
8 2013 15000 rpm ~ 4 ms pro Umdreh. 1 TB Kapazität 100 MB/s Transferrate < 1$ / GB
10
9 Lesen von Daten von der Platte Seek Time: Arm positionieren 5ms Latenzzeit: ½ Plattenumdrehung (im Durchschnitt) 15000 Umdrehungen / Minute Ca 2ms Transfer von der Platte zum Hauptspeicher 100 MB/s
11
10 Random versus Chained IO 1000 Blöcke à 4KB sind zu lesen Random I/O Jedesmal Arm positionieren Jedesmal Latenzzeit 1000 * (5 ms + 2 ms) + Transferzeit von 4 MB > 7000 ms + 40ms 7s Chained IO Einmal positionieren, dann „von der Platte kratzen“ 5 ms + 2ms + Transferzeit von 4 MB 7ms + 40 ms 1/20 s Also ist chained IO mindestens zwei Größenordnungen schneller als random IO in Datenbank-Algorithmen unbedingt beachten !
12
11 Disk Arrays RAID-Systeme
13
12
14
13 RAID 0: Striping Lastbalancierung wenn alle Blöcke mit gleicher Häufigkeit gelesen/geschrieben werden Doppelte Bandbreite beim sequentiellen Lesen der Datei bestehend aus den Blöcken ABCD... Aber: Datenverlust wird immer wahrscheinlicher, je mehr Platten man verwendet (Stripingbreite = Anzahl der Platten, hier 2) A C B D ABCD Datei
15
14 RAID 1: Spiegelung (mirroring) Datensicherheit: durch Redundanz aller Daten (Engl. mirror) Doppelter Speicherbedarf Lastbalancierung beim Lesen: z.B. kann Block A von der linken oder der rechten Platte gelesen werden Aber beim Schreiben müssen beide Kopien geschrieben werden Kann aber parallel geschehen Dauert also nicht doppelt so lange wie das Schreiben nur eines Blocks A C B D A C B D
16
15 Kombiniert RAID 0 und RAID 1 Immer noch doppelter Speicherbedarf Zusätzlich zu RAID 1 erzielt man hierbei auch eine höhere Bandbreite beim Lesen der gesamten Datei ABCD.... Wird manchmal auch als RAID 10 bezeichnet RAID 0+1: Striping und Spiegelung A C A C B D B D
17
16 RAID 2: Striping auf Bit-Ebene Anstatt ganzer Blöcke, wie bei RAID 0 und RAID 0+1, wird das Striping auf Bit- (oder Byte-) Ebene durchgeführt Es werden zusätzlich auf einer Platte noch Fehlererkennungs- und Korrekturcodes gespeichert In der Praxis nicht eingesetzt, da Platten sowieso schon Fehlererkennungscodes verwalten 1010 1101 1011 0110 0011 1100.... Datei 111001...010101...101110...011010...
18
17 RAID 3: Striping auf Bit-Ebene, zusätzliche Platte für Paritätsinfo Das Striping wird auf Bit- (oder Byte-) Ebene durchgeführt Es wird auf einer Platte noch die Parität der anderen Platten gespeichert. Parität = bit-weise xor Dadurch ist der Ausfall einer Platte zu kompensieren Das Lesen eines Blocks erfordert den Zugriff auf alle Platten Verschwendung von Schreib/Leseköpfen Alle marschieren synchron 1010 1101 1011 0110 0011 1100.... Datei 111001...010101...101110...011010...011000... Parität
19
18 RAID 3: Plattenausfall 1010 1101 1011 0110 0011 1100.... Datei 111001...010101...101110...011010...011000... Parität 011010... Reparatur
20
19 RAID 4: Striping von Blöcken Bessere Lastbalancierung als bei RAID 3 Flaschenhals bildet die Paritätsplatte Bei jedem Schreiben muss darauf zugegriffen werden Bei Modifikation von Block A zu A‘ wird die Parität P A-D wie folgt neu berechnet: P‘ A-D := P A-D A A‘ D.h. bei einer Änderung von Block A muss der alte Zustand von A und der alte Paritätsblock gelesen werden und der neue Paritätsblock und der neue Block A‘ geschrieben werden AEBF CG DH P A-D P E-H
21
20 RAID 4: Striping von Blöcken Flaschenhals bildet die Paritätsplatte Bei jedem Schreiben muss darauf zugegriffen werden Bei Modifikation von Block A zu A‘ wird die Parität P A-D wie folgt neu berechnet: P‘ A-D := P A-D A A‘ D.h. bei einer Änderung von Block A muss der alte Zustand von A und der alte Paritätsblock gelesen werden und der neue Paritätsblock und der neue Block A‘ geschrieben werden 1010 1101 1011 0110 0011 1100.... Datei 1010......1101.......1011......0110......1010....... Paritäts block
22
21 RAID 5: Striping von Blöcken, Verteilung der Paritätsblöcke Bessere Lastbalancierung als bei RAID 4 die Paritätsplatte bildet jetzt keinen Flaschenhals mehr Wird in der Praxis häufig eingesetzt Guter Ausgleich zwischen Platzbedarf und Leistungsfähigkeit AEBF CG D HP A-D P E-H IMJ O LN K PP I-L P M-P
23
22 RAID 6: Wie RAID5, aber zwei Paritätsblöcke Recovery bei RAID 5 kann mehrere Stunden dauern Ausfall während Recovery führt zu Totalverlust der Daten RAID6 kann auch einen Ausfall während der Recovery-Phase verkraften AEF CG D HP A-D P E-H I MJ O LN K PP I-L P M-P P E-H B P A-D P I-L P M-P
24
23 Lastbalancierung bei der Blockabbildung auf die Platten
25
24 Parallelität bei Lese/Schreib- Aufträgen
26
25 Bewertung der Parallelität bei RAID RAID 0 ? RAID 1 ? RAID 0+1 ? RAID 3 ? RAID 4 ? RAID 5 ?
27
26 verdrängen Hauptspeicher einlagern Platte ~ persistente DB Systempuffer-Verwaltung
28
27 Ein- und Auslagern von Seiten Systempuffer ist in Seitenrahmen gleicher Größe aufgeteilt Ein Rahmen kann eine Seite aufnehmen „Überzählige“ Seiten werden auf die Platte ausgelagert Platte (swap device) Hauptspeicher 04K8K12K 28K 44K 60K 40K 48K 24K20K 16K 32K 36K 56K52K P480 P123 Seitenrahmen Seite
29
28 Adressierung von Tupeln auf dem Hintergrundspeicher
30
29 Verschiebung innerhalb einer Seite
31
30 Verschiebung von einer Seite auf eine andere Forward
32
31 Verschiebung von einer Seite auf eine andere Bei der nächsten Verschiebung wird der „Forward“ auf Seite 4711 geändert (kein Forward auf Seite 4812)
33
Neue Entwicklungen Hauptspeicher-Datenbanksysteme Times Ten Transact in Memory Monet DB TREX von SAP Columns Store versus Row Store C-Store / Vertica Monet TREX 32
34
33
35
34 Überblick: Speicherhierarchie 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher sec Archivspeicher Zugriffslücke 10 5
36
35
37
Row Store versus Column Store 36
38
Row Store versus Column Store 37
39
Anfragebearbeitung 38
40
Komprimierung 39
41
B-Bäume Balancierte Mehrwege-Suchbäume Für den Hintergrundspeicher
42
41
43
42
44
43
45
44 S.. Suchschlüssel D.. Weitere Daten V.. Verweise (SeitenNr)
46
45
47
46
48
47 Einfügen eines neuen Objekts (Datensatz) in einen B-Baum
49
48 Sukzessiver Aufbau eines B-Baums vom Grad k=2 101319 7
50
49 Sukzessiver Aufbau eines B-Baums vom Grad k=2 7101319 3
51
50 Sukzessiver Aufbau eines B-Baums vom Grad k=2 7101319 3 ?
52
51 Sukzessiver Aufbau eines B-Baums vom Grad k=2 710 3 1319 ?
53
52 Sukzessiver Aufbau eines B-Baums vom Grad k=2 37 3 1319 ? 10
54
53 Sukzessiver Aufbau eines B-Baums vom Grad k=2 371319 ? 10
55
54 Sukzessiver Aufbau eines B-Baums vom Grad k=2 371319 ? 10 1
56
55 Sukzessiver Aufbau eines B-Baums vom Grad k=2 371319 ? 10 1
57
56 Sukzessiver Aufbau eines B-Baums vom Grad k=2 371319 ? 10 1
58
57 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1371319 ? 10 1
59
58 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1371319 ? 10 2
60
59 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1371319 ? 10 2 2
61
60 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 2 2
62
61 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 4
63
62 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 4 4
64
63 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 4 4
65
64 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 10 4 4
66
65 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12371319 ? 310 4 4
67
66 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121319 ? 310 47
68
67 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121319 ? 310 11 47
69
68 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12111319 ? 310 47
70
69 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12111319 ? 310 21 47
71
70 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12111319 ? 310 21 47
72
71 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 310 12 47
73
72 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 310 12 47
74
73 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 310 12 47
75
74 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 310 12 47
76
75 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1211131921 ? 31013 12 47
77
76 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12111921 ? 31013 12 471112
78
77 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121921 ? 31013 12 471112
79
78 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121921 ? 31013 14 471112
80
79 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12141921 ? 31013 14 471112
81
80 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12141921 ? 31013 15 471112
82
81 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1214151921 ? 31013 20 471112
83
82 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1214151921 ? 31013 20 471112 20
84
83 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1214151921 ? 31013 20 471112 20
85
84 Sukzessiver Aufbau eines B-Baums vom Grad k=2 1214151921 ? 3101319 20 471112 20
86
85 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 20 471112 2021
87
86 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 5 471112 2021
88
87 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 5 471112 2021
89
88 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 5 4571112 2021
90
89 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 6 4571112 2021
91
90 Sukzessiver Aufbau eines B-Baums vom Grad k=2 121415 ? 3101319 6 45671112 2021
92
91
93
92 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 45671112 2021 8
94
93 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 45671112 2021 8 8
95
94 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 45671112 2021 8 8
96
95 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 45671112 2021 8 8
97
96 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 671112 2021 8 8 45
98
97 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 6 45
99
98 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 45
100
99 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 45
101
100 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 45
102
101 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 3101319 781112 2021 6 45 36
103
102 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 10 45 36
104
103 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10
105
104 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10
106
105 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10 B-Baum mit Minimaler Speicherplatz- ausnutzung
107
106 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10 B-Baum mit Minimaler Speicherplatz- ausnutzung
108
107
109
108 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 2021 45 36 10 23
110
109 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 202123 45 36 10
111
110 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 202123 45 36 10 14
112
111 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1415 ? 1319 781112 202123 45 36 10 14 Unterlauf
113
112 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 15 ? 1319 781112 202123 45 36 10 Unterlauf
114
113 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 45 36 10
115
114 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 45 36 10 5
116
115 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 45 36 10 5 Unterlauf
117
116 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 4 36 10 merge
118
117 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 781112 2123 4 36 10 merge
119
118 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 1112 2123 4678 3 10 Unterlauf
120
119 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 1112 2123 4678 3 10 merge
121
120 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1320 1112 2123 4678 3 10 merge
122
121 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1112 2123 4678 3101320
123
122 Sukzessiver Aufbau eines B-Baums vom Grad k=2 12 1519 ? 1112 2123 4678 3101320 Schrumpfung, Freie Knoten
124
123 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 4 Speicherblock Nr 4
125
124 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 3 0 Datei 8 KB-Blöcke 0*8KB 1*8KB 2*8KB 3*8KB 4*8KB Block- Nummer
126
125 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 3 0 Datei 8 KB-Blöcke 0*8KB 1*8KB 2*8KB 3*8KB 4*8KB Block- Nummer
127
126 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 3 0 Datei 8 KB-Blöcke 0*8KB 1*8KB 2*8KB 3*8KB 1 1 0 1 0 0 1 1 0 Freispeicher- Verwaltung 4*8KB Block- Nummer
128
127 Zusammenspiel: Hintergrundspeicher -- Hauptspeicher Hintergrundspeicher 4 4 Hauptspeicher- Puffer Zugriffslücke 10 5
129
128 B + -Baum Referenz- schlüssel Such- schlüssel
130
129
131
130
132
131 Mehrere Indexe auf denselben Objekten B-Baum Mit (PersNr, Daten) Einträgen Name, Alter, Gehalt... B-Baum Mit (Alter, ???) Einträgen Alter, PersNr
133
132 Mehrere Indexe auf denselben Objekten B-Baum Mit (PersNr, Daten) Einträgen Name, Alter, Gehalt... B-Baum Mit (Alter, ???) Einträgen Alter, PersNr Wer ist 20 ? 20, 007
134
133 Mehrere Indexe auf denselben Objekten B-Baum Mit (PersNr, Daten) Einträgen Name, Alter, Gehalt... B-Baum Mit (Alter, ???) Einträgen Alter, PersNr Wer ist 20 ? 20, 007007,Bond,20,...
135
134 Eine andere Möglichkeit: Referenzierung über Speicheradressen PersNr Alter 007,... 20,... 007, Bond, 20,...
136
135 Realisierungstechnik für Hintergrundspeicher-Adressen Seiten / Blöcke (ca 8 KB)
137
136 Adressierung von Tupeln auf dem Hintergrundspeicher
138
137 Verschiebung innerhalb einer Seite
139
138 Verschiebung von einer Seite auf eine andere Forward
140
139 Verschiebung von einer Seite auf eine andere Bei der nächsten Verschiebung wird der „Forward“ auf Seite 4711 geändert (kein Forward auf Seite 4812)
141
140 „Statische“ Hashtabellen À priori Allokation des Speichers Nachträgliche Vergrößerung der Hashtabelle ist „teuer“ Hashfunktion h(...) =... mod N Rehashing der Einträge h(...) =... mod M In Datenbankanwendungen viele GB Erweiterbares Hashing Zusätzliche Indirektion über ein Directory Ein zusätzlicher Zugriff auf ein Directory, das den Zeiger (Verweis, BlockNr) des Hash-Bucket enthält Dynamisches Wachsen (und Schrumpfen) ist möglich Der Zugriff auf das Directory erfolgt über einen binären Hashcode
142
141
143
142 Statisches Hashing
144
143
145
144 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) = 001000000... (4=0..0100) h(006) = 011000000... (6=0..0110) h(007) = 111000000... (7 =0..0111) h(013) = 101100000... (13 =0..01101) h(018) = 0100100000... (18 =0..010010) h(032) = 000001000... (32 =0..0100000) H(048) = 000011000... (48 =0..0110000)
146
145 7 13 6 18 32 48 4
147
146 7 13 6 18 32 48 4
148
147
149
148 7 13 6 18 32 48 4
150
149 7 13 6 18 32 48 4 12 Einfügen: 12 12=1100 h(12)=00110...
151
150 7 13 6 18 32 48 4 12 Einfügen: 20 20=10100 h(20)=001010... Overflow
152
151 h(12)=001100.. h(4) =00100.. h(20)=0010100..
153
152 h(12)=001100.. h(4) =00100.. h(20)=0010100.. 4 20 12
154
153
155
154
156
155
157
156
158
157 Wertbasierter Zugriff auf der Grundlage mehrerer Attribute, dies einzeln oder in beliebigen Kombinationen. Typische Anforderungen aus CAD, VLSI-Entwurf, Kartographie,... Anfragen decken den Bereich ab zwischen mehrdimensionalem Punktzugriff (EMQ) und mehrdimensionalen Bereichsanfragen (RQ) Lösung mit eindimensionalen Indexen erfordert konjunktive Zerlegung der Anfrage in Einattributanfragen und Schnittmengenbildung bedingt hohe Speicherredundanz Problemstellung: Mehrdimensionale Nachbarschaftsverhältnisse Mehrdimensionale Datenstrukturen
159
158 Wertebereiche D 0,..., D k-1 : alle D i sind endlich, linear geordnet und besitzen kleinstes (- i ) und größtes ( i ) Element Datenraum D = D 0 ... D k-1 k-dimensionaler Schlüssel entspricht Punkt im Datenraum p D Grundlagen mehrdimensionaler Datenstrukturen
160
159 1. Exact Match Query spezifiziert Suchwert für jede Dimension D i 2. Partial Match Query spezifiziert Suchwert für einen Teil der Dimensionen 3. Range Query spezifiziert ein Suchintervall [ug i, og i ] für alle Dimensionen 4. Partial Range Query spezifiziert ein Suchintervall für einen Teil der Dimensionen Grundlagen mehrdimensionaler Datenstrukturen
161
160 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen Grid-File (Gitter-Datei): atomar, vollständig, disjunkt
162
161 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen K-D-B-Baum: atomar, vollständig, disjunkt
163
162 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen R + -Baum: atomar, disjunkt
164
163 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen R-Baum: atomar
165
164 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen Buddy-Hash-Baum: atomar, disjunkt
166
165 Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Charakterisierung mehrdimensionaler Datenstrukturen Z-B-Baum: vollständig,disjunkt
167
166 R-Baum: Urvater der baum-strukturierten mehrdimensionalen Zugriffsstrukturen
168
167 Gute versus schlechte Partitionierung
169
168 Nächste Phase in der Entstehungsgeschichte des R-Baums
170
169 Nächste Phase
171
170 Datenraum
172
171 Wachsen des Baums: nach oben – wie im B-Baum
173
172 Datenraum
174
173 Datenraum und Speicherstruktur – Überblick
175
174
176
175 Bereichsanfragen auf dem R-Baum
177
176
178
177 Indexierung räumlicher Objekte (anstatt Punkten) mit dem R-Baum
179
178 Indexierung räumlicher Objekte (anstatt Punkten) mit dem R-Baum
180
179 Indexierung räumlicher Objekte (anstatt Punkten) mit dem R-Baum
181
Bitmap-Indexe Optimierung durch Komprimierung der Bitmaps Ausnutzung der dünnen Besetzung Runlength-compression Grundidee: speichere jeweils die Länge der Nullfolgen zwischen zwei Einsen Mehrmodus-Komprimierung: bei langen Null/Einsfolgen speichere deren Länge Sonst speichere das Bitmuster
182
Beispiel-Anfrage und Auswertung
183
Bitmap-Operationen
184
Bitmap-Join-Index
186
B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)... B-Baum TID-K (I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...
187
B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)... B-Baum TID-K (I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...
188
B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)... Select k.* From Verkäufe v, Kunden k Where v.ProduktID = 5 And v.KundenNr = k.KundenNr 5 5
189
Select v.* From Verkäufe v, Kunden k Where k.KundenNr = 4711 and v.KundenNr = k.KundenNr B-Baum TID-K (I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...
190
189 Objektballung / Clustering logisch verwandter Daten
191
190
192
191
193
192
194
193 Unterstützung eines Anwendungsverhaltens Select Name From Professoren Where PersNr = 2136 Select Name From Professoren Where Gehalt >= 90000 and Gehalt <= 100000
195
194 Indexe in SQL Create index SemsterInd on Studenten (Semester) drop index SemsterInd
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.