Kapitel 10
Sponsored Links
This presentation is the property of its rightful owner.
1 / 103

Kapitel 10 PowerPoint PPT Presentation


  • 57 Views
  • Uploaded on
  • Presentation posted in: General

Kapitel 10. Physische Datenorganisation. Lernziele. . Indexe Wie sie funktionieren (B+ Bäumen, Hashing) Was sie bringen Wie man das misst Organisation von mehrdimensionalen Datenstrukturen. Motivation. Datenbanken sind nicht automatisch schnell

Download Presentation

Kapitel 10

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Kapitel 10

Physische Datenorganisation


Lernziele

  • Indexe

  • Wie sie funktionieren (B+ Bäumen, Hashing)

  • Was sie bringen

  • Wie man das misst

  • Organisation von mehrdimensionalen Datenstrukturen

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Motivation

  • Datenbanken sind nicht automatisch schnell

  • Um ein bestimmtes Datenelement zu finden muss im Zweifelsfall die gesamte Datenbank durchsucht werden. Im Falle eines Joins vielleicht sogar mehrmals.

  • Der größte bottle neck dabei ist in der Praxis die Festplatte*. Idealerweise kann jedes Datenelement mit nur einem Zugriff gefunden werden.

  • Um das zu realisieren gibt es eine Anzahl von algorithmischen „Tricks“ beispielsweise Indexe und Caching.

  • Wir betrachten hier Indexe, da Caching im Allgemeinen auch ohne Eingriffe gut funktioniert.

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Wie schnell ist meine Suche?

  • Es gibt 2 Methoden die Geschwindigkeit eines Algorithmus zu messen:

  • Benchmarking: Dabei wird eine standardisierte Anfrage auf einem standardisierten System ausgeführt und dabei die Zeit gemessen. Nachteil: Es gibt relativ viele Störfaktoren, z.B. Betriebssystem, Hardwareweiterer Nachteil: Es kann nur eine Aussage zu genau dieser Konfiguration getroffen werden

  • Mathematische Laufzeitanalyse: Dabei wird untersucht wie der Algorithmus selbst sich verhältNachteil: Es gibt in der Realität Störfaktoren, die nicht mit einfließen (z.B. Festplattenzugriffe vs. RAM)Vorteil: Man erhält eine Einschätzung wie gut das System im Extremfall funktioniert (Achtung! Oft zu optimistisch)

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


O-Notation

  • Die O-Notation gibt eine Einschätzung der Komplexitätsklasse des Algorithmus. Formal ist es eine Funktion von n

  • Beispiele: O(n), O(n²), O(log n), …

  • n ist dabei die Variable, normalerweise Länge der Eingabe

  • Beispiel: Anzahl der Datenelemente, Länge des Textes, …

  • Die Komplexitätsklasse bezieht sich normalerweise auf die Laufzeit, manchmal auch auf den Speicherbedarf, oder was auch immer knapp ist

  • Definition: f(n) = O(g(n)) gdw. Es existiert K, n0, so dass |f(n)| = K |g(n)| für alle n > n0

  • Anschauung: Für ausreichend große n wächst g(n) wie f(n)

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Beispiel

  • f(n) = 8n³ + n² + 76 ist O(n³) wegen f(n) < 85n³ für alle n > 1

  • Graphische Bedeutung:

  • O-Notation betont die dominante Größe im Wachstum

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Rechenbeispiele

  • 3n² = O(n²)

  • Regel: konstante Faktoren werden auf 1 gesetzt

  • n² + n = O(n²)

  • Regel: Bei f(n) = g(n)+ h(n) und O(g(n))>O(h(n)) gilt f(n) = O(g(n))

  • Dabei gilt O(1)<O(log n)<O(n)<O(n log n)<O(n)<O(n²) …

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Laufzeitanalyse

  • Man zählt die Anzahl der Schritte in Abhängigkeit von n und unterwirft die der O-Notation. Dabei zählt stets der schlechteste Fall.

  • Beispiel:

  • int max = 0; // 1 Schritt

  • for (int i=0;i<n;i++) // n-mal

  • if (a[i]>max) max=a[i]; // 1 oder 2 Schritte

  • Läuft in 1+n*(1 oder 2) = O(1+2n) = O(2n) = O(n)

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Einfacher Index: Binäre Suchbaum

Schlüssel (mit den ihnen zugeordneten Daten)

bilden die Knoten eines binären Baums

mit 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

Suchen eines Schlüssels k:

Traversieren des Pfades von der Wurzel bis zu k bzw. einem Blatt

Einfügen eines Schlüssels k:

Suchen von k und Anfügen eines neuen Blatts

Löschen eines Schlüssel k:

Ersetzen von k durch das „rechteste“ Blatt links von k

Worst-Case-Suchzeit für n Schlüssel: O(n)

bei geeigneten Rebalancierungsalgorithmen

(AVL-Bäume, Rot-Schwarz-Bäume, usw.): O(log n)

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Beispiel für einen binären Suchbaum

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

London

Kopenhagen

Paris

Frankfurt

Lissabon

Madrid

Zürich

Amsterdam

Wien

Florenz

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


S.. Suchschlüssel

D..

Weitere Daten

V..

Verweise (SeitenNr)

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


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

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

7

10

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

3

7

10

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

?

3

7

10

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

?

3

7

10

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

?

3

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

?

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

1

10

?

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

1

10

?

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

?

1

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

?

1

1

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

2

10

?

1

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

2

10

?

2

1

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

2

10

?

2

1

2

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

4

10

?

1

2

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

4

10

?

4

1

2

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

4

10

?

4

1

2

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

4

10

?

4

1

2

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

4

3

10

?

4

1

2

3

7

13

19

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

3

10

?

1

2

13

19

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

11

3

10

?

1

2

13

19

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

3

10

?

1

2

11

13

19

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

21

3

10

?

1

2

11

13

19

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

21

3

10

?

1

2

11

13

19

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

12

3

10

?

1

2

11

13

19

21

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

12

3

10

?

1

2

11

13

19

21

12

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

12

3

10

?

1

2

11

13

19

21

12

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

12

3

10

?

1

2

11

13

19

21

12

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

12

3

10

13

?

1

2

11

13

19

21

12

4

7

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

12

3

10

13

?

1

2

11

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

12

3

10

13

?

1

2

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

14

3

10

13

?

1

2

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

14

3

10

13

?

1

2

14

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

15

3

10

13

?

1

2

14

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

20

3

10

13

?

1

2

14

15

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

20

3

10

13

?

20

1

2

14

15

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

20

3

10

13

?

20

1

2

14

15

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

20

3

10

13

19

?

20

1

2

14

15

19

21

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

20

3

10

13

19

?

20

21

1

2

14

15

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

5

3

10

13

19

?

20

21

1

2

14

15

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

5

3

10

13

19

?

20

21

1

2

14

15

4

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

5

3

10

13

19

?

20

21

1

2

14

15

4

5

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

6

3

10

13

19

?

20

21

1

2

14

15

4

5

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

6

3

10

13

19

?

20

21

1

2

14

15

4

5

6

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

8

3

10

13

19

?

1

2

20

21

14

15

4

5

6

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

8

3

10

13

19

?

1

2

20

21

14

15

8

4

5

6

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

8

3

10

13

19

?

1

2

20

21

14

15

8

4

5

6

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

8

3

10

13

19

?

1

2

20

21

14

15

8

4

5

6

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

8

3

10

13

19

?

1

2

20

21

4

5

14

15

8

6

7

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

6

3

10

13

19

?

1

2

20

21

4

5

6

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

6

3

10

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

6

3

10

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

6

3

10

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

6

3

6

3

10

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

B-Baum mit

Minimaler

Speicherplatz-

ausnutzung

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

23

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

3

6

13

19

?

1

2

20

21

23

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

14

10

3

6

13

19

?

1

2

20

21

23

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

14

10

Unterlauf

3

6

13

19

?

1

2

20

21

23

4

5

14

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

Unterlauf

3

6

13

19

?

1

2

20

21

23

4

5

15

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

3

6

13

20

?

1

2

21

23

4

5

15

19

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

5

10

3

6

13

20

?

1

2

21

23

4

5

15

19

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

5

10

3

6

13

20

?

1

2

21

23

4

5

15

19

Unterlauf

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

3

6

13

20

?

1

2

21

23

4

15

19

merge

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

3

6

13

20

?

1

2

21

23

4

15

19

merge

7

8

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

Unterlauf

3

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

merge

3

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

10

merge

3

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

3

10

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Sukzessiver Aufbau eines B-Baums vom Grad k=2

Schrumpfung,

Freie Knoten

3

10

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


B-Baum (Eigenschaften)

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

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


B+-Baum

Referenz-

schlüssel

Such-

schlüssel

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


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

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Hashing

  • Abbildung h: D  [0..m-1], genannt Hash-Funktion,

  • von Schlüsseln x1, ..., xn aus Domain D (z.B. Strings) auf Positionen

  • h(x1), ..., h(xn) in Array a[0..m-1], genannt Hash-Tabelle  Speicherung von Schlüssel xi in a[h(xi)]

  • Anforderungen an h:

    • sehr effiziente Berechenbarkeit

    • gute „Streuung“ (Pseudo-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

  • Pearson hashing

    Ist eine häufig benutzte Hashfunktion um Nachrichten xi auf 8 Bit abzubilden

    h=0

    foreachbyte b in xi loop

    h = T[h xor b];

    T ist dabei eine ein Array gefüllt mit einer zufälligen Permutation der Zahlen 0 bis 256

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Kollisionsbehandlung

  • Trotz der möglichst gleichen Verteilung, ist es recht wahrscheinlich, dass es zu einer Kollision kommt O(Wurzel n)

  • Um diese aufzufangen, haben die einzelnen Buckets eine Liste von Werten

  • Ist diese Liste voll, wird dynamisch eine neue Liste erstellt, in die dann die zusätzlichen Werte kommen.

  • Damit werden die Buckets zur „Verketteten Liste“

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Statisches Hashing

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


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önnen

  • Anfangs wird nur ein (kurzer) Präfix des Hashwertes (Bitstrings) benötigt

  • Wenn die Hashtabelle wächst wird aber sukzessive ein längerer Präfix benötigt

  • Beispiel-Hashfunktion: gespiegelte binäre PersNr

    • h(004) = 001000000... (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)

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


4

7 13

6 18

32 48

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


7 13

4

6 18

32 48

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


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

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


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 );

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Oracle Clusters: Beispiel

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

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

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


Fazit

  • Indexe beschleunigen die Zugriffszeiten auf große Datenmengen

  • Nachteil ist der zusätzlich benötigte Speicherplatz

  • B-Bäume sind optimal geeignet für Bereichsabfragen

  • … WHERE value > 465

  • Und verbrauchen recht wenig Extraspeicher.

  • Hashing ist optimal geeignet für Einzelwertabfragen

  • … WHERE value = 465

  • Sie verdoppeln für den Speicherverbrauch in etwa.

  • Primary Keys werden in dem meisten DBs automatisch mit Index versehen. Mit welchem?

Datenbanken für Mathematiker, WS 11/12Kapitel 10: Datenorganisation


  • Login