Elementi di gestione di dati con MS Access Breve introduzione per il corso ECDL mod.5 1 Concetti introduttivi • Un database o base di dati e’ un insieme organizzato di dati gestito da un sistema di basi di dati detto DBMS (Data Base Management System) • DBMS è un programma che permette di creare,organizzare e gestire i dati immagazzinati nel database. 2 Concetti introduttivi • Un database contiene informazioni correlate suddivise in gruppi omogenei. Questi gruppi costituiscono le Tabelle • Una Tabella è una raccolta di informazioni su uno specifico tema • Un database relazionale mette in relazione le informazioni contenute nelle varie tabelle evitando così di avere in più tabelle le medesime informazioni. 3 • Una riga delle tabelle corrisponde ad un record • Un record è costituto da campi • Un campo è una colonna della tabella 4 Operazione sugli archivi Manipolazione dei dati: modifica fisica dei dati sull’archivio 1. Inserimento 2. Modifica 3. Cancellazione Consultazione dei dati. 1. Visualizzazione dati 2. Stampa Cosa è Access • Access e’ un DBMS che permette di progettare e utilizzare DB relazionali • Un DB Access e’ basato sui concetti di tabella e relazioni tra tabelle 6 Gli oggetti di Access •Tabelle: sono strutture rettangolari fondamentali che contengono i dati sottoforma di record •Query: sono oggetti che consentono normalmente di estrarre delle informazioni dalle tabelle o da altre query rispondenti a criteri ben definiti (query di selezione). All’occorrenza possono essere usate per modificare le informazioni all’interno del database (query di comando) 7 Gli oggetti di Access •Maschere: sono interfacce grafiche che consentono all’utente di inserire e/o visualizzare in modo semplice le informazioni contenute nel DB. •Report: sono oggetti normalmente utilizzati per creare una versione stampabile delle informazioni provenienti normalmente da una query. Possono contenere dati riassuntivi ottenuti da formule matematiche. 8 Tabelle campi record Ogni riga identifica un record. I record devono essere unici all’interno della tabella 9 Tabelle:unicita’ dei record • i casi di righe identiche devono essere gestiti in qualche modo: – aggiungendo campi specifici al soggetto della tabella che rendano unico il record (e.g., codice fiscale per persone, codice ISBN per libri) – aggiungendo identificatori appositamente definiti (ID) 10 La chiave primaria • Ogni tabella deve avere una chiave primaria, ossia un attributo o un insieme di attributi che identifichino univocamente un record. • Esempio: in una tabella contenente informazioni anagrafiche degli studenti di una scuola, promuovere il campo Cognome a chiave primaria non è una scelta corretta poichè è piuttosto semplice avere omonimia di cognome (due fratelli..).. La scelta migliore è quella di promuovere a chiave primaria un campo univoco per definizione quale il codice fiscale o il numero della carta d’identità, oppure un campo appositamente inserito per questo scopo che solitamente indicheremo con ID o IDStudente (di tipo Contatore). Un contatore contiene sequenze di numeri,uno per ogni record della tabella. Quando si aggiunge un record il campo viene aggiornato automaticamente. 11 Esercizio guida • Un esercizio ci guidera’ nel corso di questa lezione: – la creazione di un database per il cinema, che raccogliera’ informazioni su film, attori, registi, etc 12 Creiamo un database Cinema: la finestra principale di ACCESS Selezionare crea un nuovo file.. 13 Creiamo una tabella Selezionare Crea una tabella in visualizzazione struttura 14 Inseriamo i campi Nella colonna Tipo dati selezionare il tipo adatto al campo • Nome completo:Testo • Data di nascita:Data/ora • Luogo di nascita:Testo • Foto:Oggetto OLE 15 Scelta chiave primaria • Promuovere il campo Nome completo a chiave primaria Selezionare uno o + campi che costituiranno la chiave primaria, quindi la chiavetta sulla barra degli strumenti. 16 Tipi di dato per gli attributi • Testo: alfanumerici max 255 caratteri • Memo: alfanumerici senza limite di lunghezza • Numerico: utile se si vogliono fare conti su quel campo, altrimenti e’ meglio testo (e.g., per i numeri di telefono e’ meglio testo) • Data/ora • Valuta • Contatore: assegna automaticamente, in modo sequenziale, un numero intero diverso a ciascun record (utile per le chiavi) • Si/No: valori booleani(cioè del tipo VERO o FALSO) • Oggetto OLE: immagini, video, audio • Collegamento ipertestuale: URL o e-mail.. • Ricerca guidata: per selezionare il tipo di attributi di altre tabelle o query 17 Proprieta’ degli attributi • Variano al variare del tipo di dato • Ad esempio, nel caso di un campo Testo abbiamo gli attributi: dimensione campo, Formato,… • Posizionandosi sul singolo attributo abbiamo nel riquadro di destra una descrizione sintetica. 18 Inserire dati in una tabella • quando abbiamo finito di definire la tabella passiamo in visualizzazione Foglio dati (occorre salvare) • L’inserimento avviene in modo naturale spostandosi da un campo all’altro. Il record è automaticamente salvato quando ci si sposta nella riga successiva. 19 Esercizio • creiamo una tabella FILM con i seguenti attributi: – IDFilm, Titolo, Anno, nazione, Lunghezza, Nazione, Regista, Incasso Italia, Recensione, Locandina, Critica – La chiave primaria? 20 Esercizio • creiamo una tabella REGISTI con i seguenti attributi: – Nome, Data di nascita, Luogo di nascita, Foto – La chiave primaria? 21 Esercizio • creiamo una tabella DETTAGLI ATTORI con i seguenti attributi: – Nome completo, Biografia, Sito personale – La chiave primaria? 22 Arricchire il DB • per ora le tabelle che abbiamo creato sono scollegate e mancano di tante informazioni utili 23 Lista dei desideri 1. aggiungere a FILM un campo GENERE che possa assumere i seguenti valori AZIONE,AVVENTURA,ROMANTICO,ORRORE, SPLATTER,STORICO,FANTASCIENZA. 2. Mettere in relazione i film con i registi. 3. Mettere in relazione gli attori con i dettagli attori. 24 Le relazioni Le relazioni tra tabelle sono uno degli aspetti più iportanti nella progettazione di un database. Esse permettono di suddividere i dati su più tabelle, mantenendo comunque l’unità logica del DB. Esistono 3 tipi di relazioni, ma solo i primi due sono realizzabili con operazioni dirette di access 25 Le relazioni • • • 1 a 1 (uno a uno): si ottiene collegando la chiave primaria di una tabella con la chiave primaria dell’altra. Si ha questo tipo di relazione quando un record di una tabella è in relazione con al più un record dell’altra. 1 a N (uno a molti): si ottiene collegando la chiave primaria di una tabella (lato 1) con un campo dello stesso tipo dell’altra (lato molti), detto chiave esterna.Si ha questo tipo di relazione quando ad ogni record di una tabella corrispondono più record dell’altra, ma per ogni record di quest’ultima corrisponde al + un record della prima. N a N (molti a molti): si ottiene costruendo una apposita tabella di collegamento che deve necessariamente contenere dei campi che consentono la connessione con i campi chiave primaria delle due tabelle in relazione 26 Relazioni tra tabelle • Access fornisce la posssibilita’ di creare relazioni tra tabelle in modo da collegare i dati provenienti da diverse tabelle. • Due tipi di relazione che si possono creare direttamente in Access: – 1a1 – 1 a molti 27 Relazione 1 a 1 • a ogni record di una tabella corrisponde un solo record dell’altra • Esempio: voglio aggiungere in una tabella a parte eventuali dettagli personali sugli attori e creo una tabella DETTAGLI ATTORI 28 Integrita’ referenziale • assicura che le relazioni fra i record di tabelle collegate siano valide e che non si verifichino accidentali variazioni o cancellazioni di informazioni 29 Relazione 1 a 1 • a ogni record di una tabella corrisponde un solo record dell’altra • Esempio: voglio aggiungere in una tabella a parte eventuali dettagli personali sugli attori e creo una tabella DETTAGLI ATTORI 30 Relazione 1 a molti • a un record della tabella (tabella primaria) possono corrispondere piu’ record dell’altra. • sono le relazioni piu’ comuni • nel nostro esempio se voglio mettere in relazione FILM a REGISTI (lo stesso regista puo’ avere piu’ film) 31 Relazione 1 a molti • nel nostro esempio se voglio mettere in relazione FILM a REGISTI (lo stesso regista puo’ avere piu’ film) 32 Relazione molti a molti • esempio: vogliamo modellare le relazioni tra FILM e ATTORI – ogni film ha piu’ attori e ogni attore recita in piu’ film • in Access la modelliamo come una concatenazione tra due relazioni 1 a molti e l’aggiunta di una tabella di giunzione • Nel nostro caso possiamo pensare alla tabella RECITA_IN che mette in relazione un attore e un film • La chiave primaria della tabella di giunzione e’ l’unione delle chiavi primarie delle tabelle che mette in relazione 33 Tabella di giunzione RECITA_IN 34 Relazione molti a molti 35 Le query: creazione guidata • strumento utile per accedere alle informazioni contenute nel database in modo efficace • Le istruzioni che compongono la query sono scritte in una variante del linguaggio SQL (Structured Query Language) • Access fornisce 3 modi per creare query: 1. creazione guidata (wizard) che permette di selezionare attributi da una tabella 2. creazione tramite visualizzazione della struttura 3. creazione diretta con comandi SQL (non la vedremo) 36 Il Wizard delle query creiamo una query che estragga i titoli dei film e i relativi registi 37 Esercizio! • ordiniamo in modo crescente rispetto al nome dei registi e poi al titolo del film • creiamo una query che selezioni tutte le coppie attori e registi che hanno lavorato insieme 38 I criteri nelle query • lista degli attori che recitano in pulp fiction in ordine crescente rispetto alla data di nascita 39 Esercizi • lista degli attori che recitano nei film di Tarantino dopo il 2000 (visualizzando anche il titolo del film) 40 Le maschere • Le maschere (o form) sono uno strumento utile come interfaccia al database • possono servire come comodo ausilio all’inserimento dati o per la consultazione dei risultati ottenuti da query • analizzeremo solo la modalita’ di design automatica (tramite Wizard) 41 Le maschere: esempio semplice selezioniamo i campi che vogliamo inserire, stando attenti a mettere tutti quelli obbligatori 42 Le maschere: esempio semplice scegliamo l’aspetto della form e il nome... 43 Le maschere: esempio semplice per inserire un nuovo record... 44 Maschere con sottomaschere • per inserire automaticamente dati relativi a due tabelle collegate • esempio: creiamo una maschera per l’inserimento di un nuovo film e di tutti gli attori che vi recitano 45 Maschere con sottomaschere • apriamo il Wizard delle form: – inseriamo tutti i campi relativi alla tabella FILM – inseriamo tutti i campi relativi alla tabella RECITA_IN scorro gli attori di un film scorro i record dei film 46