Definition von Datenstrukturen

In Cobol ist es möglich, verschiedene Datenfelder zu Datengruppen, und diese wiederum zu Datensätzen zusammen zu fassen. Solche Datenstrukturen können dann beispielsweise ganz bequem mit der MOVE-Anweisung oder der MOVE CORR-Anweisung gefüllt werden.
Mit Hilfe der Stufennummer 66 und der RENAMES-Klausel können bereits definierte Datenfelder umgruppiert und neu benannt werden.
Weiterhin ist es möglich, solche Datenstrukturen mit Hilfe der REDEFINES-Klausel mehrfach zu definieren.
Außerdem können mit Hilfe der Stufennummer 88 Datenfeldern Bedingungsnamen zugeordnet werden.
Die Definition erfolgt durch Angabe der Stufennummer, gefolgt vom Datennamen des Satzes, der Gruppe oder des Elementes. Beim Datenelement folgt auf den Datennamen die PICTURE-Klausel. Der Datenname stellt dabei lediglich eine symbolische Adresse dar, die es überhaupt ermöglicht, auf die entsprechenden Datenfelder Bezug zu nehmen.

Datensatz:
Ein Datensatz bildet die höchste Organisationsstufe (... wie bei russischen Puppen: Der Datensatz ist die äußere Puppe). Er beginnt auf der Stufennummer 01 und ist normalerweise in Datengruppen und/oder Datenelemente aufgeteilt. (Beispiel s.u.)

Datengruppe:
Es können eine oder mehrere Datengruppen in einem Datensatz aufgeführt werden. Solch eine Gruppe kann wiederum eine oder mehrere Datengruppen sowie Datenelemente enthalten und wird durch ein Gruppenfeld, das keine PIC-Eintragung besitzt, eingeleitet. Ist die Datengruppe Bestandteil eines Datensatzes, so muß die Stufennummer auf der sie definiert ist, größer sein als die des Datensatzes. Da die einzelnen Elemente innerhalb der Gruppe durch die PICTURE-Klausel definiert sind, darf diese Klausel nicht bei der Definition der Gruppe angegeben werden. Der Cobol Compiler betrachtet eine Datengruppe grundsätzlich als alphanumerisches Datenfeld. (Beispiel s.u.)

Datenelement:
Das Datenelement bildet die kleinste Einheit in einer Datenstruktur (... die innerste, maßive russische Puppe) und ist somit nicht weiter unterteilbar. Es muß mit der PICTURE-Klausel beschrieben werden. Mit Hilfe dieser Klausel wird die Datenklasse des Datenelements bestimmt. Seine Definition hat auf den Stufennummern 02-49 zu erfolgen. (Beispiel s.u.)

FILLER:
Hier handelt es sich um ein Cobol-Wort welches anstelle des Datennamens angegeben werden kann. Mit Hilfe dieses Wortes kann eine übergreifende Datenstruktur schon entwickelt werden, wenn noch garnicht feststeht, wie die entsprechende Daten(unter)struktur genannt werden soll. Natürlich gilt dies nur für Datenstrukturen, die im Programm noch nicht angesprochen werden, da FILLER nicht angesprochen werden kann (FILLER identifiziert ja keine Datenstruktur wie ein konkreter Datenname). Später kann FILLER dann durch einen konkreten Datennamen ersetzt werden.

Datenstruktur Beispiel:
Im Folgenden wird ein Datensatz beschrieben, wie er so in einem Programm einer Autovermietung vorkommen könnte. Jeder Datenname kann natürlich während der Entwicklungsphase mit FILLER (s.o.) angegeben werden.

01 Fahrzeugsatz.
  05 Num PIC 9(6).
  05 Ident.
    10 KfzNr PIC X(30).
    10 Farbe PIC X(15).
    10 Art.
      15 Baujahr PIC 9(4).
      15 Typ PIC X(20).
  05 Ladung.
    10 Liter PIC 9(4).
    10 Kg PIC 9(4).
  05 StandortNr PIC 9(4)BX.
  05 FILLER PIC X(30).

FILLER ist für Informationen vorgesehen, die evtl. in der Zukunft noch benötigt werden.

Als schematische Datenstruktur sieht das dann folgendermaßen aus:

Fahrzeugsatz
Num
Ident Ladung
KfzNr Farbe
Art
Baujahr Typ
Liter Kg


Fahrzeugsatz bildet den Datensatz.
Ident, Art und Ladung stellen Datengruppen dar.
Bei Num, KfzNr, Farbe, Baujahr, Typ, Liter, Kg, StandortNr und FILLER handelt es sich um Datenelemente.


...