COBOL - Organizzazione dei file
L'organizzazione dei file indica come sono organizzati i record in un file. Esistono diversi tipi di organizzazioni per i file in modo da aumentare la loro efficienza di accesso ai record. Di seguito sono riportati i tipi di schemi di organizzazione dei file:
- Organizzazione file sequenziale
- Organizzazione di file sequenziali indicizzati
- Organizzazione relativa dei file
Le sintassi in questo modulo, menzionate insieme ai rispettivi termini, si riferiscono solo al loro utilizzo nel programma. I programmi completi che utilizzano queste sintassi saranno discussi nel capitolo "Verbi per la gestione dei file".
Organizzazione dei file sequenziali
Un file sequenziale è costituito da record archiviati e a cui si accede in ordine sequenziale. Di seguito sono riportati gli attributi chiave dell'organizzazione sequenziale dei file:
I record possono essere letti in ordine sequenziale. Per leggere il 10 ° record, è necessario leggere tutti i 9 record precedenti.
I record vengono scritti in ordine sequenziale. Non è possibile inserire un nuovo record in mezzo. Alla fine del file viene sempre inserito un nuovo record.
Dopo aver inserito un record in un file sequenziale, non è possibile eliminare, accorciare o allungare un record.
L'ordine dei record, una volta inseriti, non può mai essere modificato.
È possibile l'aggiornamento del record. Un record può essere sovrascritto, se la nuova lunghezza del record è uguale a quella del vecchio record.
I file di output sequenziali sono una buona opzione per la stampa.
Sintassi
Di seguito è riportata la sintassi dell'organizzazione dei file sequenziali:
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name-jcl
ORGANIZATION IS SEQUENTIAL
Organizzazione dei file sequenziali indicizzati
Un file sequenziale indicizzato è costituito da record a cui è possibile accedere in sequenza. È possibile anche l'accesso diretto. Consiste di due parti:
Data File contiene record in uno schema sequenziale.
Index File contiene la chiave primaria e il suo indirizzo nel file di dati.
Di seguito sono riportati gli attributi chiave dell'organizzazione sequenziale dei file:
I record possono essere letti in ordine sequenziale proprio come nell'organizzazione di file sequenziali.
È possibile accedere ai record in modo casuale se la chiave primaria è nota. Il file di indice viene utilizzato per ottenere l'indirizzo di un record, quindi il record viene recuperato dal file di dati.
L'indice ordinato viene mantenuto in questo file system che collega il valore della chiave alla posizione del record nel file.
È inoltre possibile creare un indice alternativo per recuperare i record.
Sintassi
Di seguito è riportata la sintassi dell'organizzazione di file sequenziali indicizzati:
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name-jcl
ORGANIZATION IS INDEXED
RECORD KEY IS primary-key
ALTERNATE RECORD KEY IS rec-key
Organizzazione relativa dei file
Un file relativo è costituito da record ordinati dal loro relative address. Di seguito sono riportati gli attributi chiave della relativa organizzazione dei file:
I record possono essere letti in ordine sequenziale proprio come nell'organizzazione di file sequenziali e indicizzati.
È possibile accedere ai record utilizzando la relativa chiave. La chiave relativa rappresenta la posizione del record rispetto all'indirizzo di inizio del file.
I record possono essere inseriti utilizzando la relativa chiave. L'indirizzo relativo viene calcolato utilizzando la chiave relativa.
Il file relativo fornisce l'accesso più veloce ai record.
Il principale svantaggio di questo file system è che se mancano alcuni record intermedi, occuperanno anche spazio.
Sintassi
Di seguito è riportata la sintassi della relativa organizzazione dei file:
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name-jcl
ORGANIZATION IS RELATIVE
RELATIVE KEY IS rec-key