11 : Archivi e file Vers . 2.0 – Dicembre 2020
INSERIMENTO Occorre distinguere tra archivi non ordinati ed archivi ordinati .
Su un archivio non ordinato indipendentemente dal metodo di accesso l ’ inserimento non comporta problemi : il record viene aggiunto in coda oppure , se nell ’ archivio esistono posizioni libere , il record può essere inserito nella prima di esse .
Su un archivio ordinato indipendentemente dal metodo di accesso l ’ operazione crea qualche problema : occorre individuare l ’ esatta posizione in cui inserire il record ed una volta individuata , occorrerà traslare tutti i record successivi in modo da creare lo spazio necessario . Appare evidente che se nell ’ archivio esistono posizioni libere l ’ inserimento diverrebbe meno oneroso in quanto si potrebbe limitare la traslazione soltanto fino al primo spazio libero . Allora perché non creare questi spazi liberi appositamente in fase di progettazione dell ’ archivio ? Occorrerà quindi in base alla dimensione del problema ed alle risorse a disposizione distribuire un certo numero di aree libere lungo l ’ archivio . Queste certamente agevoleranno l ’ operazione di inserimento ostacolando però l ’ operazione di ricerca . Vi sono tuttavia alcune soluzioni efficienti che possono essere applicate solo su archivi ordinati .
1 ) Si possono registrare i nuovi record in un archivio temporaneo o differenziale e si procede poi ad una fusione periodica tra i due archivi ( principale e temporaneo ) per ricostruirne uno solo . Tale soluzione appare molto svantaggiosa quando si deve effettuare una ricerca perché i tempi di risposta diverrebbero la somma dei tempi di ricerca sui due archivi ( principale e temporaneo )
2 ) E ’ possibile predisporre nell ’ archivio delle aree libere dette aree di overflow ( o aree dei trabocchi ) gestite tramite liste concatenate destinate a raccogliere i nuovi record inseriti . Tali aree possono essere sistemate in più punti nell ’ archivio principale oppure in un altro archivio differenziale ( aree di overflow distribuito ) oppure essere allocate in un unico punto dell ’ archivio principale oppure di un altro archivio differenziale ( aree di overflow concentrato ). Questa è la soluzione ottimale .
MODIFICA ( O AGGIORNAMENTO O RISCRITTURA ) La fase di aggiornamento ossia l ’ operazione che consente di modificare i campi del record ( ad eccezione della chiave ) può essere svolta in due modi distinti che dipendono dal metodo di accesso .
Se l ’ accesso è sequenziale , l ’ aggiornamento di un record può essere svolto solo riscrivendo l ’ intero archivio . Le modifiche vengono raccolte in un altro archivio ( differenziale ) e successivamente si provvede ad aggiornare l ’ archivio principale .
Se l ’ accesso è diretto , l ’ aggiornamento di un record risulta essre una delle operazioni più semplici e si realizza in due fasi : a ) ricerca del record con chiave K da modificare b ) riscrittura del record modificato nella medesima posizione .
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 18