Kapitel 10

101
Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation

description

Kapitel 10. Physische Datenorganisation. Lernziele. . Speicherhierarchie Hintergrundspeicher / RAID Organisation von B-Bäumen, B+ Bäumen.. Hashing Organisation von mehrdimensionalen Datenstrukturen. Lesen von Daten von der Festplatte. . - PowerPoint PPT Presentation

Transcript of Kapitel 10

Page 1: Kapitel 10

Dr. Brigitte Mathiak

Kapitel 10

Physische Datenorganisation

Page 2: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 2

Lernziele

• Speicherhierarchie• Hintergrundspeicher / RAID• Organisation von B-Bäumen, B+ Bäumen..• Hashing• Organisation von mehrdimensionalen Datenstrukturen

Page 3: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 3

Lesen von Daten von der Festplatte

1. Seek Time: Arm positionieren auf entsprechende Spur 5ms

2. Latenzzeit: ½ Plattenumdrehung (im Durchschnitt) Rotation der Platte bis Kopf über zu lesender/schreibender Stelle steht 10000 Umdrehungen / Minute Ca 3ms

3. Lesezeit: Lesen des Blocks4. Transfer von der Platte zum Hauptspeicher

100 Mb /s 15 MB/s

Page 4: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 4

Random versus Chained IO

1000 Blöcke à 4KB sind zu lesen

Random I/O: „jedesmal zum Pluto fliegen“ Jedesmal Arm positionieren Jedesmal Latenzzeit 1000 * (5 ms + 3 ms) + Transferzeit von 4 MB > 8000 ms + 300ms 8s

Chained IO: „Rakete zum Pluto soll möglichst voll beladen sein“ Einmal positionieren, dann „von der Platte kratzen“ 5 ms + 3ms + Transferzeit von 4 MB 8ms + 300 ms 1/3 s

Also ist Chained IO ein bis zwei Größenordnungen schneller als Random IO

in Datenbank-Algorithmen unbedingt beachten !

Page 5: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 5

Zugriff: Physikalische Speicherung der Daten

123Header Meyer

Müller 129

Datenbank-Seite (32-64 Kb)

...

...

Schneider 145 ...

Slot-Array

-- Forwarding-RID

ExtentTable

Cache

Page 6: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 6

Einfacher Index: Binäre Suchbaum

Schlüssel (mit den ihnen zugeordneten Daten) bilden die Knoten eines binären Baumsmit der Invariante: für jeden Knoten t mit Schlüssel t.key und alle Knoten l im linken Teilbaum von t, t.left, und alle Knoten r im rechten Teilbaum von t gilt: l.key t.key r.key

Worst-Case-Suchzeit für n Schlüssel: O(n)bei geeigneten Rebalancierungsalgorithmen (AVL-Bäume, Rot-Schwarz-Bäume, usw.): O(log n)

Suchen eines Schlüssels k: Traversieren des Pfades von der Wurzel bis zu k bzw. einem BlattEinfügen eines Schlüssels k: Suchen von k und Anfügen eines neuen BlattsLöschen eines Schlüssel k: Ersetzen von k durch das „rechteste“ Blatt links von k

Page 7: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 7

Beispiel für einen binären Suchbaum

London, Paris, Madrid, Kopenhagen, Lissabon, Zürich, Frankfurt, Wien, Amsterdam, Florenz

London

Paris

Madrid

Kopenhagen

Lissabon ZürichFrankfurt

WienAmsterdam

Florenz

Page 8: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 8

Page 9: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 9

S.. SuchschlüsselD..

Weitere Daten

V.. Verweise (SeitenNr)

Page 10: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 10

Page 11: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 11

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

Page 12: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 12

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10 13 19

7

Page 13: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 13

Sukzessiver Aufbau eines B-Baums vom Grad k=2

7 10 13 19

3

Page 14: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 14

Sukzessiver Aufbau eines B-Baums vom Grad k=2

7 10 13 19

3

?

Page 15: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 15

Sukzessiver Aufbau eines B-Baums vom Grad k=2

7 10

3

13 19

?

Page 16: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 16

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 7

3

13 19

?10

Page 17: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 17

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 7 13 19

?10

Page 18: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 18

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 7 13 19

?10

1

Page 19: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 19

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 7 13 19

?10

1

Page 20: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 20

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 7 13 19

?10

1

Page 21: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 21

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 3 7 13 19

?10

1

Page 22: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 22

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 3 7 13 19

?10

2

Page 23: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 23

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 3 7 13 19

?10

2

2

Page 24: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 24

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 3 7 13 19

?10

2

2

Page 25: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 25

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 3 7 13 19

?10

4

Page 26: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 26

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 3 7 13 19

?10

4

4

Page 27: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 27

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 3 7 13 19

?10

4

4

Page 28: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 28

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 3 7 13 19

?10

4

4

Page 29: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 29

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 3 7 13 19

?3 10

4

4

Page 30: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 30

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 13 19

?3 10

4 7

Page 31: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 31

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 13 19

?3 10

11

4 7

Page 32: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 32

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 13 19

?3 10

4 7

Page 33: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 33

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 13 19

?3 10

21

4 7

Page 34: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 34

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 13 19

?3 10

21

4 7

Page 35: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 35

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 13 19 21

?3 10

12

4 7

Page 36: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 36

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 13 19 21

?3 10

12

4 7 12

Page 37: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 37

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 13 19 21

?3 10

12

4 7 12

Page 38: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 38

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 13 19 21

?3 10

12

4 7 12

Page 39: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 39

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 13 19 21

?3 10 13

12

4 7 12

Page 40: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 40

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 11 19 21

?3 10 13

12

4 7 11 12

Page 41: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 41

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 19 21

?3 10 13

12

4 7 11 12

Page 42: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 42

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 19 21

?3 10 13

14

4 7 11 12

Page 43: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 43

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 19 21

?3 10 13

14

4 7 11 12

Page 44: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 44

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 19 21

?3 10 13

15

4 7 11 12

Page 45: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 45

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15 19 21

?3 10 13

20

4 7 11 12

Page 46: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 46

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15 19 21

?3 10 13

20

4 7 11 12

20

Page 47: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 47

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15 19 21

?3 10 13

20

4 7 11 12

20

Page 48: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 48

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15 19 21

?3 10 13 19

20

4 7 11 12

20

Page 49: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 49

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15

?3 10 13 19

20

4 7 11 12

20 21

Page 50: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 50

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15

?3 10 13 19

5

4 7 11 12

20 21

Page 51: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 51

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15

?3 10 13 19

5

4 7 11 12

20 21

Page 52: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 52

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15

?3 10 13 19

5

4 5 7 11 12

20 21

Page 53: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 53

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15

?3 10 13 19

6

4 5 7 11 12

20 21

Page 54: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 54

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2 14 15

?3 10 13 19

6

4 5 6 7 11 12

20 21

Page 55: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 55

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

4 5 6 7 11 12

20 21

8

Page 56: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 56

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

4 5 6 7 11 12

20 21

8

8

Page 57: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 57

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

4 5 6 7 11 12

20 21

8

8

Page 58: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 58

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

4 5 6 7 11 12

20 21

8

8

Page 59: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 59

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

6 7 11 12

20 21

8

84 5

Page 60: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 60

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

64 5

Page 61: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 61

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

4 5

Page 62: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 62

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

4 5

Page 63: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 63

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

4 5

Page 64: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 64

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?3 10 13 19

7 8 11 12

20 21

6

4 5

3 6

Page 65: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 65

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?13 19

7 8 11 12

20 21

10

4 5

3 6

Page 66: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 66

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?13 19

7 8 11 12

20 21

4 5

3 6

10

Page 67: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 67

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?13 19

7 8 11 12

20 21

4 5

3 6

10

10

Page 68: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 68

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?13 19

7 8 11 12

20 21

4 5

3 6

10B-Baum mit Minimaler

Speicherplatz-ausnutzung

Page 69: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 69

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?13 19

7 8 11 12

20 21

4 5

3 6

10

23

Page 70: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 70

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?13 19

7 8 11 12

20 21 23

4 5

3 6

10

Page 71: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 71

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?13 19

7 8 11 12

20 21 23

4 5

3 6

10

14

Page 72: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 72

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

14 15

?13 19

7 8 11 12

20 21 23

4 5

3 6

10

14

Unterlauf

Page 73: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 73

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15

?13 19

7 8 11 12

20 21 23

4 5

3 6

10

Unterlauf

Page 74: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 74

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?13 20

7 8 11 12

21 23

4 5

3 6

10

Page 75: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 75

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?13 20

7 8 11 12

21 23

4 5

3 6

10

5

Page 76: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 76

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?13 20

7 8 11 12

21 23

4 5

3 6

10

5

Unterlauf

Page 77: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 77

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?13 20

7 8 11 12

21 23

4

3 6

10

merge

Page 78: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 78

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?13 20

7 8 11 12

21 23

4

3 6

10

merge

Page 79: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 79

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?13 20

11 12

21 23

4 6 7 8

3

10Unterlauf

Page 80: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 80

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?13 20

11 12

21 23

4 6 7 8

3

10merge

Page 81: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 81

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?13 20

11 12

21 23

4 6 7 8

3

10merge

Page 82: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 82

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?

11 12

21 23

4 6 7 8

3 10 13 20

Page 83: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 83

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

15 19

?

11 12

21 23

4 6 7 8

3 10 13 20

Schrumpfung,Freie Knoten

Page 84: Kapitel 10

• Die Höhe h ist bei Grad t und n Einträgen

• Daher dauert die Suche O(log n)

• Beim Einfügen kommt evtl. ein split dazu O(1)• Beim Löschen ein evtl. merge O(1)

Alle Operationen dauern O(log n)

• Allerdings können so nur Zahlen gespeichert werden.

B-Baum (Eigenschaften)

Datenbanken, SS 12 Kapitel 9: Datenorganisation 84

Page 85: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 85

B+-Baum

Referenz-schlüssel

Such-schlüssel

Page 86: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 86

Page 87: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 87

Page 88: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 88

Hashing

Bäume: logk(n) viele Seitenzugriffe ..

Hashing: Fast eindeutige Zuordnung von Datum zu Bucket (Behälter) h: S → B

- S Schlüssel (in diesem Kontext hier: nicht notwendigerweise Schlüssel im Sinne eines logischen Schema)

- B: Nummerierung von n Behältern- Zugriff innerhalb von 1-2 Schritten

- Charakteristiken der gesuchten Hash-Funktion• Fester vs flexibler Wertebereich• Gute Verteilung über den Wertebereich, auch bei schlechter Verteilung

der Datencharakteristiken über den Eingabebereich

Page 89: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 89

Hashing

Abbildung h: D [0..m-1], genannt Hash-Funktion,von Schlüsseln x1, ..., xn aus Domain D (z.B. Strings) auf Positionenh(x1), ..., h(xn) in Array a[0..m-1], genannt Hash-Tabelle (mit n < m) Speicherung von Schlüssel xi in a[h(xi)]

Anforderungen an h: sehr effiziente Berechenbarkeit zufällige „Streuung“ (Randomisierung) von x1, ..., xn auf [0..m-1] Urbilder von j1, j2 [0..m-1] annähernd gleich groß für alle j1, j2 und alle möglichen

x1, ..., xn für geordnete Schlüssel x1 < x2 < ... < xn sollte die Ordnung von h(x1), h(x2), ...,

h(xn) eine zufällige Permutation sein

Beispiele für brauchbare Hash-Funktionen h(x) = (ax + b) mod m für Integers x mit Konstanten a, b h(x) = (mittlere k Ziffern von x2) mod m für k-stellige Integers x h(x) = (ord(c1)+...+ord(ck)) mod m für Strings c1c2...ck k

mit ord: S [1..||]

Page 90: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 90

Statisches Hashing

Page 91: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 91

Page 92: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 92

Page 93: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 93

Hashfunktion für erweiterbares Hashing

h: Schlüsselmenge {0,1}*Der Bitstring muss lang genug sein, um alle Objekte auf ihre

Buckets abbilden zu könnenAnfangs wird nur ein (kurzer) Präfix des Hashwertes (Bitstrings)

benötigtWenn die Hashtabelle wächst wird aber sukzessive ein längerer

Präfix benötigtBeispiel-Hashfunktion: gespiegelte binäre PersNr

h(004) = 001000000... (4=0..0100) h(006) = 011000000... (6=0..0110) h(007) = 111000000... (7 =0..0111) h(013) = 101100000... (13 =0..01101) h(018) = 0100100000... (18 =0..010010) h(032) = 000001000... (32 =0..0100000) h(048) = 000011000... (48 =0..0110000)

Page 94: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 94

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 95: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 95

0 1

0 1

0 1

Bucket

Bucket

Bucket

Bucket

Bucket

Bucket

1

1 11

0

0007 13

6 18

32 48

4

Page 96: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 96

0 1

0 1

0 1

Bucket

Bucket

Bucket

Bucket

Bucket

Bucket

1

1 11

0

000

001 110

Präfix001

Präfix1

7 13

6 1832 48

4

Page 97: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 97

SQL: Create Index

Grobsyntax:

CREATE [UNIQUE] INDEX Indexname ON Tabellenname (Attribut1, Attribut2 ..)

DROP INDEX Indexname

Primary Key hat immer einen Index (muss nicht explizit indexiert werden)

.. Oracle: default-Indextyp ist ein B+ Baum

Beispiele:

CREATE INDEX Studenten_idx1 ON Studenten(Semester)

DROP INDEX Studenten_idx1

Page 98: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 98

Objektballung / Clustering

clustered keyPersNr / gelesenVon

2125 Name Rang …

Sokrates C4 …

Titel VorlNr …

Ethik 5041 …

2126 Name Rang …

Russel C4 …

… … …. …

Professoren

PersNr Name Rang Raum

2125 Sokrates C4 226

2126 Russel C4 232

… … … …

Vorlesungen

VorlNr Titel SWS gelesenVon

5001 Grundzüge 4 2137

5041 Ethik 4 2125

5043 Erkenntnistheorie 3 2126

… … … …

Page 99: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 99

Page 100: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 100

Oracle Clusters und Indexierung

Mit einem B+ Baum:

CREATE CLUSTER cluster name ( attribute type, ... );CREATE INDEX index name ON cluster name;CREATE TABLE table name ( usual parameters)

CLUSTER cluster name ( attribute name );

Mit Hashing:

CREATE CLUSTER cluster name ( attribute type, ... ) [HASH IS hashfunktion] HASHKEYS anzahl;

CREATE TABLE table name ( usual parameters) CLUSTER cluster name ( attribute name );

Page 101: Kapitel 10

Datenbanken, SS 12 Kapitel 9: Datenorganisation 101

Oracle Clusters: Beispiel

CREATE CLUSTER ProfessorenVorlesungen (PersNo NUMBER) HASH IS PersNo HASHKEYS 150;

CREATE TABLE Vorlesungen (GelesenVon NUMBER, ... ) CLUSTER ProfessorenVorlesungen (GelesenVon);