Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation Architektur eines DBMS ...

123
Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation Architektur eines DBMS Speicherhierarchie Hintergrundspeicher / RAID Index-Verfahren Ballung (Clustering) „beste“ Zugriffsmethode

Transcript of Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation Architektur eines DBMS ...

Page 1: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

Vorlesung Datenbanksysteme vom 20.10.2014Physische Datenorganisation

Architektur eines DBMS Speicherhierarchie Hintergrundspeicher / RAID Index-Verfahren Ballung (Clustering)„beste“ Zugriffsmethode

Page 2: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

Architektur eines DBMS

• Wichtigste SW-Komponenten eines DBMS• SW-Komponenten der physischen Speicherorganisation

Page 3: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

3

Architektur eines DBMS

Page 4: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

4

Verwaltet die Daten auf der Platte Die höheren Schichten des DBMS sehen keine HW-Details

sondern nur noch eine Sammlung von Seiten Disk Space Manager stellt Routinen bereit für

Allokieren / Deallokieren von SeitenLesen / Schreiben einer Seite

Bemerkung: 1 Seite entspricht einem Block auf der Platte

=> Lesen/Schreiben einer Seite in einem I/O-Vorgang Die meisten DB-Systeme haben eigenes Disk Management

(und erweitern nicht bloß die File System Funktionen des OS) => flexibler, größere OS-Unabhängigkeit

Disk Space Manager:

Page 5: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

5

Verwaltet den Datenbankpuffer (buffer pool) im Hauptspeicher Bearbeitung von Daten kann immer nur im Hauptspeicher

(und nicht direkt auf der Platte) geschehen.) Seiten müssenvon der Platte in den Datenbankpuffer gelesen und späterwieder auf die Platte zurück geschrieben werden.

Buffer Manager ist für das Einlesen und Auslagern von Seitenzw. Datenbankpuffer und Platte verantwortlich. Die anderenSchichten des DBMS fordern einfach eine Seite an.

Buffer Manager speichert zu jeder Seite im Puffer Information: ob die Seite noch verwendet wird: in diesem Fall darf die

Seite nicht durch andere Seiten überschrieben werden.ob die Seite geändert wurde: nur in diesem Fall ist

Zurückschreiben auf Platte nötig.

Buffer Manager:

Page 6: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

6

Die Zeilen einer DB-Tabelle (= Tupeln einer Relation) haben im allgemeinen nicht auf einer einzelnen Seite Platz. Logisch zusammengehörige Seiten werden als "File" verwaltet.

Zwei Hauptaufgaben dieses Software Layers:1. Verwaltung der Seiten eines Files (entspricht üblicherweise

einer Tabelle): "Heap file": Zufällige Verteilung der Tupeln auf die Seiten "Index file": Spezielle Verteilung der Tupeln auf die Seiten

zwecks Optimierung bestimmter Zugriffe. 2. Verwaltung der Tupeln innerhalb einer einzelnen Seite:

Seitenformat: Tupeln mit fixer oder variabler Länge Zugriff der anderen SW-Schichten auf die einzelnen Tupeln:

mit TID (Tupelidentifikator) (engl.: RID: record ID), d.h. Seiten-ID + Speicherplatz innerhalb der Seite

Files and Access Methods Layer:

Page 7: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

Speicherhierarchie

• Primärer / sekundärer / tertiärer Speicher• Zugriffszeiten• Puffer-Verwaltung• Adressierung von Tupeln

Page 8: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

8

Überblick: Speicherhierarchie

Primärspeicher

Sekundärspeicher

Tertiärspeicher

Register

Cache

Hauptspeicher

Plattenspeicher

Archivspeicher

Page 9: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

9

Register

Cache

Hauptspeicher

Plattenspeicher

Archivspeicher

1 – 8 ByteCompiler

8 – 128 ByteCache-Controller

4 – 64 KBBetriebssystem

Benutzer

Überblick: Speicherhierarchie

Page 10: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

10

Überblick: Speicherhierarchie1-10ns

Register10-100ns

Cache100-1000ns

Hauptspeicher10 ms

Plattenspeicher

Archivspeicher: sec

Zugriffslücke105

Page 11: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

11

Lesen von Daten von der Platte Seek Time: Arm auf gewünschte Spur positionieren: ca.

5ms Latenzzeit (= "rotational delay"): Warten, bis sich der

gesuchte Block am Kopf vorbeibewegt (durchschnittlich ½ Plattenumdrehung; 10000 Umdrehungen / min) ca. 3ms

Transfer von der Platte zum Hauptspeicher:(100 Mb /s) ca. 15 MB/s

Bemerkung: Sektor: physikalische Größe

der Platte, meist 512B Block: kleinste Lese/Schreib-

Einheit (= mehrere Sektoren),z.B.: 4kB, 8kB

Page 12: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

12

Random versus Chained IOBeispiel: 1000 Blöcke à 4KB sind zu lesen Random I/O

Jedes Mal Arm positionieren Jedes Mal Latenzzeit 1000 * (5 ms + 3 ms) + Transferzeit von 4 MB ca. 8000 ms + 300ms 8s

Chained I/O Ein Mal positionieren, dann "von der Platte kratzen" 5 ms + 3ms + Transferzeit von 4 MB ca. 8ms + 300 ms 1/3 s

Also ist chained IO ein bis zwei Größenordnungen schneller

als random IO in Datenbank-Algorithmen unbedingt beachten!

Page 13: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

13

verdrängen

Hauptspeicher

einlagern

Platte ~ persistente DB

Datenbankpuffer-Verwaltung

Bemerkung: DBMS greift nie direkt auf

eine Seite (= Block) desHintergrundspeichers zu

Seite muss zuerst in den Hauptspeicher (Datenbank-puffer) gelesen werden.

Page 14: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

14

Ein- und Auslagern von Seiten DB-Puffer ist in Seitenrahmen gleicher Größe aufgeteilt. Ein Rahmen kann eine Seite aufnehmen. "Überzählige" Seiten werden auf die Platte ausgelagert.

PlatteHauptspeicher0 4K 8K 12K

28K

44K

60K

40K

48K

24K20K16K

32K 36K

56K52K

P480

P123

Seitenrahmen Seite

Page 15: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

15

Adressierung von Tupeln auf dem Hintergrundspeicher

Page 16: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

16

Verschiebung innerhalb einer Seite

Page 17: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

17

Verschiebung von einer Seite auf eine andere

Forward

Page 18: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

18

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)

Page 19: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

Hintergrundspeicher / RAID

Page 20: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

20

Disk Arrays RAID-Systeme

Page 21: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

21

Abkürzung: ursprünglich: redundant array of inexpensive disks mittlerweile: redundant array of independent disksIdee: mehrere kleine Platten an Stelle von einer großen Platte "inexpensive disks" (ursprüngliche Idee von RAID):

Kleine Platten sind wesentlich billiger als große Platten. (nicht zuletzt wegen Erfolg von RAID): ausreichend große

Platten werden mittlerweile nicht einmal mehr hergestellt.

"independent disks": Parallele Schreib/Lese-Zugriffe auf die Platten möglichNach außen: über RAID-Controller sieht Speicherarray

logisch wie eine einzige, große Platte aus.

RAID

Page 22: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

22

Es gibt 8 RAID-Levels (für unterschiedliche Zielsetzungen):RAID 0, 1, 0+1 (auch RAID 10 genannt), 2, 3, 4, 5, 6

"Striping" (= Verteilung der Daten auf mehrere Platten):ermöglicht parallelen Schreib/Lese-ZugriffProblem: Ausfallswahrscheinlichkeit steigt mit der

Anzahl der Platten

Redundanz : "Mirroring" (= mehrfaches Abspeichern der Daten):

ermöglicht parallelen Lese-Zugriff Abspeichern von Fehlererkennungs- und

Korrekturcodes:ermöglicht Rekonstruktion der Daten bei Ausfall einer Platte.

RAID Levels

Page 23: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

23

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...

Datenverlust wird immer wahrscheinlicher, je mehr Platten man verwendet (Stripingbreite = Anzahl der Platten, hier 2)

A

C

B

D

A B C D

Datei

Page 24: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

24

RAID 1: Spiegelung (mirroring)

Datensicherheit: durch Redundanz aller Daten 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

werdenKann aber im Allgemeinen nicht parallel geschehen

wegen Datenverlust (z.B. bei Stromausfall)

A

C

B

D

A

C

B

D

Page 25: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

25

RAID 0: Striping (blockweise) RAID 1: Mirroring RAID 0+1 (= RAID 10): kombiniert Striping und Mirroring

RAID 2, 3, 4, 5, 6: unterschiedliche Kombinationen von Ideen:Striping auf Bit (oder Byte)-Ebene bzw. blockweiseUmfang des Fehlererkennungs- und Korrekturcodes:

Rekonstruktion der Daten bei Ausfall einer einzelnen Plattebzw. auch bei Ausfall von 2 Platten möglich

Speicherort des Fehlererkennungs- und Korrekturcodes: auf alle Laufwerke verteilt bzw. auf zusätzlicher Platte

Zusammenfassung: RAID Levels

Page 26: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

Index-Verfahren

• B-Bäume• B+-Bäume• Hashing• R-Bäume

Page 27: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

27

Problemstellung: "Normale" Binär-Bäume (wie AVL-Bäume, Rot/Schwarz-

Bäume) sind gut geeignet für den Hauptspeicher. Bei Datenbanken benötigt man ein Verfahren, das auf die

Seitengröße des Hintergrundspeichers abgestimmt ist.Lösung: B-Bäume (oder B+-Bäume)

Idee von B-Bäumen (und B+-Bäumen):Die Knotengröße entspricht der Seitengröße.Der Verzweigungsgrad des Baums hängt davon ab, wie

viele Einträge auf einer Seite Platz haben.Durch entsprechende Algorithmen für das Einfügen und

Löschen von Daten wird garantiert, dass der Baum immer ausbalanciert ist => Logarithmische Zugriffszeiten.

B-Bäume

Page 28: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

28

S.. SuchschlüsselD.. Weitere Daten

V.. Verweise (SeitenNr)

Page 29: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

29

Page 30: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

30

Page 31: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

31

Einfügen eines neuen Objekts (Datensatz) in einen B-Baum

Page 32: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

32

B-Baum vom Grad k = 2 Ausgangssituation: 1 Knoten mit Schlüssel-Werten 10,

13, 19 Sukzessiver Aufbau des Baums durch das Einfügen

neuer Schlüssel-Werte: 7, 3, 1, 2, 4

Beispiel 1

Page 33: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

33

Beispiel 1

10 13 19

7

Page 34: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

34

7 10 13 19

3

Beispiel 1

Page 35: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

35

7 10 13 19

3

?

Beispiel 1

Page 36: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

36

7 10

3

13 19

?

Beispiel 1

Page 37: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

37

3 7

3

13 19

?10

Beispiel 1

Page 38: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

38

3 7 13 19

?10

Beispiel 1

Page 39: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

39

3 7 13 19

?10

1

Beispiel 1

Page 40: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

40

3 7 13 19

?10

1

Beispiel 1

Page 41: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

41

3 7 13 19

?10

1

Beispiel 1

Page 42: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

42

1 3 7 13 19

?10

1

Beispiel 1

Page 43: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

43

1 3 7 13 19

?10

2

Beispiel 1

Page 44: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

44

1 3 7 13 19

?10

2

2

Beispiel 1

Page 45: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

45

1 2 3 7 13 19

?10

2

2

Beispiel 1

Page 46: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

46

1 2 3 7 13 19

?10

4

Beispiel 1

Page 47: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

47

1 2 3 7 13 19

?10

4

4

Beispiel 1

Page 48: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

48

1 2 3 7 13 19

?10

4

4

Beispiel 1

Page 49: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

49

1 2 3 7 13 19

?10

4

4

Beispiel 1

Page 50: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

50

1 2 3 7 13 19

?3 10

4

4

Beispiel 1

Page 51: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

51

1 2 13 19

?3 10

4 7

Beispiel 1

Page 52: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

52

B-Baum vom Grad k = 2 Ausgangssituation:

Baum der Tiefe 2Die Wurzel hat bereits den maximalen Füllstand

erreicht Einfügen eines weiteren Knotens führt zur Teilung

einesBlattknotens

Teilung des Blattknotens führt nun zur Teilung der Wurzel

Resultat: Baum der Tiefe 3

Beispiel 2

Page 53: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

53

1 2

14 15

?3 10 13 19

4 5 6 7 11 12

20 21

8

Beispiel 2

Page 54: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

54

1 2

14 15

?3 10 13 19

4 5 6 7 11 12

20 21

8

8

Beispiel 2

Page 55: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

55

1 2

14 15

?3 10 13 19

4 5 6 7 11 12

20 21

8

8

Beispiel 2

Page 56: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

56

1 2

14 15

?3 10 13 19

4 5 6 7 11 12

20 21

8

8

Beispiel 2

Page 57: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

57

1 2

14 15

?3 10 13 19

6 7 11 12

20 21

8

84 5

Beispiel 2

Page 58: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

58

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

64 5

Beispiel 2

Page 59: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

59

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

4 5

Beispiel 2

Page 60: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

60

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

4 5

Beispiel 2

Page 61: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

61

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

4 5

Beispiel 2

Page 62: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

62

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

4 5

3 6

Beispiel 2

Page 63: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

63

1 2

14 15

?13 19

7 8 11 12

20 21

10

4 5

3 6

Beispiel 2

Page 64: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

64

1 2

14 15

?13 19

7 8 11 12

20 21

4 5

3 6

10

Beispiel 2

Page 65: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

65

1 2

14 15

?13 19

7 8 11 12

20 21

4 5

3 6

10

10

Beispiel 2

Page 66: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

66

1 2

14 15

?13 19

7 8 11 12

20 21

4 5

3 6

10B-Baum mit Minimaler

Speicherplatz-ausnutzung

Beispiel 2

Page 67: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

67

B-Baum vom Grad k = 2 Ausgangssituation: Einige Knoten haben minimalen

Füllstand Löschen von Schlüsselwerten führt zu Unterlauf

) Ausgleich mit einem Nachbarknoten erforderlich.

Beispiel 3

Page 68: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

68

1 2

14 15

?13 19

7 8 11 12

20 21 23

4 5

3 6

10

Beispiel 3

Page 69: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

69

1 2

14 15

?13 19

7 8 11 12

20 21 23

4 5

3 6

10

14Beispiel 3

Page 70: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

70

1 2

14 15

?13 19

7 8 11 12

20 21 23

4 5

3 6

10

14

Unterlauf

Beispiel 3

Page 71: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

71

1 2

15

?13 19

7 8 11 12

20 21 23

4 5

3 6

10

Unterlauf

Beispiel 3

Page 72: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

72

1 2

15 19

?13 20

7 8 11 12

21 23

4 5

3 6

10

Beispiel 3

Page 73: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

73

B-Baum vom Grad k = 2 Ausgangssituation:

Baum der Tiefe 3Einige Knoten haben minimalen Füllstand

Löschen von Schlüsselwerten führt zu Unterlauf Da die Nachbarknoten ebenfalls minimalen Füllstand

haben, müssen 2 Knoten verschmolzen werden.

Durch das Verschmelzen kann es zu einem Unterlauf des Vaterknotens kommen. ) Vorgang wird wiederholt.

Resultat: Baum der Tiefe 2

Beispiel 4

Page 74: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

74

1 2

15 19

?13 20

7 8 11 12

21 23

4 5

3 6

10

5Beispiel 4

Page 75: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

75

1 2

15 19

?13 20

7 8 11 12

21 23

4 5

3 6

10

5

Unterlauf

Beispiel 4

Page 76: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

76

1 2

15 19

?13 20

7 8 11 12

21 23

4

3 6

10

merge

Beispiel 4

Page 77: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

77

1 2

15 19

?13 20

7 8 11 12

21 23

4

3 6

10

merge

Beispiel 4

Page 78: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

78

1 2

15 19

?13 20

11 12

21 23

4 6 7 8

3

10Unterlauf

Beispiel 4

Page 79: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

79

1 2

15 19

?13 20

11 12

21 23

4 6 7 8

3

10merge

Beispiel 4

Page 80: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

80

1 2

15 19

?13 20

11 12

21 23

4 6 7 8

3

10merge

Beispiel 4

Page 81: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

81

1 2

15 19

?

11 12

21 23

4 6 7 8

3 10 13 20

Beispiel 4

Page 82: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

82

1 2

15 19

?

11 12

21 23

4 6 7 8

3 10 13 20

Schrumpfung,Freie Knoten

Beispiel 4

Page 83: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

83

1 2

15 19

11 12

21 23

4 6 7 8

3 10 13 20

Beispiel 4

Page 84: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

84

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher

4

SpeicherblockNr 4

Page 85: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

85

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher

3

0

Datei

8 KB-Blöcke0*8KB

1*8KB

2*8KB

3*8KB

4*8KB

Block-Nummer

Page 86: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

86

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher

3

0

Datei

8 KB-Blöcke0*8KB

1*8KB

2*8KB

3*8KB

4*8KB

Block-Nummer

Page 87: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

87

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher

3

0

Datei

8 KB-Blöcke0*8KB

1*8KB

2*8KB

3*8KB

110100100

Frei

spei

c her

-V

erw

altu

ng

4*8KB

Block-Nummer

Page 88: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

88

Zusammenspiel:Hintergrundspeicher -- Hauptspeicher

Hintergrundspeicher

4

4

Datenbank-Puffer

Zugriffslücke 105

Page 89: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

89

Ziel bei B-Bäumen: geringe Tiefe. Dafür benötigt man hohen Verzweigungsgrad (d.h.: viele Kinder pro Knoten)

Verzweigungsgrad wird bestimmt durch die Anzahl der Datensätze in einem Knoten

Idee von B+-Bäumen:Daten werden ausschließlich in den Blättern gespeichertDie inneren Knoten dienen nur noch der Navigation,

d.h.: Sie enthalten Referenzschlüssel und Verweise (aber keine weiteren Daten).

Da Referenzschlüssel im allgemeinen weniger Platz brauchen als vollst. Datensätze, erhöht sich der Verzweigungsgrad.

Zusätzlicher Vorteil: Durch Verkettung der Blattknoten lassen sich Bereichsanfragen effizient beantworten.

B+-Bäume

Page 90: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

90

B+-Baum

Referenz-schlüssel

Such-schlüssel

Page 91: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

91

Idee:An den inneren Knoten werden nur Referenzschlüssel

benötigt. Die Werte der Referenzschlüssel dienen nur der

Navigation und müssen nicht unbedingt in den Daten existieren.

Beispiel:

Anforderung an Referenzschlüssel R : Kant < R ≤ PopperBemerkung: Kleiner Fehler im Buch: dort steht, dass links die Schlüssel ≤ R sein müssen und nicht < R.

Präfix B+-Bäume

P

Curie Kant Popper Russel

Page 92: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

92

Idee von Hashing Direkte Abbildung von Werten eines Such-Schlüssels auf

einen bestimmten Speicherbereich. Aufteilung des Speichers in "Buckets". Jedes Bucket besteht aus einer primären Seite sowie

möglicherweise 1 oder mehreren Überlaufseiten. Mittels Hashfunktion h: S ! B wird jedem Schlüsselwert

eindeutig eine Bucket-Nummer zugeordnet. Gebräuchlichste Hashfunktionen:

h(x) = x mod N (N = Anzahl der Buckets)oder: h(x) = (a*x + b) mod N

(für geeignete Wahl von Konstanten a und b) "Gute Hashfunktion": möglichst gleichmäßige Verteilung

dermöglichen Schlüsselwerte auf die Buckets.

Page 93: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

93

Statisches Hashing A priori Allokation des Speichers, d.h.: jedes Bucket

besteht exakt aus 1 Seite (= primäre Seite).

Bei Überlauf einer Seite wird eine weitere Seite zum Buckethinzugefügt (= Überlaufseite).

Mit der Zeit können sehr viele Überlaufseiten entstehen => Suchen innerhalb eines Buckets wird teuer.

Lösung 1: Nachträgliche Vergrößerung der HashtabelleRehashing der Einträge Hashfunktion h(...) = ... mod N wird ersetzt durch

h(...) = ... mod M (mit M > N) In Datenbankanwendungen: viele GB ) sehr teuer

Lösung 2: Erweiterbares Hashing

Page 94: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

94

Statisches Hashing

Page 95: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

95

Erweiterbares Hashing zusätzliche Indirektion über ein Directory Directory enthält einen Zeiger (Seiten-Nr) des Hash-

Bucket Dynamisches Wachsen und Schrumpfen ist möglich

(ohne Überlaufseiten). Der Zugriff auf das Directory erfolgt über einen binären

Hashcode (d.h.: Strings aus 0 und 1). Der Zugriff auf die Buckets erfolgt im Stil eines (i.a.

nichtausbalancierten) binären Entscheidungsbaums (= "Trie"). Jeder Pfad im Trie entspricht einem String aus 0 und 1.

Page 96: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

96

0 1

0 1

0 1

Bucket

Bucket

Bucket

Bucket

Bucket

Bucket

binärerTrie,

Entschei-dungs-baum

Directory

Page 97: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

97

Bucket

Bucket

Bucket

Bucket

Bucket

Bucket

001

010

011

100

101

110

111

000

Directory

lokale Tiefe: 1

lokale Tiefe: 3

lokale Tiefe: 2

globale Tiefe: 3

Page 98: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

98

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 Hash-Wertes

(Bitstrings) benötigt. Wenn die Hashtabelle wächst, wird aber sukzessive ein

längerer Präfix benötigt. ) Das Directory wird jeweilsverdoppelt.

Globale Tiefe (des Directory): Momentan verwendete Anzahlder Bits in den Hashwerten des Directory (= max. Länge der Pfade des binären Trie).

Lokale Tiefe (jedes einzelnen Bucket): Länge des Pfades (im binären Trie) der auf dieses Bucket zeigt.

Hashfunktion für erweiterbares Hashing

Page 99: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

99

Beispiel- Hashfunktion:

gespiegelte PersNr

Page 100: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

100

Page 101: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

101

Ursprüngliche Motivation: Indexe für geometrische Daten Allgemeine Verwendungsmöglichkeit: Indexierung von

mehreren Attributen (= Dimensionen) R-Baum = balancierter Baum. Die inneren Knoten dienen

nurder Navigation; Daten nur an den Blättern (wie B+-Baum).

Einträge eines inneren Knoten:Anstelle eines Referenzschlüssels enthält jeder Eintrag

die Beschreibung einer n-dimensionalen "Box". Verweis auf einen Nachfolger-Knoten. Alle Datenpunkte

bzw. alle Boxes der Nachfolger müssen innerhalb der Boxdes Vorgängers liegen.

R-Bäume

Page 102: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

102

R-Baum: Urvater der baum-strukturierten mehrdimensionalen Zugriffsstrukturen

[60,120][18,60]

Bond120K

60

Mini80K20

Mickey70K43

Duck60K18

Alter

Gehalt40K 60K 80K 100K 120K

20

40

60

Mickey

Duck Mini

Bond

Page 103: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

103

Gute vs. schlechte Partitionierung

Alter

Gehalt

Mickey

Duck Mini

Bond

Speedy A

lter

Gehalt

Mickey

Duck Mini

Bond

Speedy

gute Partitionierung schlechte Partitionierung

Page 104: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

104

Nächste Phase in der Entstehungsgeschichte des R-Baums

Alter

Gehalt

Mickey

Duck Mini

Bond

Speedy

Bert(noch nichteingefügt)

[60,80][18,43]

[100,120]

[40,60]

Mini80K20

Mickey70K43

Duck60K18

Bond120K

60

Speedy100K

40

Page 105: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

105

Bereichsanfragen auf dem R-Baum

Alter

Gehalt

Mickey

DuckMini

Speedy

Bert

Ernie

Bill

Lucie

Urmel

Jan

Sepp

[60,80][18,20]

[45,55][41,45]

[60,70][41,50]

[110,120]

[25,60][95,100][40,65]

[45,80][18,50]

[95,120][25,65]

Jan60K41

Sepp65K50

...Mickey

70K43

Speedy100K

40

Lucie95K65

Anfragefenster

Bond

Beispiel: finde alle Tupel mit Alter in [47,67] und Gehalt in [55K,115K].

Page 106: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

106

[60,80][18,20]

[45,55][41,45]

[60,70][41,50]

[110,120]

[25,60][95,100][40,65]

[45,80][18,50]

[95,120][25,65]

Jan60K41

Sepp65K50

Mickey70K43

Speedy100K

40

Lucie95K65

Mini80K20

Duck60K18

Bond120K

60

Urmel112K

35

Bert55K45

Ernie45K41

Bill110K

25

Page 107: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

Ballung

Logisch verwandte Daten liegen am Hintergrundspeicher nahe beieinander

Page 108: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

108

Objektballung / Clustering logisch verwandter Daten

Page 109: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

109

Page 110: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

110

Page 111: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

111

Geballter Index = Index, bei dem die Anordnung der Daten-Tupel der Ordnung der Einträge im Index entspricht.

Beispiel: Angenommen, die Zeilen der Tabelle Student sindauf der Platte nach MatrNr sortiert. Index für Attribut MatrNr: geballt Index für Attribut Semester: nicht geballt

Nutzen der Ballung bei unterschiedlichen Anfragen: Punktanfrage (exact match): Ballung irrelevant Bereichsanfrage (range selection): Ballung entscheidend

Beispiel: Select * From Studenten Where Semester > 6;bei geballtem Index: Suche ersten Treffer (mittels Index) unddurchlaufe ab hier alle Datensätze, solange die Bedingung erfüllt ist.

Indexe und Ballung

Page 112: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

112

Zwei Alternativen:1. Der Index enthält (neben der Steuerinformation des Index)

die Daten selbst, z.B.: B+-Index: Zeilen der Tabelle stehen in den Blattknoten Hash-Index: Zeilen der Tabelle stehen in den Buckets

2. Der Index enthält nur Verweise auf die Daten, d.h.: TIDs

Auswirkung auf Ballung: Index mit Alternative 1 ist immer geballt. Index mit Alternative 2 kann geballt sein (falls die Zeilen der

Tabelle entsprechend dem Suchschlüssel sortiert sind)

Index-Einträge und Daten

Page 113: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

113

Verweis auf Datensatz mittels Tupelidentifikator (TID)

Page 114: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

114

Page 115: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

115

Mehrere Indexe auf denselben Objekten

B-BaumMit

(PersNr, Daten)Einträgen

Name, Alter, Gehalt ...

B-BaumMit

(Alter, ???)Einträgen

Alter, PersNr

Page 116: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

116

Mehrere Indexe auf denselben Objekten

B-BaumMit

(PersNr, Daten)Einträgen

Name, Alter, Gehalt ...

B-BaumMit

(Alter, ???)Einträgen

Alter, PersNr

Wer ist 20 ?

20, 007

Page 117: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

117

Mehrere Indexe auf denselben Objekten

B-BaumMit

(PersNr, Daten)Einträgen

Name, Alter, Gehalt ...

B-BaumMit

(Alter, ???)Einträgen

Alter, PersNr

Wer ist 20 ?

20, 007007,Bond,20,...

Page 118: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

118

Eine andere Möglichkeit: Referenzierung über Speicheradressen

PersNr Alter

007,... 20,...

007, Bond, 20, ...

Page 119: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

„Beste“ Zugriffsmethode

Beobachtung:„Beste“ Methode hängt vom Anwendungsfall ab.

Page 120: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

120

AnwendungsfallSelect Name

From Professoren

Where PersNr = 2136

Select Name

From Professoren

Where Gehalt >= 90000 and Gehalt <= 100000

Page 121: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

121

Die wichtigsten Zugriffsmethoden:Heap File (ungeordnet bzw. kein "passender" Index)sortierte Dateigeballter Indexnicht geballter Index

Die wichtigsten Anwendungsfälle:Durchlaufen des gesamten File (scan)Punktanfrage (exact match)Bereichsanfrage (range selection)Einfügen (insert)Löschen (delete)

„Beste“ Methode

Page 122: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

122

"Beste" Methode hängt vom Anwendungsfall ab, d.h.: Es gibt keine Methode, die immer besser ist als die anderen, z.B.: Bei Punktanfragen ist Hash-Index im allgemeinen etwas

schneller als ein B+-Baum. Bei Bereichsanfragen ist Hash-Index wesentlich schlechter

als ein B+-Baum. Bei einer Bereichsanfrage mit vielen Treffern wird auch ein

nicht geballter B+-Baum schlechter (wegen Random I/O). Beim Einfügen ist ein ungeordnetes File am schnellsten.

Gutes Verhalten "in allen Lebenslagen": B+-Baum

„Beste“ Methode

Page 123: Vorlesung Datenbanksysteme vom 20.10.2014 Physische Datenorganisation  Architektur eines DBMS  Speicherhierarchie  Hintergrundspeicher / RAID  Index-Verfahren.

123

Indexe in SQLCreate index SemsterInd

on Studenten(Semester)

drop index SemsterInd