Basi di dati e Microsoft Access di Federico Giuntella ([email protected]) Che cos’è un database ? Database Relazionali ? Access ‘ 97 ? Esempio: la Biblioteca ? I dati e le relazioni ? Integrità Referenziale ? Le Maschere ? Le Query ? I Report 1 Cos’è un Database? Archivi: ?Elenchi Telefonici ?Iscrizioni ad albi ?Archivi storici ?Magazzini Gli elenchi telefonici rappresentano un archivio di tipo cartaceo su cui poter fare ricerche ‘ dicotomiche’sul nominativo. Cos’è un Database? ?Un database è invece molto più flessibile perché può effettuare ricerche anche sul numero di telefono o sulla via… ?Inoltre le ricerche sono effettuate attraverso sistemi sofisticati di indicizzazione (e quindi più rapidi). 2 Database relazionali ? Un moderno sistema di DBMS (Database management system) utilizza modelli relazionali. ? In un database relazionale le informazioni vengono suddivise per tabelle, composte da righe (record) e colonne (campi). Database relazionali: esempio ? Nell’ archivio di una biblioteca si potrebbe volere specificare la tabella degli scrittori ?quindi ciascun riga (record) conterrebbe i dati di un singolo scrittore ? il periodo, l’ autore e la nazionalità sarebbero le colonne (campi) 3 Database relazionali ?Un Database relazionale è composto da più tabelle ?esempio: la tabella degli scrittori, delle nazioni dei periodi storici e delle opere ? I record di tabelle diverse possono essere messi in relazione tra loro ?esempio: l’ autore “Manzoni”è in relazione con il libro “I Promessi Sposi”. Database relazionali Le principali funzioni sono: ?Definizione dati ?Quali dati saranno contenuti nel database ?Manipolazione dati ?Quali dati visualizzare, ordinamenti, ricerche ?Controllo dati ?Sicurezza e filtro di accesso agli utenti 4 Access: avvio ? Per avviare Access usare il menu ‘ Avvio’ Access: apertura ? All’apertura, Access propone una scelta tra le azioni più frequenti 5 Access: caratteristiche Access: esempio ?autori ?Devo catalogare gli scrittori per periodo ?Devo permettere ?ricerche per autore ?ricerche per periodo ?ricerche per titolo 6 Biblioteca: progetto del Database ?Progettare un database ?Tabelle ?Campi ?Viste ?Relazioni Biblioteca: creazione di una tabella ?Creazione della Tabella autori 7 Biblioteca: creazione di una tabella ? Struttura della tabella autori: id_autore; autore; id_periodo; biografia; Biblioteca: maschera struttura ? Creazione tabella “Libro” ? La maschera di definizione struttura permette di definire i campi del database e le loro propietà 8 Tipi di dato Biblioteca: prime problematiche ?Primo problema: ?gli aggiornamenti dei dati delle case editrici e degli autori dovrebbero essere ripetuti per tutti i record interessati; il progetto attuale non è pratico. ?Secondo problema: ?vengono riscritte più volte nella tabella le stesse stringhe di testo; la memoria dell’ computer è usata in modo non efficente 9 Biblioteca: strutturazione del database ? Soluzione comune per i problemi praticità e efficienza ? Aggiunta di una tabella “Casa Editrice” ? Nome Casa ? Città ?… ? Aggiunta di una tabella “Autore”... ? Impostazione di una chiave numerica di indirizzamento a tutte le tabelle ? Modifica della tabella Libri ? trasformazione del formato del campo “Casa Editrice”da testo a numero Biblioteca: relazioni tra tabelle 10 Biblioteca: definizione tabella editori ? Si costruisce la tabella “Casa Editrice”: ? Si risolve il problema della dispersività dei dati: aggiornamenti e spazio in memoria vengono ottimizzati ? Occorre trovare un modo per mettere le Case Editrici in relazione con i libri Biblioteca: definizione tabella autori ? Si costruisce la tabella “Autore”: ? Si risolve il problema della dispersività dei dati: aggiornamenti e spazio in memoria vengono ottimizzati ? Occorre trovare un modo per mettere gli Autori in relazione con i libri 11 Glossario ? Campo ? dato fondamentale: Elemento di un record ? Record ? Informazione costituita da elementi fondamentali (campi) ? Tabella ? Elemento costitutivo di un database ? Vista ? Interrogazione articolata su tabelle ? Database ? Insieme di dati di tipo diverso che costituiscono la base informativa del contesto lavorativo. Inserimento da Foglio Dati ? Si può accedere al foglio dati di una tabella: ? dalla schermata principale, selezionando la tabella e premendo il pulsante “apri” ? dal foglio struttura, selezionando l’ icona nella pulsantiera 12 Il Foglio Dati ? Il foglio dati mostra i dati archiviati nella tabella ? Record e Campi sono immediatamente comprensibili ? è possibile l’ immissione diretta dei dati ? sono possibili anche alcune manipolazioni della struttura e del layout Biblioteca: relazioni tra tabelle ? Torniamo all’ esempio della biblioteca ? apriamo la tabella Libro ? apriamo la tabella Autore ? disponiamo le tabelle ed aggiustiamone il layout ? I riferimenti nel campo autore della tabella “Libro”al campo ID della tabella “autore” definiscono i collegamenti 13 Biblioteca: relazioni tra tabelle ? Le tabelle “Casa Editrice”e “Argomento” aggiornate e coerenti ai riferimenti della tabella libro Access: I Dati ?I dati di un database si possono dividere in due categorie: ?Dati indipendenti ?Le case editrici, anche se non ho libri appartenenti a quella c.e. ?Dati dipendenti ?i libri 14 Le relazioni ?Servono a collegare logicamente due tabelle ?Esistono vari tipi di relazioni ?uno a uno ?uno a molti ?molti a molti Relazioni uno a uno ? Si applicano per ‘estendere’delle informazioni contenute in una tabella principale Libro 1 info 1 Libro 2 info 2 Libro 3 Libro 4 info 3 15 Relazioni uno a molti ? Collega tabelle principali a tabella accessorie Libro 1 Libro 2 Libro 3 proprietà 1 Libro 4 Libro 5 proprietà 2 Libro 6 Libro 7 Libro 8 proprietà 3 Relazioni uno a molti: esempio ? Si realizza creando un campo di riferimento ai record di una tabella accessoria all’ interno della tabella principale ? Ad un record della tabella Casa Editrice possono corrispondere più record della tabella Libro ma non viceversa 16 Relazioni molti a molti ? Un record può avere più di una proprietà e una proprietà può essere attribuita a più record ? Utile per effettuare viste complesse sulle tabelle ? Occorre definire una tabella accessoria: la tabella delle associazioni Libro 3 proprietà 1 Libro 4 Libro 5 proprietà 2 Libro 6 Libro 7 Libro 8 proprietà 3 Biblioteca: la tabella associazione ? Usiamo la tabella associazione per mettere in relazione i record della tabella “Autore”con quelli della tabella argomento 17 Associazioni: una precisazione ? L’ esempio precedente è corretto solo in parte: nella tabella libro è infatti già presente il collegamento autore - argomento ? si può quindi risalire, in modo più efficiente, agli argomenti associati agli autori per mezzo della tabella libro Associazioni: ancora un esempio ? E’comunque valido il metodo e potrà essere applicato a tutti i casi in cui occorre specificare relazioni molti a molti Chiara Claudio Paola Pedro Italiano Inglese Spagnolo Francese 18 Associazioni: ancora un esempio ? La tabella di associazione stabilisce un collegamento fra la Persona Chiara e le Lingue Italiano, ed Inglese. 1 2 3 4 Chiara Claudio Paola Pedro 1 1 2 2 2 3 3 4 4 1 2 1 2 4 3 1 2 3 1 2 3 4 Italiano Inglese Spagnolo Francese Il Database Completo... Selezionando il database e quindi il pulsante delle relazioni si apre la finestra che permette la gestione dei vincoli tra le tabelle e da una visione panoramica del progetto Collegamenti 19 Integrità referenziale Fa si che la relazione non serva solo nell’ estrazione dei dati ma anche al loro aggiornamento ? Non si può creare un nuovo record nella tabella principale che contenga valori non presenti nelle tabelle accessorie ? Non si possono cancellare record da tabelle accessorie che siano referenziati da tabelle principali Glossario 2.1 ?Chiave primaria ?Campo di una tabella che identifica univocamente il record ?Chiave esterna ?Uno o più campi di una tabella messi in relazione con il campo chiave primaria di un’ altra tabella ?Integrità referenziale ?Regole utilizzate per conservare le relazioni definite tra tabelle. 20 Glossario 2.2 ?Relazioni ?1:1 ?Associazione tra due tabelle dove ciascun record della prima tabella corrisponde ad un record della seconda ?1:n ?Associazione tra due tabelle dove ciascun record della prima corrisponde ad un gruppo di record della seconda ?m:n ?Associazione tra due tabelle dove ciascun record della prima corrisponde ad un gruppo di record della seconda e viceversa Glossario 2.3 ?Tabella Principale ?Tabella contenente le informazioni del database ?Tabella Accessoria ?Tabella contenente le informazioni relazionate alla tabelle principale 21 Utilizzo operativo del database ?Inserimento dati ?Uso di maschere, creazione ?Operazione sui dati ?Le query ?Stampare i dati ?I report Le maschere ?Permettono di: ?Inserire, ?Cancellare, ?Modificare, ?Stampare dati 22 Autocomposizione... ?Per utilizzare una configurazione standard della maschera e includere tutti i campi. ?Veloce e semplice. ?Strutture predefinite Manuale ?Più prolissa la produzione. ?Maggiore conoscenza del database. ?Si possono ottenere risultati personalizzati 23 Biblioteca: costruzione di una maschera di inserimento ? Creiamo una maschera: ? selezionare l’ etichetta “Maschere”per far comparire la finestra delle maschere; ? premere il pulsante nuovo per aggiungere una maschera. Biblioteca: autocomposizione maschera ? Selezionare l’ opzione “Autocomposizione Maschera” ? Scegliere la tabella “Libro”come origine dati ? premere il pulsante OK 24 Biblioteca: definizione campi maschera ? Selezionare la tabella Libro ? premere la doppia freccia per inserire tutti i campi ? Selezionare le tabelle Autore, Casa Editrice e Argomento ? Selezionare i record di interesse e premere la freccia per inserirli ? Ricordare di inserire i campi chiave (ID) ? Premere il pulsante Avanti Maschere: autocomposizione ? Scegliere la visualizzazione “In base a libro”e premere Avanti ? Scegliere il layout “A Colonne”e premere Avanti 25 Maschere: autocomposizione ? Scegliere uno stile gradito e premere Avanti ? Selezionare “Visualizza la Guida”e premere Fine Maschere: help ? La schermata di help evidenzia le funzioni principali 26 Maschere: risultato finale ? Il risultato finale presenta i campi scelti in modo disordinato: selezionando il pulsante modifica struttura sono possibili gli aggiustamenti Maschere: campi riordinati ? Una volta riordinati i campi è possibile visualizzare record ed immetterne di nuovi per mezzo della maschera di interfaccia 27 Maschere: annotazioni ?Il tasto <tab> scorre i vari campi (è possibile modificare l’ ordine di scorrimento dalla finestra struttura) ?si possono modificare record ed inserirne di nuovi ?il sistema cerca di preservare l’ integrità dei dati Glossario ? Maschera ? Oggetto di MS Access che permette di visualizzare, modificare, cancellare dati in campi di tabelle e query ? Tipi di maschera ? A Colonne ? Tipo di schema di una maschera che dispone i campi uno sotto l’ altro ? Foglio Dati ? Visualizza i dati come una tabella access ? Tabulare ? I Record sono visualizzati su righe successive 28 Le Query ?La Query è lo strumento tradizionale di interrogazione per un database relazionale ?Il linguaggio in cui vengono costruite le Query è principalmente l’ SQL (Structured Query Language) ?Access utilizza un proprio “dialetto”SQL e fornisce all’ utente degli strumenti di interfaccia Query: creazione ? Anche con le query abbiamo a disposizione una finestra, selezionata la quale, accediamo al pulsante Nuovo e quindi al dialogo di creazione ? Scegliamo l’ opzione “Visualizzazione Struttura”e premiamo OK 29 Query: aggiungere le tabelle ? Compare l’ interfaccia per la creazione della query ? Selezioniamo le tabelle Argomento, Libro, e Autore e le Aggiungiamo alla query con il pulsante ? premiamo infine “Chiudi” Query: uno sguardo ai dati ?Vogliamo utilizzare una query per avere un quadro riassuntivo degli autori e degli argomenti che hanno affrontato nei loro libri ?Faremo quindi una query di selezione ?Altre query importanti sono le query di aggiornamento e di inserimento ?La query è un livello più in basso rispetto alla maschera 30 Query: struttura ? Ritroviamo i collegamenti “join”impostati precedentemente nella finestra delle “Relazioni”: la query usa questi condizionamenti per strutturare la propria interrogazione ? Nelle colonne in basso abbiamo trascinato i campi che vogliamo includere nella ricerca Query: opzioni di potenziamento ? È possibile aggiungere alla query criteri di filtraggio dei dati ? è possibile aggiungere criteri di ordinamento dei dati 31 Query: esempi criteri di testo ? Esempi di espressioni criterio che utilizzano come criteri valori di testo ? CittàDestinatario "Londra" Visualizza ordini spediti a Londra. ? CittàDestinatario "Londra" Or "Hedge End" Utilizza l'operatore Or per visualizzare ordini spediti a Londra o a Hedge End. ? DataSpedizione Between #5-Gen-95# And #10-Gen-95# Utilizza l'operatore Between...And per visualizzare ordini spediti non prima del 5-Gen-95 e non più tardi del 10-Gen-95. ? DataSpedizione =#2/2/95# Visualizza ordini spediti il 2-Feb-95. ? PaeseDestinatario In("Canada", "Regno Unito") Utilizza l'operatore In per visualizzare ordini spediti in Canada o nel Regno Unito. ? PaeseDestinatario Not "USA" Utilizza l'operatore Not per visualizzare ordini spediti a nazioni diverse dagli USA. ? Destinatario Like "S" Ordini spediti a clienti i cui nomi iniziano con la lettera S. ? NomeSocietà >="N" Visualizza ordini spediti a società i cui nomi iniziano con le lettere dalla N alla Z. ? IDOrdine Right([IDOrdine], 2)="99" Utilizza la funzione Right per visualizzare ordini con valori IDOrdine che terminano con 99. ? NomeSocietà Len([NomeSocietà])>Val(30) Utilizza le funzioni Len e Val per visualizzare ordini per società il cui nome è costituito da più di 30 caratteri. Query: combinazioni evolute ? Ecco un esempio di combinazione di operatori logici 32