Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

ISAM - Indexed Sequential Access Method

ISAM ist wie SAM eine satzorientierte Zugriffsmethode für Plattendateien. Im Unterschied zu SAM-Dateien lassen sich ISAM-Dateien jedoch nicht nur sequenziell verarbeiten: Gesteuert über einen Schlüsselbereich im Datensatz (ISAM-Schlüssel, Primärschlüssel) werden die Sätze einer ISAM-Datei in deren Datenblöcken abgelegt. Über Indexblöcke verwaltet das DVS diese Datenblöcke, sodass die einzelnen Datensätze direkt über ihre Schlüssel auffindbar sind.

Blockformate

Es gibt zwei Ausprägungen der Zugriffsmethode ISAM, mit denen Dateien unterschiedlicher Blockformate (siehe Abschnitt „Blockformate für Plattendateien") verarbeitet werden können:

  • NK-ISAM (Nonkey-ISAM) verarbeitet Dateien des Blockformats „DATA“: Solche Dateien enthalten keine gesonderten PAM-Schlüssel. Die DVS-Verwaltungsinformation wird innerhalb der PAM-Seite in einem Blockkontrollfeld hinterlegt.

  • K-ISAM (Key-ISAM) verarbeitet Dateien des Blockformates „PAMKEY“: Diese Dateien sind dadurch gekennzeichnet, dass für jede PAM-Seite DVS-Verwaltungsinformation in einem eigenen (außerhalb der Seite gelegenen) PAM-Schlüssel geführt wird.

Mit dem Operanden BLKCTRL in den Makros FILE und FCB bzw. mit dem Operanden BLOCK-CONTROL-INFO im Kommando ADD-FILE-LINK können Sie zwischen diesen beiden Verarbeitungsformen wählen:

  • BLKCTRL=DATA/DATA2K/DATA4K vereinbart NK-ISAM

  • BLKCTRL=PAMKEY vereinbart K-ISAM

Wenn Sie keine explite Angabe zu BLKCTRL machen, steuert der Systemparameter BLKCTRL allgemein, ob eine Datei auf K-Platten mit der Eigenschaft BLKCTRL=PAMKEY oder DATA/NO angelegt wird.
Speziell beim Anlegen von ISAM-Dateien steuert ab BS2000 OSD/BC V11.0 der Systemparameter ISBLKCTL, ob die Datei auf K-Platten als NK-ISAM-Datei angelegt wird.
Da K-ISAM in der Praxis mehr und mehr an Bedeutung verliert, ist c'NONKEY' die Voreinstellung von ISBLKCTL, d.h. standardmäßig wird eine ISAM-Datei auch auf K-Platten als NK-ISAM-Datei angelegt.

NK-ISAM bietet Ihnen alle Funktionen des K-ISAM mit weitgehend identischen Schnittstellen. Im Unterschied zu K-ISAM benutzt NK-ISAM für Schreib- und Lesezugriffe ISAM-Pools: Dies sind Bereiche im Arbeitsspeicher, in denen große Teile der zu verarbeitenden ISAM-Dateien resident gehalten werden. Durch Verringerung der Ein-/Ausgaberate können diese die Verarbeitung insbesondere bei nichtsequenziellen Zugriffen beschleunigen. (Weitere Informationen zu ISAM-Pools siehe unter „Übersicht über die wichtigsten Funktionen des NK-ISAM").

Bei NK-ISAM-Dateien ist es darüber hinaus möglich, in den Datensätzen neben dem ISAM-Schlüssel (Primärschlüssel) bis zu 30 weitere so genannte Sekundärschlüssel zu definieren, über die Sie – ebenso wie über den Primärschlüssel – bei der Verarbeitung Datensätze mit gewünschten Schlüsselwerten auffinden können. Durch diese Funktionserweiterung können ISAM-Dateien wesentlich flexibler als mit Primärschlüsseln allein verarbeitet werden.

Bei NK-ISAM-Dateien ist zwischen NK2-ISAM-Dateien und NK4-ISAM-Dateien zu unterscheiden (siehe Abschnitt „NK4-Format").

In diesem Kapitel wird die Zugriffsmethode ISAM beschrieben, d.h. die Funktionen, die von NK-ISAM und K-ISAM unterstützt werden. Auf Besonderheiten und Inkompatibilitäten wird an den entsprechenden Stellen verwiesen, im Abschnitt „Kompatibilität" sind sie noch einmal zusammengefasst.

Die folgenden Abschnitte bieten zunächst eine Kurzbeschreibung der Funktionen im NK-ISAM. Im Anschluss daran wird der Dateiaufbau von NK-ISAM- und K-ISAM-Dateien beschrieben, die Verarbeitung von NK-ISAM-Dateien in ISAM-Pools, ISAM-spezifische Verarbeitungseigenschaften, Shared-Update-Verarbeitung, OPEN-Modi und Programmierhinweise für ISAM-Verarbeitung. Weitere Abschnitte enthalten Hinweise für den Einsatz von NK-ISAM und für die Umstellung von K-ISAM nach NK-ISAM sowie Hinweise zum „Crash-Verhalten“ von ISAM-Dateien.

Übersicht über die wichtigsten Funktionen des NK-ISAM

ISAM-Pools

Die Ein-/Ausgaberate wird reduziert, wenn – bei nichtsequenzieller Verarbeitung – große Teile der Datei im virtuellen Speicher resident gehalten werden. ISAM-Pools enthalten neben den Daten- und Indexblöcken auch die notwendigen Verwaltungsinformationen.
Eine Kommando- und eine Makroschnittstelle erlauben es Ihnen, selbst Pools anzulegen und zu verwalten, wodurch Sie diese den Erfordernissen Ihrer Dateiverarbeitung optimal anpassen können. Wenn Sie von dieser Möglichkeit keinen Gebrauch machen, legt NK-ISAM benutzerspezifische Standardpools an, in denen es die zu verarbeitenden Dateien puffert.

Schlüsselkomprimierung

Die Länge der Indexeinträge wird durch die Speicherung komprimierter Schlüssel klein gehalten. Dadurch erhöht sich das Fassungsvermögen der Indexblöcke.

Sperren

Externe Sperren sind als Schlüsselsperren oder bei sequenzieller Verarbeitung als Bereichssperren realisiert.

Blockmerge

Für Datenblöcke wird eine Mindestfüllung von ca. 40 %, für Indexblöcke von ca. 45 % garantiert. Unterschreitet die Füllung eines Blocks diese Grenze, wird der Blockinhalt auf benachbarte Blöcke umverteilt oder mit dem Inhalt eines benachbarten Blocks zusammengefasst.

Sekundärschlüssel

Zusätzlich zum ISAM-Schlüssel (Primärschlüssel) können Sie in den Datensätzen bis zu 30 Sekundärschlüssel definieren. Ebenso wie über seinen Primärschlüssel kann ein Satz auch über einen Sekundärschlüssel gelesen werden. Über eine Kommando- und eine Makroschnittstelle können Sie Sekundärschlüssel vereinbaren, löschen und sich über sie informieren. Für den Zugriff auf Datensätze über Sekundärschlüssel stellt NK-ISAM Operanden in den Makros für Lese- und Zeigeroperationen zur Verfügung.