Kapitel 10
Download
1 / 103

Kapitel 10 - PowerPoint PPT Presentation


  • 83 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Kapitel 10' - beau-blevins


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

Kapitel 10

Physische Datenorganisation


Lernziele
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/12 Kapitel 10: Datenorganisation


Motivation
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/12 Kapitel 10: Datenorganisation


Wie schnell ist meine suche
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/12 Kapitel 10: Datenorganisation


O notation
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/12 Kapitel 10: Datenorganisation


Beispiel
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/12 Kapitel 10: Datenorganisation


Rechenbeispiele
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/12 Kapitel 10: Datenorganisation


Laufzeitanalyse
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/12 Kapitel 10: Datenorganisation


Einfacher index bin re suchbaum
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/12 Kapitel 10: Datenorganisation


Beispiel f r einen bin ren suchbaum
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/12 Kapitel 10: Datenorganisation



S.. Suchschlüssel Datenorganisation

D..

Weitere Daten

V..

Verweise (SeitenNr)

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



Einf gen eines neuen objekts datensatz in einen b baum
Einfügen eines neuen Objekts (Datensatz) in einen B-Baum Datenorganisation

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


Sukzessiver aufbau eines b baums vom grad k 2
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

7

10

13

19

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


Sukzessiver aufbau eines b baums vom grad k 21
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

3

7

10

13

19

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


Sukzessiver aufbau eines b baums vom grad k 22
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

?

3

7

10

13

19

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


Sukzessiver aufbau eines b baums vom grad k 23
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

?

3

7

10

13

19

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


Sukzessiver aufbau eines b baums vom grad k 24
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

?

3

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 25
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

?

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 26
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

1

10

?

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 27
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

1

10

?

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 28
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

?

1

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 29
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

?

1

1

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 210
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

2

10

?

1

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 211
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

2

10

?

2

1

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 212
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

2

10

?

2

1

2

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 213
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

4

10

?

1

2

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 214
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

4

10

?

4

1

2

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 215
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

4

10

?

4

1

2

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 216
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

4

10

?

4

1

2

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 217
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

4

3

10

?

4

1

2

3

7

13

19

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


Sukzessiver aufbau eines b baums vom grad k 218
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

3

10

?

1

2

13

19

4

7

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


Sukzessiver aufbau eines b baums vom grad k 219
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

11

3

10

?

1

2

13

19

4

7

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


Sukzessiver aufbau eines b baums vom grad k 220
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

3

10

?

1

2

11

13

19

4

7

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


Sukzessiver aufbau eines b baums vom grad k 221
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

21

3

10

?

1

2

11

13

19

4

7

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


Sukzessiver aufbau eines b baums vom grad k 222
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

21

3

10

?

1

2

11

13

19

4

7

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


Sukzessiver aufbau eines b baums vom grad k 223
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

12

3

10

?

1

2

11

13

19

21

4

7

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


Sukzessiver aufbau eines b baums vom grad k 224
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

12

3

10

?

1

2

11

13

19

21

12

4

7

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


Sukzessiver aufbau eines b baums vom grad k 225
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

12

3

10

?

1

2

11

13

19

21

12

4

7

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


Sukzessiver aufbau eines b baums vom grad k 226
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

12

3

10

?

1

2

11

13

19

21

12

4

7

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


Sukzessiver aufbau eines b baums vom grad k 227
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

12

3

10

13

?

1

2

11

13

19

21

12

4

7

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


Sukzessiver aufbau eines b baums vom grad k 228
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

12

3

10

13

?

1

2

11

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 229
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

12

3

10

13

?

1

2

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 230
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

14

3

10

13

?

1

2

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 231
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

14

3

10

13

?

1

2

14

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 232
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

15

3

10

13

?

1

2

14

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 233
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

20

3

10

13

?

1

2

14

15

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 234
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

20

3

10

13

?

20

1

2

14

15

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 235
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

20

3

10

13

?

20

1

2

14

15

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 236
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

20

3

10

13

19

?

20

1

2

14

15

19

21

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 237
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

20

3

10

13

19

?

20

21

1

2

14

15

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 238
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

5

3

10

13

19

?

20

21

1

2

14

15

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 239
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

5

3

10

13

19

?

20

21

1

2

14

15

4

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 240
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

5

3

10

13

19

?

20

21

1

2

14

15

4

5

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 241
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

6

3

10

13

19

?

20

21

1

2

14

15

4

5

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 242
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

6

3

10

13

19

?

20

21

1

2

14

15

4

5

6

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 243
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

8

3

10

13

19

?

1

2

20

21

14

15

4

5

6

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 244
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

8

3

10

13

19

?

1

2

20

21

14

15

8

4

5

6

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 245
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

8

3

10

13

19

?

1

2

20

21

14

15

8

4

5

6

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 246
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

8

3

10

13

19

?

1

2

20

21

14

15

8

4

5

6

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 247
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

8

3

10

13

19

?

1

2

20

21

4

5

14

15

8

6

7

11

12

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


Sukzessiver aufbau eines b baums vom grad k 248
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

6

3

10

13

19

?

1

2

20

21

4

5

6

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 249
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

6

3

10

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 250
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

6

3

10

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 251
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

6

3

10

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 252
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

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/12 Kapitel 10: Datenorganisation


Sukzessiver aufbau eines b baums vom grad k 253
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 254
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 255
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 256
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

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/12 Kapitel 10: Datenorganisation


Sukzessiver aufbau eines b baums vom grad k 257
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

23

10

3

6

13

19

?

1

2

20

21

4

5

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 258
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

3

6

13

19

?

1

2

20

21

23

4

5

14

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 259
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

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/12 Kapitel 10: Datenorganisation


Sukzessiver aufbau eines b baums vom grad k 260
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

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/12 Kapitel 10: Datenorganisation


Sukzessiver aufbau eines b baums vom grad k 261
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

Unterlauf

3

6

13

19

?

1

2

20

21

23

4

5

15

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 262
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

3

6

13

20

?

1

2

21

23

4

5

15

19

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 263
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

5

10

3

6

13

20

?

1

2

21

23

4

5

15

19

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 264
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

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/12 Kapitel 10: Datenorganisation


Sukzessiver aufbau eines b baums vom grad k 265
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

3

6

13

20

?

1

2

21

23

4

15

19

merge

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 266
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

3

6

13

20

?

1

2

21

23

4

15

19

merge

7

8

11

12

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


Sukzessiver aufbau eines b baums vom grad k 267
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

Unterlauf

3

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

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


Sukzessiver aufbau eines b baums vom grad k 268
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

merge

3

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

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


Sukzessiver aufbau eines b baums vom grad k 269
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

10

merge

3

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

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


Sukzessiver aufbau eines b baums vom grad k 270
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

3

10

13

20

?

1

2

21

23

4

6

7

8

15

19

11

12

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


Sukzessiver aufbau eines b baums vom grad k 271
Sukzessiver Aufbau eines B-Baums vom Grad k=2 Datenorganisation

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/12 Kapitel 10: Datenorganisation


B baum eigenschaften
B-Baum (Eigenschaften) Datenorganisation

  • 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/12 Kapitel 10: Datenorganisation


B Datenorganisation+-Baum

Referenz-

schlüssel

Such-

schlüssel

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




Hashing
Hashing Datenorganisation

  • 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/12 Kapitel 10: Datenorganisation


Hashing1
Hashing Datenorganisation

  • 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/12 Kapitel 10: Datenorganisation


Kollisionsbehandlung
Kollisionsbehandlung Datenorganisation

  • 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/12 Kapitel 10: Datenorganisation


Statisches Hashing Datenorganisation

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


Hashfunktion f r erweiterbares hashing
Hashfunktion für erweiterbares Hashing Datenorganisation

  • 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/12 Kapitel 10: Datenorganisation




Datenorganisation

4

7 13

6 18

32 48

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


Datenorganisation

7 13

4

6 18

32 48

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


Sql create index
SQL: Create Index Datenorganisation

  • 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/12 Kapitel 10: Datenorganisation


Oracle clusters und indexierung
Oracle Clusters und Indexierung Datenorganisation

  • 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/12 Kapitel 10: Datenorganisation


Oracle clusters beispiel
Oracle Clusters: Beispiel Datenorganisation

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

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

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


Fazit
Fazit Datenorganisation

  • 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/12 Kapitel 10: Datenorganisation


ad