Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Brunhild Drey Geändert vor über 10 Jahren
1
Kapitel 4: Physikalische Datenorganisation
2
Physikalische Datenorganisation
Record Datensatz fester oder variabler Länge mit Feldern bestimmten Typs Block Speichereinheit im Hintergrundspeicher ( Bytes) File Menge von Blöcken Pinned record Blockadresse + Offset Unpinned record Blockadresse + Recordschlüssel Blockadresse + Tupelidentifikator
3
Tupelidentifikator: Verschieben innerhalb der Seite
4711 2 5001 Grundzüge ... Ethik ... TID 1 3 Seite 4711 4052 Mathematische Logik ... Logik ...
4
Tupelidentifikator: Verdrängen auf andere Seite
4052 Mathematische Logik ... 4711 2 5001 Grundzüge ... Ethik ... TID 1 3 Seite 4711 4812 3 1 2 3 Seite 4812 4052 Mathematische Logik für Informatiker... 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)
1 Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate Eva 2 3 4
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: dk dk-1 d2 d1 h(v) = (dk + dk d2 + d1) mod N
11
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.
12
Beispiel für Hashorganisation
1 Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate Eva 2 3 4 Hashorganisation: Ausgangslage h(s) = |s| mod 5 Paul einfügen
13
Beispiel für Hashorganisation
1 Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate Eva 2 3 4 Paul Hashorganisation: nach Einfügen von Paul Kurt umbenennen nach Curdt
14
Beispiel für Hashorganisation
Peter 1 Thomas Melanie Ute Fritz Susanne Eberhard Karl Beate Curdt Eva 2 3 4 Paul 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 < 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.
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. 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
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 <Attributwert, Adresse>.
21
Sekundär-Index für Gewicht
68 71 72 78 83
22
Beispiel zur physikalischen Speicherung
Gegeben seien Records mit folgenden Angaben: Attribut Bytes Pers-Nr. 15 Vorname 15 Nachname 15 Straße 25 PLZ 5 Ort 25 Platzbedarf pro Record: 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 / (15+4) = 53 Wieviel Schlüssel / Adresspaare passen in einen zu 75% gefüllten Indexblock? 1.024 / (15+4)*0,75 40
24
Heapfile versus ISAM Welcher Platzbedarf entsteht beim Heapfile?
/ 10 = Blöcke Wieviel Blockzugriffe entstehen im Mittel beim Heapfile? / 2 = Welcher Platzbedarf entsteht im Mittel bei ISAM? / 7,5 zu 75% gefüllte Datenblöcke + / 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 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
27
Einfügen in B*Baum eingefügt werden soll: 45 31 22 17 77 42 79 47 61
53 eingefügt werden soll: 45
28
Einfügen in B*Baum eingefügt werden soll: 45 Block anfordern
31 22 17 77 42 79 47 61 53 eingefügt werden soll: 45 Block anfordern Überlaufblock füllen
29
Einfügen in B*Baum eingefügt werden soll: 45 Element einordnen 31 22
17 77 42 79 47 61 53 eingefügt werden soll: 45 Element einordnen
30
Einfügen in B*Baum eingefügt werden soll: 45 Vorgänger korrigieren 31
22 17 77 42 79 45 61 53 47 eingefügt werden soll: 45 Vorgänger korrigieren
31
Einfügen in B*Baum eingefügt wurde: 45 17 42 53 77 17 22 31 42 45 47
79 53 61 eingefügt wurde: 45
32
Sequenz für B*-Baum mit k=2
33
27 27
34
27 55 27
35
27 55 27 55
36
27 55
41
12 27 55 94
42
55 94
43
55 94
44
55 94
51
12 27 37 39
52
37 39
53
37 39
54
37 39 55 72 88 94
55
37 39 55 72
56
37 39 55 72
57
37 39
58
37 39
59
37 39
60
37 39
61
37 39 55 58 72 74
62
37 39 72 74
63
12 37 37 39 72 74
64
12 55 12 37 37 39 72 74
65
12 55 12 37 37 39 72 74 Sequenz eingefügt
66
Löschen in B*Baum 31 22 17 77 42 79 53 47 61 Entferne 53
67
Löschen in B*Baum 31 22 17 77 42 79 61 47 Entferne 79
68
Löschen in B*Baum 31 22 17 61 42 77 47 Entferne 42
69
Löschen in B*Baum 22 17 61 31 77 47 Entferne 47
70
Löschen in B*Baum 31 22 17 61 77 Entferne 77
71
Löschen in B*Baum 22 17 31 61 Entferne 22
72
Löschen in B*Baum 17 31 61
73
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 ? / 7,5
74
Platzbedarf B*Baum Wieviel Blöcke belegt der B*Baum ?
Höhe Knoten Zeiger aus Knoten * 39 = *39 26*39*39 = drei Ebenen reichen aus Platzbedarf = * Blöcke Wieviel Blockzugriffe sind erforderlich ? 4
75
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 / 45 = 6666 Buckets erforderlich 6666 / (1024 / 4) = 26 Directory-Blöcke Platzbedarf = * =
76
B*Baum versus Hashing B*Baum Hashing
Vorteile Dynamisch Schnell Sortierung möglich platzsparend Nachteile Speicheroverhead keine Sortierung kompliziert Neuorganisation
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.