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

Kapitel 10 PowerPoint PPT Presentation


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

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


Kapitel 10

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


Kapitel 10

S.. Suchschlüssel

D..

Weitere Daten

V..

Verweise (SeitenNr)

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


Kapitel 10

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


Einf gen eines neuen objekts datensatz in einen b baum

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

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 21

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 22

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 23

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 24

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 25

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 26

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 27

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 28

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 29

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 210

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 211

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 212

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 213

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 214

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 215

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 216

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 217

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 218

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 219

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 220

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 221

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 222

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 223

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 224

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 225

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 226

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 227

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 228

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 229

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 230

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 231

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 232

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 233

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 234

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 235

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 236

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 237

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 238

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 239

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 240

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 241

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 242

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 243

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 244

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 245

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 246

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 247

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 248

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 249

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 250

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 251

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 252

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 253

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 254

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 255

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 256

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 257

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 258

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 259

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 260

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 261

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 262

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 263

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 264

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 265

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 266

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 267

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 268

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 269

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 270

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 271

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

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


Kapitel 10

B+-Baum

Referenz-

schlüssel

Such-

schlüssel

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


Kapitel 10

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


Kapitel 10

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


Hashing

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


Hashing1

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

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


Kapitel 10

Statisches Hashing

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


Hashfunktion f r erweiterbares hashing

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


Kapitel 10

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


Kapitel 10

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


Kapitel 10

4

7 13

6 18

32 48

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


Kapitel 10

7 13

4

6 18

32 48

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


Sql create index

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

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

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

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