Title: Kapitel 7 Physische Datenorganisation
1Kapitel 7Physische Datenorganisation
- Speicherhierarchie
- Hintergrundspeicher / RAID
- Speicherstrukturen
- B-Bäume
- Hashing
- R-Bäume
2DB2 Zertifizierungskurs
- Anmeldung bei Dr. Angelika Reiser
- reiser_at_in.tum.de
- http//www-db.in.tum.de/
- Unter Aktuelles
- http//www-db.in.tum.de/teaching/ws0910/DB2AdminSe
minar/
3Überblick Speicherhierarchie
Register (L1/L2/L3) Cache Hauptspeicher Plattens
peicher Archivspeicher
4Überblick Speicherhierarchie
Register Cache Hauptspeicher Plattenspeicher A
rchivspeicher
1 8 Byte Compiler 8 128 Byte Cache-Controller
4 64 KB Betriebssystem Benutzer
5Überblick Speicherhierarchie
1-10ns Register 10-100ns Cache 100-1000ns Hauptspe
icher 10 ms Plattenspeicher sec Archivspeicher
Zugriffslücke 105
6Überblick Speicherhierarchie
1-10ns Register 10-100ns Cache 100-1000ns Hauptspe
icher 10 ms Plattenspeicher sec Archivspeicher
Kopf (1min) Raum (10 min) München (1.5h) Pluto
(2 Jahre) Andromeda (2000 Jahre)
Zugriffslücke 105
7(No Transcript)
8Magnetplattenspeicher
92010 1500 rpm 2,5 ms pro Umdreh. 1 TB
Kapazität 50 MB/s Transferrate lt 1 / GB
10Lesen von Daten von der Platte
- Seek Time Arm positionieren
- 5ms
- Latenzzeit ½ Plattenumdrehung (im Durchschnitt)
- 10000 Umdrehungen / Minute
- ? Ca 3ms
- Transfer von der Platte zum Hauptspeicher
- 100 Mb /s ? 15 MB/s
11Random versus Chained IO
- 1000 Blöcke à 4KB sind zu lesen
- Random I/O
- Jedesmal Arm positionieren
- Jedesmal Latenzzeit
- ? 1000 (5 ms 3 ms) Transferzeit von 4 MB
- ? gt 8000 ms 300ms ? 8s
- Chained IO
- Einmal positionieren, dann von der Platte
kratzen - ? 5 ms 3ms Transferzeit von 4 MB
- ? 8ms 300 ms ? 1/3 s
- Also ist chained IO ein bis zwei Größenordnungen
schneller als random IO - in Datenbank-Algorithmen unbedingt beachten !
-
12Disk Arrays ? RAID-Systeme
13(No Transcript)
14RAID 0 Striping
Datei
A
B
C
D
A
B
C
D
- 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)
15RAID 1 Spiegelung (mirroring)
A
B
A
B
C
D
C
D
- 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
16RAID 01 Striping und Spiegelung
B
B
A
A
D
D
C
C
- 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
17RAID 2 Striping auf Bit-Ebene
- Anstatt ganzer Blöcke, wie bei RAID 0 und RAID
01, 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
Datei
1010 1101 1011 0110 0011 1100....
111001...
010101...
101110...
011010...
18RAID 3 Striping auf Bit-Ebene,zusätzliche
Platte für Paritätsinfo
Datei
1010 1101 1011 0110 0011 1100....
Parität
111001...
010101...
101110...
011010...
011000...
?
- 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
19RAID 3 Plattenausfall
Datei
1010 1101 1011 0110 0011 1100....
Parität
111001...
010101...
101110...
011010...
011000...
?
Reparatur
011010...
20RAID 4 Striping von Blöcken
C
G
PA-D
PE-H
A
E
B
F
D
H
- 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 PA-D wie folgt neu berechnet - PA-D PA-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
21RAID 4 Striping von Blöcken
Datei
1010 1101 1011 0110 0011 1100....
Paritäts block
1010......
1101.......
1011......
0110......
1010.......
?
- Flaschenhals bildet die Paritätsplatte
- Bei jedem Schreiben muss darauf zugegriffen
werden - Bei Modifikation von Block A zu A wird die
Parität PA-D wie folgt neu berechnet - PA-D PA-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
22RAID 5 Striping von Blöcken, Verteilung der
Paritätsblöcke
D
PE-H
C
G
H
PA-D
A
E
B
F
O
K
L
N
P
PI-L
I
M
J
PM-P
- 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
23Lastbalancierung bei der Blockabbildung auf die
Platten
24Parallelität bei Lese/Schreib-Aufträgen
25Bewertung der Parallelität bei RAID
- RAID 0
- ?
- RAID 1
- ?
- RAID 01
- ?
- RAID 3
- ?
- RAID 4
- ?
- RAID 5
- ?
26 Systempuffer-Verwaltung
Hauptspeicher
einlagern
verdrängen
Platte persistente DB
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
Hauptspeicher
Platte(swap device)
0
4K
8K
12K
P123
28K
24K
20K
16K
P480
44K
32K
40K
36K
60K
48K
56K
52K
Seite
Seitenrahmen
28Adressierung von Tupeln auf dem
Hintergrundspeicher
29Verschiebung innerhalb einer Seite
30Verschiebung von einer Seite auf eine andere
Forward
31Verschiebung von einer Seite auf eine andere
Bei der nächsten Verschiebung wird der Forward
auf Seite 4711 geändert (kein Forward auf Seite
4812)
32Neue Entwicklungen
- Hauptspeicher-Datenbanksysteme
- Times Ten
- Transact in Memory
- Monet DB
- TREX von SAP
- Columns Store versus Row Store
- C-Store / Vertica
- Monet
- TREX
33(No Transcript)
34Überblick Speicherhierarchie
1-10ns Register 10-100ns Cache 100-1000ns Hauptspe
icher 10 ms Plattenspeicher sec Archivspeicher
Zugriffslücke 105
35(No Transcript)
36Row Store versus Column Store
37Row Store versus Column Store
38Anfragebearbeitung
39Komprimierung
40B-Bäume
- Balancierte Mehrwege-Suchbäume
- Für den Hintergrundspeicher
41(No Transcript)
42(No Transcript)
43(No Transcript)
44(No Transcript)
45(No Transcript)
46(No Transcript)
47S.. Suchschlüssel
D.. Weitere Daten
V.. Verweise (SeitenNr)
48(No Transcript)
49(No Transcript)
50Einfügen eines neuen Objekts (Datensatz) in einen
B-Baum
51Sukzessiver Aufbau eines B-Baums vom Grad k2
7
10
13
19
52Sukzessiver Aufbau eines B-Baums vom Grad k2
3
7
10
13
19
53Sukzessiver Aufbau eines B-Baums vom Grad k2
?
3
7
10
13
19
54Sukzessiver Aufbau eines B-Baums vom Grad k2
?
3
7
10
13
19
55Sukzessiver Aufbau eines B-Baums vom Grad k2
10
?
3
3
7
13
19
56Sukzessiver Aufbau eines B-Baums vom Grad k2
10
?
3
7
13
19
57Sukzessiver Aufbau eines B-Baums vom Grad k2
1
10
?
3
7
13
19
58Sukzessiver Aufbau eines B-Baums vom Grad k2
1
10
?
3
7
13
19
59Sukzessiver Aufbau eines B-Baums vom Grad k2
10
?
1
3
7
13
19
60Sukzessiver Aufbau eines B-Baums vom Grad k2
10
?
1
1
3
7
13
19
61Sukzessiver Aufbau eines B-Baums vom Grad k2
2
10
?
1
3
7
13
19
62Sukzessiver Aufbau eines B-Baums vom Grad k2
2
10
?
2
1
3
7
13
19
63Sukzessiver Aufbau eines B-Baums vom Grad k2
2
10
?
2
1
2
3
7
13
19
64Sukzessiver Aufbau eines B-Baums vom Grad k2
4
10
?
1
2
3
7
13
19
65Sukzessiver Aufbau eines B-Baums vom Grad k2
4
10
?
4
1
2
3
7
13
19
66Sukzessiver Aufbau eines B-Baums vom Grad k2
4
10
?
4
1
2
3
7
13
19
67Sukzessiver Aufbau eines B-Baums vom Grad k2
4
10
?
4
1
2
3
7
13
19
68Sukzessiver Aufbau eines B-Baums vom Grad k2
4
3
10
?
4
1
2
3
7
13
19
69Sukzessiver Aufbau eines B-Baums vom Grad k2
3
10
?
1
2
13
19
4
7
70Sukzessiver Aufbau eines B-Baums vom Grad k2
11
3
10
?
1
2
13
19
4
7
71Sukzessiver Aufbau eines B-Baums vom Grad k2
3
10
?
1
2
11
13
19
4
7
72Sukzessiver Aufbau eines B-Baums vom Grad k2
21
3
10
?
1
2
11
13
19
4
7
73Sukzessiver Aufbau eines B-Baums vom Grad k2
21
3
10
?
1
2
11
13
19
4
7
74Sukzessiver Aufbau eines B-Baums vom Grad k2
12
3
10
?
1
2
11
13
19
21
4
7
75Sukzessiver Aufbau eines B-Baums vom Grad k2
12
3
10
?
1
2
11
13
19
21
12
4
7
76Sukzessiver Aufbau eines B-Baums vom Grad k2
12
3
10
?
1
2
11
13
19
21
12
4
7
77Sukzessiver Aufbau eines B-Baums vom Grad k2
12
3
10
?
1
2
11
13
19
21
12
4
7
78Sukzessiver Aufbau eines B-Baums vom Grad k2
12
3
10
13
?
1
2
11
13
19
21
12
4
7
79Sukzessiver Aufbau eines B-Baums vom Grad k2
12
3
10
13
?
1
2
11
19
21
4
7
11
12
80Sukzessiver Aufbau eines B-Baums vom Grad k2
12
3
10
13
?
1
2
19
21
4
7
11
12
81Sukzessiver Aufbau eines B-Baums vom Grad k2
14
3
10
13
?
1
2
19
21
4
7
11
12
82Sukzessiver Aufbau eines B-Baums vom Grad k2
14
3
10
13
?
1
2
14
19
21
4
7
11
12
83Sukzessiver Aufbau eines B-Baums vom Grad k2
15
3
10
13
?
1
2
14
19
21
4
7
11
12
84Sukzessiver Aufbau eines B-Baums vom Grad k2
20
3
10
13
?
1
2
14
15
19
21
4
7
11
12
85Sukzessiver Aufbau eines B-Baums vom Grad k2
20
3
10
13
?
20
1
2
14
15
19
21
4
7
11
12
86Sukzessiver Aufbau eines B-Baums vom Grad k2
20
3
10
13
?
20
1
2
14
15
19
21
4
7
11
12
87Sukzessiver Aufbau eines B-Baums vom Grad k2
20
3
10
13
19
?
20
1
2
14
15
19
21
4
7
11
12
88Sukzessiver Aufbau eines B-Baums vom Grad k2
20
3
10
13
19
?
20
21
1
2
14
15
4
7
11
12
89Sukzessiver Aufbau eines B-Baums vom Grad k2
5
3
10
13
19
?
20
21
1
2
14
15
4
7
11
12
90Sukzessiver Aufbau eines B-Baums vom Grad k2
5
3
10
13
19
?
20
21
1
2
14
15
4
7
11
12
91Sukzessiver Aufbau eines B-Baums vom Grad k2
5
3
10
13
19
?
20
21
1
2
14
15
4
5
7
11
12
92Sukzessiver Aufbau eines B-Baums vom Grad k2
6
3
10
13
19
?
20
21
1
2
14
15
4
5
7
11
12
93Sukzessiver Aufbau eines B-Baums vom Grad k2
6
3
10
13
19
?
20
21
1
2
14
15
4
5
6
7
11
12
94(No Transcript)
95Sukzessiver Aufbau eines B-Baums vom Grad k2
8
3
10
13
19
?
1
2
20
21
14
15
4
5
6
7
11
12
96Sukzessiver Aufbau eines B-Baums vom Grad k2
8
3
10
13
19
?
1
2
20
21
14
15
8
4
5
6
7
11
12
97Sukzessiver Aufbau eines B-Baums vom Grad k2
8
3
10
13
19
?
1
2
20
21
14
15
8
4
5
6
7
11
12
98Sukzessiver Aufbau eines B-Baums vom Grad k2
8
3
10
13
19
?
1
2
20
21
14
15
8
4
5
6
7
11
12
99Sukzessiver Aufbau eines B-Baums vom Grad k2
8
3
10
13
19
?
1
2
20
21
4
5
14
15
8
6
7
11
12
100Sukzessiver Aufbau eines B-Baums vom Grad k2
6
3
10
13
19
?
1
2
20
21
4
5
14
15
6
7
8
11
12
101Sukzessiver Aufbau eines B-Baums vom Grad k2
6
3
10
13
19
?
1
2
20
21
4
5
14
15
7
8
11
12
102Sukzessiver Aufbau eines B-Baums vom Grad k2
6
3
10
13
19
?
1
2
20
21
4
5
14
15
7
8
11
12
103Sukzessiver Aufbau eines B-Baums vom Grad k2
6
3
10
13
19
?
1
2
20
21
4
5
14
15
7
8
11
12
104Sukzessiver Aufbau eines B-Baums vom Grad k2
6
3
10
13
19
3
6
?
1
2
20
21
4
5
14
15
7
8
11
12
105Sukzessiver Aufbau eines B-Baums vom Grad k2
10
13
19
3
6
?
1
2
20
21
4
5
14
15
7
8
11
12
106Sukzessiver Aufbau eines B-Baums vom Grad k2
10
13
19
3
6
?
1
2
20
21
4
5
14
15
7
8
11
12
107Sukzessiver Aufbau eines B-Baums vom Grad k2
10
10
13
19
3
6
?
1
2
20
21
4
5
14
15
7
8
11
12
108Sukzessiver Aufbau eines B-Baums vom Grad k2
B-Baum mit Minimaler Speicherplatz- ausnutzung
10
13
19
3
6
?
1
2
20
21
4
5
14
15
7
8
11
12
109Sukzessiver Aufbau eines B-Baums vom Grad k2
B-Baum mit Minimaler Speicherplatz- ausnutzung
10
13
19
3
6
?
1
2
20
21
4
5
14
15
7
8
11
12
110(No Transcript)
111Sukzessiver Aufbau eines B-Baums vom Grad k2
23
10
13
19
3
6
?
1
2
20
21
4
5
14
15
7
8
11
12
112Sukzessiver Aufbau eines B-Baums vom Grad k2
10
13
19
3
6
?
1
2
20
21
23
4
5
14
15
7
8
11
12
113Sukzessiver Aufbau eines B-Baums vom Grad k2
14
10
13
19
3
6
?
1
2
20
21
23
4
5
14
15
7
8
11
12
114Sukzessiver Aufbau eines B-Baums vom Grad k2
14
10
Unterlauf
13
19
3
6
?
1
2
20
21
23
4
5
14
15
7
8
11
12
115Sukzessiver Aufbau eines B-Baums vom Grad k2
10
Unterlauf
13
19
3
6
?
1
2
20
21
23
4
5
15
7
8
11
12
116Sukzessiver Aufbau eines B-Baums vom Grad k2
10
13
20
3
6
?
1
2
21
23
4
5
15
19
7
8
11
12
117Sukzessiver Aufbau eines B-Baums vom Grad k2
5
10
13
20
3
6
?
1
2
21
23
4
5
15
19
7
8
11
12
118Sukzessiver Aufbau eines B-Baums vom Grad k2
5
10
13
20
3
6
?
1
2
21
23
4
5
15
19
Unterlauf
7
8
11
12
119Sukzessiver Aufbau eines B-Baums vom Grad k2
10
13
20
3
6
?
1
2
21
23
4
15
19
merge
7
8
11
12
120Sukzessiver Aufbau eines B-Baums vom Grad k2
10
13
20
3
6
?
1
2
21
23
4
15
19
merge
7
8
11
12
121Sukzessiver Aufbau eines B-Baums vom Grad k2
10
Unterlauf
13
20
3
?
1
2
21
23
4
6
7
8
15
19
11
12
122Sukzessiver Aufbau eines B-Baums vom Grad k2
10
merge
13
20
3
?
1
2
21
23
4
6
7
8
15
19
11
12
123Sukzessiver Aufbau eines B-Baums vom Grad k2
10
merge
13
20
3
?
1
2
21
23
4
6
7
8
15
19
11
12
124Sukzessiver Aufbau eines B-Baums vom Grad k2
3
10
13
20
?
1
2
21
23
4
6
7
8
15
19
11
12
125Sukzessiver Aufbau eines B-Baums vom Grad k2
Schrumpfung, Freie Knoten
3
10
13
20
?
1
2
21
23
4
6
7
8
15
19
11
12
126Speicherstruktur eines B-Baums auf dem
Hintergrundspeicher
4
Speicherblock Nr 4
127Speicherstruktur eines B-Baums auf dem
Hintergrundspeicher
8 KB-Blöcke
08KB
18KB
3
28KB
38KB
48KB
0
Block- Nummer
Datei
128Speicherstruktur eines B-Baums auf dem
Hintergrundspeicher
8 KB-Blöcke
08KB
18KB
3
28KB
38KB
48KB
0
Block- Nummer
Datei
129Speicherstruktur eines B-Baums auf dem
Hintergrundspeicher
8 KB-Blöcke
08KB
1
18KB
3
1
28KB
0
1
Freispeicher- Verwaltung
38KB
0
48KB
0
0
1
1
Block- Nummer
0
Datei
130ZusammenspielHintergrundspeicher --
Hauptspeicher
Hauptspeicher- Puffer
Hintergrundspeicher
4
4
Zugriffslücke 105
131B-Baum
Referenz- schlüssel
Such- schlüssel
132(No Transcript)
133(No Transcript)
134Mehrere Indexe auf denselben Objekten
B-Baum Mit (PersNr, Daten) Einträgen
B-Baum Mit (Alter, ???) Einträgen
Alter, PersNr
Name, Alter, Gehalt ...
135Mehrere Indexe auf denselben Objekten
Wer ist 20 ?
B-Baum Mit (PersNr, Daten) Einträgen
B-Baum Mit (Alter, ???) Einträgen
20, 007
Alter, PersNr
Name, Alter, Gehalt ...
136Mehrere Indexe auf denselben Objekten
Wer ist 20 ?
B-Baum Mit (PersNr, Daten) Einträgen
B-Baum Mit (Alter, ???) Einträgen
20, 007
007,Bond,20,...
Alter, PersNr
Name, Alter, Gehalt ...
137Eine andere Möglichkeit Referenzierung über
Speicheradressen
Alter
PersNr
20,...
007,...
007, Bond, 20, ...
138Realisierungstechnik fürHintergrundspeicher-Adres
sen
Seiten / Blöcke (ca 8 KB)
139Adressierung von Tupeln auf dem
Hintergrundspeicher
140Verschiebung innerhalb einer Seite
141Verschiebung von einer Seite auf eine andere
Forward
142Verschiebung von einer Seite auf eine andere
Bei der nächsten Verschiebung wird der Forward
auf Seite 4711 geändert (kein Forward auf Seite
4812)
143Statische 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
144(No Transcript)
145Statisches Hashing
146(No Transcript)
147Hashfunktion 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... (40..0100)
- h(006) 011000000... (60..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)
1484
7 13
6 18
32 48
1497 13
4
6 18
32 48
150(No Transcript)
1517 13
4
6 18
32 48
152- Einfügen 12
- 121100
- h(12)00110...
7 13
4 12
6 18
32 48
153- Einfügen 20
- 2010100
- h(20)001010...
7 13
4 12
6 18
32 48
Overflow
154- h(12)001100..
- h(4) 00100..
- h(20)0010100..
155- h(12)001100..
- h(4) 00100..
- h(20)0010100..
4 20
12
156(No Transcript)
157(No Transcript)
158(No Transcript)
159(No Transcript)
160Mehrdimensionale Datenstrukturen
- 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
161Grundlagen mehrdimensionaler Datenstrukturen
- Wertebereiche D0,..., Dk-1
- alle Di sind endlich, linear geordnet und
besitzen kleinstes (-?i) und größtes (?i) Element - Datenraum D D0?... ?Dk-1
- k-dimensionaler Schlüssel entspricht Punkt im
Datenraum p ? D
162Grundlagen mehrdimensionaler Datenstrukturen
- 1. Exact Match Query spezifiziert Suchwert
für jede Dimension Di - 2. Partial Match Query spezifiziert
Suchwert für einen Teil der Dimensionen - 3. Range Query spezifiziert ein
Suchintervall ugi, ogi für alle Dimensionen - 4. Partial Range Query spezifiziert ein
Suchintervall für einen Teil der Dimensionen
163Charakterisierung mehrdimensionaler
Datenstrukturen
- 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)
Grid-File (Gitter-Datei) atomar, vollständig,
disjunkt
164Charakterisierung mehrdimensionaler
Datenstrukturen
- 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)
K-D-B-Baum atomar, vollständig, disjunkt
165Charakterisierung mehrdimensionaler
Datenstrukturen
- 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)
R-Baum atomar, disjunkt
166Charakterisierung mehrdimensionaler
Datenstrukturen
- 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)
R-Baum atomar
167Charakterisierung mehrdimensionaler
Datenstrukturen
- 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)
Buddy-Hash-Baum atomar, disjunkt
168Charakterisierung mehrdimensionaler
Datenstrukturen
- 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)
Z-B-Baum vollständig,disjunkt
169R-Baum Urvater der baum-strukturierten
mehrdimensionalen Zugriffsstrukturen
170Gute versus schlechte Partitionierung
171Nächste Phase in der Entstehungsgeschichte des
R-Baums
172Nächste Phase
173Datenraum
174Wachsen des Baumsnach oben wie im B-Baum
175Datenraum
176Datenraum und Speicherstruktur Überblick
177(No Transcript)
178Bereichsanfragen auf dem R-Baum
179(No Transcript)
180Indexierung räumlicher Objekte (anstatt Punkten)
mit dem R-Baum
181Indexierung räumlicher Objekte (anstatt Punkten)
mit dem R-Baum
182Indexierung räumlicher Objekte (anstatt Punkten)
mit dem R-Baum
183Bitmap-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
184Beispiel-Anfrage und Auswertung
185Bitmap-Operationen
186Bitmap-Join-Index
187Bitmap-Join-Index
188 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)...
189 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)...
1905
5
Select k. From Verkäufe v, Kunden k Where
v.ProduktID 5 And v.KundenNr
k.KundenNr
B-Baum TID-V (i,II)(ii,I)(iii,II)(iv,II)(v,I
)(vi,II)...
191 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)...
192Objektballung / Clustering logisch verwandter
Daten
193(No Transcript)
194(No Transcript)
195(No Transcript)
196Unterstützung eines Anwendungsverhaltens
Select Name From Professoren Where PersNr 2136
Select Name From Professoren Where Gehalt gt
90000 and Gehalt lt 100000
197Indexe in SQL
Create index SemsterInd on Studenten (Semester)
drop index SemsterInd
198(No Transcript)
199(No Transcript)
200(No Transcript)