DATABASE: archivio di dati contenente informazioni. Il programma che gestisce l’archivio andrebbe correttamente definito DBMS (DataBase Management System) anche se si usa comunemente il termine database sia per l’archivio che per il programma. Con il termine database si identificano una serie di dati correlati ad un argomento, attraverso i quali poter reperire in modo rapido ed efficiente una qualsiasi informazione riguardante l’argomento in oggetto. Esempi molto semplici di database si possono avere facendo riferimento, ad esempio, alle schede personali degli impiegati di un’azienda le quali conterranno, per ogni impiegato, tutte le informazioni riguardanti la persona e il suo status di servizio. Oppure, scendendo più nel quotidiano, anche l’archivio delle videocassette di casa o una rubrica telefonica rappresentano, anche se in forme più semplici, dei database. Le informazioni che vengono memorizzate in un database prendono il nome di RECORD; ogni record non è composto però da una singola informazione: la sua struttura è più complessa perché all’interno di un record sono contenute tutte le informazioni riguardanti il tipo di dato che si è scelto di memorizzare in un database. Riprendendo l’esempio sulle schede degli impiegati di un’azienda, ogni scheda sarà rappresentata da un record che conterrà tutte le informazioni di ogni singolo impiegato: cognome, nome, indirizzo, data di nascita, matricola, anzianità di servizio, etc. Le singolo componenti del record sono identificate con il nome di CAMPO. Si può quindi dire che un DATABASE è formato da: RECORD i quali sono costituiti da CAMPI La figura seguente mostra un esempio di come potrebbe essere visualizzato un database: le colonne della Tabella rappresentano i campi, mentre le righe sono i record. Questa forma di rappresentazione viene detta a TABELLA (o TABELLARE). COGNOME Rossi Bianchi Verdi NOME Emilio Giulio Antonio MATRICOLA 523-45-234 523-58-674 524-44-197 ……. ……. ……. ……. Oltre che memorizzare delle informazioni, un database è anche in grado di memorizzare le eventuali relazioni che possono esistere tra i dati. Molto spesso infatti un database non è formato da una sola serie di informazioni, anzi è probabile che il complesso informativo che viene gestito sia composto da diversi tipi di informazione collegati tra loro. Esempio: pensiamo ad un’azienda che ha bisogno di rifornirsi di materiali di vario genere per il proprio lavoro. Potrebbe essere predisposto un elenco dei vari materiali necessari, all’interno del quale verranno riportate anche le informazioni relative al fornitore, ad esempio Nome e Telefono. E’ facile immaginare che se più prodotti vengono reperiti presso lo stesso fornitore, il Nome e Telefono di quest’ultimo compariranno molte volte con un evidente spreco di spazio… PRODOTTO Stampanti Mobili per ufficio Modem/Fax Computer Serramenti per ufficio NOME FORNITORE Rossi Hardware & C. Relax s.n.c. Rossi Hardware & C. Rossi Hardware & C. Relax s.n.c. TELEFONO 6734562 763986 6734562 6734562 763986 Per risolvere questo inconveniente, ci viene in aiuto la possibilità che hanno i programmi di gestione dei database, di organizzare il database su più tabelle mettendole in RELAZIONE (collegamento logico) tra di loro. Si potrebbero quindi suddividere le nostre informazioni in due tabelle: la prima riporterebbe i nomi dei prodotti e un codice che identifica il fornitore (anche se i codici sono ripetuti “sprechiamo” molto meno spazio di prima), mentre la seconda diventerebbe una sorta di anagrafica dei fornitori (con tutte le informazioni necessarie per ogni fornitore), ognuna con un proprio codice di identificazione. In questo modo i dati sui fornitori non sono più ripetuti e se dovesse essere necessario modificare qualche informazione su un fornitore basterà fare una modifica sola nella tabella dei fornitori e non per tutte le volte in cui compare la descrizione del fornitore nell’unica tabella originaria. PRODOTTO Stampanti Mobili per ufficio Modem/Fax Computer Serramenti per ufficio COD. FORNITORE 001 002 COD. FORNITORE 001 002 001 001 002 NOME FORNITORE Rossi Hardware & C. Relax s.n.c. TELEFONO 6734562 763986 Attraverso il COD. FORNITORE si crea quella che viene definita RELAZIONE e il database che permette di gestire relazioni tra i dati assume il nome di DATABASE RELAZIONALE. Il database relazionale fu ideato nel 1969 dal Dr. Edgar F. Codd. Oggi è senza dubbio diventato il modello più diffuso nella gestione dei database. Fin dal suo inizio, il Modello Relazionale è stato alla base di prodotti database conosciuti come Relational DataBase Management System (RDBMS) Oracle – DBx - Paradox - Access INTRODUZIONE AL DATA BASE ACCESS Il data base è un sistema di gestione di dati integrati, ricompilati e immagazzinati secondo precisi criteri, necessari all’attività che si deve svolgere. I programmi di gestione di data base realizzano una serie di operazioni che consentono l’accesso a dati immagazzinati in un p.c. e che ne permettono altresì una certa manipolazione. Tali operazioni consistono fondamentalmente in: immissione e cancellazione di dati, modifica di dati già introdotti, ricerca di dati attraverso criteri definiti dall’utente, ordinamento e classificazione dei dati singolarmente o secondo vari criteri. Access è un sistema di gestione di data base. Definizione di data base: raccolta di dati correlati ad un particolare argomento. Un data base può contenere questi tipi di oggetti: Tabelle: sono le strutture fondamentali in un data base di Access perché memorizzano i dati che si devono gestire. All’interno di una tabella i dati sono organizzati in campi (colonne) e record (righe). Query: è uno strumento che consente l’interrogazione dei dati contenuti nelle tabelle. Le query possono consentire di modificare, eliminare o aggiungere consistenti quantità di dati in un solo passo. Maschera: consente di visualizzare e immettere dati secondo un formato conveniente. Report: consentono di stampare o visualizzare dati secondo un formato specifico. Esempi di report includono etichette postali, elenchi, buste, lettere tipo e fatture. Macro: è un insieme di istruzioni che rende automatico un compito che si deve eseguire spesso. Modulo: come le macro, i moduli consentono di automatizzare e personalizzare Access. I moduli forniscono un controllo più preciso sulle azioni da eseguire ma richiedono un’esperienza di programmazione in Visual Basic. Gli oggetti che sono illustrati nella figura e che compongono un data base ci compaiono alla creazione del data base stesso. COME CREARE UN DATA BASE DI ACCESS In Access, con il termine data base, si indicano tutti i dati e gli oggetti utilizzati per la gestione dei dati. Con Access, tutte le tabelle e gli oggetti (maschere, report, query, moduli e macro) che costituiscono una singola applicazione vengono posti in un unico data base. In questo modo gli oggetti correlati vengono memorizzati nello stesso data base. Quindi, la prima operazione da eseguire è la creazione di un nuovo data base. Se ci si trova nella finestra di dialogo di avvio di Access: Selezionare Database vuoto e cliccare su OK Ci comparirà la finestra di dialogo Salva nuovo database: a questo punto salvo il data base attribuendogli un nome adeguato… Se non mi trovo nella finestra di avvio di Access userò il menù File/Nuovo database; nella finestra di dialogo che mi comparirà, scelgo, dalla scheda Generale, Database vuoto e clicco su OK. Mi comparirà la finestra di dialogo Salva nuovo database etc. etc. Per poter gestire i dati con Access bisogna memorizzarli in tabelle. Nel foglio Tabelle cliccando su Nuovo ci compariranno le seguenti opzioni: Visualizzazione foglio dati: cliccando su OK ci comparirà già una tabella con i nomi dei campi già assegnati: Campo1, Campo2, …, CampoN. Cliccando con il dato destro su Campo, posso rinominare la colonna. Visualizzazione struttura: attribuisco in base alle mie esigenze il Nome campo; definisco la Tipologia di dati e posso descrivere il contenuto dei campi. Autocomposizione tabella: mi fornisce una serie di database predefiniti. Io posso decidere quali campi utilizzare fra quelli proposti per creare la mia nuova tabella. Importazione tabella: questa funzione la utilizzo quando ho già un file di dati che possono essere in formato Access, testo, Excel, DB, etc. Collegamento tabella: consente l’accesso diretto ai dati di un altro database computerizzato. Una volta creata una tabella (che salverò con un nome appropriato), potrò modificare la sua struttura proprio cliccando sul tasto Struttura In molti casi Access può predisporre automaticamente di database di tipo aziendale e scolastico che l’Autocomposizione Database è in grado di creare: ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ ≈ Controllo inventario Donazioni Gestione contatti Gestione eventi Gestione manutenzione Gestione ordini Gestione patrimoniale Inventario Iscritti Libro mastro Ore di lavoro e fatturazione Pianificazione risorse Spese Studenti e lezioni Allenamenti Collezione libri Collezione musicale Collezione video Elenco vini Inventario domestico Raccolta immagini Ricette ≈ Rubrica Attenzione però perché questi data base non sono modificabili per adattarli meglio alle nostre esigenze. COME ORDINARE I DATI Una volta creata una tabella è possibile ordinare i dati in essa contenuti: Aprire la tabella Cliccare sul campo da ordinare (se l’ordinamento viene fatto su più campi, se adiacenti, cliccare sui campi tenendo premuto il tasto della maiuscola) Menù Record/Ordina (oppure cliccare sul pulsante di Ordinamento crescente o decrescente della barra degli strumenti) RICERCA DI SINGOLI RECORD Per trovare rapidamente un dato specifico: Aprire la tabella Se si desidera effettuare ricerche solo in un campo specifico, cliccare sul campo; altrimenti non selezionare niente Menù Modifica/Trova (oppure cliccare sul pulsante di ricerca) nella casella di testo Trova, immettere il testo da cercare I FILTRI Quando in una tabella voglio visualizzare i dati relativi ad un solo elemento, posso utilizzare il Filtro: Seleziono nella tabella l’elemento da estrapolare Clicco su Filtro in base a selezione ed otterrò la tabella che visualizza solo gli elementi voluti per rimuovere il filtro e riottenere la tabella generale di origine cliccare su Rimuovi filtro LE QUERY Le query consentono di “interrogare” tabelle, query per estrarre le informazioni specifiche richieste. Le query consentono di visualizzare i dati desiderati, nella sequenza desiderata. Query di creazione di tabelle: crea una nuova tabella con un sottoinsieme di record rispetto la principale. COME CREARE UNA QUERY Dal foglio delle Query cliccare su Nuovo; comparirà la seguente cartella Visualizzazione struttura: crea una nuova query senza usare un’autocomposizione Autocomposizione query semplice: crea una query di selezione sulla base dei campi selezionati relativamente a una o più tabelle Autocomposizione query a campi incrociati: crea una query a campi incrociati (relativamente a una singola tabella o query) per visualizzare dati in un formato compatto simile ad un foglio di calcolo Autocomposizione ricerca duplicati: trova i record duplicati di una singola tabella o query Autocomposizione ricerca campi non corrispondenti: trova i record di una tabella che non hanno record correlati in un’altra tabella Quando creiamo una nuova query dobbiamo determinare le interrogazioni da effettuare: Una volta definita la tabella e la query da interrogare possiamo definire per i campi: l’ordinamento: crescente o decrescente (basta cliccare sulla cella ed appare un menù a discesa) la cella in corrispondenza del mostra può essere selezionata (con un visto inserito cliccando con il mouse sulla ); in questo modo i valori del campo corrispondente saranno visualizzati all’apertura della query il criterio: posso inserire una espressione Quando digita si Viene visualizzato Reperisce record dove i Marconi “Marconi” >Marconi >”Marconi” 100 >15000 100 >15000 <=30/gen/90 <=#30/01/90# “New York” “New York” between 15/mar/91 and 30/mar/91 Pa?la between #15/mar/91# and #30/mar/91# “Pa?la” via*i “via*i” *imo “*imo” *on* “*on*” */*/91 “*/*/91” Is not null Is Not Null Germania or Canada “Germania” Or “Canada” il valore è Marconi tutti i nomi che in elenco alfabetico sono dopo Marconi il valore è 100 il valore è maggiore di 15000 la data è il 30/gen/90 o è antecedente il valore è New York le date vanno dal 15/mar/91 al 30/mar/91 incluso Paola, Paula, etc. viaggi, viadotti,viaggi per tutti, etc. ventesimo, trentunesimo, etc. condimenti, confezioni, etc. tutte le date del 1991 tutte le celle non vuote tutte le celle in cui sono presenti le nazioni Germania o Canada Una query strutturata in questo modo: fornirà il tutte le persone che sono nate dopo il 01/01/70 (a prescindere dal titolo di studio) e che sono laureate (a prescindere dalla data di nascita). COME CREARE I REPORT Per la maggior parte degli utenti, la stampa dei dati memorizzati in tabelle o delle informazioni ottenute con le query è parte essenziale dell’uso di un data base. L’Autocomposizione report di Access fornisce strumenti semplici e potenti per la creazione rapida di report in formati predefiniti. Essa è in grado di creare vari tipi di report che visualizzano campi di una o più tabelle e/o query. Visualizzazione struttura: crea un nuovo report senza usare un’autocomposizione Autocomposizione Report: crea automaticamente un report sulla base dei campi selezionati Report standard: a colonne: crea automaticamente un report a colonne contenente tutti i campi della tabella o query scelta Report standard: tabellare: crea automaticamente un report in formato tabella Autocomposizione Grafico: crea un report con un grafico Autocomposizione Etichetta: crea un report formattato per la stampa su etichette postali Naturalmente, prima di selezionare il report di interesse, devo Scegliere la tabella o query di origine dei dati dell’oggetto:, agendo sul menù a discesa TIPI DI RELAZIONI Se i record di una tabella possono essere associati con i record di un’altra tabella, si dice che tra le due tabella c’è una relationship Il modo in cui la relazione viene stabilita dipende dal tipo. Ci possono essere tre tipi di relazioni tra una coppia di tabelle: - Uno a Uno - Uno a Molti - Molti a Molti RELAZIONE UNO A UNO Una coppia di tabelle intrattengono una relazione Uno a Uno quando un unico record della prima tabella è legato ad un unico record della seconda tabella e un sono record della seconda tabella è legato ad un solo record della prima tabella. In questo tipo di relazione, una tabella viene detta tabella principale mentre l’altra viene detta tabella secondaria. La relazione avviene prendendo la Chiave principale della tabella principale ed inserendola nella seconda tabella dove diviene Foreign Key. Questo è un tipo particolare di relazione perché in molti casi la Foreign Key agisce come Chiave Principale della tabella secondaria. Tabella: Agenti IdAgente Nome Cognome Data di assunzione Telefono ….. 1001 Stella Bianchi 1994-07-11 2995764 ….. 1002 Stefano Rossi 1994-05-01 5155762 ….. 1003 Raul Verdi 1994-09-11 9983882 ….. Tabella: Compensi IdAgente Compenso orario Commissione ….. 1001 21,50 4,5% ….. 1002 25,75 3,0% ….. 1003 20,00 4,5% ….. La figura vista è il tipico esempio di relazione Uno a Uno. La relazione tra le due tabelle è tale che un singolo record della tabella Agenti può essere legata ad un unico record della tabella Compensi ed un unico record della tabella Compensi può essere legato ad un unico record della tabella Agenti. Il campo IdAgente rappresenta la Chiave Primaria in entrambe le tabelle, ma serve anche come Foreign Key nella seconda tabella. La scelta della tabella c sui spetterà il ruolo primario in questo tipo di relazione è puramente arbitraria. Le relazioni Uno a Uno non sono molto comuni e vengono di solito utilizzate nei casi in cui una tabella è stata divisa in due parti a scopo confidenziale. RELAZIONE UNO A MOLTI Quando una coppia di tabelle intrattiene una relazione Uno a Molti, un singolo record della prima tabella può essere legato a molti record della seconda tabella, ma un singolo record della seconda tabella può essere legato con un unico record della prima tabella. Tabella: Artisti IdArtista Nome Artista Cognome Artista Nome del Gruppo ….. 67001 Mike Hernandez The Mike Hernandez Trio ….. 67002 Zachary Ehrlich Jazz Times ….. 67003 Gerry Greer The Country Squires ….. Tabella: Ingaggi IdIngaggio IdArtista IdCliente Data di inizio Data di fine ….. 1001 67003 701 1998-09-10 1998-09-12 ….. 1002 67001 625 1998-09-11 1998-09-12 ….. 1003 67001 712 1998-09-15 1998-09-19 ….. La figura vista mostra una tipica relazione Uno a Molti. In questo esempio, un singolo record della tabella Artisti può essere legato a molti record della tabella Ingaggi, ma un singolo record della tabella Ingaggi può essere legato ad un unico record della tabella Artisti. In questo caso IdArtista è chiave primaria nella tabella Artisti e Foreign Key nella tabella Ingaggi. RELAZIONE MOLTI A MOLTI Una coppia di tabella intrattiene una relazione Molti a Molti quando un singolo record della prima tabella può legarsi a molti record della seconda tabella e un singolo record della seconda tabella può legarsi con molti record della prima tabella. Per stabilire questo tipo di relazione bisogna creare quella che viene definita una tabella di collegamento. Questa tabella fornisce un modo semplice di associazione dei record di una tabella con quelli di un’altra e aiuterà a non avere problemi nell’aggiungere, togliere o modificare i dati correlati. Una tabella di collegamento viene definita prendendo una copia delle Chiavi Primarie di ciascuna tabella della relazione ed utilizzandole per formare la struttura della nuova tabella. Questi campi rivestono due ruoli distinti: insieme formano la Chiave Primaria Composita della tabella di collegamento, mentre separatamente ognuna serve come Foreign Key. Tabella: Artisti IdArtista Nome Artista Cognome Artista Nome del Gruppo ….. 67001 Mike Hernandez The Mike Hernandez Trio ….. 67002 Zachary Ehrlich Jazz Times ….. 67003 Gerry Greer The Country Squires ….. Tabella: Artisti_Incisioni (tabella di collegamento) IdArtista IdIncisione 67001 1102 67001 1105 67002 1102 67002 1106 67003 1104 Tabella: Incisioni IdIncisioni Titolo Anno di incisione ….. 1102 Jazz ‘Round Midnight 1995 ….. 1103 Until I return 1998 ….. 1104 Love me, don’t leave me 1995 ….. 1105 Midnight Breeze 1996 ….. 1106 No Puede ver 1994 ….. Nella figura abbiamo creato la tabella di correlazione prendendo IdArtista dalla Tabella Artisti e IdIncisione dalla tabella Incisioni. Il vero vantaggio di una tabella di correlazione è che permette l’associazione di un numero qualsiasi di record di entrambe le tabelle correlate. Dall’esempio visto possiamo associare facilmente un dato artista con un numero qualsiasi di incisioni o un’incisione con un numero qualsiasi di artisti. ESERCIZIO: Data la seguente tabella contenente le informazioni relative a piloti di una compagnia aerea e le relative certificazioni per pilotare uno o più tipi di aeroplano; suddividetela in modo appropriato in modo da definire una relazione Molti a Molti Tabella: Piloti IdPilota NomePilota CognomePilota Data di nascita Certificazioni 25100 John Leverling 1994-07-11 727,737,757,MD80 25101 David Callahan 1994-05-01 737,747,757 25102 David Smith 1994-09-11 757,MD80,DC9 25103 Kathryn Patterson 1994-07-11 727,737,747,757 25104 Michael Hernandez 1995-05-01 737,757,DC10 25105 Kendra Bonnicksen 1994-09-11 757,MD80,DC9 Dove le sigle 727, 737, 747, 757 rappresentano Boeing 727, Boeing 737, Boeing 747, Boeing 757