Kapitel 4: Physikalische Datenorganisation - PowerPoint PPT Presentation

About This Presentation
Title:

Kapitel 4: Physikalische Datenorganisation

Description:

Kapitel 4: Physikalische Datenorganisation – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 77
Provided by: Astr99
Category:

less

Transcript and Presenter's Notes

Title: Kapitel 4: Physikalische Datenorganisation


1
Kapitel 4 Physikalische Datenorganisation
2
Physikalische Datenorganisation
  • Record 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üssel
  • Blockadresse Tupelidentifikator

3
Tupelidentifikator Verschieben innerhalb der
Seite
4
Tupelidentifikator Verdrängen auf andere Seite
4052 Mathematische Logik
5
Implementierung des E-R-Modells
  • pro Entity ein Record mit den Attributen als
    Datenfelder
  • pro Relationship ein Record mit den TIDs der
    beteiligten Entities

6
Speicher-Operationen
  • INSERT Einfügen eines Records
  • LOOKUP Suchen eines Records
  • MODIFY Modifizieren eines Records
  • DELETE Löschen eines Records

7
Heap-File
  • INSERT Record am Ende einfügen
  • LOOKUP Gesamtes File durchsuchen
  • MODIFY Record überschreiben
  • DELETE Lösch-Bit setzen

8
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

9
Beispiel für Hashorganisation (v mod 5)
10
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
h(v) (dk dk-1 . . . d2 d1) mod N
11
Hash-Operationen für Schlüssel v
  • LOOKUPBerechne 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.
  • MODIFYFalls Schlüssel beteiligt DELETE und
    INSERT durchführen. Andernfalls LOOKUP
    durchführen und dann überschreiben.
  • INSERTZunächst LOOKUP durchführen. Falls Satz
    mit v vorhanden Fehler. Sonst Freien Platz im
    Block überschreiben und ggf. neuen Block
    anfordern.
  • DELETEZunächst LOOKUP durchführen. Bei Record
    Löschbit setzen.

12
Beispiel für Hashorganisation
Paul einfügen
13
Beispiel für Hashorganisation
Hashorganisation nach Einfügen von Paul
Kurt umbenennen nach Curdt
14
Beispiel für Hashorganisation
Hashorganisation nach Umbenennen von Kurt in
Curdt
15
Probleme beim Hashing
  • Blocklisten werden immer länger
  • Reorganisation erforderlich
  • Keine Sortierung
  • Keine Bereichsabfragen

16
ISAM (Index sequential access method)
  • Index-Datei mit Verweisen in die Hauptdatei.
  • Index-Datei enthält Tupel lt Schlüssel,Blockadresse
    gt,sortiert nach Schlüsseln.
  • Liegt lt v, a gt in der Index-Datei, so sind alle
    Record-Schlüssel im Block, auf den a zeigt,
    größer oder gleich v.

17
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.
  • MODIFYZunächst LOOKUP. Falls Schlüssel an
    Änderung beteiligt DELETE INSERT. Sonst
    Record ändern, Block zurückschreiben.
  • INSERTZunä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.
  • DELETEAnalog zu INSERT

18
Beispiel für Indexorganisation
Index-Organisation Ausgangslage
Manfred einfügen
19
Beispiel für Indexorganisation
Index-Organisation nach Einfügen von Manfred
20
Sekundär-Index
Sekundärindex besteht aus Index-File mit
Einträgen der Form ltAttributwert, Adressegt.
21
Sekundär-Index für Gewicht
22
Beispiel zur physikalischen Speicherung
Gegeben seien 300.000 Records mit folgenden
Angaben
Platzbedarf pro Record 100 Bytes.
Die Blockgröße betrage 1024 Bytes.
23
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 / (154) 53
  • Wieviel Schlüssel / Adresspaare passen in einen
    zu 75 gefüllten Indexblock?
  • 1.024 / (154)0,75 ? 40

24
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

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

26
B-Baum-Adressierung
Ein Knoten wird auf einem Block gespeichert Ein
Knoten mit j Nachfolgern (j ? 2k)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
27
Einfügen in BBaum
eingefügt werden soll 45
28
Einfügen in BBaum
eingefügt werden soll 45
Block anfordern
Überlaufblock füllen
29
Einfügen in BBaum
eingefügt werden soll 45
Element einordnen
30
Einfügen in BBaum
47
eingefügt werden soll 45
Vorgänger korrigieren
31
Einfügen in BBaum
53
42
17
77
47
31
22
17
79
77
45
42
61
53
eingefügt wurde 45
32
Sequenz für B-Baum mit k2
27 55 12 94 37 88 72 39 25 88 74 58
64
33
27
27
34
27 55
27
35
27 55
27 55
36
27 55 12
27 55
37
27 55 12
12 27 55
38
27 55 12 94
12 27 55
39
27 55 12 94
12 27 55 94
40
27 55 12 94 37
12 27 55 94
41
27 55 12 94 37
12 27
55 94
42
27 55 12 94 37
12 27 37
55 94
43
27 55 12 94 37
12 55
12 27 37
55 94
44
27 55 12 94 37 88
12 55
12 27 37
55 94
45
27 55 12 94 37 88
12 55
12 27 37
55 88 94
46
27 55 12 94 37 88 72
12 55
12 27 37
55 88 94
47
27 55 12 94 37 88 72
12 55
12 27 37
55 72 88 94
48
27 55 12 94 37 88 72 39
12 55
12 27 37
55 72 88 94
49
27 55 12 94 37 88 72 39
12 55
12 27 37 39
55 72 88 94
50
27 55 12 94 37 88 72 39 25
12 55
12 27 37 39
55 72 88 94
51
27 55 12 94 37 88 72 39 25
12 37 55
12 27
37 39
55 72 88 94
52
27 55 12 94 37 88 72 39 25
12 37 55
12 25 27
37 39
55 72 88 94
53
27 55 12 94 37 88 72 39 25 91
12 37 55
12 25 27
37 39
55 72 88 94
54
27 55 12 94 37 88 72 39 25 91
12 37 55 88
12 25 27
37 39
55 72
88 94
55
27 55 12 94 37 88 72 39 25 91
12 37 55 88
12 25 27
37 39
55 72
88 91 94
56
27 55 12 94 37 88 72 39 25 91 74
12 37 55 88
12 25 27
37 39
55 72
88 91 94
57
27 55 12 94 37 88 72 39 25 91 74
12 37 55 88
12 25 27
37 39
55 72 74
88 91 94
58
27 55 12 94 37 88 72 39 25 88 74 58
12 37 55 88
12 25 27
37 39
55 72 74
88 91 94
59
27 55 12 94 37 88 72 39 25 88 74 58
12 37 55 88
12 25 27
37 39
55 58 72 74
88 91 94
60
27 55 12 94 37 88 72 39 25 88 74 58 64
12 37 55 88
12 25 27
37 39
55 58 72 74
88 91 94
61
27 55 12 94 37 88 72 39 25 88 74 58 64
12 37 72 88
12 25 27
37 39
72 74
88 91 94
55 58
62
27 55 12 94 37 88 72 39 25 88 74 58 64
12 37 72 88
12 25 27
37 39
72 74
88 91 94
55 58 64
63
27 55 12 94 37 88 72 39 25 88 74 58 64
12 37
55 72 88
12 25 27
37 39
55 58 64
72 74
88 91 94
64
27 55 12 94 37 88 72 39 25 88 74 58 64
12 55
12 37
55 72 88
12 25 27
37 39
55 58 64
72 74
88 91 94
65
27 55 12 94 37 88 72 39 25 88 74 58 64
12 55
12 37
55 72 88
12 25 27
37 39
55 58 64
72 74
88 91 94
Sequenz eingefügt
66
Löschen in BBaum
Entferne 53
67
Löschen in BBaum
Entferne 79
68
Löschen in BBaum
Entferne 42
69
Löschen in BBaum
Entferne 47
70
Löschen in BBaum
Entferne 77
71
Löschen in BBaum
Entferne 22
72
Löschen in BBaum
61
31
17
73
Fragen zum BBaum
  • Wie groß ist k ?
  • Blockgröße / (Schlüssel / Adresspaar-Größe)
  • 1024 / (154) / 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

74
Platzbedarf BBaum
  • Wieviel Blöcke belegt der BBaum ?
  • Höhe Knoten Zeiger aus Knoten0 1 261 26 26
    39 1.0142 2639 263939 39.546
  • drei Ebenen reichen aus
  • Platzbedarf 1 26 2639 39.546 ? 40.000
    Blöcke
  • Wieviel Blockzugriffe sind erforderlich ?
  • 4

75
Hashing versus BBaum
  • Welcher Platzbedarf entsteht beim Hashing, wenn
    dieselbe Zugriffszeit erreicht werden soll wie
    beim BBaum?
  • 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

76
BBaum versus Hashing
BBaum Hashing Vorteile Dynamisch Schnell S
ortierung möglich platzsparend Nachteile Speicher
overhead keine Sortierung kompliziert Neuorgani
sation
Write a Comment
User Comments (0)
About PowerShow.com