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

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

Embed Size (px)

Citation preview

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