I Database con ACCESS Prof. Michele SIMONE • Archivi tradizionali • Database Prof. Michele SIMONE Definizione di ARCHIVIO Un archivio è un insieme organizzato di informazioni tra cui esiste un nesso logico, cioè una raccolta di dati correlati tra loro. Es: Schedario, Rubrica telefonica, Archivio studenti di una scuola, Archivio anagrafico di un comune Prof. Michele SIMONE Differenza tra DATI ed INFORMAZIONI I dati si immagazzinano, le informazioni si reperiscono Prof. Michele SIMONE Rappresentazione Dati • BYTE (8 bit = 1 carattere) • CAMPO (insieme di byte) • RECORD (insieme di campi) • FILE (insieme di record) Prof. Michele SIMONE Tipi di ARCHIVIO Archivio cartaceo: Il supporto è la carta Archivio elettronico (FILE): Il supporto è una memoria di massa Operazioni: • • • • • • • Creazione Inserimento Aggiornamento Cancellazione Interrogazione Visualizzazione Stampa Prof. Michele SIMONE Elementi di un ARCHIVIO Le informazioni vengono raggruppate secondo una struttura di dati: RECORD (registrazione) Rappresenta un’unità logica del File L’insieme di più record (TABELLA) formano un File Cognome Prof. Michele SIMONE Nome Indirizzo CAMPI Telefono Tabella strutturata AUTO Prof. Michele SIMONE ARCHIVI TRADIZIONALI BIBLIOTECA SEGRETERIA RIDONDANZA Rossi, via dell’allegria, …, 054202020 ROSSI CAMBIA NUMERO DI TELEFONO E COMUNICA LA VARIAZIONE ALLIEVI ALLIEVI 054343434 Rossi, …, 054202020 Rossi, …, 054343434 INCONGRUENZA INCONSISTENZA Prof. Michele SIMONE Definizione di DATABASE Un database è un insieme integrato di archivi (correlati) utilizzabili da utenti diversi per applicazioni diverse Es: Database di un’azienda (magazzino, contabilità, dati clienti e fornitori, …) Database dei conti correnti di una banca Database dei cittadini di un comune, Database degli studenti di una scuola Prof. Michele SIMONE DATABASE BIBLIOTECA SEGRETERIA Rossi, via dell’allegria, …, 054202020 ROSSI CAMBIA NUMERO DI TELEFONO E COMUNICA LA VARIAZIONE ALLIEVI 054343434 Rossi, …, 054343434 Prof. Michele SIMONE Indice DBMS Access Esempio Prof. Michele SIMONE Prova tu! Che cos’ è un gestore di database? DBMS DataBase Management System Base di Dati Gestione (di una) Sistema (per la) Uno strumento capace di gestire informazioni, cioè catalogare, ordinare, ricercare dei dati. Prof. Michele SIMONE Definizione di DBMS Un sistema per la gestione di database è un'applicazione (software) che permette di gestire i dati mediante operazioni di: • Creazione • • • • • • Inserimento Aggiornamento Cancellazione Interrogazione Visualizzazione Stampa Prof. Michele SIMONE Vantaggi • Il ritrovamento dei dati è veloce • I dati occupano meno spazio • I dati possono essere condivisi da più utenti • I dati ridondanti sono minori • L' inconsistenza dei dati può essere evitata • La sicurezza può essere controllata Prof. Michele SIMONE Software specifico per la gestione di database DBMS (Data Base Management System) Access (Estensione dei file mdb sta per Microsoft Database) RELAZIONALE Prof. Michele SIMONE Creare in Access Si può creare un database: Vuoto Attraverso la creazione guidata Da un modello già esistente Access chiede di salvare il database appena lo si crea !! Prof. Michele SIMONE Creare in Access • Access chiede di salvare il database appena lo si crea !! • Si possono creare oggetti mediante Visualizzazione Struttura Creazione Guidata Prof. Michele SIMONE Oggetti di un Database Tabelle = Rappresentano la base su cui costruire il database Maschere = “ Interfacce ” Query = Sono il mezzo con il quale si interroga il database Report = Servono per la stampa Prof. Michele SIMONE Le Tabelle Ogni tabella è costituita da campi Un campo è uno spazio che contiene un’ unità di informazione, come un nome, un numero di telefono, una data,… Per questo ogni campo ha un tipo di dati (Testo, Memo, Numerico, Data/Ora, Valuta, Contatore, Si/No,…) Ad esempio un nome ha come tipo di dati Testo, una data avrà un tipo di dati Data/Ora,… Prof. Michele SIMONE TABELLA CAMPO o ATTRIBUTO RECORD I record di una tabella sono unici. Prof. Michele SIMONE Tabelle Attributi Record Ogni riga identifica un record. I record di una tabella sono unici. Prof. Michele SIMONE Tabelle: unicita’ dei record Casi di righe identiche devono essere gestiti in qualche modo: – aggiungendo campi specifici al soggetto della tabella che rendano unico il record (codice fiscale per persone, codice ISBN per libri) – aggiungendo identificatori appositamente definiti Prof. Michele SIMONE La chiave primaria Ogni tabella deve avere una chiave primaria, ossia un attributo o un insieme di attributi che identifichi univocamente un record Prof. Michele SIMONE L’Indice Definita una chiave primaria, viene costruito un indice simile all’indice di un libro. L’indice contiene le chiavi e accanto ad ogni chiave il numero del record corrispondente, così come nel libro accanto ad ogni parola è indicata una pagina. L’indice è ordinato alfabeticamente. Velocizza le operazioni di ricerca e ordinamento Tutti i campi di una tabella si possono indicizzare Prof. Michele SIMONE Esercizio guida Creare un database di nome CINEMA che raccoglie informazioni su • Film • Attori • Registi Prof. Michele SIMONE Esercizio guida Modello Entità / Relazione Regista 1 Dirige N Film Numerofilm Nazionalità Nazionalità Durata Colore Nome Anno Titolo Cognome Prof. Michele SIMONE Esercizio guida Modello Entità / Relazione N Film Recita Nazionalità Durata Colore M Anno Titolo Attore Foto Cachet Datadinascita Nome Cognome Prof. Michele SIMONE Esercizio guida Modello Entità / Relazione Regista 1 Dirige N Film Numerofilm Nazionalità Nazionalità Durata Colore Nome Anno Titolo Cognome Attore Foto Cachet Datadinascita Nome Cognome Prof. Michele SIMONE Creiamo il database CINEMA: la finestra principale di ACCESS Prof. Michele SIMONE Creiamo una tabella Prof. Michele SIMONE Creiamo una tabella • • • • nome attributo tipo attributo (numerico, testo, data, ...) proprieta’ attributo scelta chiave primaria Prof. Michele SIMONE Tipi di dato per gli attributi testo: alfanumerico max 255 caratteri memo: alfanumerico senza limite di lunghezza numerico: utile se si vogliono fare conti su quel campo, altrimenti e’ meglio testo (per i numeri di telefono e’ meglio testo) Data/ora Valuta … Prof. Michele SIMONE Tipi di dato per gli attributi contatore: assegna automaticamente, in modo sequenziale, un numero diverso a ciascun record (utile per le chiavi) si/no: valori booleani oggetto OLE: immagini, video, audio collegamento ipertestuale: URL o e-mail.. ricerca guidata: per selezionare il tipo di attributi di altre tabelle Prof. Michele SIMONE Proprieta’ degli attributi Variano al variare del tipo di dato Ad esempio, nel caso del tipo testo: Prof. Michele SIMONE Scelta chiave primaria Prof. Michele SIMONE Inserire dati in una tabella Quando abbiamo finito di definire la tabella la chiudiamo e le assegnamo un nome: Attore Per l’inserimento dati clicchiamo due volte sul nome della tabella per aprirla Prof. Michele SIMONE Esercizio Creiamo una tabella FILM con i seguenti attributi: – titolo, anno, colore, nazione, lunghezza – il colore assume valori SI o NO Definiamo la chiave Salviamo Prof. Michele SIMONE Esercizio Inseriamo alcuni dati: Prof. Michele SIMONE Le Relazioni: Access permette di creare Database Relazionali, cioè in grado di gestire più tabelle legate tra loro da relazioni. Le relazioni sono associazioni tra tabelle stabilite in base alla chiave primaria Ci sono tre tipi di relazioni: Uno a Uno Uno a Molti Molti a Molti Prof. Michele SIMONE RELAZIONE Prof. Michele SIMONE Relazioni tra tabelle Possiamo creare relazioni tra tabelle collegando i dati di tabelle diverse. Due tipi di relazione che si possono creare direttamente in Access: –1a1 – 1 a molti Prof. Michele SIMONE Relazione 1 a 1 Ad 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 Prof. Michele SIMONE 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 Prof. Michele SIMONE Relazione 1 a 1 Prof. Michele SIMONE Relazione 1 a molti Ad un record di una tabella (tabella primaria) possono corrispondere piu’ record dell’altra. Sono le relazioni piu’ comuni nel nostro esempio posso mettere in relazione FILM a REGISTI (lo stesso regista può dirigere più film) Prof. Michele SIMONE Relazione 1 a molti Prof. Michele SIMONE Relazione molti a molti Esempio: vogliamo modellare la relazione 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 Prof. Michele SIMONE Tabella di giunzione RECITA_IN Prof. Michele SIMONE LAYOUT delle Relazioni Prof. Michele SIMONE Le Maschere: Le maschere sono uno strumento necessario per permettere ad ogni utente di lavorare con un database costruito in Access, svolgono la funzione di un’ interfaccia. Ad ogni campo corrisponde un’etichetta ed una casella di testo. Consentono di effettuare e la visualizzazione e l’ immissione dei dati che sono introdotti nelle tabelle che supportano la maschera Prof. Michele SIMONE Esempio di maschera personalizzata Prof. Michele SIMONE Le Query: Le query sono interrogazioni permanenti che restituiscono una griglia di dati. Con la query si possono riordinare i dati, filtrare i dati in base a criteri, raggruppare, sommare, contare, … Le query permettono di interrogare più tabelle contemporaneamente Prof. Michele SIMONE Tipi di Query: Query di selezione Query a calcolo Query di riepilogo Query creazione tabella Query di aggiornamento Query di accodamento Query di eliminazione Prof. Michele SIMONE I Report: I Report sono sostanzialmente delle anteprime di stampa. I Report permettono di estrapolare informazioni da una o più tabelle o query, e impaginarle secondo un modello grafico. Nel Report è possibile: Ordinare i record in base ad uno o più campi Raggruppare dati contenuti in uno o più campi,Per campi numerici sommare, fare la media, trovare il minimo o il massimo Prof. Michele SIMONE Moduli e Macro Solo alcuni cenni per sapere cosa sono e a cosa servono I Moduli creano funzioni personalizzate mediante l’utilizzo del codice Visual Basic. Le Macro gestiscono una sequenza di istruzioni e sono utili per creare procedure automatiche. Prof. Michele SIMONE E adesso … Prova tu! Clicca qui Prof. Michele SIMONE Problema Creare una cartella sul Desktop di nome Scuola Scaricare qualche immagine o foto da internet e salvarle nella cartella Scuola Creare nella cartella Scuola il database di nome Mio_Istituto Prof. Michele SIMONE Consegna Creare il modello E/R con le entità Classe ed Allievo Se un allievo frequenta una classe ed una classe è frequentata da più allievi, di che tipo è la corrispondenza tra Classe ed Allievo? Creare le tabelle Classe ed Allievo Creare la relazione 1 : N tra Classe ed Allievo nel Layout delle relazioni Inserire i dati nelle tabelle Classe ed Allievo Creare una maschera per ogni tabella Creare due query 1. nominativi degli allievi che frequentano la classe 3B 2. nominativi degli allievi con età>11 Creare una report per ogni tabella e per ogni query Prof. Michele SIMONE Struttura tabella Classe Nome classe num_aula numero banchi wirless Testo 5 Num byte Num byte Si/No Struttura tabella Allievo Codice Cognome Nome Data nascita Indirizzo Città Curriculum Borsa di studio Età Certificazione ECDL Foto Testo 4 Testo 20 Testo 20 Data breve Testo 30 Testo 15 Memo Valuta Numeric o Si/No Oggett o OLE Prof. Michele SIMONE Nome classe Dati da inserire: Classe Nome classe num_aula numero banchi wirless 1C 8 21 si 1A 10 20 si 3B 12 18 no 2A 14 16 no 2B 13 13 si Prof. Michele SIMONE Dati da inserire: Allievo Codice Cognome Nome Data nascita Indirizzo Città Curriculum Borsa di studio Età Certificazione ECDL Foto Nome classe Al03 Pozzi Giorgio 2-2-2000 Via Roma 3 Casagio ve Curriculum 200 € 11 S foto 1C Al12 Carli Anna 11-32001 Via Pica 16 S. Maria C. V. “ 0€ 10 N “ 1A Al07 Stenta Ugo 24-71998 Via Loreto 54 Casapull a “ 210 € 13 N “ 3B Al99 Fusco Ileana 15-91999 Via Sassi 13 Capua “ 190 € 12 N “ 2A Al01 Guidi Piero 1-121998 Via Toledo 2 Capua “ 180 € 13 S “ 2B Al37 Lillo Tina 25-102000 Via Cassia 1 S. Maria C. V. “ 0€ 11 S “ 3B Al71 Barra Pippo 31-81999 Via Pio IX 45 S. Maria C. V. “ 300 € 12 S “ 3B Prof. Michele SIMONE E Adesso … Aggiungere al modello E/R l’entità Docente considerando che • un docente insegna a più alunni • un alunno ha più docenti Pertanto di che tipo è la corrispondenza tra Allievo e Docente? Rappresentare questa corrispondenza nel modello E/R Prof. Michele SIMONE Struttura tabella Docente Cognome nome materia e-mail foto Testo 20 Testo 20 Testo 20 Collegamento ipertestuale Oggetto OLE Struttura tabella Insegna Id Cognome_doc Codice_allievo Contatore Testo 20 Testo 4 Prof. Michele SIMONE Creare la relazione Insegna (M : N) tra Docente ed Allievo nel Layout delle relazioni Dati da inserire Docente Insegna Cognome nome materia e-mail foto bloom cinzia informatica [email protected] foto rossi mara italiano [email protected] foto verde pino matematica [email protected] foto nero franco inglese [email protected] foto Prof. Michele SIMONE ID Cognome docente Codice allievo 1 bloom Al03 2 rossi Al03 3 rossi Al99 4 rossi Al12 5 bloom Al07 6 verde Al07 7 verde Al71 8 bloom Al71 9 bloom Al03 Infine Creare una maschera per ogni tabella Creare due query: 1. nominativi dei docenti di un alunno 2. nominativi degli alunni di un docente 3. nominativi degli alunni e dei docenti di una classe Creare una report per ogni tabella e per ogni query Prof. Michele SIMONE