Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Kapitel 4: Physikalische Datenorganisation. 2 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Kapitel 4: Physikalische Datenorganisation. 2 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs."—  Präsentation transkript:

1 1 Kapitel 4: Physikalische Datenorganisation

2 2 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs BlockSpeichereinheit im Hintergrundspeicher ( Bytes) FileMenge von Blöcken Pinned recordBlockadresse + Offset Unpinned recordBlockadresse + Recordschlüssel Blockadresse + Tupelidentifikator

3 3 Tupelidentifikator: Verschieben innerhalb der Seite Grundzüge Ethik... TID 123 Seite Logik Mathematische Logik...

4 4 Tupelidentifikator: Verdrängen auf andere Seite 4052 Mathematische Logik Grundzüge Ethik... TID 123 Seite Seite Mathematische Logik für Informatiker Mathematische Logik

5 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 6 Speicher-Operationen INSERT: Einfügen eines Records LOOKUP: Suchen eines Records MODIFY: Modifizieren eines Records DELETE: Löschen eines Records

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

8 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 9 Beispiel für Hashorganisation (|v| mod 5) Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate 10Eva

10 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 d i die i-te Gruppe als natürliche Zahl interpretiert: dkdk d k-1 d2d2 d1d1 h(v) = (d k + d k d 2 + d 1 ) mod N

11 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 12 Beispiel für Hashorganisation Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate 10Eva Paul einfügen Hashorganisation: Ausgangslage h(s) = |s| mod 5

13 13 Beispiel für Hashorganisation Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate 10Eva Paul Hashorganisation: nach Einfügen von Paul Kurt umbenennen nach Curdt

14 14 Beispiel für Hashorganisation Peter Thomas Melanie Ute Fritz Susanne Eberhard Karl BeateCurdt 10Eva Paul Hashorganisation: nach Umbenennen von Kurt in Curdt

15 15 Probleme beim Hashing Blocklisten werden immer länger Reorganisation erforderlich Keine Sortierung Keine Bereichsabfragen

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

17 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 v 2 v. Suche in diesem Block das letzte Paar (v 3, a) mit v 3 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 18 Beispiel für Indexorganisation Manfred einfügen Index-Organisation: Ausgangslage

19 19 Beispiel für Indexorganisation Index-Organisation: nach Einfügen von Manfred

20 20 Sekundär-Index Sekundärindex besteht aus Index-File mit Einträgen der Form.

21 21 Sekundär-Index für Gewicht

22 22 Beispiel zur physikalischen Speicherung Gegeben seien Records mit folgenden Angaben: Die Blockgröße betrage 1024 Bytes. AttributBytes AttributBytes Pers-Nr.15 Vorname15 Nachname15 Straße25 PLZ 5 Ort25 Platzbedarf pro Record: 100 Bytes.

23 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? / (15+4) = 53 Wieviel Schlüssel / Adresspaare passen in einen zu 75% gefüllten Indexblock? / (15+4)*0,75 40

24 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, zu 75% gefüllte Datenblöcke / zu 75% gefüllte Indexblöcke Wieviel Blockzugriffe entstehen im Mittel bei ISAM? log 2 (1.000) Blockzugriffe

25 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 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 (s 1, a 1 ),..., (s j, a j ). Es gilt s 1 s 2... s j. 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 27 Einfügen in B*Baum eingefügt werden soll:

28 28 Einfügen in B*Baum eingefügt werden soll: 45 Block anfordern Überlaufblock füllen

29 29 Einfügen in B*Baum eingefügt werden soll: 45 Element einordnen

30 30 Einfügen in B*Baum eingefügt werden soll: 45 Vorgänger korrigieren

31 31 Einfügen in B*Baum eingefügt wurde:

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

33 33 27

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65 Sequenz eingefügt

66 66 Löschen in B*Baum Entferne 53

67 67 Löschen in B*Baum Entferne 79

68 68 Löschen in B*Baum Entferne 42

69 69 Löschen in B*Baum Entferne 47

70 70 Löschen in B*Baum Entferne 77

71 71 Löschen in B*Baum Entferne 22

72 72 Löschen in B*Baum

73 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,

74 74 Platzbedarf B*Baum Wieviel Blöcke belegt der B*Baum ? HöheKnotenZeiger aus Knoten * 39 = *3926*39*39 = drei Ebenen reichen aus Platzbedarf = * Blöcke Wieviel Blockzugriffe sind erforderlich ? 4

75 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 76 B*Baum versus Hashing B*BaumHashing VorteileDynamischSchnell Sortierung möglichplatzsparend NachteileSpeicheroverheadkeine Sortierung kompliziertNeuorganisation


Herunterladen ppt "1 Kapitel 4: Physikalische Datenorganisation. 2 Physikalische Datenorganisation RecordDatensatz fester oder variabler Länge mit Feldern bestimmten Typs."

Ähnliche Präsentationen


Google-Anzeigen