Die relative Dateiverwaltung

Neben der sequentiellen und der indexsequentiellen Dateiorganisation gibt es noch die relative Dateiorganisation. Diese Art der Organisation von Dateien unterscheidet sich von der sequentiellen hauptsächlich dadurch, daß hier die Datensätze eine fixe Größe aufweisen. Werden bei der indexsequentiellen Organisationsart die Schlüssel in sortierten Tabellen verwaltet, von denen aus der Zugriff erfolgt, so existieren bei relativen Dateien solche Tabellen nicht. Die Datensätze einer solchen Datei werden an festen Orten (Sektoren und Bytepositionen innerhalb dieser Sektoren) auf der Platte abgespeichert. Es wird nun anhand der Satznummer (RELATIVE KEY) der Speicherort errechnet. Liegt beispielsweise eine Satzlänge von 98 Bytes vor, so ergibt sich für Satz Nummer 50 die folgende relative Byteadresse:

( 98 + 2 ) * 50 = 5000

Zwei Bytes mit Kontrollinformationen werden pro Satz (auf jeden Fall von MF-Cobol) angehängt. Liegen nun Sektoren auf der Platte in der Größe von 1024 Bytes vor, so ergibt sich die Sektorenadresse:

5000 / 1024 = 4 Rest 904

Der gesuchte Satz beginnt folglich im Sektor vier ab der Byteposition 904. Die Adresse ist eine relative welche, da sie den Speicherort ab Beginn der Datei angibt und nicht den absoluten.
Diese Art der Speicherung wird nicht oft verwendet. Schwanke* sagt dazu: "Eine typische Anwendung ist das seperate Speichern von Fehlermeldungen und Nachrichten in einer relativen Datei. Diese Texte werden dann unter Angabe der betreffenden relativen Satznummer eingelesen. Vorteil: Die Meldungen brauchen nicht mehr im Programm geschrieben und können leicht verwaltet werden."
Man kann sagen, daß für die effektive Datenverwaltung ein Direktzugriff in Form von ISAM-Dateien, also der indexsequentiellen Dateiorganisation vorzuziehen ist, da die Zugriffsmöglichkeiten mit Hilfe der Schlüssel wesentlich bequemer und umfangreicher sind als bei der relativen Dateiverwaltung, wo die tatsächliche Vergabe von Schlüsseln (mit Ausnahme der Satznummer eben) nicht möglich ist. Dennoch hat sie, wie Schwanke (s.o.) beschreibt, ihre Berechtigung.
Auch eine relative Datei muß in der INPUT-OUTPUT SECTION unter der FILE-CONTROL 'angemeldet' werden. Wie bei anderen Dateien auch, geschieht dies mit Hilfe der SELECT- und ASSIGN-Klauseln. Hier wird auch der entsprechende RELATIVE KEY, die Organisationsform sowie der Zugriffsmodus festgelegt.
Fehler werden genauso über das FILE STATUS-Feld und eine entsprechende Fehlerbehandlung analysiert und abgefangen, wie bei der sequentiellen oder indexsequentiellen Dateiverwaltung.
Alle relativen Dateien müssen wie andere auch in der DATA DIVISION beschrieben werden. Dies geschieht in der FILE SECTION unter der Stufenbezeichnung FD.

Um relative Dateien zu 'handlen', kann oder muß man in der PROCEDURE DIVISION folgende Anwendungen verwenden:

OPEN
READ
WRITE
REWRITE
START
DELETE
CLOSE


...