DBMS - Struttura dei file

I dati e le informazioni relativi vengono archiviati collettivamente in formati di file. Un file è una sequenza di record archiviati in formato binario. Un'unità disco è formattata in diversi blocchi che possono memorizzare record. I record di file vengono mappati su quei blocchi del disco.

Organizzazione dei file

L'organizzazione dei file definisce il modo in cui i record dei file vengono mappati sui blocchi del disco. Abbiamo quattro tipi di organizzazione dei file per organizzare i record dei file:

Organizzazione file heap

Quando un file viene creato utilizzando Heap File Organization, il sistema operativo alloca l'area di memoria a quel file senza ulteriori dettagli contabili. I record di file possono essere collocati ovunque in quell'area di memoria. È responsabilità del software gestire i record. Il file di heap non supporta da solo alcun ordinamento, sequenziamento o indicizzazione.

Organizzazione dei file sequenziali

Ogni record di file contiene un campo dati (attributo) per identificare in modo univoco quel record. Nell'organizzazione di file sequenziali, i record vengono inseriti nel file in un ordine sequenziale basato sul campo chiave univoco o sulla chiave di ricerca. In pratica, non è possibile memorizzare sequenzialmente tutti i record in forma fisica.

Organizzazione dei file hash

Hash File Organization utilizza il calcolo della funzione hash su alcuni campi dei record. L'output della funzione hash determina la posizione del blocco del disco in cui devono essere posizionati i record.

Organizzazione di file in cluster

L'organizzazione dei file in cluster non è considerata buona per i database di grandi dimensioni. In questo meccanismo, i record correlati da una o più relazioni vengono conservati nello stesso blocco del disco, ovvero l'ordine dei record non è basato sulla chiave primaria o sulla chiave di ricerca.

Operazioni sui file

Le operazioni sui file di database possono essere generalmente classificate in due categorie:

  • Update Operations

  • Retrieval Operations

Le operazioni di aggiornamento modificano i valori dei dati mediante inserimento, eliminazione o aggiornamento. Le operazioni di recupero, invece, non alterano i dati ma li recuperano dopo un filtraggio condizionale opzionale. In entrambi i tipi di operazioni, la selezione gioca un ruolo significativo. Oltre alla creazione e all'eliminazione di un file, potrebbero esserci diverse operazioni, che possono essere eseguite sui file.

  • Open - Un file può essere aperto in una delle due modalità, read mode o write mode. In modalità di lettura, il sistema operativo non consente a nessuno di alterare i dati. In altre parole, i dati sono di sola lettura. I file aperti in modalità di lettura possono essere condivisi tra più entità. La modalità di scrittura consente la modifica dei dati. I file aperti in modalità di scrittura possono essere letti ma non condivisi.

  • Locate- Ogni file ha un puntatore al file, che indica la posizione corrente in cui i dati devono essere letti o scritti. Questo puntatore può essere regolato di conseguenza. Usando l'operazione find (seek), può essere spostato in avanti o indietro.

  • Read- Per impostazione predefinita, quando i file vengono aperti in modalità di lettura, il puntatore del file punta all'inizio del file. Ci sono opzioni in cui l'utente può indicare al sistema operativo dove individuare il puntatore del file al momento dell'apertura di un file. Vengono letti i dati immediatamente successivi al puntatore del file.

  • Write- L'utente può scegliere di aprire un file in modalità di scrittura, che gli consente di modificarne il contenuto. Può essere cancellazione, inserimento o modifica. Il puntatore del file può essere posizionato al momento dell'apertura o può essere modificato dinamicamente se il sistema operativo lo consente.

  • Close- Questa è l'operazione più importante dal punto di vista del sistema operativo. Quando viene generata una richiesta di chiusura di un file, il sistema operativo

    • rimuove tutti i blocchi (se in modalità condivisa),
    • salva i dati (se modificati) sul supporto di memorizzazione secondario e
    • rilascia tutti i buffer e i gestori di file associati al file.

L'organizzazione dei dati all'interno di un file gioca un ruolo importante qui. Il processo per individuare il puntatore del file a un record desiderato all'interno di un file varia in base al fatto che i record siano disposti in sequenza o raggruppati.