Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoCalvina Pala Modificato 11 anni fa
1
Unit à D1 Archivi: i concetti fondamentali
2
Obiettivi Conoscere le diverse organizzazioni logiche degli archivi Conoscere le operazioni di base che si possono effettuare sugli archivi Sapere come progettare un archivio a seconda delle proprie esigenze Sapere quale tipo di archivio utilizzare a seconda delle proprie esigenze
3
Necessità di dati persistenti Nelle prime applicazioni informatiche non vi era nulla che dovesse essere registrato o mantenuto in memoria per una successiva elaborazione; il risultato era semplicemente acquisito da chi ne aveva necessità e lalgoritmo veniva conservato su un qualche supporto digitale solo se necessario. Oggi, soprattutto nei software gestionali, ma non solo, risulta necessario il mantenimento dellinformazione (bolle, fatture, appuntamenti, dati di magazzino).
4
Persistenza – archivi e file La persistenza dei dati è la proprietà che li rende durevoli nel tempo, consentendo a essi di essere riutilizzati. Un archivio è unentità allinterno della quale sono memorizzati dati, che garantisce la persistenza degli stessi. Il termine archivio in inglese può essere considerato equivalente a file, anche se in realtà un archivio è un elemento molto più complesso: può essere sia un file, sia un insieme di file.
5
I dati negli archivi: record In un archivio, i dati sono mantenuti mediante strutture predefinite, che consentono di connettere logicamente gruppi di dati tra loro attinenti. Un record è un insieme di informazioni attinenti a una stessa entità Un dato è una qualsiasi stringa, numero o altro tipo di valore, mantenuto in un archivio. Linformazione è un dato che, inserito in uno specifico contesto, acquisisce un preciso significato.
6
Un esempio di record Si immagini di voler memorizzare lanagrafica degli studenti di una scuola, e quindi di voler salvare per ogni studente le seguenti informazioni: –nome; –cognome; –classe; –ripetente. In questo caso, un record è una struttura che comprende tutte le informazioni attinenti a uno studente (nome, cognome, classe …)
7
Il concetto di chiave La chiave è un campo o insieme di campi che individua in modo univoco un singolo record. Nellesempio si potrebbe scegliere come chiave linsieme dei campi: nome + cognome + classe.
8
Chiavi artificiali In alternativa, si potrebbe semplicemente aggiungere un codice identificatore, in genere abbreviato con la sigla id, che identifichi univocamente ogni studente della scuola.
9
Organizzazioni logiche degli archivi File di testo File CSV File XML Archivi binari
10
File di testo Un archivio organizzato come file di testo contiene un insieme di i caratteri e può essere scritto mediante qualsiasi editor di testo. È di un tipo di archivio molto semplice, è ancora oggi estesamente utilizzato. Può essere utilizzato per esempio come file di configurazione per unapplicazione.
11
I caratteri:ASCII - UNICODE Il codice ASCII è il più diffuso e utilizza 8 bit per rappresentare un carattere Java utilizza il codice UNICODE in cui i caratteri vengono rappresentati con 16 bit.
12
Un esempio di file di testo Windows utilizza il file di testo per salvare alcuni dati di configurazione nel file win.ini: … [fonts] [extensions] [mci extensions] [files] [MCI Extensions.BAK] aif=MPEGVideo aifc=MPEGVideo aiff=MPEGVideo asf=MPEGVideo asx=MPEGVideo au=MPEGVideo...
13
File CSV Un file CSV (Comma Separeted Values), è un file di testo in cui ogni riga rappresenta un record, composta da campi divisi da un carattere separatore, solitamente una virgola. Ogni riga contenga un record, quindi ogni record è separato dalla sequenza di caratteri CR + LF (Carriage Return + Line Feed), rispettivamente per ritornare allinizio della riga e per aggiungere una riga al file. Ogni riga contiene i campi da memorizzare separati tra loro da una virgola. Nel caso in cui la virgola sia un carattere utilizzato nei campi, si può sostituire il carattere separatore utilizzando, per esempio, il punto e virgola.
14
Un esempio di file CSV Andrea,Rossi,4B,No Gianluca,Verdi,3B,Si Andrea,Rossi,5A,No Sonia,Rossi,4C,No Romina,Verdi,4B,No I file di tipo CSV sono attualmente utilizzati per lo scambio di dati tra sistemi differenti, come per esempio vecchie applicazioni DOS e moderne applicazioni con interfacce grafiche, che operano su piattaforme completamente incompatibili.
15
File XML Un file XML (eXtensible Markup Language) è un file di testo composto da tag e con una struttura ad albero con un solo nodo radice. I tag servono per esplicitare il significato del contenuto, e che sono precedute dal simbolo di minore ( ). Per esempio, è un tag. Per ogni tag di apertura ne esiste uno di chiusura, formalizzato nel modo seguente:. I file XML sono utilizzati per memorizzare dati, per scambiare dati e messaggi tra applicazioni, o come file di configurazione.
16
Un esempio di file XML Andrea Rossi 4B No Gianluca Verdi 3B Si … Romina Verdi 4B No
17
Archivi binari Un archivio binario è composto da una sequenza di byte continua Per identificare i record, è necessario sapere a priori la loro esatta posizione. Se i record sono di lunghezza fissa, per saltare al record N, con N >= 0, è sufficiente applicare la formula seguente: posizioneRecordN = N * (lunghezzaRecordInbyte)
18
Tipi di accesso ai dati Archivi ad accesso sequenziale Archivi ad accesso diretto Archivi indicizzati
19
Archivi ad accesso sequenziale Gli archivi ad accesso sequenziale consentono di accedere a un record solo partendo dallinizio e scorrendo tutti quelli che lo precedono. E opportuno solo per archivi di piccole dimensioni, o per archivi utilizzati da applicazioni particolari che hanno bisogno di leggere i dati solo in modo sequenziale. Nel caso in cui la lunghezza dei record sia fissa, scorrere larchivio risulta abbastanza semplice utilizzando la formula vista in precedenza. Nel caso di record a dimensione variabile è necessario utilizzare vari accorgimenti, per esempio scrivere prima del record un numero che indica la quantità di byte occupati, in modo da sapere quanti se ne devono ancora leggere per caricare un record intero.
20
Archivi ad accesso diretto Un archivio ad accesso diretto consente di accedere direttamente a qualsiasi record senza dovere scorrere lintero file. Gli archivi ad accesso diretto (detto anche casuale o random) risolvono i problemi di utilizzo e di prestazioni degli archivi ad accesso sequenziale. Se i record dellarchivio sono a lunghezza fissa è possibile saltare direttamente al primo byte di un record posizioneRecordN = N * (lunghezzaRecordInbyte) Se i record sono a lunghezza variabile è necessaria lindicizzazione
21
Archivi indicizzati Un file indice di un archivio memorizza in modo ordinato rispetto alle chiavi, la chiave stessa del record e la posizione di questo nel file dei dati. Se la dimensione dei record è fissa, il file indice potrà contenere solo il numero del record nel file di dati; se invece la dimensione è variabile, è necessario indicare la posizione espressa in byte. Un archivio indicizzato consente di ordinare i record rispetto a una chiave. Questa soluzione rende necessaria solo la modifica del file indice ogniqualvolta si effettua un inserimento di un nuovo record, una cancellazione o un riordinamento dei dati.
22
Approfondimento: XML Il formato XML ha avuto nel corso degli ultimi anni un grande impulso, dovuto alla necessità sempre più diffusa di trovare uno standard utilizzabile su piattaforme e sistemi operativi differenti. Questo formato, infatti, può essere letto e compreso dalluomo ma è anche facilmente interpretabile mediante i parser, ovvero componenti specifici già presenti nella maggior parte dei linguaggi di programmazione, che consentono di leggere e aggiornare direttamente i nodi di un file XML. Il.NET Framework mette a disposizione delle librerie dedicate alla gestione dei contenuti XML Anche in Java esistono diversi package che consentono di gestire file XML, (es. javax.xml della Sun e Xerces di Apache Group)
23
Esempio di file indicizzato Il primo campo del file indice rappresenta la chiave numerica adottata e corrisponde al primo campo del file di dati; il secondo campo del file indice indica invece la posizione del record (partendo da 0) allinterno del file di dati.
24
Più indici È possibile creare più di un file indice per ogni file di dati, ciascuno di questi ordina i record in base a chiavi diverse In questo modo, si potrà utilizzare lindice più opportuno a seconda dellordinamento desiderato.
25
Operazioni sugli archivi Il modo in cui si effettuano le operazioni sugli archivi può variare in base al linguaggio di programmazione utilizzato, ma prevede sempre le seguenti operazioni fondamentali: –apertura dellarchivio; –lettura di un record; –scrittura di un record; –modifica di un record; –cancellazione di un record; –chiusura dellarchivio.
26
Apertura di un archivio Lapertura di un archivio è unoperazione che deve essere necessariamente effettuata prima di poter eseguire qualsiasi tipo di operazione su di esso. Un archivio non è necessariamente composto da un singolo file, ma può essere costituito da un insieme di questi. Qualsiasi operazione si esegua, deve essere sempre compresa tra una di apertura e una di chiusura dellarchivio.
27
Chiusura di un archivio La chiusura in alcuni casi è fondamentale per confermare le modifiche effettuate; senza di essa larchivio rimarrebbe immutato rispetto al suo stato precedente lapertura. Talvolta però i sistemi che eseguono i programmi agevolano il programmatore chiudendo larchivio nel caso in cui termini il programma, senza che sia stata effettuata una chiusura esplicita.
28
Lettura, scrittura e modifica La lettura di un record è unoperazione che si può definire invariante, in quanto non modifica lo stato dellarchivio, ma si limita a leggere dati contenuti al suo interno. Al contrario, le operazioni di scrittura, modifica e cancellazione alterano lo stato dellarchivio modificando i dati in esso contenuti.
29
Cancellazione Cancellazione fisica –Il record cancellato viene definitivamente eliminato dallarchivio. –Può comportare la riorganizzazione di tutto larchivio, a seconda del tipo di organizzazione logica implementata ed eventuali indicizzazioni presenti. –Nel caso di archivi di notevoli dimensioni risulta onerosa in termini di tempo di CPU. Cancellazione logica –Il record viene marcato logicamente ma non eliminato dallarchivio. –In un secondo momento, quando vi è un carico limitato di lavoro (spesso di notte), o su indicazione esplicita di un addetto alla base di dati, questi record sono cancellati fisicamente e larchivio viene riorganizzato, per esempio compattando le parti vuote lasciate dalle cancellazioni.
30
Fattori che influenzano la scelta di organizzazione di un archivio I fattori da tenere in considerazione per la scelta della tipologia di organizzazione di un archivio sono i seguenti: –quantità di dati; –tipi di dato; –relazioni tra i dati.
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.