In einer relativ organisierten Datei ist jedem Datensatz eine Nummer zugeordnet, die seine Position in der Datei angibt: Der erste Satz hat die Nummer 1, der zweite die Nummer 2 usw.
Mit Hilfe eines im Programm vereinbarten Schlüsselfeldes kann über diese relative Satznummer direkt (wahlfrei) auf jeden Satz der Datei zugegriffen werden. Zusätzlich zu den Möglichkeiten der sequenziellen Dateiorganiation gestattet dies, in einer relativen Datei
bei der Erstellung die Datensätze wahlfrei, d.h. in beliebiger Reihenfolge, abzuspeichern,
bei der Bearbeitung die Datensätze wahlfrei zu lesen und zu aktualisieren
nachträglich Sätze einzufügen, sofern die dafür vorgesehene Position (relative Satznummer) noch nicht belegt ist, und
bereits vorhandene Datensätze logisch zu löschen.
Für die Bearbeitung relativer Dateien verwenden COBOL-Programme die Zugriffsmethoden ISAM und UPAM des DVS (siehe Handbuch [4]). Sie gestatten es mehreren Anwendern, gleichzeitig die Datei zu aktualisieren (siehe Abschnitt „Simultanverarbeitung von Dateien (SHARED-UPDATE)").
Bestehende Dateien haben einen festgelegten FCBTYPE. Für neu zu erstellende Dateien wird stets der FCBTYPE ISAM eingesetzt, wenn nicht mit dem ACCESS-METHOD-Operanden des ADD-FILE-LINK-Kommandos der
FCBTYPE *UPAM (SAM wird mit Fehler abgewiesen) festgelegt wurde.
In folgenden Fällen ist nur die Angabe von FCBTYPE ISAM zulässig:
bei expliziter Angabe einer variablen Satzlänge in der RECORD-Klausel und/oder
bei Angabe von OPEN EXTEND und/oder
bei Angabe von READ REVERSED
Bei der Abbildung einer relativ organisierten Datei auf ISAM wird vor den Satzanfang der 8 Byte lange Satzschlüssel (sedezimal) eingeschoben. Der relative Satzschlüssel wird auf den Schlüssel der indizierten Datei abgebildet.
Relative Dateien können ausschließlich auf Plattenspeichern eingerichtet werden.
Dateistruktur
Die Beschreibung der Dateistruktur einer ISAM-Datei findet sich in Abschnitt „Merkmale indizierter Dateiorganisation".
Für PAM-Dateien gilt:
In ihrer logischen Struktur kann eine PAM-Datei als eine Folge von Bereichen gleicher Länge aufgefasst werden, die jeweils einen Datensatz aufnehmen können (in PAM-Dateien sind nur Sätze fester Länge erlaubt). Jeder dieser Bereiche kann dazu über seine relative Satznummer angesprochen werden.
Bei sequenzieller Erstellung einer Datei werden diese Bereiche, beginnend mit dem ersten, nacheinander mit Datensätzen gefüllt; es kann kein Bereich übersprungen werden.
Bei wahlfreier Erstellung wird jeder Datensatz in den Bereich geschrieben, mit dessen relativer Satznummer das Schlüsselfeld vor der Ausgabeanweisung versorgt wurde. Die zugehörige Position in der Datei errechnet das Programm aus der angegebenen Satznummer und der Satzlänge. Leere Bereiche, die bei der Ausgabe übersprungen werden, legt es als Leersätze an, d.h. es reserviert Speicherbereiche in Satzlänge und versorgt jeweils das erste Byte mit dem sedezimalen Wert X’FF’ als Kennzeichen für einen Leersatz (siehe Abschnitt „Eröffnungsarten und Verarbeitungsformen (relative Dateien)").
PAM-Dateien können nur auf „Key-Platten“ angelegt werden, d.h. im ADD-FILE-LINK Kommando ist die Angabe BLOCK-CONTROL=PAMKEY erforderlich (siehe Abschnitt „Platten- und Dateiformate").