Andrea Alberini Dispense su Access Verona 17/11/2010 Database Registrare dati per ottenerne rapidamente informazioni. Introduzione Con Database, o Base di dati, si intende una collezione di dati che descrivono un insieme di oggetti del mondo reale, considerati da un ben definito punto di vista. La descrizione degli oggetti, o elementi, di interesse avviene tramite la specificazione di alcune loro caratteristiche tipiche (dette anche proprietà o attributi). Ad esempio, nell’elenco del telefono possiamo individuare un database costituito da: - elementi: persone (abbonati a Telecom Italia) - caratteristiche: provincia, città, cognome, nome, indirizzo, numero di telefono. Ovviamente, i vari elementi del database saranno distinguibili per i diversi valori attribuiti ad una o più delle caratteristiche considerate. Definizione Si può quindi pensare ad un database come ad un elenco di dati omogenei, solitamente, ma non necessariamente, presentati in forma di tabella. Nel gergo informatico si utilizzano dei termini diversi da quelli utilizzati sopra. Di seguito due gruppi di sinonimi. Record Riga della tabella elemento Campo Colonna della tabella caratteristica RECORD CAMPO Scopo Pag. 1 Andrea Alberini Dispense su Access Verona 17/11/2010 Un database viene utilizzato per raccogliere dati di interesse e per poter reperire informazioni, da essi derivanti, su richiesta: - informazioni elementari: singoli dati (ad es. il numero di telefono o l’indirizzo di un certo cliente). Utili per l’esecuzione di azioni semplici (ad es. contattare, spedire, ecc.) - informazioni d’insieme: statistiche, cioè risultati di calcoli effettuati su un sottoinsieme dei record (ad es. il fatturato complessivo generato da un certo cliente in un trimestre). Sono molto importanti come supporto alle decisioni (ad es. come organizzare e programmare le attività secondo l’andamento dell’azienda) Strumenti Per semplici realtà di interesse è sufficiente utilizzare una singola tabella. In questi casi un programma per la gestione di fogli elettronici (come “Excel”) fornisce tutte le funzionalità necessarie. Normalmente, però, le realtà di interesse sono complesse, cioè coinvolgono più oggetti o informazioni di tipo diverso (ordini, prodotti, clienti, spedizioni, ecc.). In questi casi utilizzando una sola tabella nascono situazioni indesiderate: Ridondanze (ripetizione di dati e quindi spreco di tempo e spazio) Anomalie di aggiornamento (aggiornare tutte le informazioni ripetute, pena la perdita di consistenza/coerenza) Esempi dei Recapiti e delle Fatture. In questi casi si preferisce utilizzare dei programmi per la gestione dei database (come “Access” o “File Maker”) Con tali programmi rappresento la realtà di interesse tramite più tabelle strutturate secondo i seguenti criteri. - Per oggetti di tipo diverso, conviene rappresentare con tabelle separate ma collegate tra loro. - Ciascuna tabella contiene dati relativi ad una singola famiglia di oggetti omogenei (cioè caratterizzati dalle stesse proprietà/attributi) - Il collegamento tra record di tabelle diverse si basa su due campi, uno per tabella, contenenti valori comuni (tali campi fungono da raccordo tra i record associati). In generale tali programmi facilitano: - il progetto dello schema del database (la sua struttura in tabelle collegate) Pag. 2 Andrea Alberini Dispense su Access - l’inserimento dei dati - l’esecuzione di statistiche e il reperimento di informazioni - l’esecuzione di operazioni di automazione sui dati (estrazione informazioni, allarmi, aggiornamenti automatici) Verona 17/11/2010 Pag. 3 Andrea Alberini Dispense su Access Verona 17/11/2010 Tabelle I database sono generalmente costituiti da un insieme di tabelle tra loro collegate. Esempio di Anagrafica Clienti Creare un nuovo database contenente le due tabelle seguenti: ANAGRAFICA (IDAnagrafica, Nome, Indirizzo, CAP, Città, Prov, P. IVA, Cod. Fisc., Note); RECAPITI (IDRecapito, IDAnagrafica, Tipo, Recapito, Note) - Creazione Database vuoto. L’ambiente di Access. La finestra del Database. - Creazione delle tabelle in visualizzazione struttura. - Definire le chiavi primarie. Usare il tipo dati “Ricerca guidata” per le chiavi esterne. - Visualizzazioni “Struttura” e “Dati”. - Inserire alcuni dati di anagrafica e alcuni recapiti di esempio. - Utilizzare i fogli dati secondari nella tabella Anagrafica. Chiave primaria La univoca identificabilità di ciascun record è condizione necessaria per stabilire corrispondenze tra tabelle. I valori presenti all’interno di un campo definito come chiave primaria, devono essere sempre diversi l’uno dall’altro. Questo a garanzia della univoca identificabilità di ciascun record. Spesso, ma non necessariamente, come chiave primaria viene utilizzato un campo che viene generato automaticamente al momento della creazione di un nuovo record (campo di tipo contatore). Si tratta di una specie di codice identificativo generato automaticamente da Access. Il fatto di utilizzare come chiavi dei campi ausiliari (di solito numerici) conferisce flessibilità al database (se usassi il Nome al posto di IDAnagrafica, come chiave esterna, eventuali aggiornamenti al nome dovrebbero essere eseguiti su più record) Relazioni (associazioni, corrispondenze) I campi di raccordo tra due tabelle che devono essere associate, possono avere nomi diversi in ciascuna delle due tabelle, ma devono contenere dei valori comuni e dello stesso tipo (testo con testo, numeri con numeri, ecc.). La più utilizzata delle relazioni è quella detta UNO – MOLTI. Pag. 4 Andrea Alberini Dispense su Access Verona 17/11/2010 Il lato UNO è rappresentato dalla tabella principale e il suo campo coinvolto nella relazione deve essere la sua chiave primaria. Il lato MOLTI è rappresentato dalla tabella secondaria e il suo campo coinvolto nella relazione è detto chiave esterna (generalmente diverso dalla chiave primaria!) Nota Bene Per la definizione della associazione, o relazione, tra le tabelle, alla chiave esterna è stato assegnato il tipo “Ricerca guidata”. Un altro modo per definire l’associazione consiste nell’attribuire invece alla chiave esterna il tipo “Numerico – Intero lungo” e nel creare il collegamento tra le chiavi in modo visuale, trascinando tra di esse il puntatore del mouse, nella finestra “Strumenti – Relazioni” dopo avere specificato le tabelle interessate. Pag. 5 Andrea Alberini Dispense su Access Verona 17/11/2010 Maschere Le maschere, dette anche Form, consentono di inserire e visualizzare i dati delle tabelle in modo più agevole e sicuro. Creazione della maschera “Anagrafica” - Scegliere “Crea maschera tramite creazione guidata” e scegliere i dati caratteristici delle due tabelle, lasciando fuori i campi ausiliari (le chiavi). - Osservare come venga creata una sottomaschera in forma tabellare contenente i recapiti relativi al soggetto corrente di anagrafica. Quindi in una maschera è possibile visualizzare dati provenienti da più tabelle! Modifica della maschera - Visualizzazione “Struttura”, “Maschera” e “Foglio Dati”. - Vari tipi di controlli. Modifica delle etichette. Formattazione e spostamento dei controlli. - Controlli associati e non associati. Inserimento di un controllo non associato per la ricerca di un soggetto di anagrafica (casella combinata). Relazioni più complesse Cerchiamo di rappresentare nel database tutte le attività (ad esempio interventi) svolte dai dipendenti di un’azienda nei confronti dei suoi clienti. Per registrare l’attività dell’azienda e quindi poter effettuare delle verifiche periodiche sul suo andamento occorre rappresentare tramite tabelle i seguenti nuovi oggetti: DIPENDENTE (IDDipendente, Nome, Recapito, note) ATTIVITA’ (IDAttività, IDCliente, IDDipendente, Data, Causale, Durata, Note). - Aggiungere le nuove tabelle al database. - Inserire dati di prova. Pag. 6 Andrea Alberini Dispense su Access Verona 17/11/2010 Semplici estrazione di informazioni dal Database Tramite i comandi Ordina e Filtro informazioni elementari e statistiche riesco ad ottenere rapidamente Cerco di ottenere informazioni d’insieme (statistiche) dalla lista delle Attività. - Utilizzo i comandi di ordinamento e di filtro disponibili dal menù contestuale (clic destro) o dalle barre degli strumenti. E’ piuttosto facile individuare le attività svolte da un particolare dipendente o per un particolare cliente o in una determinata giornata. Manca però la possibilità di effettuare in automatico le statistiche, cioè di effettuare calcoli. Sarà possibile ciò all’interno di maschere. - Creare maschera su Attività - Modificare il tipo di maschera da Singola in Continua - Spostare e formattare i controlli in modo che siano adatti alla rappresentazione continua. Realizzo così una rappresentazione simile a quella del foglio dati ma con tutte le potenzialità delle maschere. - Aggiungere un controllo casella di testo Totale durata non associato in cui inserire la funzione =Somma(durata). - Eseguire diverse operazioni di filtro per ottenere i valori di durata relativi ad operatori e clienti. - Potenziare le possibilità di verifica statistica tramite l’utilizzo di alcune categorie ricorrenti di causali (studio, contabilità, uscite, consulenza telefonica, altro) da inserire in una tabella di supporto e da cui attingere per specificare la causale di ciascuna attività. Pag. 7 Andrea Alberini Dispense su Access Verona 17/11/2010 Query La potenzialità massima di estrazione di informazioni avviene tramite lo strumento “Query” Query di selezione Si tratta di uno strumento di Access che consente di definire delle interrogazioni verso tabelle. Una volta salvate, queste interrogazioni possono essere eseguite ogniqualvolta si desideri. L’esecuzione comporterà l’estrazione di record da una o più tabelle opzionalmente con la presenza di risultati di calcoli o statistiche. Visualizzazione Struttura per la definizione della Query. Scelta della tabella su cui effettuare l’interrogazione e scelta dei campi da visualizzare. Definizione di Ordinamenti e Condizioni di filtro, anche multipli. Visualizzazione Foglio Dati per l’esecuzione e la visualizzazione del risultato dell’interrogazione. Definizione di “Parametri” come valori da utilizzare nelle condizioni e da inserire al momento dell’esecuzione. Query tra più tabelle (“Join”). Permettono una “vista” personalizzata dei dati presenti anche in tabelle distinte, purché associate tra di esse. Campi calcolati: etichetta e formula separati da “:”. Le formule possono contenere anche funzioni predefinite, come quelle disponibili in Excel. Esecuzioni di statistiche, tramite il comando “Totali”: specifica dei campi su cui effettuare i raggruppamenti e delle funzioni statistiche da utilizzare nei campi rimanenti. Visualizzazione SQL: permette di verificare, o modificare, la scrittura della Query nel suo linguaggio effettivo. Viene generata automaticamente sulla base di quanto svolto in Visualizzazione Struttura. Query di comando Permettono di svolgere operazioni di modifica sui dati: Creazione tabella (select … into), Accodamento (insert), Aggiornamento (update), Eliminazione (delete). Utili per automatizzare modifiche su grandi quantità di dati, specie se frequenti. Una volta aperta la Visualizzazione struttura della Query, scegliere il tipo desiderato, tramite il menu “Query”. Per la sua esecuzione scegliere “Esegui” sempre dal menu “Query”. Pag. 8