Hello Julia,
ich kann das nur aus Sicht eines "Museumswärters" beantworten.
Eine herkömmliche HDD als Permanentspeichermedium ist üblicherweise in Spuren und Sektoren eingeteilt. Diese befinden sich dann ggf. auch noch auf mehreren Ebenen (Scheiben). Um nicht zuviele Verwaltungsinformationen (Marker und "Rasenstreifen") auf dem Medium unterbringen zu müssen, fasst man immer mehrere Sektoren zu einem Cluster zusammen. Wie groß der wird, stellt dein Fileservice-Programm bei der Partitionierung und Formatierung ein. Übliche Größen sind heute z. B. 8kB pro Cluster. Wenn Du eine neue Datei anfängst, ist im Datenbereich der Platte immer mindestens ein Cluster weg, auch wenn nur ein Byte (oder keines) darin benutzt wird. Zum Lesen eines Bytes aus dem Cluster wird auch der gesamter Cluster in den Buffer geleden. Zum Schreiben eines Bytes muss er ebenfalls zuerst gelesen werden, dann im Buffer manipuliert und anschließend komplett zurückgeschrieben werden. [Bitte hier nicht auf die Speuialitäten von NTFS oder EXT3/4 eingehen, das würde zu weit führen]
Kurz gesagt: die Daten eines Clusters liegen ohnehin im Lesepuffer.
Machst Du den Cluster so groß, dass ganze Tabellen hineinpassen, kannst Du im Prinzip den Speicher immer sequentiell durchsuchen lassen nach den gewünschten Treffern. alle anderen Regeln wurden schon in deinem letzten Thread diskutiert.
Jetzt gibt es aber unterschiedlich aufgebaute Tabellen. Die einfachste Art mit der meisten "Luft" zwischen den Daten wäre feste Feldlänge, feste Satzlänge. Ein DS hat benötigt immer dieselbe Anzahl Bytes. Die Position der DS und der Felder lässt sich also berechnen.
Dann gibt es den Aufbau mit wahlfreier Feldlänge und fester Satzbreite. Die Postion der Datensätze lässt sich damit zwar berechnen, aber nicht, wo die Felder anfangen und aufhören. Außerdem muss man eine intelligente Regelung dafür finden, dass die Summe aller Feldlängen die Satzlänge nicht überschreitet.
Ganz weit verbreitet sind "Textdateien". Da werden alle Felder eines Satzes immer sequentiell hintereinander geschrieben und die Datensätze auch. Es gibt spezielle Zeichen für "Feldende" und "Satzende", die nicht ohne Weiteres in den Daten auftreten dürften. Bei solchen Dateien kann man gar nichts mehr berechnen.
Nun kann es aber sinnvoll sein, eine Extratabelle zu führen, in der man sich die Anfangspositionen der Datensätze merkt. Das ist dann schon so ähnlich, wie ein Index oder besser wie ein RAT (Record Allocation Table).
Wenn Du dir mal eine MySQL-Tabelle im MyISAM-Format greifst und die mit einem Hexeditor anschaust, wird dir einiges klar werden. Nimm am Anfang nur eine einfache Tabelle mit einer Id (INT) und einen Datenfeld (Char 20). Wenn Du sie angesehen hast, baue sie um und füge ein Datenfeld (VarChar 100) hinzu und schreibe auch etwas rein(!). Du wirst sehen, dass man da schon sehr genau hinsehen muss, welche Daten zusammengehören (Datensätze bilden).
Das DBMS selber sollte sich aber nach Möglichkeit an Clustergrenzen halten für seine Knoten- und Blattseiten, bzw. seine sequentiellen Blöcke.
Liebe Grüße
Tom S.
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.