Physische Datenorganisation

Werbung
Physische Datenorganisation
Th
Themenbereiche:
b i h
• Speicherhierarchie
• Hintergrundspeicher / RAID
• Speicherstrukturen
• ISAM
• B-Bäume
B Bäume
• Hashing
• Clustering
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Überblick: Speicherhierarchie
Register
(L1/L2/L3)
Cache
Hauptspeicher
Plattenspeicher
Archivspeicher
p
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Überblick: Speicherhierarchie
1 K (Kilo) = 103
1 M (Mega) = 106
1 G ((Giga)
g ) = 109
1 T (Tera) = 1012
1 P (Peta) = 1015
1 – 8 Byte/Register
C
Compiler
il
Register
Cache
Hauptspeicher
Ungefähre
Größenordnungen,
veraltet schnell!
8 – 128 Byte/Cache
y
Cache-Controller
hoher GB-Bereich,
GB Bereich
4 – 64 KB Blockgröße
Betriebssystem
Plattenspeicher
im Bereich TB
Benutzer
Archivspeicher
p
im Bereich PB
Benutzer
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Überblick: Speicherhierarchie
(Flash-Speicher
(Flash
Speicher
100 μs)
1-10ns
Register
10-100ns
Cache
100-1000ns
Hauptspeicher
10 ms
Plattenspeicher
p
1 n (nano) = 10-9
1 μ (micro) = 10-6
1 m (milli) = 10-3
Zugriffslücke
ca. 105
sec
Archivspeicher
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Überblick: Speicherhierarchie
Kopf (1min)
Raum (10 min)
München (1.5h)
(Mars (2 Monate))
Pluto (2 Jahre)
Andromeda
(2000 Jahre)
1-10ns
Register
10-100ns
Cache
100-1000ns
Hauptspeicher
10 ms
Plattenspeicher
sec
Archivspeicher
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Magnetplattenspeicher
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
6
09.12.2014
Lesen von Daten von der
Platte
Seek Time: Arm/Kopf positionieren
Latenzzeit: Rotation zum Anfang des Blocks
½ Plattenumdrehung (im Durchschnitt)
Lesezeit:
L
it Transfer
T
f von der
d Platte
Pl tt zum
Hauptspeicher
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Random versus Chained IO
Random I/O
Jedesmal Arm positionieren
Jedesmal Latenzzeit
Chained IO
Einmal positionieren, dann „von der Platte kratzen“
Chained IO ist ein bis zwei Größenordnungen
schneller als random IO
 in Datenbank-Algorithmen beachten !
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Systempuffer-Verwaltung
einlagern
Hauptspeicher
verdrängen
Platte ~ persistente DB
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Ein und Auslagern von Seiten
Ein Systempuffer ist in Seitenrahmen gleicher Größe aufgeteilt
 Ein Rahmen kann eine Seite aufnehmen
 „Überzählige“ Seiten werden auf die Platte ausgelagert
Hauptspeicher
0
4K
16K
20K
32K
36K
48K
52K
8K
24K
40K
56K
12K
28K
Platte(swap device)
P123
P480
44K
60K
Seitenrahmen
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
Seite
09.12.2014
Adressierung von Tupeln auf
d
dem
Hintergrundspeicher
Hi t
d
i h
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Verschiebung innerhalb
einer
i
Seite
S it
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Verschiebung von einer
Seite auf eine andere
Forward
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
13
09.12.2014
Verschiebung von einer
S it auff eine
Seite
i andere
d
Bei der nächsten
Verschiebung wird
d „Forward“
der
d auff
Seite 4711 geändert
(kein Forward auf
Seite 4812)
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Datentransfer
Einfache Anfragebeantwortung:
Tupel aller beteiligten Relationen nacheinander in
den Hauptspeicher holen
 die teuerste Art 
Bei näherer Betrachtung stellt man folgendes fest:
• Oft erfüllt
füllt nur ein
i B
Bruchteil
ht il d
der Tupel
T
l die
di
Anfragebedingungen
• Anfragen
A f
h b oft
haben
ft äh
ähnliche
li h Prädikate
P ädik t
• Festplatten erlauben wahlfreien Zugriff
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Indexstrukturen
• Indexstrukturen nutzen diese Eigenschaften von
Anfragen aus, um das transferierte Datenvolumen
klein zu halten
• Sie erlauben schnellen assoziativen Zugriff auf die
Daten
• Nur der Teil der Daten, der zur Beantwortung der
Anfrage wirklich gebraucht wird, wird in den
Hauptspeicher geholt
• Zwei bedeutende Indexierungsansätze
o Hierarchisch (Bäume)
o Partitionierung
g ((Hashing)
g)
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Hierarchische Indexe
Wir betrachten zwei hierarchische
Indexstrukturen:
• ISAM (Index-Sequential Access Method)
• B-Bäume
• ISAM war Vorgänger von B-Bäumen
• Hauptidee ist die Tupel auf dem indexierten
Attribut zu sortieren und eine Indexdatei darüber
anzulegen
• Ähnlich wie ein Daumenindex an der Seite eines
Buches, durch den man schnell durchblättern
kann
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Beispiel
Indexseiten
5
…
9
S ti t 
Sortiert
1
2
3
Seite 1
4
5
6
7
8
…
Seite 2
Seite n
Datenseiten
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Beispiel cont.
cont
• Student mit Matrikelnummer 13542 wird gesucht
g
• Während Anfragebearbeitung geht man durch die
passt
Indexseiten und sucht die Stelle,, an der 13542 p
• Von dort aus wird die referenzierte Datenseite geholt
• Vorteil: Anzahl der Indexseiten ist normalerweise
sehr viel kleiner als die Anzahl der Datenseiten, d.h.
es wird I/O gespart
g p
• Es können auch Bereichsanfragen beantwortet
werden ((z.B. bei einer Suche nach allen MatrNr
zwischen 765 und 1232: zuerst die erste passende
Datenseite finden und von dort aus sequentiell durch
di D
die
Datenseiten
t
it bis
bi MatrNr
M t N 1232 llaufen)
f )
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Probleme mit ISAM
• Obwohl Suche auf ISAM einfach und schnell ist
ist,
kann die Instandhaltung des Indexes teuer werden
• Wenn ein Tupel auf eine gefüllte Datenseite
eingefügt werden soll, muss Platz geschaffen
werden: die Datenseite wird auf zwei Seiten
aufgeteilt (wir müssen Sortierung beibehalten)
g wiederum einen neuen Eintrag
g auf
• Das erzeugt
einer Indexseite
• Wenn auf der Indexseite auch kein Platz mehr ist,,
müssen die Einträge verschoben werden, um Platz
zu schaffen
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Weitere Probleme
• Obwohl die Anzahl der Indexseiten kleiner als die
Anzahl der Datenseiten, kann Durchlauf der
Indexseiten trotzdem lange dauern
• Idee: warum richtet man nicht Indexseiten für die
Indexseiten ein?
• Das ist im Prinzip die Idee eines B-Baums
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Idee
Indexseiten
45
Indexseiten
…
9 29 35
S ti t 
Sortiert
1
2
3
Seite 1
4
15 17 20
…
Seite 2
Seite n
Datenseiten
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
B Bäume
B-Bäume
Bäume iin d
Bä
der IInformatik
f
tik
… haben Knoten
… haben Kanten
… haben eine Wurzel (oben!)
… haben Blätter (unten!)
… sind balanciert oder nicht (dann eher Kette)
Wurzel
Schematische Darstellung
balancierter Baum:
Blätter
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
23
09.12.2014
Eigenschaften B-Baum
B Baum
Ei B
Ein
B-Baum
B
vom Grad
G dih
hatt ffolgende
l
d Ei
Eigenschaften:
h ft
• Jeder Pfad von der Wurzel zu einem Blatt hat die
gleiche Länge
• Jeder Knoten (außer der Wurzel) hat mindestens i und
höchstens 2i
• Einträge (in obigem Beispiel i = 2)
• Die
Di Einträge
Ei t ä iin jjedem
d
K
Knoten
t sind
i d sortiert
ti t
• Jeder Knoten (außer Blätter) mit n Einträgen hat n + 1
Kinder
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
24
09.12.2014
Eigenschaften B-Baum
B Baum
• S
Seien
i p0,
0 k1,
k1 p1,
1 k2,
k2 . . . kn,
k pn die
di Einträge
Ei t ä iin einem
i
Knoten (pj sind Zeiger, kj Schlüssel)
Dann gilt folgendes:
o Der Unterbaum der von p0 referenziert wird, enthält
nur Schüssel kleiner als k1
o pj zeigt auf einen Unterbaum mit Schlüsseln
zwischen kj und kj+1
o Der
D Unterbaum
U t b
d
der von pn referenziert
f
i t wird,
i d enthält
thält
nur Schlüssel größer als kn
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
25
09.12.2014
Einfügealgorithmus
1 Fi
1.
Finde
d den
d richtigen
i hti
Blattknoten,
Bl ttk t
um den
d neuen Schlüssel
S hlü
l
einzufügen
2 Füge Schlüssel dort ein
2.
3. Falls kein Platz mehr da
i. Teile Knoten und ziehe Median heraus
ii. Füge alle Knoten kleiner als Median in linken Knoten,
alle größer als Median in rechten Knoten
iii Füge
iii.
Fü Median
M di iin Elt
Elternknoten
k t ein
i und
d passe Z
Zeiger
i
an
4. Falls kein Platz in Elternknoten
i Falls Wurzelknoten,
i.
Wurzelknoten kreiere neuen Wurzelknoten und
füge Median ein, passe Zeiger an
ii. Ansonsten, wiederhole 3. mit Elternknoten
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
26
09.12.2014
Löschalgorithmus
• In einem Blattknoten kann ein Schlüssel einfach gelöscht
werden
• In einem inneren Knoten muss Verbindung zu den Kindern
bestehen bleiben
 Deshalb wird der nächstgrößere
ß
(oder
(
nächstkleinere))
Schlüssel gesucht (in entsprechendem Kindknoten)
 Dieser Schlüssel wird an die Stelle des gelöschten
Schlüssels geschrieben
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
27
09.12.2014
Löschalgorithmus cont.
cont
• Nach Löschen eines Schlüssels kann ein Knoten
unterbelegt
g sein ((weniger
g als i Einträge
g haben))
• Dann wird dieser Knoten mit einem Nachbarknoten
verschmolzen
• Das kann eine Unterbelegung im Elternknoten hervorrufen,
f
d.h. Elternknoten muss ebenfalls verschmolzen werden
• Da dieses Verfahren relativ aufwändig ist und Datenbanken
eher wachsen als schrumpfen, wird diese Verschmelzung
oft nicht realisiert
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
28
09.12.2014
D..
Weitere
Daten
S..
Suchschlüssel
V..
Verweise
(SeitenNr)
Beispielbaum
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Sukzessiver Aufbau eines BB
Baums
vom G
Grad
d k=2
k 2
Siehe
http://wwwdb in tum de/research/publications/books/DBMSeinf/EIS
db.in.tum.de/research/publications/books/DBMSeinf/EIS,
Kapitel 7, ab Folie 51
Im Internet gibt es eine Reihe von
Animationsprogrammen für B-Bäume – ohne Gewähr!
z.B. http://slady.net/java/bt/ sieht ganz gut aus oder auch
http://people ksp sk/~kuko/bak/ (auch andere
http://people.ksp.sk/~kuko/bak/
Suchbäume)
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
B+ Bäume
B+-Bäume
• Performanz eines B-Baums ist stark abhängig von der
Höhe des Baumes ab  möglichst
hoher Verzweigungsgrad der inneren Knoten
• Abspeichern von Daten in inneren Knoten reduziert
den Verzweigungsgrad
• B+-Bäume speichern nur Referenzschlüssel in inneren
Knoten, die Daten selbst werden in Blattknoten
gespeichert
• Meistens sind die Blattknoten noch verkettet, um
schnelle sequentielle Suche zu ermöglichen
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Struktur B+
B+-Baum
Baum
Index
45
9 29 35
1
D1
2
D2
Seite 1
Indexseiten
…
15
D15
17
D17
20
D20
…
Seite 2
Seite n
Datenseiten,, sortiert,,
doppelt verkettet
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Präfix B+
B+-Bäume
Bäume
• Weitere Verbesserung ist der Einsatz von
Referenzschlüsselpräfixen, z.B. bei langen Zeichenketten
• Es muss nur irgendein Referenzschlüssel gefunden
werden, der linken vom rechten Teilbaum trennt:
 Müller-Pfefferkorn
Müller Pfefferkorn <= P < Schmidtchen
 Systemprogramm <= ? < Systemprogrammierer
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Mehrere Indexe auf den
selben Daten
Primärindex - Sekundärindexe
MatrNr
25403
29120
29555
27550
Studenten
Name
Jonas
Theophrastos
Feuerbach
Schopenhauer
Semester
12
2
2
6
Wann
• Index auf MatrNr?
• Index auf Name?
• Index auf Semester?
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Sekundärindexe
Primär-Index
45
9
1
D1
Indexseiten
…
29 35
2
D2
Seite 1
17
D17
15
D15
20
D20
Datenseiten, sortiert, doppelt
verkettet
…
Seite n
Seite 2
…
Indexseiten
Sekundär-Index
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
DDL: Kreiere Index
CREATE [UNIQUE] INDEX index_name
ON table_name (column_name1 [, column_name2, …])
Beispiel:
CREATE INDEX gewicht_ziel
ON Gepaeckstueck (Gewicht,
(Gewicht Ziel)
Datenbanksysteme für Hörer anderer Fachrichtungen WS 2014/2015
09.12.2014
Herunterladen