Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


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

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

2 2 Tupelidentifikator: Verschieben innerhalb der Seite 47112 5001 Grundzüge... 5041 Ethik... TID 123 Seite 4711 4052 Logik... 4052 Mathematische Logik...

3 3 Tupelidentifikator: Verdrängen auf andere Seite 4052 Mathematische Logik... 47112 5001 Grundzüge... 5041 Ethik... TID 123 Seite 4711 123 Seite 4812 4052 Mathematische Logik für Informatiker... 4812 3 4052 Mathematische Logik

4 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

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

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

7 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

8 8 10 11 11 11 Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate 10Eva 0 1 2 3 4 1110 Beispiel für Hashorganisation (|v| mod 5)

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

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

11 11 10 11 11 11 Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate 10Eva 0 1 2 3 4 1110 Paul einfügen Hashorganisation: Ausgangslage h(s) = |s| mod 5

12 12 10 11 11 11 Peter Thomas Melanie Ute Kurt Fritz Susanne Eberhard Karl Beate 10Eva 0 1 2 3 4 1110 10Paul Hashorganisation: nach Einfügen von Paul Kurt umbenennen nach Curdt

13 13 Peter 10 11 11 01 Thomas Melanie Ute Fritz Susanne Eberhard Karl BeateCurdt 10Eva 0 1 2 3 4 1111 10Paul Hashorganisation: nach Umbenennen von Kurt in Curdt

14 14 Probleme beim Hashing durch dynamisch sich ändernden Datenbestand: Blocklisten werden immer länger Reorganisation erforderlich

15 15 Erweiterbares Hashing Hashfunktion liefert Binärstring verwende geeigneten Prefix des Binärstring als Adresse

16 16 Beispiel für erweiterbares Hashing MatNrNameHashwert 2125Sokrates101100100001 2126Russel011100100001 2127Kopernikus111100100001 2129Descartes100010100001 Hashwert = umgekehrte Binärdarstellung von Matrikelnummer Ein Datenblock enthalte zwei Records

17 17 Beispiel für erweiterbares Hashing x 2125 2126 2127 1 01100100001 0 11100100001 1 11100100001 d p h(x) 0 (2126, Russel, C4, 232) (2125, Sokrates, C4, 226) (2127, Kopernikus, C3, 310) 1 t = 1 t´= 1 2125Sokrates101100100001 2126Russel011100100001 2127Kopernikus111100100001 2129Descartes100010100001 Sokrates, Russel, Kopernikus einfügen Descartes einfügenBucket 1 läuft überSetze globale Tiefe t:=2

18 18 Beispiel für erweiterbares Hashing x 2125 2126 2127 2129 10 1100100001 01 1100100001 11 1100100001 10 0010100001 d p h(x) 00 (2126, Russel, C4, 232) (2125, Sokrates, C4, 226) (2127, Kopernikus, C3, 310) 01 t´= 2 t´= 1 t = 2 10 11 (2129, Descartes, C3, 312) t´= 2 2125Sokrates101100100001 2126Russel011100100001 2127Kopernikus111100100001 2129Descartes100010100001

19 19 Defizite beim Hashing Keine Sortierung Keine Bereichsabfragen

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

21 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 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

22 22 Manfred einfügen Index-Organisation: Ausgangslage

23 23 Index-Organisation: nach Einfügen von Manfred

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

25 25 Sekundär-Index für Gewicht 6871727883

26 26 Beispiel zur physikalischen Speicherung Gegeben seien 300.000 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.

27 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

28 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? log 2 (1.000) + 1 11 Blockzugriffe

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

30 30 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

31 31 Einfügen in B*Baum eingefügt werden soll: 45 312217 774217 7977474742 61 53

32 32 Einfügen in B*Baum eingefügt werden soll: 45 Block anfordern 312217 774217 7977474742 61 53 Überlaufblock verteilen

33 33 Einfügen in B*Baum eingefügt werden soll: 45 Vorgänger korrigieren 312217 774217 7977474742 6153

34 34 Einfügen in B*Baum eingefügt wurde: 45 312217 53421777 7977454542 6153 4747

35 35 27 55 12 94 37 88 72 39 25 88 74 58 64 Sequenz für B*-Baum mit k=2

36 36 27

37 37 27 27 55

38 38 27 55

39 39 27 55 27 55 12

40 40 12 27 55 27 55 12

41 41 12 27 55 27 55 12 94

42 42 12 27 55 94 27 55 12 94

43 43 12 27 55 94 27 55 12 94 37

44 44 12 27 55 94 27 55 12 94 37

45 45 12 27 3755 94 27 55 12 94 37

46 46 12 27 3755 94 12 55 27 55 12 94 37

47 47 12 27 3755 94 12 55 27 55 12 94 37 88

48 48 12 27 3755 88 94 12 55 27 55 12 94 37 88

49 49 12 27 3755 88 94 12 55 27 55 12 94 37 88 72

50 50 12 27 3755 72 88 94 12 55 27 55 12 94 37 88 72

51 51 12 27 3755 72 88 94 12 55 27 55 12 94 37 88 72 39

52 52 12 27 37 3955 72 88 94 12 55 27 55 12 94 37 88 72 39

53 53 12 27 37 3955 72 88 94 12 55 27 55 12 94 37 88 72 39 25

54 54 12 2737 3955 72 88 94 12 37 55 27 55 12 94 37 88 72 39 25

55 55 12 25 2737 3955 72 88 94 12 37 55 27 55 12 94 37 88 72 39 25

56 56 12 25 2737 3955 72 88 94 12 37 55 27 55 12 94 37 88 72 39 25 91

57 57 12 25 2737 3955 7288 94 12 37 55 88 27 55 12 94 37 88 72 39 25 91

58 58 12 25 2737 3955 7288 91 94 12 37 55 88 27 55 12 94 37 88 72 39 25 91

59 59 12 25 2737 3955 7288 91 94 12 37 55 88 27 55 12 94 37 88 72 39 25 91 74

60 60 12 25 2737 3955 72 7488 91 94 12 37 55 88 27 55 12 94 37 88 72 39 25 91 74

61 61 12 25 2737 3955 72 7488 91 94 12 37 55 88 27 55 12 94 37 88 72 39 25 88 74 58

62 62 12 25 2737 3955 58 72 7488 91 94 12 37 55 88 27 55 12 94 37 88 72 39 25 88 74 58

63 63 12 25 2737 3955 58 72 7488 91 94 12 37 55 88 27 55 12 94 37 88 72 39 25 88 74 58 64

64 64 12 25 2737 3972 7488 91 94 12 37 72 88 27 55 12 94 37 88 72 39 25 88 74 58 64 55 58

65 65 12 25 2737 3972 7488 91 94 12 37 72 88 27 55 12 94 37 88 72 39 25 88 74 58 64 55 58 64

66 66 12 25 27 12 37 37 3955 58 6472 7488 91 94 55 72 88 27 55 12 94 37 88 72 39 25 88 74 58 64

67 67 12 25 27 12 37 37 3955 58 6472 7488 91 94 55 72 88 12 55 27 55 12 94 37 88 72 39 25 88 74 58 64

68 68 12 25 27 12 37 37 3955 58 6472 7488 91 94 55 72 88 12 55 27 55 12 94 37 88 72 39 25 88 74 58 64 Sequenz eingefügt

69 69 Löschen in B*Baum 312217 774217 797753474261 Entferne 53

70 70 Löschen in B*Baum 312217 774217 7977614742 Entferne 79

71 71 Löschen in B*Baum 2217 613117 77614731 Entferne 47

72 72 Löschen in B*Baum 312217 77 17 7977 Entferne 77

73 73 Löschen in B*Baum 2217 31 17 7931 Entferne 22

74 74 Löschen in B*Baum 793117

75 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

76 76 Platzbedarf B*Baum Wieviel Blöcke belegt der B*Baum ? HöheKnotenZeiger aus Knoten 0126 12626 * 39 = 1.014 226*3926*39*39 = 39.546 drei Ebenen reichen aus Platzbedarf = 1 + 26 + 26*39 + 39.546 40.000 Blöcke Wieviel Blockzugriffe sind erforderlich ? 4

77 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

78 78 B*Baum versus Hashing B*BaumHashing VorteileDynamischSchnell Sortierung möglichplatzsparend NachteileSpeicheroverheadkeine Sortierung kompliziertNeuorganisation

79 79 Mehrdimensionale Suchstrukturen Alterzwischen 20 und 30 Einkommenzwischen 2000 und 3000 PLZzwischen 40000 und 50000

80 80 Query-Rechteck y2y2 y1y1 y x x1x1 x2x2 E D C B G F HI K A J

81 81 k-d-Baum zur Verwaltung von mehrdimensionalen Datenpunkten Verallgemeinerung des binären Suchbaums mit k-dimensionalem Sortierschlüssel Homogene Variante: Baumknoten enthält Datenrecord + Zeiger Inhomogene Variante: Baumknoten enthält Schlüssel + Zeiger Blätter enthalten Zeiger auf Datenrecord Ebene i modulo k diskriminiert bzgl. Dimension i x y z

82 82 2-d-Baum Im 2-dimensionalen Fall gilt für Knoten mit Schlüssel [x/y]: im linken Sohnim rechten Sohn Auf ungerader Ebenealle Schlüssel xalle Schlüssel > x Auf gerader Ebenealle Schlüssel yalle Schlüssel > y

83 83 2-d-Baum 1 2 3 4 5 6 7 8 910111213141516 1 2 3 4 5 6 7 8 9 10 A C B D E F G H

84 84 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/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össer bzgl.x grösser Ebene 0

85 85 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/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össer bzgl.x grösser Insertz.B. füge Record [3/9] I 3/9

86 86 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/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össer bzgl.x grösser Exact Matchz.B. finde Record [15/5]

87 87 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/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össer bzgl.x grösser Partial Matchz.B. finde alle Records [x/y] mit x=7

88 88 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/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össer bzgl.x grösser Range-Queryz.B. finde alle Records [x/y] mit 8 x 13, 5 y 8

89 89 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/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össer bzgl.x grösser Best Matchz.B. finde nächsten Nachbarn zu [7/3]

90 90 2-d-Baum 1 2 3 4 5 6 7 8 910111213141516 1 2 3 4 5 6 7 8 9 10A C B D E F G H

91 91 Inhomogene Variante

92 92 Partitionierungen

93 93 Gitterverfahren mit konstanter Gittergröße

94 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)

95 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 304085120 x x x[i],i=0,.. max_x 0304085120 y 0800205025003030 Region:benachbarte Gitterzellen Gitterzelle: rechteckiger Teilbereich Bucket:speichert Records einer Region

96 96 Bucket Directory 0 30 40 85 120 0 1 2 3 4 4321043210 3030 2500 2050 800 0 Suche Record [35 / 2400] Befrage Skalen asp07nk99jh056509 aasdf0cß03j400d0v 9v8asßfimo98csi98a dxcvß98dspa0s9fxc0 wi00808ß3jsßsa9ßß Lade G[1,2] vom Bucketdirectory Lade Datenblock

97 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...210 G[280,2] auf Block 5 an Position 30.....................................

98 98 Bucket-Überlauf Eine Zelle in Region Mehrere Zellen in Region

99 99 Aufspalten der Regionen 8 6 4 2 2468101214 Insert A = [5 / 6]

100 100 Aufspalten der Regionen 8 6 4 2 2468101214 A A Insert B = [14 / 3]

101 101 Aufspalten der Regionen 8 6 4 2 2468101214 A B A B Insert C = [9 / 4]

102 102 Aufspalten der Regionen 8 6 4 2 2468101214 A C B B C A Insert D = [6 / 2]

103 103 Aufspalten der Regionen 8 6 4 2 2468101214 A C B B C A D D Insert E = [7 / 9]

104 104 Aufspalten der Regionen Insert F = [12 / 7]

105 105 Aufspalten der Regionen Insert G = [1 / 8]

106 106 Aufspalten der Regionen B C 8 6 4 2 2468101214 E A C B F F D G A E D G Insert A = [5 / 6]

107 107 Dynamik des Grid Directory 300 200 10 50 Insert A=[12 / 280] 3 Datenrecords pro Bucket

108 108 Dynamik des Grid Directory 10 50 300 200 A 10 50 300 200 300 200 10 50 Insert B=[25 / 220]

109 109 Dynamik des Grid Directory 10 50 300 200 A B 10 50 300 200 300 200 10 50 Insert C=[45 / 270]

110 110 Dynamik des Grid Directory 10 50 300 200 A B C 10 50 300 200 300 200 10 50 Insert D=[22 / 275]

111 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]

112 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]

113 113 Dynamik des Grid Directory 10 30 50 300 200 30 50 10 20 30 250 200 A B C D 10 30 50 300 200 E 250 300 F 250 200 300 Directory Block vergröbern

114 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

115 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

116 116 Nearest Neighbor Q P R

117 117 Verwaltung von geometrischen Objekten Grid File unterstützt Range-Query bisher:k Attribute Jetzt:k-dimensionale Punkte

118 118 Verwaltung von Intervallen 1 2 3 4 5 6 7 8 9 1011121314 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]

119 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+d m

120 120 Query-Punkt gegen Intervall 1 2 3 4 5 6 7 8 9 1011121314 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

121 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-dm+d s+ts-t

122 122 Query-Intervall gegen Intervall 1 2 3 4 5 6 7 8 9 1011121314 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

123 123 Query-Rechteck gegen Rechteck Stelle Rechteck durch vierdimensionalen Punkt dar


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

Ähnliche Präsentationen


Google-Anzeigen