Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Merkmale indizierter Dateiorganisation

In einer indiziert organisierten Datei enthält jeder Datensatz einen Schlüssel, d.h. eine Folge beliebiger (auch nichtabdruckbarer) Zeichen, die ihn (innerhalb der Datei) eindeutig identifizieren. Die Anfangspositionen (KEYPOS) und Längen (KEYLEN) der Schlüssel stimmen dabei für alle Sätze einer Datei überein.

Mit Hilfe eines im Programm vereinbarten Schlüsselfeldes, das Lage und Länge des Schlüssels im Datensatz beschreibt, kann über diesen Satzschlüssel direkt (wahlfrei) auf jeden Satz der Datei zugegriffen werden. Zusätzlich zu den Möglichkeiten der sequenziellen Dateiorganisation gestattet dies, in einer indizierten Datei

  • Sätze wahlfrei zu erstellen

  • Sätze wahlfrei zu lesen und zu aktualisieren,

  • nachträglich Sätze einzufügen und

  • bereits vorhandene Datensätze logisch zu löschen.

Für die Bearbeitung indizierter Dateien verwenden COBOL-Programme die Zugriffsmethode ISAM des DVS (siehe Handbuch [4]). Sie gestattet es mehreren Anwendern, gleichzeitig eine Datei zu aktualisieren (siehe Abschnitt „Simultanverarbeitung von Dateien (SHARED-UPDATE)").

Indizierte Dateien können ausschließlich auf Plattenspeichern eingerichtet werden.

Dateistruktur

Eine ausführliche Beschreibung des Aufbaus einer ISAM-Datei findet sich in Handbuch [4]; die folgende Darstellung ist lediglich eine kurze Zusammenfassung der wichtigsten Tatsachen:

Eine ISAM-Datei besteht aus zwei Komponenten mit unterschiedlichen Funktionen,

  • den Indexblöcken und

  • den Datenblöcken

Falls private Datenträger verwendet werden, können Index- und Datenblöcke auf verschiedenen Datenträgern liegen.

  • Die Datenblöcke enthalten die Datensätze des Anwenders. Diese sind in aufsteigender Reihenfolge ihrer Schlüssel logisch miteinander verkettet; ihre physische Reihenfolge auf dem Datenträger ist beliebig.

    Datenblöcke können eine Länge von einem PAM-Block (2048 Byte) oder einem ganzzahligen Vielfachen davon (bis zu 16 PAM-Blöcken) haben.
  • Die Indexblöcke dienen dem Auffinden der Datensätze über die Satzschlüssel. Sie lassen sich verschiedenen Indexstufen zuordnen:

    Indexblöcke der niedrigsten Stufe enthalten Zeiger auf Datenblöcke, die Indexblöcke höherer Stufe Zeiger auf die Indexblöcke der nächstniedrigeren Stufe.

    Der Indexblock der höchsten Stufe wird immer in der Datei angelegt, auch wenn sie keine Datensätze enthält. Neben den Zeigern enthält er eine 36 Byte lange ISAM-Etikettinformation.

    Die Einträge in den Indexblöcken sind physisch stets in der Reihenfolge aufsteigender Satzschlüssel angeordnet; sie müssen daher reorganisiert werden, wenn in der darunterliegenden Stufe neue Index- bzw. Datenblöcke entstehen.

    Indexblöcke haben eine feste Länge von einem PAM-Block.

Blockteilung

Beim Erweitern einer ISAM-Datei wird jeder neue Datensatz in den Datenblock eingefügt, zu dem er auf Grund seines Satzschlüssels gehört.
Dabei kann es vorkommen, dass in diesem Block kein Platz zur Aufnahme eines weiteren Satzes zur Verfügung steht. In diesem Fall kommt es zu Blockteilung: Der alte Datenblock wird geteilt, die entstandenen Hälften werden in neue (leere) Blöcke übertragen. Der alte Datenblock bleibt der Datei zugeordnet und wird als freier Datenblock gekennzeichnet (siehe DVS-Benutzerhandbuch [4]).

Häufige Blockteilungen verlangsamen die Verarbeitung. Ihre Zahl kann aber vermindert werden, wenn bereits bei der Dateierstellung in den Datenblöcken Platz für künftige Erweiterungen reserviert wird: Bei der Zuweisung der Ausgabedatei kann man durch die Angabe des Operanden PADDING-FACTOR im ADD-FILE-LINK-Kommando erreichen, dass der darin vereinbarte Prozentsatz eines Datenblockes beim Laden der Datei für spätere Erweiterung freibleibt.

Beispiel 9-10

PADDING-FACTOR-Operand bei der Zuweisung einer ISAM-Datei

Beim Neuerstellen der Datei ISAM.AUSGABE steht nur etwa jeder vierte Datensatz zur Verfügung. 75% eines jeden Datenblockes sollen daher für künftige Erweiterungen reserviert werden. Dies wird über das folgende ADD-FILE-LINK-Kommando vereinbart:

/ADD-FILE-LINK AUSDAT,ISAM.AUSGABE,ACCESS-METHOD=ISAM,PADDING-FACTOR=75