i file

Materie:Appunti
Categoria:Informatica

Voto:

2.5 (2)
Download:145
Data:10.03.2006
Numero di pagine:5
Formato di file:.doc (Microsoft Word)
Download   Anteprima
file_4.zip (Dimensione: 6.02 Kb)
trucheck.it_i-file.doc     28.5 Kb
readme.txt     59 Bytes


Testo

Informatica « I file »

Introduzione
L’argomento trattato è inerente alla conservazione e al reperimento delle informazioni sulle memorie di massa. Per poter gestire grandi volumi di dati è necessario che siano memorizzati secondo una logica ben precisa in modo che in seguito la ricerca e la consultazione siano più rapide.
La conservazione di queste informazioni avviene attraverso l’uso di archivi memorizzati sulla memoria di massa mediante sequenze di byte.
Archivio di dati (File) - Definizione -
Un file è definito come un’insieme di record memorizzati su supporto di memoria permanente. Per record si intende un insieme di informazioni (attributi) riguardanti un dato oggetto. Le informazioni componenti il record sono dette campi del record. Il campo del record può a sua volta essere suddiviso in sottocampi.
Chiave primaria
Uno o più campi di un record che identificano univocamente ciascun record. La chiave primaria deve rispettare il principio di univocità e di semplicità.
Operazioni sui file
Visto che il file è memorizzato in una memoria di massa (Memoria aggiunta all’elaboratore) è necessario, prima di effettuare delle operazioni spostare l’archivio dalla memoria di massa alla memoria centrale. Questa operazione è svolta dal sistema operativo (file system) che esegue le operazioni di trasporto verso la memoria centrale e viceversa. Queste funzioni vengono chiamate con i comandi READ e WRITE previsti in tutti i linguaggi di programmazione. L’operazione di read viene fatto un accesso alla M.M. e viene ricopiato un record dalla M.M. alla M.C. Attraverso l’operazione di write avviene il contrario il record presente nella M.C. viene copiato nella M.M.
Il record come l’abbiamo inteso finora è il record logico dove l’utente definisce la dimensione dei campi, la lunghezza in byte. Quello che viene in realtà trasferito dalla M.M. alla M.C. è il record fisico (o blocco)che viene trasferito dalla M.M. alla M.C. o viceversa con un’unica operazione di I/O. La dimensione del record fisico dipende dalla struttura hardware della macchina. Per fattore di blocco si intende il numero di record logici contenuti in un record fisico. I record si definiscono in:
• Sbloccati, se ogni record fisico contiene 1 solo record logico (fatt. blocco = 1);
• Bloccati, se ogni record fisico contiene più di un record logico(fatt. blocco>1);
• Multiblocco, se occorrono più record fisici per memorizzare 1 record logico (fattore di blocco < 1).
L’accesso alla memoria di massa ha tempi più lunghi rispetto al tempo di elaborazione della CPU o all’accesso alla M.C. quindi si cerca di limitare questo “gap” attraverso la creazione di record fisici di grandi dimensioni. Le operazioni di lettura e scrittura interessano il record fisico che è parcheggiato in un’area di M.C. (buffer), se il fattore di blocco è 3 vuol dire che 3 record logici sono copiati dalla M.M. nel buffer. L’operazione READ richiede di copiare dalla M.M. alla M.M. solo se il record in questione non è già presente nel buffer, altrimenti avverrà lo spostamento al buffer al l’area di lavoro assegnata al programma. L’istruzione di WRITE comporta il trasferimento dei dati dalla M.C. alla M.M. solo se il buffer è pieno.
Creazione. E’ la prima operazione da compiere cioè quella di riservare dello spazio sulla M.M. dove è possibile contenere i dati interessati. Alla creazione del file sarà necessario definire alcune caratteristiche come il tracciato record, la modalità d’accesso ecc.
Consultazione. L’operazione di consultazione riguarda il reperimento dei dati contenuti nel file.
Modifica. Si tratta di modificare il valore di uno o più campi dello stesso record o di record diversi nello stesso file.
Cancellazione. Vi sono due tipi di cancellazione: quella logica e quella fisica. Nella logica il record verrà marcato e non sarà più preso in considerazione anche se è ancora fisicamente esistente e occupa spazio. In quella fisica si cancella fisicamente e quindi si libera spazio.
Ordinamento. E’ un’operazione lunga e laboriosa utilizzata per trovare i dati in un ordine prefissato dall’utente, che viene svolta attraverso la riscrittura su un altro file (File di appoggio). Tale operazione è nota con il nome inglese di “sort”.
Fusione. La fusione avviene tra due differenti file ordinati sul campo chiave i cui record vengono copiati in maniera ordinata sul file risultante. Tale operazione viene indicata con il termine inglese “merge”.
Dichiarazione di un File. Un file deve essere collegato al programma o ai programmi che lo usano, vari programmi provvederanno poi alle operazioni da compiere su di esso.
Perché sono importanti i file? I file sono importanti poiché le altre strutture di dati (matrice, tabella, array) una volta terminata l’esecuzione del programma perdono le informazioni. Un altro vantaggio dei file è che non è necessario conoscerne a priori le dimensioni. Rispetto alla tabella ha un tempo d’accesso superiore poiché questa una volta eseguita è già nella M.C. mentre il file va caricato dalla M.M.
Metodi di organizzazione. Il metodo di organizzazione di un file stabilisce la logica e le modalità con cui le informazioni sono memorizzate sui supporti fisici.
Vi sono 4 metodi di organizzazione dei file:
• File sequenziali; • File a indici (Indici in cascata);
• File a indice; • File ad accesso calcolato (Hash).
File sequenziali. All’interno di un file sequenziale i dati sono disposti in sequenza cioè uno di seguito all’altro può essere ordinato (Campo chiave) o non ordinato. Per accedere ad un’informazione è necessario scorrere tutti i record che al precedono. Questa è l’unica organizzazione permessa sul nastro magnetico.
File a indice. Con questa organizzazione è permesso accedere direttamente a un record del file tramite il valore del campo chiave. Per realizzare tuttociò al file dei dati viene affiancato il file degli indici, in cui per ogni record del file dei dati vengono riportati la chiave e la posizione che tale record ricopre. In questo modo viene creata in M.C. la tabella degli indici che deve essere ordinata per chiave crescente, che sarà poi usata allo scopo di localizzare le informazioni da reperire e solo allora verrà caricato in M.C. ciò che desideriamo. Si parla di indice denso nel caso il numero di campi che compongono la tabella degli indici sia uguale al numero di record che compongono il file dei dati, nel caso in cui il numero di record presenti nella tabella degli indici sia minore si parla di indice sparso.
File a indici. Con questo tipo di organizzazione (dove è possibile sia l’accesso diretto che quello sequenziale) è possibile avere più indici ordinati su diversi campi di ricerca.
File ad accesso calcolato (File Hash). Un file si dice ad accesso calcolato quando è possibile accedere direttamente alle informazioni contenute nel recordattraverso la chiave (che deve essere numerica, se alfanumerica va trasformata). Una volta dato in input il valore numerico della chiave verrà trasformato in un altro valore numerico (attraverso la funzione di Hash). Vediamo alcuni tra i più diffusi algoritmi per la generazione di numeri casuali.
Quadratura. Si calcola il quadrato del numero fornito e prendendo come cifre pseudocasuali le cifre centrali del quadrato ottenuto, molto spesso si deve ricorrerte alla normalizzazione.
Divisione. Si prende come numero il resto della divisione tra il numero della chiave e il numero di record del file, in questo caso non è necessaria la normalizzazione poiché si ottiene un numero certamente inferiore al numero dei record.
Algoritmi di ricerca. Sequenziale, a blocchi e dicotomica.
Inserimento di elementi. Se il file non è ordinato non vi è alcun problema il record viene inserito in coda. Nel caso si voglia inserire un record in una struttura ordinata si possono usare le aree di overflow, sono degli spazi vuoti dove è possibile memorizzare i nuovi dati. L’ordinamento è tenuto dai puntatori che permettono il collegamento a catena tra gli elementi. In questo modo però occuperemo molta memoria poiché ogni record avrà bisogno del campo puntatore che indica l’elemento seguente. Un altro sistema è quello dello spazio libero distribuito che consiste nel lasciare delle zone vuote tra un blocco e l’atro pronte a “ospitare” i nuovi dati.

Esempio