Dopo aver illustrato i problemi legati alle operazioni di accesso ai file di dati da parte di un applicazione, esaminando ciò che viene fatto a LIVELLO FISICO (link articolo) e mettendo in evidenza i vantaggi che si ottengono a LIVELLO LOGICO (link articolo), abbiamo esaminato i diversi tipi di operazioni che un’applicazione può eseguire su un file di archivio (link articolo) ed abbiamo sottolineato, cercando di cogliere questo concetto almeno intuitivamente, l’importanza dell’organizzazione dei dati per assicurare una efficacia ed efficiente gestione di queste operazioni (link articolo). In questo articolo proviamo a sfruttare questi concetti, per individuare alcune delle problematiche legate alla progettazione di un archivio e, quindi alla scelta della sua organizzazione.
Quando si progetta un archivio bisogna ragionare su quale può essere l’organizzazione migliore da dare ai dati che, non solo sia in grado di ottimizzare l’uso dello spazio del supporto di memorizzazione, ma che soprattutto permetta di assicurare delle buone prestazioni in termini di bassi tempi di risposta del sistema. Purtroppo non esiste un’organizzazione migliore in assoluto, in quanto la sua scelta è condizionata da molteplici fattori. Il primo da considerare riguarda la natura fisica della memoria di massa che dovrà ospitarlo. Con essa cambia il modo in cui i file sono rappresentati sul supporto fisico di memoria e, quindi, bisognerebbe prendere in considerazioni alcuni parametri caratteristici delle memorie di massa quali la capacità di memoria disponibile, l’access time e il transfer rate (gli ultimi due importanti per l’influenza che possono avere sulle prestazioni). Ma al di là di questi parametri, riguardo la scelta della memoria di massa sicuramente l’aspetto più importante da considerare è se essa, oltre all’accesso sequenziale ai file, mette o meno a disposizione l’accesso diretto. Per fortuna oggi, eccezion fatta per i nastri magnetici, che comunque vengono utilizzati solo in contesti particolari, come per esempio quello del backup dei dati, il resto delle memorie di massa e in particolar modo l’hard disk (sia magnetico, sia di tipo SSD) che rappresenta il caso più tipico di supporto utilizzato nell’ambito delle applicazioni gestionali, forniscono alle applicazione un accesso diretto ai file.
Detto questo, allora, tipicamente potremmo affermare che la scelta dell’organizzazione di un archivio viene influenza principalmente da fattori di altro tipo, tra i quali i più importanti sono:
- quali sono le operazioni previste e la loro frequenza, ossia se nell’uso tipico che se ne fa dell’archivio, per esempio, sono più frequenti operazioni di inserimento, cancellazione o aggiornamento di record o se sono più frequenti operazioni di consultazione (o interrogazione) dell’archivio;
- la modalità di elaborazione dei dati, perché se le operazioni sono eseguite in modalità interattiva (on-line) occorre garantire tempi di risposta il più possibile brevi; se le operazioni non sono interattive (off-line o batch) diventa accettabile anche un tempo di risposta più lungo;
- il fatto che possa essere o meno necessario rendere più facilmente accessibili (in tempi brevi) sottoinsiemi di record, creando per esempio opportune chiavi secondarie (link articolo).
Si noti come fra tutti i fattori che influenzano la scelta dell’organizzazione di un archivio che sono stati citati, esiste un denominatore comune, ossia l’esigenza di garantire dei tempi di risposta che siano il più possibile brevi nell’eseguire le operazioni più frequenti. Una delle operazioni più frequenti compiuta su un archivio, sicuramente è quella di ricerca di un record. Questa operazione, infatti, viene eseguita non solo in fase di interrogazione dell’archivio, ma viene coinvolta anche con le altre operazioni quali la modifica, la cancellazione, l’ordinamento e, se l’archivio è ordinato, anche l’inserimento. Rendere efficiente l’operazione di ricerca, quindi, assicura di avere degli effetti positivi anche sulle prestazioni delle altre operazioni. Per questo motivo nell’esaminare i diversi tipi di organizzazione degli archivi converrà concentrarsi su questo aspetto, ossia quello delle prestazioni dell’operazione di ricerca di un record dell’archivio.