Il Database
Formato dei files
Versione 11/02/2015
Formato dei files
Per formato file si intende la modalità di registrazione dell'informazione all'interno di un
file. Sono solitamente identificati mediante una sigla. Tra i formati più diffusi abbiamo:
JPEG, TIFF, HTML, GIF, DOCX, ODS, TXT, ACCDB, MDB, XLSX, XLS etc. In Windows
i formati sono associati all'estensione del nome del file (sequenza di caratteri che
appaiono dopo l'ultimo punto nel nome). Ad esempio il nome "Foto.jpg" indica che
l'immagine è stata archiviata utilizzando la codifica Jpeg.
Il formato predefinito utilizzato da un'applicazione nel salvataggio dei propri documenti
si dice formato nativo. E' evidente che ogni applicazione è in grado di leggere il proprio
formato nativo. Alcune applicazioni possono avere più formati nativi. Ad esempio Excel
2013 è in grado di aprire o registrare documenti sia in XLSX che XLS.
Il contenuto di un file risulta leggibile solo alle applicazioni che conoscono il formato
specifico utilizzato nel salvataggio. Pertanto se un file non è registrato in uno dei formati
nativi della nostra applicazione è necessario ricorrere ad opportune estensioni (filtri di
importazione) che consentano al nostro programma di interpretare correttamente il
formato utilizzato.
Quando un'applicazione apre un file salvato in un formato non nativo si parla di
importazione del file.
Formati dei files
Un formato si dice portabile se è leggibile da un ampio numero di programmi e sistemi
operativi. Ad esempio il GIF è un formato grafico portabile poiché quasi tutte le applicazioni che
hanno a che fare con le immagini (videoscrittura, browser, programmi di grafica etc.) riescono a
leggerlo.
I formati i cui dettagli implementativi (i.e. progettuali) sono disponibili liberamente sulla rete si
dicono aperti. Tale accessibilità favorisce la diffusione del formato per cui sempre più
applicazioni sono in grado di interpretarlo. In altre parole i formati aperti diventano solitamente
anche portabili.
Un formato le cui regole di salvataggio sono non note oppure mantenute segrete si dice
chiuso. Un formato che risulta protetto da brevetti o altri diritti viene detto formato proprietario.
Generalmente un formato file proprietario risulta leggibile solo alle applicazioni che lo utilizzano
come formato nativo oppure tramite particolari tools (generalmente sviluppati dalla stessa
software house che ha inventato quel formato) di importazione/esportazione.
I formati caratteristici di Internet, per garantire l'apertura verso tutti i sistemi, sono codificati
utilizzando formati estremamente portabili. L'uso di formati portabili impedisce che alcuni sistemi
possano restare esclusi.
Il formato più portabile in assoluto è il formato testo. Tutti i formati non testuali si dicono binari.
Formato Testo
I file di testo o Ascii sono sequenze di bit dove ogni byte viene interpretato come
carattere Ascii. I formati testuali hanno il vantaggio di essere estremamente portabili ovvero
leggibili da qualsiasi programma o sistema operativo. Non a caso i formati HTML, CSS, JS
sono registrati proprio utilizzando questa modalità.
Oltre ad Internet il formato testo è utilizzato come formato di interscambio di base dati tra
2 differenti sistemi. Ad esempio nel trasferimento dati da un archivio di partenza A ad un
altro di destinazione B.
File esportato
testuale
Partendo dal formato
nativo A, mediante un
modulo di
esportazione, viene
creato un file
portabile contenente i
dati da trasferire.
Modulo
Esportazione
Programma
DB A
Archivio
salvato nel
Formato A
Modulo
Importazione
Programma
DB B
Archivio
salvato nel
Formato B
Il modulo di
importazione legge i dati
esportati (registrati in un
formato portabile) e li
registra all'interno
dell'archivio nel formato
nativo B.
Formati di interscambio
I formati testuali utilizzati per trasferire i dati da un archivio ad un altro si dicono formati
di interscambio. Esistono diversi formati di interscambio classificati in 2 categorie
principali:
file delimitati (delimited)
file a larghezza fissa (fixed file format)
Nei files delimitati ogni record, registrato nel file, viene separato dal successivo
mediante un invio (codice ascii 13 + 10 = CrLf – carriage return line feed) mentre ogni
campo è separato da uno o più caratteri specifici detti "delimitatori". A seconda del
"delimitatore" utilizzato abbiamo diversi sottotipi tra cui spiccano per importanza e
diffusione il formato CSV e Tab-Text.
I file a larghezza fissa sono file testuali dove ogni record, registrato nel file, viene separato
con un invio (CrLf) mentre ad ogni campo viene assegnata una lunghezza in caratteri fissa.
La fine di ogni campo viene individuata tenendo conto del numero di caratteri che gli sono
stati assegnati.
Tab-text
E' il formato testuale di interscambio più utilizzato. Si tratta di un file delimitato dove il
carattere separatore è il tab (codifica ascii 9). Nell'esempio proposto la prima riga riporta
il nome dei campi. In questo caso si dice che il file contiene le intestazioni dei campi.
Codice Nominativo Classe
1 Nove Bianca VM
2 Rossini Gioacchino IIM
3 Neri Chiara VM
4 Bianchi Bruna IIIM
In molti database (intesi come programmi di gestione archivi) esiste addirittura un comando
specifico SQL che consente di esportare o importare direttamente in questo formato. Ad
esempio in mySql abbiamo le seguenti istruzioni:
Comando di importazione
Comando di esportazione
SELECT * INTO OUTFILE 'NomeFile.txt'
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
FROM NomeTabella;
LOAD DATA INFILE 'NomeFile.txt'
INTO TABLE NomeTabella
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
CSV
CSV è un altro formato testuale di interscambio molto diffuso di tipo delimited dove il
carattere di separazione è solitamente la virgola (oppure il punto e virgola). Nel file di
interscambio l'intestazione dei campi può essere omessa.
Codice,Nominativo,Classe,Eta
1,"Nove Bianca","VM",12
2,"Rossi Gioacchino","IIM",21
3,"Neri Chiara","VM",18
4,"Verdi Enrico","IIIM",19
Anche in questo caso, alcuni DB come mySQL, hanno un apposito comando SQL che
consente di esportare/importare dati in tale formato:
Comando di esportazione
Comando di importazione
SELECT * INTO OUTFILE 'nomefile.csv'
FIELDS TERMINATED BY ','
LOAD DATA INFILE 'NomeFile.csv'
OPTIONALLY ENCLOSED BY '"'
INTO TABLE NomeTabella
ESCAPED BY ‘\\’
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
OPTIONALLY ENCLOSED BY '"'
FROM NomeTabella
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
Larghezza Fissa
In questo formato ad ogni campo viene riservato un numero fisso di caratteri e questo
indipendentemente dal contenuto reale del campo. Pertanto quando i caratteri
assegnati sono terminati si passa al campo successivo ed eventualmente il contenuto di
quel campo viene troncato. Ogni record è separato dal successivo mediante un invio
(Crlf). Nel file di interscambio le intestazione dei campi solitamente vengono essere
omesse.
La descrizione che per ogni campo indica la posizione del carattere iniziale e di quello
finale è detta tracciato del file. La conoscenza del tracciato è indispensabile per
importare correttamente i dati.
Da A Campo
-----------------------01 03 Matricola
04 20 Nominativo
21 28 Data di Nascita
29 36 Reddito
Da A Campo
-----------------------37 38 Classe
39 40 Provincia
41 60 Indirizzo
61 62 CrLf
Formattati
Rappresenta una tipologia di formato di interscambio mista che possiede
sia le caratteristiche tipiche di un file a larghezza fissa che quelle di un file
delimitato. In un file formattato vengono utilizzati i trattini (-) e caratteri
barra verticale (|) per disporre i contenuti in una griglia. I record vengono
visualizzati come righe e i campi come colonne. Eventualmente i nomi dei
campi (intestazioni) vengono aggiunti sulla prima riga.
-------------------------------------------|
ID
|
Indizzo E-mail
|
-------------------------------------------|
1 | [email protected]
|
-------------------------------------------|
2 | [email protected]
|
-------------------------------------------|
3 | [email protected]
|
-------------------------------------------|
4 | [email protected]
|
-------------------------------------------|
5 | [email protected]
|
--------------------------------------------
Altri formati di interscambio
Alcuni formati binari di tipo proprietario risultano talmente diffusi che vengono
utilizzati come formati di interscambio per il trasferimento di dati da una fonte
dati ad un'altra. Tra questi segnaliamo:
file xls e xlsx (Excel)
file mdb e accdb (Access)
Un'altra modalità per accedere a fonti dati esterne è l'ODBC.
La amministrazione dell'ODBC è
accessibile nel pannello di controllo.
Altri formati di interscambio
L'ODBC è un'interfaccia standard mediante la quale è possibile accedere a DB
esterni. I programmi che lo utilizzano possono connettersi ai diversi tipi di database
utilizzando più o meno la stessa modalità di codifica (i.e. le stesse istruzioni).
Per poterlo utilizzare è necessario disporre dello specifico driver del DB a cui ci si
vuole connettere. ODBC permette ai programmi che lo utilizzano di inviare ai
database esterni stringhe SQL senza che sia necessario conoscere le istruzioni
native di quel DB o le sue API proprietarie.
Comandi nativi
DBMS A
DRIVER
ODBC
DBMS A
Programma DB X
Comandi
ODBC
Archivio salvato
nel Formato X
O
D
B
C
DRIVER
ODBC
DBMS B
Archivio
DBMS A
DBMS
ESTERNO A
DBMS
ESTERNO B
Comandi nativi
DBMS B
Archivio
DBMS B
Altri formati di interscambio
E' possibile collegare ad un file di Access anche dei file in formato nativo mdb o
accdb. Questa tecnica risulta utile in due situazioni, entrambe legate all'utilizzo di
Access come ambiente di sviluppo di applicazioni.
A) La prima riguarda la possibilità di poter aggiornare un programma (scritto in
Access) che risulta operativo ed in uso da parte degli utenti finali. La separazione
della parte applicativa da quella dati consente di apportare delle modifiche
funzionali (che solitamente richiedono un certo periodo!) lasciando agli utenti la
possibilità di continuare a popolare il db senza doversi fermare in attesa della
File Mdb/Accdb contenente
nuova versione.
solo l'applicazione
Gli utenti
continuano ad
alimentare il DB
utilizzando la
versione
dell'applicativo
correntemente
installata.
Programma MDB
(nuova versione)
Lo sviluppatore apporta delle modifiche al
programma (ad esempio per aggiungere
delle nuove funzionalità)
Programma MDB
(vecchia versione)
Dopo aver verificato la
correttezza della nuova versione
la sostituisce alla vecchia …
File Mdb/Accdb
contenente solo
i dati
... il contenuto della base dati
resta quello in uso (al massimo
subirà delle modifiche a livello di
struttura: nuovi campi o nuove
tabelle di supporto) per cui dopo
l'aggiornamento si continua a
lavorare su dati aggiornati
Altri formati di interscambio
B) La seconda casistica riguarda le applicazione in multi utenza. In questo caso è
necessario collegare un'unica base dati comune alle singole applicazioni
installate sulle postazioni client.
Programma MDB
Programma MDB
Programma MDB
RETE
File Mdb/Accdb
contenente solo
i dati
Ogni postazione, dotata della
componente applicativa
(implementata in un file Mdb/Accdb),
alimenta l'archivio comune sfruttando
la connessione di rete
Acquisizione dati nei DB
I dati contenuti in files esterni di interscambio possono essere acquisiti e
ricopiati all'interno di un file DB. In questo caso si parla di importazione.
In alternativa possiamo lasciare i dati all'esterno dell'archivio inserendo nel file
DB solo i riferimenti necessari alla loro localizzazione e alla loro lettura. In
questo caso si parla di collegamento ad una fonte dati esterna.
File di
interscambio
Programma DB
Modulo di
importazione
Modulo di
collegamento
Programma DB
Dopo l'importazione
il file esterno può
essere eliminato.
File di
interscambio
Archivio salvato
nel Formato X
Archivio salvato
nel Formato X
Acquisizione dati nei DB
Analizziamo ora i vantaggi e gli svantaggi del collegamento.
1)
2)
3)
Il collegamento permette di aggiornare i
dati esterni semplicemente sostituendo il
file di interscambio. (v)
Poiché i dati sono all'esterno del file DB
non è possibile beneficiare dei vantaggi
offerti dagli indici. In altre parole la
consultazione (query) è più lenta. (s)
Quasi sempre non è possibile apportare
delle modifiche ai dati collegati. (s)
Modulo
collegamento
Programma DB
Vecchio File di
interscambio
Archivio salvato
nel Formato X
Nuovo File di
interscambio
Acquisizione dati nei DB
Analizziamo ora i vantaggi e gli svantaggi dell' importazione.
.
Nuovo File di
interscambio
1)
2)
3)
Se si vogliono aggiornare i dati
B
è necessario cancellare quelli
precedentemente acquisiti e
Modulo
ripetere l'operazione di
importazione
importazione. (s)
Programma DB
Poiché nell'importazione i dati
vengono scritti all'interno del
DB è possibile beneficiare dei
vantaggi offerti dagli indici.
Ricerche ed ordinamenti
risulteranno più veloci. (v)
Archivio salvato
nel Formato X
A
E' sempre possibile apportare
delle modifiche ai dati
Prima di importare il nuovo aggiornamento dei dati
importati. (v)
occorre eliminare quelli precedentemente acquisiti.