EXCEL/OPEN CALC E I DATABASE

INTRODUZIONE

Un archivio rappresenta il contenitore dove inseriamo tutte le informazioni che descrivono il fenomeno che intendiamo analizzare. Un archivio è solitamente composto da dati non omogenei (ad esempio Alunni, Professori, Voti, Assenze, ...). Ogni gruppo di dati omogenei viene registrato all'interno di uno stesso contenitore detto tabella. Le proprietà che caratterizzano ogni singolo elemento (record) della stessa tabella vengono definite campi. In una rappresentazione tabellare le righe rappresentano i record mentre le colonne i campi. L'insieme delle descrizione dei campi (nome, dimensione, tipo ...) prende il nome di struttura della tabella.

 

Un db composto da una sola tabella si dice monolitico. Per gestire un db monolitico possiamo utilizzare anche un foglio elettronico:

Un DB composto da diverse tabelle in relazione tra loro si dice Relazionale. Le relazioni tra le tabelle, permettono di manipolare i dati più facilmente e soprattutto evitano la ridondanza dei dati, ovvero la duplicazione delle informazioni che è inevitabile quando si opera con singole tabelle indipendenti. Un Diagramma Entità-Relazioni (ERD o Entity-Relationship Diagram) come quello sottostante evidenzia i collegamenti logici tra le tabelle del database.

L’indicizzazione è una delle funzionalità più importanti nei programmi che gestiscono archivi (database). Tale funzionalità non è presente in programmi come EXCEL che vengono usati erroneamente per gestire archivi. Un indice è una struttura dati che che permette di velocizzare le ricerche e gli ordinamenti.

L'indice viene associato ai campi soggetti a ricerche

Se leggo l'archivio DATI seguendo le posizioni indicate dall'indice relativo all' "Età" ottengo un elenco ordinato rispetto a quel campo:

Se invece leggo l'archivio DATI seguendo le posizioni indicate dall'indice relativo al "Nome" ottengo un elenco ordinato alfabeticamente:

Il prezzo dell'indicizzazione è rappresentato da una minor velocità nelle operazioni di aggiornamento dell'archivio (aggiunta/modifica) poiché, oltre alle modifiche sui dati, occorre aggiornare tutti gli indici associati. Nella successiva figura viene mostrato come l'aggiunta di un nuovo record (posto in fondo all'elenco dei dati) determini una serie di operazioni aggiuntive sull'indice (A, B, C, ... , M) che hanno lo scopo di mantenerlo aggiornato.

Negli elenchi ordinati è possibile applicare una serie di algoritmi che abbattono i tempi di risposta nelle ricerche. In un elenco non ordinato l'unica ricerca possibile è quella sequenziale o casuale.

Esempio pratico: Consideriamo un elenco telefonico. L'indice applicato è sul nominativo (se considero solo una singola località!) per cui la localizzazione di un numero di telefono in base al cognome risulta immediata. Immaginiamo ora di ricercare il nominativo della persona che risponde ad un determinato numero di telefono. In questo caso l'indice non ci supporta per cui siamo costretti a scorrere l'elenco, partendo dall'inizio, un numero dopo l'altro fino a che non si arriva a quello richiesto (ricerca sequenziale). I tempi di risposta in questo caso potrebbero essere anche molto lunghi.  

Vediamo in dettaglio i due principali metodi (algoritmi) di ricerca:

Ricerca Sequenziale: Vediamo come calcolare il numero medio di letture necessarie per trovare un nominativo, utilizzando una ricerca sequenziale, in un elenco non ordinato di N schede (record).

Risposta: quando consulto un archivio quello che maggiormente influisce sulla velocità di ricerca è il numero di letture (confronti). Il numero medio di letture quindi è un valido parametro per misurare la bontà del metodo utilizzato nella ricerca. La ricerca sequenziale consiste nello scorrere un archivio partendo dal primo record e procedendo in avanti, una scheda dopo l'altra. Con N schede la casistica delle letture necessarie per trovare un nominativo è: 

1 lettura (se lo trovo al primo colpo), 2 letture (se lo trovo al secondo colpo), ... ,N letture (se il nominativo cercato è in fondo all'archivio)

Tutte queste situazioni sono equiprobabili  e pertanto la loro media rappresenta la soluzione al nostro problema

 1+2+3+ .... N
 N

per induzione possiamo dimostrare che

1+2+3+...N=N*(N+1)/2

da cui segue che il numero medio di letture è (N+1)/2. La formula ottenuta evidenzia come la media dei confronti (letture) aumenti linearmente al crescere dell'archivio rendendo la ricerca sequenziale improponibile in archivi di medie dimensioni. Ad esempio in un archivio di un 1.000.000 di record sono necessari, in media, circa 500.000 confronti prima di estrarre il valore cercato.

Ricerca con indice: In un archivio indicizzato il numero massimo di letture scende a logm N. La base m del logaritmo dipende dall'algoritmo di ricerca utilizzato. Nel caso della ricerca dicotomica m vale 2. Con un 1.000.000 di record, nella ricerca dicotomica, il numero massimo di confronti diventa log2 (1.000.000)=ln(1.000.000)/ln(2)=19,93 confronti. Una cifra irrisoria rispetto ai 500.000 confronti medi della ricerca lineare o sequenziale!

L'algoritmo dicotomico è simile al metodo usato per trovare una parola in un dizionario. Sapendo che il vocabolario è ordinato alfabeticamente non inizio dal primo elemento ma da quello centrale, cioè a metà del dizionario. Si confronta questo elemento con quello cercato e ...
- se corrisponde, la ricerca termina indicando che l'elemento è stato trovato;
- se è inferiore, la tecnica di ricerca procede sugli elementi precedenti (ovvero sulla prima metà del dizionario), ignorando la seconda metà.
- se invece è superiore, la ricerca procede sugli elementi successivi (ovvero sulla seconda metà del dizionario), scartando la prima metà.
La ricerca continua partendo dal centro della metà presa in considerazione e si ripete il metodo finché non trovo l'elemento cercato oppure quando tutti gli elementi sono stati scartati. In questo caso la ricerca finisce indicando che il valore non è stato trovato.

Scarica il file di excel che contiene l'animazione della ricerca dicotomica

Excel è un programma nato per automatizzare i calcoli. Il suo aspetto tabellare ha fatto si che molti utenti vedessero in lui un valido strumento per trasporre digitalmente i propri elenchi contenti dati.

L'uso diffuso e sistematico di Excel come gestore di database (monotabellari!) ha portato la stessa Microsoft ad inserire (ormai da tantissimi anni) un menu ad hoc per la gestione dei dati tramite Excel.

Nelle vecchie versioni il menu prende il nome di dati.

Attivando la voce "Ordina ..." verrà mostrato un menu di questo tipo

Se invece seleziono il menu "Filtro ..." ottengo:

Nella versione 2007, 2010 e 2013 il menu dati si presenta con i seguenti ribbon:

 

IMPORTAZIONE DEI DATI

Le informazioni aziendali vengono alimentate e gestite mediante appositi programmi. Tali programmi  sono solitamente "specializzati" ovvero progettati per risolvere determinate problematiche. Pur contenendo utili informazioni adatte ad altri scopi non possono essere analizzate all'interno di tali applicativi proprio per l'alta specializzazione degli stessi. Vediamo questo esempio:

Un programma di contabilità si preoccupa di acquisire ed organizzare l'informazione seguendo le disposizioni fissate dalla vigente normativa in ambito fiscale. In questo modo è possibili compilare correttamente i bilanci e gli stati patrimoniali.

Un archivio rappresenta il contenitore dove inseriamo tutte le informazioni che descrivono il fenomeno che intendiamo analizzare.