Related


Introduzione

In questo tipo di file non c’è una vera e propria organizzazione dei record, i nuovi record vengono semplicemente inseriti come ultimo record del file.

Accesso ai File

L’accesso al file avviene attraverso una directory che contiene i puntatori ai blocchi, se le dimensioni lo consentono (se la directory entra in un unico blocco), tale directory può essere mantenuta in memoria principale durante l’utilizzo del file; altrimenti saranno necessari ulteriori accessi per portare in memoria principale i necessari blocchi della directory.

Pro / Contro

Il fatto di non adottare nessun particolare accorgimento nell’inserimento dei record che possa poi facilitare la ricerca:

  • ci fornisce le prestazioni peggiori in termini di numero di accessi in memoria richiesti dalle operazioni di ricerca
  • mentre l’inserimento è molto veloce se ammettiamo duplicati

Operazioni


Ricerca

Se vogliamo cercare un record specifico dobbiamo cercare in tutto il file, iniziando dal primo record fino ad incontrare quello desiderato, quindi il tempo di ricerca varia in base a dove si trova il record. Se il record che cerchiamo si trova nell’i-esimo blocco avremo i accessi in memoria e quindi ha senso valutare il costo medio di ricerca.

I valori che si conoscono sono:

Valori da calcolare:

Costo Medio

Per ottenere il costo medio occorre sommare i costi per accedere ai singoli record e dividere tale somma per il numero dei record. Per ognuno degli record nell’i-esimo blocco sono necessari iaccessi.

Formula

Dove: è il numero di blocchi

Dimostrazione

Siano:

  • numero di record
  • numero di record x blocco
  • numero bucket
  • numero di blocchi per bucket

Formule usate per le semplificazioni

Se invece vogliamo cercare tutti i record con una determinata chiave che, in questo caso, ammette duplicati allora dovremmo accedere a tutti gli blocchi dato che non possiamo sapere quando abbiamo trovato l’ultima occorrenza.


Inserimento

Per effettuare l’inserimento abbiamo bisogno di 1 accesso in lettura per portare l’ultimo blocco in memoria principale e un altro accesso in scrittura per riscriverlo in memoria secondaria dopo averlo modificato. Questo accade se ammettiamo duplicati.

Se non ammettiamo duplicati l’inserimento è preceduto da una ricerca e quindi dobbiamo aggiungere una media di ​ accessi per verificare che non esista già un record con quella chiave.


Modifica

Abbiamo come primo costo quello della ricerca, infatti dobbiamo trovare il record, poi dobbiamo aggiungere un accesso in scrittura per riscrivere il blocco in memoria una volta modificato, questo costo va ripetuto per ogni occorrenza della chiave, se ammettiamo duplicati.


Cancellazione

Dobbiamo pagare il costo della ricerca. Se vogliamo evitare “buchi” dobbiamo pagare anche un accesso in lettura in più per leggere l’ultimo blocco e infine 2 accessi in scrittura, uno per riscrivere il blocco modificato e uno per riscrivere l’ultimo blocco dal quale abbiamo spostato l’ultimo record.