123
1 Physikalische Datenorganisation Record Datensatz fester oder variabler Länge mit Feldern bestimmten Typs Block Speichereinheit im Hintergrundspeicher (2 9 - 2 12 Bytes) File Menge von Blöcken Pinned record Blockadresse + Offset Unpinned record Blockadresse + Recordschlüssel Blockadresse + Index (Tupelidentifikator)

1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

Embed Size (px)

Citation preview

Page 1: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

1

Physikalische DatenorganisationRecord Datensatz fester oder variabler Länge

mit Feldern bestimmten Typs

Block Speichereinheit im Hintergrundspeicher (29 - 212 Bytes)

File Menge von Blöcken

Pinned record Blockadresse + Offset

Unpinned record Blockadresse + RecordschlüsselBlockadresse + Index (Tupelidentifikator)

Page 2: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

2

Tupelidentifikator: Verschieben innerhalb der Seite

4711 2

5001 Grundzüge ...

5041 Ethik ...

TID

1 2 3

Seite 4711

4052 Logik ...

4052 Mathematische Logik ...

Page 3: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

3

Tupelidentifikator: Verdrängen auf andere Seite

4052 Mathematische Logik ...

4711 2

5001 Grundzüge ...

5041 Ethik ...

TID

1 2 3

Seite 4711

1 2 3

Seite 4812

4052 Mathematische Logik für Informatiker...

4812 3

4052 Mathematische Logik

Page 4: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

4

Implementierung des E-R-Modells

• pro Entity ein Record mit den Attributen als Datenfelder

• pro Relationship ein Record mit den TIDs der beteiligten Entities

Page 5: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

5

• INSERT: Einfügen eines Records

• DELETE: Löschen eines Records

• MODIFY: Modifizieren eines Records

• LOOKUP: Suchen eines Records

Speicher-Operationen

Page 6: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

6

Heap-File

• INSERT: Record am Ende einfügen

• DELETE: Lösch-Bit setzen

• MODIFY: Record überschreiben

• LOOKUP: Gesamtes File durchsuchen

Page 7: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

7

Hashing

• alle Records sind auf Buckets verteilt• ein Bucket besteht aus einer verzeigerten Liste von Blöcken• Bucketdirectory enthält Einstiegsadressen• Hashfunktion (angewandt auf Schlüssel) liefert zuständige Liste• Bei N Buckets bildet die Hashfunktion einen Schlüssel auf eine

Zahl zwischen 0 und N-1 ab.• Pro Datenrecord ein Frei/Belegt-Bit

Page 8: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

8

1 0

1 1

1 1

1 1

Peter

Thomas

Melanie

Ute

Kurt

Fritz

Susanne

Eberhard

Karl

Beate

1 0 Eva

0

1

2

3

4

1 1 1 0

Beispiel für Hashorganisation (|v| mod 5)

Page 9: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

9

Beispiel für Hash-Funktion

Sei N die Anzahl der Buckets. Fasse den Schlüssel v als k Gruppen von jeweils n Bits auf. Sei di die i-te Gruppe als natürliche Zahl interpretiert:

dk dk-1 d2 d1

h(v) = (dk + dk-1 + . . . + d2 + d1) mod N

Page 10: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

10

Hash-Operationen für Schlüssel v

• LOOKUP:Berechne h(v) = i. Lies den für i zuständigen Directory-Block ein, und beginne bei der für i vermerkten Startadresse mit dem Durchsuchen aller Blöcke.

• MODIFY:Falls Schlüssel beteiligt: DELETE und INSERT durchführen. Andernfalls: LOOKUP durchführen und dann überschreiben.

• INSERT:Zunächst LOOKUP durchführen. Falls Satz mit v vorhanden: Fehler. Sonst: Freien Platz im Block überschreiben und ggf. neuen Block anfordern.

• DELETE:Zunächst LOOKUP durchführen. Bei Record Löschbit setzen.

Page 11: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

11

1 0

1 1

1 1

1 1

Peter

Thomas

Melanie

Ute

Kurt

Fritz

Susanne

Eberhard

Karl

Beate

1 0 Eva

0

1

2

3

4

1 1 1 0

Paul einfügen

Hashorganisation: Ausgangslage h(s) = |s| mod 5

Page 12: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

12

1 0

1 1

1 1

1 1

Peter

Thomas

Melanie

Ute

Kurt

Fritz

Susanne

Eberhard

Karl

Beate

1 0 Eva

0

1

2

3

4

1 1 1 0

1 0 Paul

Hashorganisation: nach Einfügen von Paul

Kurt umbenennen nach Curdt

Page 13: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

13

Peter

1 0

1 1

1 1

0 1

Thomas

Melanie

Ute

Fritz

Susanne

Eberhard

Karl

Beate Curdt

1 0 Eva

0

1

2

3

4

1 1 1 1

1 0 Paul

Hashorganisation: nach Umbenennen von Kurt in Curdt

Page 14: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

14

Probleme beim Hashing

durch dynamisch sich ändernden Datenbestand:• Blocklisten werden immer länger• Reorganisation erforderlich

Page 15: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

15

Erweiterbares Hashing

• Hashfunktion liefert Binärstring• verwende geeigneten Prefix des Binärstring als Adresse

Page 16: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

16

Beispiel für erweiterbares Hashing

MatNr Name Hashwert2125 Sokrates 1011001000012126 Russel 0111001000012127 Kopernikus 1111001000012129 Descartes 100010100001

Hashwert = umgekehrte Binärdarstellung von Matrikelnummer

Ein Datenblock enthalte zwei Records

Page 17: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

17

Beispiel für erweiterbares Hashing

x

212521262127

1 011001000010 111001000011 11100100001

d p

h(x)

0

(2126, Russel, C4, 232)

(2125, Sokrates, C4, 226)

(2127, Kopernikus, C3, 310)

1

t = 1

t´= 1

t´= 1

2125 Sokrates1011001000012126 Russel0111001000012127 Kopernikus1111001000012129 Descartes100010100001Sokrates, Russel, Kopernikus einfügen

Descartes einfügen Bucket 1 läuft über Setze globale Tiefe t:=2

Page 18: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

18

Beispiel für erweiterbares Hashing

x

2125212621272129

10 1100100001 01 110010000111 110010000110 0010100001

d p

h(x)

00

(2126, Russel, C4, 232)

(2125, Sokrates, C4, 226)

(2127, Kopernikus, C3, 310)

01t´= 2

t´= 1

t = 2

10

11

(2129, Descartes, C3, 312)

t´= 2

2125 Sokrates1011001000012126 Russel0111001000012127 Kopernikus1111001000012129 Descartes100010100001

Page 19: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

19

Defizite beim Hashing

• Keine Sortierung

• Keine Bereichsabfragen

Page 20: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

20

ISAM (Index sequential access method)

• Index-Datei mit Verweisen in die Hauptdatei.• Index-Datei enthält Tupel < Schlüssel,Blockadresse>,

sortiert nach Schlüsseln.• Liegt < v, a > in der Index-Datei, so sind alle Record-Schlüssel

im Block, auf den a zeigt, größer oder gleich v.

Page 21: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

21

ISAM-Operationen für Record mit Schlüssel v

• LOOKUP (für Schlüssel v):Suche in Index-Datei den letzten Block mit erstem Eintrag v2 v. Suche in diesem Block das letzte Paar (v3, a) mit v3 v. Lies Block mit Adresse a und durchsuche ihn nach Schlüssel v.

• MODIFY:Zunächst LOOKUP. Falls Schlüssel an Änderung beteiligt: DELETE + INSERT. Sonst: Record ändern, Block zurückschreiben.

• INSERT:Zunächst LOOKUP. Falls Block noch Platz für Record hat: einfügen. Falls Block voll ist: Nachfolgerblock oder neuen Block wählen und Index anpassen.

• DELETE:Analog zu INSERT

Page 22: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

22

1 1 1 1 Anton Doris Karl Paul

1 1 0 0 Sabine Theo

1 1 Anton Berta

1 1 Doris Emil

1 1 Karl Norbert

1 1 Paul Peter

1 0 Sabine

1 1 Theo Ute

Manfred einfügen

Index-Organisation: Ausgangslage

Page 23: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

23

1 1 1 1 Anton Doris Karl Norbert

1 1 1 0 Paul Sabine

1 1 Anton Berta

1 1 Doris Emil

1 1 Karl Manfred

1 0 Norbert

1 1 Paul Peter

1 1 Sabine

Theo

1 1 Theo Ute

Index-Organisation: nach Einfügen von Manfred

Page 24: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

24

Sekundär-Index

Sekundärindex besteht aus Index-File mit Einträgen der Form <Attributwert, Adresse>.

Page 25: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

25

Sekundär-Index für Gewicht

68 71 72 78 83

Page 26: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

26

Beispiel zur physikalischen Speicherung

Gegeben seien 300.000 Records mit folgenden Angaben:

Die Blockgröße betrage 1024 Bytes.

AttributAttribut BytesBytesPers-Nr. 15Vorname 15Nachname 15Straße 25PLZ 5Ort 25

Platzbedarf pro Record: 100 Bytes.

Page 27: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

27

Fragen zur Zahl der Records

Wieviel Daten-Records passen in einen zu 100% gefüllten Datenblock?

1024 / 100 = 10

Wieviel Daten-Records passen in einen zu 75% gefüllten Datenblock?

10 * 0,75 = 7-8

Wieviel Schlüssel / Adresspaare passen in einen zu 100% gefüllten Indexblock?

1.024 / (15+4) = 53

Wieviel Schlüssel / Adresspaare passen in einen zu 75% gefüllten Indexblock?

1.024 / (15+4)*0,75 40

Page 28: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

28

Heapfile versus ISAM

Welcher Platzbedarf entsteht beim Heapfile?

300.000 / 10 = 30.000 Blöcke

Wieviel Blockzugriffe entstehen im Mittel beim Heapfile?

30.000 / 2 = 15.000

Welcher Platzbedarf entsteht im Mittel bei ISAM?

300.000 / 7,5 40.000 zu 75% gefüllte Datenblöcke +

40.000 / 40 1.000 zu 75% gefüllte Indexblöcke

Wieviel Blockzugriffe entstehen im Mittel bei ISAM?

log2(1.000) + 1 11 Blockzugriffe

Page 29: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

29

B*-Baum

• Jeder Weg von der Wurzel zu einem Blatt hat dieselbe Länge.• Jeder Knoten außer der Wurzel und den Blättern hat

mindestens k Nachfolger.• Jeder Knoten hat höchstens 2 • k Nachfolger.• Die Wurzel hat keinen oder mindestens 2 Nachfolger.

Page 30: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

30

B*-Baum-Adressierung

Ein Knoten wird auf einem Block gespeichert

Ein Knoten mit j Nachfolgern (j 2•k)speichert j Paare von Schlüsseln und Adressen (s1, a1), . . . , (sj, aj).

Es gilt s1 s2 . . . sj.

Eine Adresse in einem Blattknoten führt zum Datenblock mit den restlichen Informationen zum zugehörigen Schlüssel

Eine Adresse in einem anderen Knoten führt zu einem Baumknoten

Page 31: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

31

Einfügen in B*Baum

eingefügt werden soll: 45

312217

774217

79774742 6153

Page 32: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

32

Einfügen in B*Baum

eingefügt werden soll: 45

Block anfordern

312217

774217

79774742 6153

Überlaufblock verteilen

Page 33: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

33

Einfügen in B*Baum

eingefügt werden soll: 45

Vorgänger korrigieren

312217

774217

79774742

6153

Page 34: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

34

Einfügen in B*Baum

eingefügt wurde: 45

312217

534217 77

79774542

6153

47

Page 35: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

35

27 55 12 94 37 88 72 39 25 88 74 58 64

Sequenz für B*-Baum mit k=2

Page 36: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

36

27

27

Page 37: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

37

27

27 55

Page 38: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

38

27 55

27 55

Page 39: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

39

27 55

27 55 12

Page 40: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

40

12 27 55

27 55 12

Page 41: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

41

12 27 55

27 55 12 94

Page 42: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

42

12 27 55 94

27 55 12 94

Page 43: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

43

12 27 55 94

27 55 12 94 37

Page 44: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

44

12 27 55 94

27 55 12 94 37

Page 45: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

45

12 27 37 55 94

27 55 12 94 37

Page 46: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

46

12 27 37 55 94

12 55

27 55 12 94 37

Page 47: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

47

12 27 37 55 94

12 55

27 55 12 94 37 88

Page 48: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

48

12 27 37 55 88 94

12 55

27 55 12 94 37 88

Page 49: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

49

12 27 37 55 88 94

12 55

27 55 12 94 37 88 72

Page 50: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

50

12 27 37 55 72 88 94

12 55

27 55 12 94 37 88 72

Page 51: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

51

12 27 37 55 72 88 94

12 55

27 55 12 94 37 88 72 39

Page 52: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

52

12 27 37 39 55 72 88 94

12 55

27 55 12 94 37 88 72 39

Page 53: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

53

12 27 37 39 55 72 88 94

12 55

27 55 12 94 37 88 72 39 25

Page 54: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

54

12 27 37 39 55 72 88 94

12 37 55

27 55 12 94 37 88 72 39 25

Page 55: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

55

12 25 27 37 39 55 72 88 94

12 37 55

27 55 12 94 37 88 72 39 25

Page 56: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

56

12 25 27 37 39 55 72 88 94

12 37 55

27 55 12 94 37 88 72 39 25 91

Page 57: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

57

12 25 27 37 39 55 72 88 94

12 37 55 88

27 55 12 94 37 88 72 39 25 91

Page 58: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

58

12 25 27 37 39 55 72 88 91 94

12 37 55 88

27 55 12 94 37 88 72 39 25 91

Page 59: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

59

12 25 27 37 39 55 72 88 91 94

12 37 55 88

27 55 12 94 37 88 72 39 25 91 74

Page 60: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

60

12 25 27 37 39 55 72 74 88 91 94

12 37 55 88

27 55 12 94 37 88 72 39 25 91 74

Page 61: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

61

12 25 27 37 39 55 72 74 88 91 94

12 37 55 88

27 55 12 94 37 88 72 39 25 88 74 58

Page 62: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

62

12 25 27 37 39 55 58 72 74 88 91 94

12 37 55 88

27 55 12 94 37 88 72 39 25 88 74 58

Page 63: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

63

12 25 27 37 39 55 58 72 74 88 91 94

12 37 55 88

27 55 12 94 37 88 72 39 25 88 74 58 64

Page 64: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

64

12 25 27 37 39 72 74 88 91 94

12 37 72 88

27 55 12 94 37 88 72 39 25 88 74 58 64

55 58

Page 65: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

65

12 25 27 37 39 72 74 88 91 94

12 37 72 88

27 55 12 94 37 88 72 39 25 88 74 58 64

55 58 64

Page 66: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

66

12 25 27

12 37

37 39 55 58 64 72 74 88 91 94

55 72 88

27 55 12 94 37 88 72 39 25 88 74 58 64

Page 67: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

67

12 25 27

12 37

37 39 55 58 64 72 74 88 91 94

55 72 88

12 55

27 55 12 94 37 88 72 39 25 88 74 58 64

Page 68: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

68

12 25 27

12 37

37 39 55 58 64 72 74 88 91 94

55 72 88

12 55

27 55 12 94 37 88 72 39 25 88 74 58 64

Sequenz eingefügt

Page 69: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

69

Löschen in B*Baum

312217

774217

7977534742 61

Entferne 53

Page 70: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

70

Löschen in B*Baum

312217

774217

7977614742

Entferne 79

Page 71: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

71

Löschen in B*Baum

2217

613117

77614731

Entferne 47

Page 72: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

72

Löschen in B*Baum

312217

7717

7977

Entferne 77

Page 73: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

73

Löschen in B*Baum

2217

3117

7931

Entferne 22

Page 74: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

74

Löschen in B*Baum

793117

Page 75: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

75

Fragen zum B*Baum

Wie groß ist k ?Blockgröße / (Schlüssel / Adresspaar-Größe) =

1024 / (15+4) / 2 = 26

Wieviel Söhne hat eine zu 50 % gefüllte Wurzel ?

26

Wieviel Söhne hat ein zu 75 % gefüllter Knoten ?

39

Wieviel zu 75 % gefüllte Datenblöcke sind erforderlich ?

300.000 / 7,5 40.000

Page 76: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

76

Platzbedarf B*Baum

Wieviel Blöcke belegt der B*Baum ?

Höhe Knoten Zeiger aus Knoten0 1 261 26 26 * 39 = 1.0142 26*39 26*39*39 = 39.546

drei Ebenen reichen aus Platzbedarf = 1 + 26 + 26*39 + 39.546 40.000 Blöcke

Wieviel Blockzugriffe sind erforderlich ?

4

Page 77: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

77

Hashing versus B*Baum

Welcher Platzbedarf entsteht beim Hashing, wenn dieselbe Zugriffszeit erreicht werden soll wie beim B*Baum?

4 Blockzugriffe = 1 Directory-Blockzugriff + 3 Datenblockzugriffe. Buckets bestehen im Mittel aus 5 Blöcken. von 5 Blöcken sind 4 voll und der letzte halb voll. 4,5 * 10 = 45 Records pro Bucket 300.000 / 45 = 6666 Buckets erforderlich 6666 / (1024 / 4) = 26 Directory-Blöcke Platzbedarf = 26 + 5 * 6.666 = 33.356

Page 78: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

78

B*Baum versus Hashing

B*Baum Hashing

Vorteile Dynamisch SchnellSortierung möglich platzsparend

Nachteile Speicheroverhead keine Sortierungkompliziert Neuorganisation

Page 79: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

79

Mehrdimensionale Suchstrukturen

Alter zwischen 20 und 30

Einkommen zwischen 2000 und 3000

PLZ zwischen 40000 und 50000

Page 80: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

80

Query-Rechteck

y2

y1

y

xx1 x2

E

D

C

B

G

F H I

K

AJ

Page 81: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

81

k-d-Baum

zur Verwaltung von mehrdimensionalen Datenpunkten

Verallgemeinerung des binären Suchbaumsmit k-dimensionalem Sortierschlüssel

Homogene Variante: Baumknoten enthält Datenrecord + Zeiger

Inhomogene Variante: Baumknoten enthält Schlüssel + ZeigerBlätter enthalten Zeiger auf Datenrecord

Ebene i modulo k diskriminiert bzgl. Dimension i

x

y

z

Page 82: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

82

2-d-Baum

Im 2-dimensionalen Fall gilt für Knoten mit Schlüssel [x/y]:

im linken Sohn im rechten Sohn

Auf ungerader Ebene alle Schlüssel x alle Schlüssel > x

Auf gerader Ebene alle Schlüssel y alle Schlüssel > y

Page 83: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

83

2-d-Baum

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1

2

3

4

5

6

7

8

9

10

A

C

B

D

E

FG

H

Page 84: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

84

Beispiel für 2-d-Baum

D 6/2 H 8/5

C 9/4

B14/3B 14/3

A 5/6

G 1/8 F 12/7

E 7/9

bzgl. y kleiner

bzgl. x kleiner

bzgl. y kleiner

bzgl. y grösser

bzgl. y grösser

bzgl. x grösserbzgl. x grösser

Ebene 0

Page 85: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

85

Beispiel für 2-d-Baum

D 6/2 H 8/5

C 9/4

B14/3B 14/3

A 5/6

G 1/8 F 12/7

E 7/9

bzgl. y kleiner

bzgl. x kleiner

bzgl. y kleiner

bzgl. y grösser

bzgl. y grösser

bzgl. x grösserbzgl. x grösser

Insert z.B. füge Record [3/9]

I 3/9

Page 86: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

86

Beispiel für 2-d-Baum

D 6/2 H 8/5

C 9/4

B14/3B 14/3

A 5/6

G 1/8 F 12/7

E 7/9

bzgl. y kleiner

bzgl. x kleiner

bzgl. y kleiner

bzgl. y grösser

bzgl. y grösser

bzgl. x grösserbzgl. x grösser

Exact Match z.B. finde Record [15/5]

Page 87: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

87

Beispiel für 2-d-Baum

D 6/2 H 8/5

C 9/4

B14/3B 14/3

A 5/6

G 1/8 F 12/7

E 7/9

bzgl. y kleiner

bzgl. x kleiner

bzgl. y kleiner

bzgl. y grösser

bzgl. y grösser

bzgl. x grösserbzgl. x grösser

Partial Match z.B. finde alle Records [x/y] mit x=7

Page 88: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

88

Beispiel für 2-d-Baum

D 6/2 H 8/5

C 9/4

B14/3B 14/3

A 5/6

G 1/8 F 12/7

E 7/9

bzgl. y kleiner

bzgl. x kleiner

bzgl. y kleiner

bzgl. y grösser

bzgl. y grösser

bzgl. x grösserbzgl. x grösser

Range-Query z.B. finde alle Records [x/y] mit 8 x 13, 5 y 8

Page 89: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

89

Beispiel für 2-d-Baum

D 6/2 H 8/5

C 9/4

B14/3B 14/3

A 5/6

G 1/8 F 12/7

E 7/9

bzgl. y kleiner

bzgl. x kleiner

bzgl. y kleiner

bzgl. y grösser

bzgl. y grösser

bzgl. x grösserbzgl. x grösser

Best Match z.B. finde nächsten Nachbarn zu [7/3]

Page 90: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

90

2-d-Baum

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1

2

3

4

5

6

7

8

9

10

A

C

B

D

E

FG

H

Page 91: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

91

Inhomogene Variante

Page 92: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

92

Partitionierungen

Page 93: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

93

Gitterverfahren mit konstanter Gittergröße

Page 94: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

94

Grid File

Alternative zu fester Gittergröße

1981 vorgestellt von Hinrichs & Nievergelt

2-Platten-Zugriffsgarantie

Bei k-dimensionalen Tupeln:

• k Skalen zum Einstieg ins Grid-Directory (im Hauptspeicher)

• Grid Directory zum Finden der Bucket-Nr. (Hintergrundspeicher)

• Bucket für Datensätze (Hintergrundspeicher)

Page 95: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

95

Grid File im 2-dimensionalen Fall

Alle Records der roten Gitterzelle sind im Bucket mit Adresse G[1,2]

0

y[i],i=0,.. max_y

3030

2500

2050

800

y

30 40 85 120 x

x x[i],i=0,.. max_x0 30 40 85 120

y0 800 2050 2500 3030

Region: benachbarte Gitterzellen

Gitterzelle: rechteckiger Teilbereich

Bucket: speichert Records einer Region

Page 96: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

96

Bucket Directory

0 30 40 85 120

0 1 2 3 4

43210

303025002050

8000

Suche Record [35 / 2400]

Befrage Skalen

asp07nk99jh056509

aasdf0cß03j400d0v

9v8asßfimo98csi98a

dxcvß98dspa0s9fxc0

wi00808ß3jsßsa9ßß

Lade G[1,2] vom Bucketdirectory

Lade Datenblock

Page 97: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

97

1.000.000 Datenrecords

4 Datenrecords passen in ein Bucket

X-Achse und Y-Achse habe 500 Unterteilungen

250.000 Einträge im Bucketdirectory

4 Bytes pro Adresse + 1.024 Bytes pro Block

250 Zeiger pro Directory-Block

1.000 Directory-Blöcke

i 249: G[i,j] befindet sich auf Block 2*j als i-te Adresse

i > 249: G[i,j] befindet sich auf Block 2*j+1 als (i-250)-te Adresse

Beispiel für Bucket Directory

....................................

.

0 249 499

....................................

.

....................................

.

....................................

.....................................

.

.

.

.210

G[280,2] auf Block 5 an Position 30

....................................

.

....................................

.

Page 98: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

98

Bucket-Überlauf

Eine Zelle in Region

Mehrere Zellen in Region

Page 99: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

99

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

Insert A = [5 / 6]

Page 100: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

100

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

A

A Insert B = [14 / 3]

Page 101: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

101

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

A

B

A B Insert C = [9 / 4]

Page 102: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

102

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

A

C

B

B CA Insert D = [6 / 2]

Page 103: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

103

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

A

C

B

B CA D

D

Insert E = [7 / 9]

Page 104: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

104

Aufspalten der Regionen

B C

8

6

4

2

2 4 6 8 10 12 14

E

A

C

B

D

A E

D

Insert F = [12 / 7]

Page 105: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

105

Aufspalten der Regionen

B C

8

6

4

2

2 4 6 8 10 12 14

E

A

C

B

FF

D

A E

D

Insert G = [1 / 8]

Page 106: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

106

Aufspalten der Regionen

B C

8

6

4

2

2 4 6 8 10 12 14

E

A

C

B

FF

D

G A E

D

G

Insert A = [5 / 6]

Page 107: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

107

Dynamik des Grid Directory

300

200 10 50

Insert A=[12 / 280]

3 Datenrecords pro Bucket

Page 108: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

108

Dynamik des Grid Directory

10 50

300

200

A

10 50

300

200

300

200 10 50

Insert B=[25 / 220]

Page 109: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

109

Dynamik des Grid Directory

10 50

300

200

A

B

10 50

300

200

300

200 10 50

Insert C=[45 / 270]

Page 110: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

110

Dynamik des Grid Directory

10 50

300

200

A

B

C

10 50

300

200

300

200 10 50

Insert D=[22 / 275]

Page 111: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

111

Dynamik des Grid Directory

300

200

10 30 50

300

200

A

B

C

10 50

300

200

D

10 30 50

Insert E=[24 / 260]

Page 112: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

112

Dynamik des Grid Directory

250

200

C

300

10 30 50

A

B

10 50

300

200

D

10 30 50

300

200

E

250

Insert F=[26 / 280]

Page 113: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

113

Dynamik des Grid Directory

10 30 50

300

200

30 50

10 20 30

250

200

A

B

CD

10 30 50

300

200

E

250

300 F

250

200

300

Directory Blockvergröbern

Page 114: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

114

Dynamik des Grid Directory

10 20 30

250

200

A

B

C

10 30 50

300

200

D

10 30 50

300

200

E

250

300 F

30 50

300

200

Page 115: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

115

Vereinigung von Regionen

bei zu geringer Bucketauslastung:

• Benachbarte Regionen vereinigen

• Vereinigung muß Rechteck ergeben

Vereinigung wird ausgelöst

• wenn Bucket < 30 % Auslastung

• wenn vereinigtes Bucket < 70 % Auslastung

Page 116: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

116

Nearest Neighbor

Q

P

R

Page 117: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

117

Verwaltung von geometrischen Objekten

Grid File unterstützt Range-Query

bisher: k Attribute

Jetzt: k-dimensionale Punkte

Page 118: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

118

Verwaltung von Intervallen

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1

2

3

4

5

E

A

B

C

D

F

A

[Anfang / Ende]

E

A

B C

D F

Besser: [Mittelpunkt / halbe Länge]

Page 119: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

119

Query-Punkt gegen Intervall

Punkt p liegt im Intervall mit Mitte m und halber Länge d

m-d p m+d

m-d m+dm

Page 120: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

120

Query-Punkt gegen Intervall

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1

2

3

4

5

E

A

B

C

D

F

E

A

B C

D F

Punkt p liegt im Intervall mit Mitte m und halber Länge d

m-d p m+d p=5 m-d 5 m+d

Page 121: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

121

Query-Intervall gegen Intervall

Intervall mit Mitte s und halber Länge t schneidet Intervall mit Mitte m und halber Länge d

m-d s+t und s-t m+d

m-d m+d

s+ts-t

Page 122: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

122

Query-Intervall gegen Intervall

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1

2

3

4

5

E

A

B

C

D

F

E

A

B C

D F

Intervall mit Mitte s und halber Länge t schneidet Intervall mit Mitte m und halber Länge d

m-d s+t und s-t m+d s=10, t=1 m-d 11 und 9 m+d

Page 123: 1 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher (2

123

Query-Rechteck gegen Rechteck

Stelle Rechteck durch vierdimensionalen Punkt dar