LABORATORIO INFORMATICO Basi di Dati MS Access Ing. M.Paolizzi MS Access 1 Sistemi Informativi • I sistemi informativi hanno il compito di: – raccogliere – organizzare – conservare i dati; • ES: l’elenco degli iscritti ad una Facoltà Universitaria • I sistemi informativi garantiscono che i dati vengano: – conservati permanentemente sui supporti di archiviazione – aggiornati in caso di variazioni – resi accessibili per interrogazioni degli utenti • Caratteristiche essenziali sono: – Disponibilità delle informazioni – Gestione efficace Ing. M.Paolizzi MS Access 2 Dati ed Informazioni • Le informazioni sono rappresentate attraverso un insieme di dati elaborati e correlati; • I dati da soli sono di scarso interesse e significato; • Una BASE DI DATI è una collezione di dati utilizzati per rappresentare informazioni di interesse per il sistema. Ing. M.Paolizzi MS Access 3 DBMS • Database Management System • Un sistema di gestione di basi di dati è un sistema software in grado di gestire collezioni di dati – grandi – condivise – persistenti Garantendo – affidabilità – privacy • Una base di dati può essere definita come una collezione di dati gestita da DBMS. Ing. M.Paolizzi MS Access 4 Caratteristiche dei DB • Grandi: dimensioni anche enormi: 100GB-1TB e comunque molto più grandi della quantità di memoria di sistema disponibile; • Condivise: applicazioni ed utenti diversi devono poter opportunamente accedere a dati comuni. Per garantire l’accesso condiviso da parte di molti utenti contemporaneamente il DBMS opera un controllo di concorrenza; • Persistenti: deve essere garantita la esistenza permanente di dati; • Affidabili: deve essere garantite la integrità e la disponibilità dei dati; • Privatezza dei dati: le azioni eseguibili sui dati dipendono da autorizzazioni. Ing. M.Paolizzi MS Access 5 Modello relazionale • Un modello di dati è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo comprensibile per un elaboratore; • Un modello relazionale prevede una organizzazione dei dati basata sul concetto di relazione; • Una relazione viene rappresentata attraverso tabelle le cui righe rappresentano i record; • La maggior parte delle basi di dati si fonda sul modello relazionale; • Una base di dati relazionale è costituita da relazioni e tabelle. Ing. M.Paolizzi MS Access 6 Base di dati relazionale Matricola cognome nome Anno_nascit a 1962447 Pallino Pinco 01/01/1973 record 1962468 Rossi Maria 02/02/1972 campi 1962578 La Moto Guido 14/07/1974 STUDENTI ESAMI CORSI Ing. M.Paolizzi MS Access studente corso votazione 1962468 03 30 1962578 Id_corso 02 titolo 27 docente 01 Diritto1 Bianchi 02 Diritto2 Verdi 03 Economia Viola 04 Informatica Rosa 7 Database relazionali • I dati in un database relazionale sono organizzati in tabelle; Matricola • Ogni tabella è formata da record, a loro volta organizzati in campi (colonne) 1962447 – Il campo è un’area destinata a ricevere un tipo specifico di dati e contiene un unico dato cognome nome Anno_nascit a Pallino Pinco 01/01/1973 1962468 Rossi Maria 02/02/1972 1962578 La Moto Guido 14/07/1974 • Un record è una collezione di campi che definisce una informazione; • Una tabella è una collezione di record; Ing. M.Paolizzi MS Access 8 Database relazionali • Nei database relazionali i dati vengono organizzati in base all’argomento all’interno di tabelle separate, che sono però collegate da relazioni. • I dati non devono essere ripetuti in più tabelle, con l’eccezione dei campi di correlazione. • Alcuni vantaggi offerti da questo metodo sono: – Efficienza: Non è necessario memorizzare informazioni ridondanti, ad esempio il nome o l’indirizzo di un cliente, in ogni ordine inviato dal cliente. – Semplicità: Le operazioni di aggiornamento, eliminazione ed estensione dei dati sono più facili in un database ben strutturato che non contiene duplicati. – Precisione: Non dovendo ripetere più volte le stesse informazioni, le possibilità di errore sono limitate. Un dato immesso correttamente una volta, risulterà corretto dappertutto. – Integrità dei dati: È possibile aggiungere o rimuovere campi o record in tabelle univoche senza alterare la struttura dei dati e senza dover riprogettare il database. • La separazione dei dati consente di proteggere la struttura originale. Durante la pianificazione delle tabelle è importante riflettere sulle varie alternative esistenti per la strutturazione dei dati, in modo da individuare il metodo migliore per semplificare le operazioni di immissione e gestione. Ing. M.Paolizzi MS Access 9 Progettare il DB • Durante la preparazione degli schemi delle tabelle da creare è molto importante analizzare le relazioni esistenti tra i dati e verificare che non siano presenti duplicati. • Di seguito sono elencate alcune domande da porsi per migliorare la struttura dei dati: – Ogni record è univoco? – Esistono record ripetuti in altre tabelle? – Esistono dettagli, o gruppi di dettagli, ripetuti in più record o tabelle? – È possibile modificare con facilità un record senza modificare un altro record? – Ogni record contiene tutti i dettagli relativi al record stesso? – Ogni record contiene solo i dettagli relativi al record stesso e riguardanti in modo specifico il relativo argomento? – Esistono campi dipendenti da altri campi della tabella? • Se la struttura definita per le tabelle e le relazioni non è ottimale si possono verificare problemi quali la perdita di dati, la necessità di aggiornare i dati in più posizioni o l’impossibilità di aggiungere nuovi dati. Ing. M.Paolizzi MS Access 10 Record • Il record contiene informazioni relative ad un soggetto (Es., Studente Universitario); • Ogni soggetto deve essere descritto da caratteristiche, chiamate attributi, che lo differenziano dagli altri (Es., Nome, Cognome); • Gli attributi determinano i campi del record. Ing. M.Paolizzi MS Access 11 Campi • Il campo ha una serie di proprietà: – il tipo determina quali dati possono essere inseriti e che tipo di operazioni si possono eseguire : 9 testo 9 numero 9 data 9 booleano – la lunghezza determina la quantità di memoria riservata; –… Ing. M.Paolizzi MS Access 12 Modello ER • Modello Entità Relazione; • Le ENTITA’ sono classi di oggetti che godono di alcune proprietà comuni ed hanno una esistenza propria ai fini della applicazione di interesse. – ES: STUDENTI, CORSI, DOCENTI – Si rappresentano graficamente con un rettangolo: • Una RELAZIONE è un legame logico tra entità: – ES. frequenta è la relazione tra le entità STUDENTI e CORSI – ES. insegna è la relazione tra le entità DOCENTI E CORSI – Si rappresentano graficamente con un rombo: – Le relazioni possono essere 9 uno-a-uno 9 uno-a-molti 9 molti-a-molti Ing. M.Paolizzi MS Access 13 Modello ER • Gli ATTRIBUTI sono le proprietà elementari di una entità; • Un attributo associa a ciascuna occorrenza di una entità un valore appartenente ad un dato dominio (campo del record); • Si rappresentano graficamente con il simbolo: ES. gli attributi della entità STUDENTE sono: matricola, nome, cognome, anno di nascita • Anche le relazioni possono avere attributi. Ing. M.Paolizzi MS Access 14 ESEMPIO DI DIAGRAMMA ER data matricola codice voto nome cognome data di nascita Ing. M.Paolizzi MS Access STUDENTE esame CORSO denominazione 15 Cardinalità • Cardinalità delle relazioni: – numero massimo e minimo di occorrenze di relazione cui una occorrenza di entità può partecipare; – Specificata per ciascuna partecipazione di una entità ad una relazione; • Cardinalità degli attributi: – Numero massimo e minimo di valori dell’attributo associati ad ogni occorrenza di entità o relazione; Ing. M.Paolizzi MS Access 16 Chiavi • Una chiave è un insieme di attributi che identifica univocamente un record (ovvero una riga della tabella); • Ogni relazione ha sicuramente una chiave (al limite costituita da tutti gli attributi); • La presenza della chiave garantisce che il valori del db siano accessibili e identificabili; • La presenza di chiavi in più tabelle consente di stabilire relazioni tra tabelle; • Occorre prevedere per ogni tabella un attributo ID che costituisca una CHIAVE PRIMARIA (priva di valori nulli) per identificare in modo univoco il record cui si riferisce: – ES. l’attributo matricola è una chiave primaria per la tabella STUDENTI • In quasi tutti i casi reali è possibile trovare attributi i cui valori sono identificanti e sempre disponibili. Quando ciò non si verifica è necessario introdurre un apposito attributo aggiuntivo che funga da chiave (ID). Ing. M.Paolizzi MS Access 17 Indici • Un INDICE è un attributo utilizzato dal DBMS per localizzare rapidamente il record cui corrisponde; • Normalmente in una tabella le ricerche dei dati avvengono in base alla CHIAVE PRIMARIA; • E’ possibile utilizzare altri campi come INDICI se si pensa di usarli spesso per le interrogazioni; • Un INDICE rende più rapide le operazioni di ricerca e ordinamento sul campo indicizzato; • L’uso di indici rende più complesso il db (tabelle nascoste), richiede maggiori risorse e rallenta alcune operazioni; Ing. M.Paolizzi MS Access 18 Query • Sono delle interrogazioni rivolte alla base di dati; • Sono finalizzate a: – estrarre un sottoinsieme di dati da una tabella – estrarre una relazione – estrarre dati o relazioni che soddisfano specifiche condizioni • Sono espresse in forma dichiarativa ossia esplicitando l’obiettivo della interrogazione e non il modo di ottenerlo; • ESEMPI: – Estrarre tutti gli studenti nati prima o dopo di una certa data – Estrarre tutti i film di genere western – Estrarre tutte le spese superiori a 1000€ Ing. M.Paolizzi MS Access 19 SQL • Structured Query Language; • E’ un linguaggio standard per basi di dati che consente di: – Definire la struttura (schema) del db: 9 Data Definition Language (DDL) – Modificare o interrogare la base dati: 9 Data Manipulation Language (DML) e Data Query Language (DQL) Ing. M.Paolizzi MS Access 20 SQL DDL • Come DDL l’SQL consente di: – Definire uno schema di basi di dati – Definire le tabelle con i loro attributi – Modificare le tabelle ES: creazione di una tabella CREATE dipartimento Codice int Nome char (20) primary key Indirizzo char (20) Ing. M.Paolizzi MS Access 21 SQL DML e DQL • Come DML l’SQL consente di: – Estrarre record da una o più tabelle 9 SELECT titolo, anno, genere FROM film – Modificare e aggiornare i valori dei campi di un record di una tabella 9 UPDATE film SET anno=1966 WHERE titolo=‘il buono, il brutto, il cattivo’ – Inserire i valori dei campi di un nuovo record 9 INSERT INTO film (titolo, anno, genere) VALUES (‘dune’,1984,’fantastico’) – Cancellare uno o più record di una tabella 9 DELETE from film WHERE titolo=‘ivanhoe’ Ing. M.Paolizzi MS Access 22 DBMS • Esistono numerosi DBMS sia commerciali che open source: – Oracle – MS SQL Server – PostgreSQL – MySQL – Firebird – Access Ing. M.Paolizzi MS Access 23 Introduzione a MS ACCESS • ACCESS (2003) è una APPLICAZIONE ed in quanto tale segue il consueto ciclo di vita delle applicazioni: – Installazione – Esecuzione – Chiusura – Disinstallazione • I File su cui opera ACCESS sono tipicamente database .mdb, per cui su di essi sono valide le consuete operazioni sui file: creazione, modifica, apertura e salvataggio. Ing. M.Paolizzi MS Access 24 MS ACCESS (2003) • Può essere utilizzato in due modalità: – DBMS autonomo su PC – Interfaccia verso altri sistemi • Come DBMS autonomo – Risente dei limiti architetturali del PC – Offre un supporto transazionale limitato – Protezione dati semplice – Gestione della concorrenza limitata Ing. M.Paolizzi MS Access 25 MS ACCESS • Gestisce tutte le informazioni in un unico file di database all’interno del quale si trovano: – Tabelle per la memorizzazione dei dati – Query per la ricerca e la estrazione di dati – Maschere per la visualizzazione, l’inserimento e l’aggiornamento dei dati contenuti nelle tabelle – Report per la analisi e la stampa di dati con layout definiti dall’utente Ing. M.Paolizzi MS Access 26 Avviare ACCESS 2003 • Avvio tradizionale: – START->PROGRAMMI->MS OFFICE->MS ACCESS 2003 – Click su icona di avvio – Doppio click su db esistente – Avvio da START->ESEGUI->msaccess Ing. M.Paolizzi MS Access 27 Avviare ACCESS 2007 • dal pulsante START selezionare TUTTI I PROGRAMMI, quindi MS OFFICE ed infine MS ACCESS 2007; • click su icona di collegamento; • doppio click su db esistente; • avvio da START->ESEGUI->msaccess. Ing. M.Paolizzi MS Access 28 L’ interfaccia di ACCESS 2003 • All’avvio Access mostra una finestra con: – Barra del titolo – Barra dei menu – Barra degli strumenti – Riquadro attività Ing. M.Paolizzi MS Access 29 L’ interfaccia di ACCESS 2007 • Interfaccia Office FLUENT – Pulsante Office – Barra di accesso rapido – Barra multifunzione – Barra di stato Ing. M.Paolizzi MS Access 30 Chiudere Access 2003 • Dalla barra menu selezionare FILE->ESCI • Dal pulsante di controllo CHIUDI • Combinazione di tasti ALT + F4 Ing. M.Paolizzi MS Access 31 Chiudere Access 2007 • Dal pulsante OFFICE->ESCI DA ACCESS • Dal pulsante di controllo CHIUDI • Combinazione di tasti ALT + F4 Ing. M.Paolizzi MS Access 32 Prima di creare un DB • È necessario definire: – lo scopo del DB – gli utenti cui si rivolge – i dati che includerà – le query e i report necessari – le maschere per la consultazione e la immissione dati • NB: se i dati sono disponibili in altro formato (es. Excel) è possibile, dopo aver creato un DB Access, importare o collegare tali dati in una tabella del nuovo DB. Ing. M.Paolizzi MS Access 33 Prima di Creare un DB • Nella creazione di un database, la parte più importante e delicata è la PROGETTAZIONE, cioè – stabilire quali devono essere le tabelle e quali le loro relazioni – In genere chi si accosta per la prima volta a un database è portato a sottovalutare questo punto,. Il più delle volte ciò porta a buttar via tutto quello che si è fatto e ricominciare dall'inizio • Anche se ACCESS fornisce creazioni guidate di un database, è raro che possano soddisfare completamente le esigenze personali. Ing. M.Paolizzi MS Access 34 Operazioni su un DB Access • Un DB di Access è un file ed in quanto tale è soggetto alle seguenti operazioni: – Apertura di un DB esistente – Chiusura di un DB esistente – Creazione di un nuovo DB – Salvataggio di un DB Ing. M.Paolizzi MS Access 35 Formato dei file • Formato database (db) proprietario • Ms Access 2003: .mdb • Ms Access 2007: .accdb • I formati 2003 e 2007 non sono direttamente compatibili: – Il formato .accdb implementa una serie di nuove caratteristiche: 9 Campi di ricerca multivalore 9 Tipo di dati allegato • Per mantenere la compatibilità occorre salvare il db come “database di Access 2002-2003” Ing. M.Paolizzi MS Access 36 Oggetti del database • Tabelle: elemento fondamentale che contiene dati; • Query: interrogazione che permette di eseguire ricerche ed estrarre dati dalle tabelle in base a criteri stabiliti dall’utente; • Maschere: interfaccia grafica che agevola la manipolazione (inserimento, modifica, visualizzazione dei dati) • Report: layout di presentazione di determinati sottoinsiemi di dati; • Pagine: oggetti che consentono di creare pagine di accesso ai dati; • Macro: oggetti che consentono di automatizzare alcune sequenze di operazioni; • Moduli: oggetti che consentono di programmare alcune funzioni; Ing. M.Paolizzi MS Access 37 Oggetti del database (2003) • Access presenta una finestra attraverso la quale gestire i seguenti oggetti: – Tabelle – Query – Maschere – Report – Pagine di accesso – Macro – Moduli • Per ciascun oggetto è possibile definire la STRUTTURA Ing. M.Paolizzi MS Access 38 Oggetti del database (2007) • Il punto di gestione degli oggetti è il – riquadro di spostamento • Gli oggetti del DB vengono visualizzati come schede nell’area principale Ing. M.Paolizzi MS Access 39 La guida in linea • In caso di dubbi o per avere informazioni su operazioni e procedure è possibile invocare la guida in linea: – Selezionare dalla barra menu – Premere F1 Ing. M.Paolizzi MS Access 40 Creare un DB (2003) • Si può partire da: – un DB vuoto – da un modello predefinito – creazione guidata database • Ad ogni database Access corrisponde un file con estensione standard .mdb . • Per creare un nuovo DB: – menu FILE->NUOVO – pulsante (nuovo) – dal riquadro attività • Particolarità: in Access è necessario salvare il file prima di lavorarci; Ing. M.Paolizzi MS Access 41 Creazione nuovo DB (2003) • Dalla barra menu FILE->NUOVO • Dalla barra strumenti • Dal riquadro attività : DATABASE VUOTO Ing. M.Paolizzi MS Access 42 Creare un nuovo DB (2007) • Per creare un nuovo db in MS Access 2007 si può partire da: – un DB vuoto; – un modello predefinito locale o on line; • e la procedura si avvia, in ogni caso, in uno dei seguenti modi: – premendo il pulsante Office e selezionando la voce NUOVO; – direttamente dalla finestra di introduzione a Microsoft Office Access visualizzata all’avvio del programma. Ing. M.Paolizzi MS Access 43 Creazione DB da un modello • Consente di: – selezionare il modello desiderato tra quelli predefiniti – personalizzarlo in una certa misura • In base a quanto specificato la procedura crea un gruppo di tabelle, query, maschere e report per il DB; • Le tabelle create non includono dati; • Questo metodo è preferibile se uno dei modelli predefiniti ha caratteristiche simili ai risultati che si desidera ottenere; • E’ il metodo più semplice ma consente una scarsa personalizzazione. Ing. M.Paolizzi MS Access 44 Finestra Introduzione a MS Access 2007 • Agevola l’utente – Nella creazione di un nuovo db 9 Da DB vuoto 9 Da modello locale 9 Da modello online – Nella apertura di un db esistente Ing. M.Paolizzi MS Access 45 Salvare un DB (2003) • Access chiede di salvare con nome il database già al momento della creazione; • E’ sempre possibile utilizzare: – Menu FILE -> SALVA e FILE -> SALVA CON NOME – Barra strumenti Ing. M.Paolizzi MS Access 46 Operare sugli oggetti (2003) • Gli oggetti del DB sono: tabelle, query, maschere, report, pagine, macro e moduli • E’ possibile visualizzarli e manipolarli attraverso – Barra dei menu VISUALIZZA->OGGETTI DATABASE – Finestra OGGETTI del database (ulteriore finestra all’interno di quella del file) Ing. M.Paolizzi MS Access 47 VISUALIZZAZIONI • Per ogni oggetto ACCESS fornisce varie visualizzazioni ciascuna adatta ad un determinato tipo di utilizzo: oggetto Ing. M.Paolizzi MS Access visualizzazioni TABELLE Struttura Foglio dati QUERY Struttura Foglio dati SQL MASCHERE Struttura Foglio dati layout REPORT Struttura 48 Operazioni sulle tabelle • Creare una tabella • Specificare i campi con i rispettivi tipi di dati • Salvare una tabella • Inserire ed eliminare record in una tabella • Aggiungere campi ad una tabella • Eliminare dati da un record • Navigare una tabella • Cancellare una tabella Ing. M.Paolizzi MS Access 49 Creazione di un DB – Tabelle (2003) • Per creare una tabella si può: – Sfruttare la CREAZIONE GUIDATA (per situazioni standard) – Creare la struttura “ a mano” mediante VISUALIZZAZIONE STRUTTURA – Creare la tabella immettendo direttamente i dati mediante IMMISSIONE DATI Ing. M.Paolizzi MS Access 50 Creazione di un DB- Tabelle (2007) • fare riferimento ai pulsanti del gruppo TABELLE situato nella scheda CREA della barra multifunzione; • E’ possibile creare una tabella in tre modi: – sfruttando la CREAZIONE GUIDATA (per situazioni standard); – creando la struttura “a mano” mediante VISUALIZZAZIONE STRUTTURA; – creando la tabella immettendo direttamente i dati mediante IMMISSIONE DATI. Ing. M.Paolizzi MS Access 51 ESEMPIO: MAGAZZINO MERCI • Consideriamo un DB per gestire un magazzino • Occorrono almeno due tabelle : – MERCI Id_merc e descrizione colli produttore costo_unitari o 000009 Tonno in scatola 100 01 0,36 000002 Barra cioccolato 26 12 0,87 000178 Biscotti 78 18 1,15 – PRODUTTORI Id_produttore denominazion e indirizzo Città PI 000001 Sardine&tonni Via del Luccio Roma 0001010134 5 000002 Dolci&amari Piazza Garibaldi Milano 0909090965 4 000003 Panifici riuniti Via dell’Olio Albano 0090387232 4 Ing. M.Paolizzi MS Access 52 Creazione della tabella (2003) • Selezionare “CREARE TABELLA IN VISUALIZZAZIONE STRUTTURA”; • Si apre una finestra in cui specificare gli attributi della tabella ed il tipo di dati corrispondente • I tipi di dato sono: – Testo: testo, numeri e simboli fino a 255 caratteri – Memo: testo senza limiti di caratteri – Numerico: solo numeri – Data e ora: data e secondo diversi formati – Valuta: numeri in formato valuta – Contatore: numero progressivo incrementato automaticamente – Si /no: valori booleani – Oggetto OLE: collegamento a file o altro DB – Ricerca guidata: elenchi personalizzati • Salvare sempre l’oggetto creato. Ing. M.Paolizzi MS Access 53 Creare una tabella (2007) • Scheda CREA – Gruppo TABELLE • Scheda FOGLIO DATI – Gruppo campi e colonne • Riconoscimento automatico del tipo di dato o selezione manuale del tipo Ing. M.Paolizzi MS Access 54 Indicazione chiave primaria • La chiave primaria è necessaria per: – identificare univocamente un record – correlare record di tabelle diverse • Per introdurre la chiave primaria si fa click destro sulla riga dell’attributo designato; • Si seleziona CHIAVE PRIMARIA; • Appare il simbolo della chiave; • Se non specifica esplicitamente la chiave primaria, Access chiede di definirne una all’atto della chiusura della tabella. Ing. M.Paolizzi MS Access 55 Proprietà del campo • Nella parte inferiore della finestra di dialogo attiva vi è l’area relativa alle proprietà del campo con due schede: GENERALE E RICERCA; • Su GENERALE si possono stabilire alcune proprietà specifiche per la tipologia di dato; • Su RICERCA vi è solo la possibilità di selezionare il controllo con cui il campo sarà visualizzato in una maschera. Ing. M.Paolizzi MS Access 56 Proprietà generali • Dimensione del campo: numero max di caratteri digitabili nel campo; • Formato: layout di visualizzazione del campo; • Maschera di input: formato per i dati che verranno immessi; • Etichetta: nome con cui si vuole venga visualizzato il campo; • Valore predefinito: valore immesso di default; • Valido se: condizioni per accettare la immissione; • Messaggio di errore: messaggio visualizzato in caso di inserimento non valido; • Richiesto: specifica se il campo è obbligatorio o può essere lasciato vuoto; • Consenti lunghezza zero: specifica se sono ammesse stringhe di lunghezza zero; • Indicizzato: viene creato un indice per velocizzare le ricerche. Ing. M.Paolizzi MS Access 57 Dimensioni dei campi • La dimensione di un campo corrisponde al numero di byte utilizzati dal programma per rappresentare in memoria quel campo; • E’ possibile modificare le dimensioni di un campo a tabella esistente: – aumentare la dimensione di un campo non crea problemi – ridurre la dimensione di un campo può provocare un troncamento con perdita di dati Ing. M.Paolizzi MS Access 58 Creazione della tabella • Chiudere la tabella; • Attribuire il nome MERCI; • Premere ok; • La tabella creata figura nella finestra degli oggetti TABELLE; Ing. M.Paolizzi MS Access 59 ESEMPIO: MAGAZZINO MERCI • In modo analogo creiamo la tabella PRODUTTORE; • Ottenendo le due tabelle nella finestra degli oggetti; Ing. M.Paolizzi MS Access 60 Anatomia di una tabella • La tabella è dove il database archivia le informazioni; • Tutti gli altri oggetti (query, maschere, report, macro) sono mezzi per analizzare e manipolare il contenuto delle tabelle; Ing. M.Paolizzi MS Access 61 Operazioni sui record • Inserimento • Modifica • cancellazione Selettore di record Record corrente Barra di navigazione Record precedente/ successivo Numero di record corrente Crea nuovo record Ing. M.Paolizzi MS Access 62 Inserimento record • Dalla finestra delle tabelle fare doppio click sul nome della tabella; • Si aprirà la finestra della stessa tabella; Riga attiva • Per inserire i record basta cliccare su posizionarsi sui campi e digitare nei vari campi; Riga sotto modifica Nuova riga Ing. M.Paolizzi MS Access 63 Modifica record • Per inserire o modificare dati in una tabella è necessario preliminarmente aprire la tabella come FOGLIO DATI; • Posizionare il cursore nel campo che si vuole modificare; • Click sinistro; • Modificare il contenuto del campo. Ing. M.Paolizzi MS Access 64 Cancellazione record • Posizionare il cursore sul selettore del record che si vuole cancellare; • Premere tasto destro del mouse; • Selezionare ELIMINA RECORD; • Naturalmente è possibile selezionare più record. Ing. M.Paolizzi MS Access 65 Esempio: archivio film • Per iniziare ad inserire film possiamo: – inserire le singole righe nella tabella – utilizzare una maschera Ing. M.Paolizzi MS Access 66 Le Relazioni • Per creare o cancellare una relazione tra tabelle: – Chiudere tutte le tabelle – Selezionare STRUMENTI ->RELAZIONI • Per creare una tabella: – Selezionare le tabelle tra cui stabilire relazioni (finestra MOSTRA TABELLA) – Trascinare il campo chiave primaria di una tabella nel campo dell’altra tabella da porre in relazione • Per cancellare una relazione: – Selezionare la linea che rappresenta la relazione – Premere CANC Ing. M.Paolizzi MS Access 67 Le Query • Una query richiede dati al database; • Nella sua forma più semplice, una query recupera tutti i dati da un'unica tabella; • Creando query più complesse e specifiche, è possibile raccogliere esattamente i dati desiderati come descritto di seguito: – Inclusione o esclusione di righe – Inclusione o esclusione di colonne – Combinazione di tabelle – Compressione di gruppi di righe – Ordinamento di righe – Etc. Ing. M.Paolizzi MS Access 68 Le Query • Access mette a disposizione due diversi strumenti per la creazione delle interrogazioni: – Uno strumento grafico che permette di costruire la query sulla base del risultato desiderato (CREAZIONE GUIDATA QUERY) – Un interprete SQL (STRUTTURA) • Dalla finestra degli oggetti selezionare QUERY; • E poi CREA UNA QUERY MEDIANTE UNA CREAZIONE GUIDATA. Ing. M.Paolizzi MS Access 69 Creare una Query (2003) - 1 • La creazione guidata permette di creare query semplici: – Una query semplice estrae i valori di determinati campi da determinate tabelle • Selezionare la tabella; • Selezionare i campi; • Premere avanti; Ing. M.Paolizzi MS Access 70 Creare una Query (2003) - 2 • Selezionare DETTAGLIO • Premere AVANTI • Assegnare un nome alla query • Selezionare la APRIRE LA QUERY • Premere FINE Ing. M.Paolizzi MS Access 71 Creare una Query (2003) - 3 • A conclusione della procedura guidata viene visualizzato in forma tabellare (non si tratta di una TABELLA) il risultato della query; • Ossia vengono visualizzati i record che corrispondono alla interrogazione Ing. M.Paolizzi MS Access 72 Creare una Query (2003) - 4 • Una query può essere definita in VISUALIZZAZIONE STRUTTURA; • In questo modo si ha un maggior grado di personalizzazione; • Quando si crea una query in VISUALIZZAZIONE STRUTTURA Access crea l’equivalente SQL in VISUALIZZAZIONE SQL; • Fare click su VISUALIZZAZIONE STRUTTURA; • Aggiungere le tabelle coinvolte. Ing. M.Paolizzi MS Access 73 Creare una Query (2003) - 5 Tabelle sui cui eseguire la interrogazione Campi da cui estrarre valori Tabella cui appartiene il campo Ordinamento di presentazione Condizioni che i valori dei campi devono soddisfare Ing. M.Paolizzi MS Access 74 Creare una Query (2003) - 6 • Chiudere la visualizzazione; • Inserire il nome della query; • Dalla finestra degli oggetti facciamo doppio click sx sulla nuova query; • Appariranno in forma tabellare i risultati ( i film di genere western ordinati cronologicamente). Ing. M.Paolizzi MS Access 75 Query con parametri • Spesso è utile eseguire una query sulla base di un valore inserito di volta in volta dall’utente (PARAMETRO) Ad esempio, anziché visualizzare tutti i film con genere=‘western’ si vogliono visualizzare tutti film di • Aprire la query in VISUALIZZAZIONE STRUTTURA genere= valore inserito da utente • In corrispondenza del campo opportuno, alla voce CRITERI inserire la richiesta parametro tra parentesi quadre [ ] • Quando si eseguirà la query verrà richiesto il parametro romantico Ing. M.Paolizzi MS Access 76 Visualizzazione SQL • Menu VISUALIZZA -> SQL oppure click destro sull’area tabelle e poi VISUALIZZAZIONE SQL; • Si apre la visualizzazione SQL; • E’ possibile modificare l’SQL digitando nella finestra; Ing. M.Paolizzi MS Access 77 Tipi di Query • Le query consentono di visualizzare, modificare e analizzare i dati in modi diversi; • È inoltre possibile utilizzarle come origini record per maschere, report e pagine di accesso ai dati ; • In Microsoft Access sono disponibili diversi tipi di query: – Query di selezione – Query con parametri – Query a campi incrociati – Query di comando – Query SQL Ing. M.Paolizzi MS Access 78 Query di selezione • E’ il tipo più comune di query; • Recupera i dati provenienti da una o più tabelle e visualizza i risultati in un foglio dati nel quale, con alcune limitazioni, è possibile aggiornare i record; • Una query di selezione consente inoltre di raggruppare dei record e calcolare somme, medie, conteggi e altri tipi di totali. Ing. M.Paolizzi MS Access 79 Query con parametri • Query che, durante l'esecuzione, visualizza una finestra di dialogo che richiede informazioni; • Ad esempio richiede di specificare i criteri per il recupero di record o di immettere il valore da inserire in un campo; • È possibile strutturare la query in modo che vengano richieste più informazioni, ad esempio due date se si desiderano recuperare tutti i record che rientrano in un determinato intervallo di tempo Ing. M.Paolizzi MS Access 80 Query a campi incrociati • Consentono di calcolare e di ristrutturare i dati per semplificarne l'analisi; • Questo tipo di query consente di eseguire una somma, una media, un conteggio o qualsiasi altro tipo di totale sui dati raggruppati in base a due tipi di informazioni, uno nella parte inferiore sinistra del foglio dati e l'altro nella parte superiore; Ing. M.Paolizzi MS Access 81 Query di comando • Una query di comando consente di apportare modifiche o di spostare molti record con una sola operazione. Sono disponibili quattro tipi di query di comando: – Query di eliminazione: elimina un gruppo di record da una o più tabelle. È possibile, ad esempio, utilizzare una query di eliminazione per rimuovere i prodotti di cui è stata interrotta la produzione o per i quali non esistono ordini. Con le query di eliminazione vengono eliminati sempre record interi, non solo determinati campi al loro interno. – Query di aggiornamento: apporta modifiche globali a un gruppo di record di una o più tabelle. Con una query di aggiornamento è possibile modificare i dati di tabelle esistenti. – Query di accodamento : aggiunge un gruppo di record di una o più tabelle alla fine di una o più tabelle. Si supponga, ad esempio, che vengano acquisiti nuovi clienti e un database contenente una tabella di informazioni relative a tali clienti. Anziché digitare nuovamente tutte le informazioni, è possibile accodarle alla propria tabella Clienti. – Query di creazione tabella: crea una nuova tabella in base a tutti i dati o parte dei dati contenuti in una o più tabelle. Ing. M.Paolizzi MS Access 82 Query SQL • Questo tipo di query viene creato tramite un'istruzione SQL – Il linguaggio SQL (Structured Query Language) consente di eseguire ricerche, aggiornare e gestire database relazionali, • Quando si crea una query in VISUALIZZAZIONE STRUTTURA della query, vengono costruite parallelamente le istruzioni SQL equivalenti – è possibile visualizzare o modificare l'istruzione SQL in VISUALIZZAZIONE SQL Ing. M.Paolizzi MS Access 83 Creare una query in MS Access 2007 • i pulsanti di riferimento sono – Scheda CREA – gruppo ALTRO • Le possibilità sono: – Creazione guidata query – Struttura query Ing. M.Paolizzi MS Access 84 Le Maschere • Sono interfacce grafiche costruite ad hoc per agevolare la manipolazione dei dati; • Rendono le operazioni più semplici e l’aspetto grafico più accattivante; • Permettono di rappresentare il contenuto del database in modo più chiaro e comprensibile rispetto alla nuda rappresentazione tabellare; • Possono essere utilizzate per la visualizzazione, l’inserimento e la modifica dei dati; • Possono contenere campi di testo, liste, checkbox o pulsanti eseguire azioni (lanciare macro, stampare report). Ing. M.Paolizzi MS Access 85 ESEMPIO: archivio film • Supponiamo di realizzare un DB per archiviare i nostri film; • Una sola tabella: FILM; • CAMPI: – Id: contatore (chiave pr.) – Titolo: testo – Genere: ricerca automatica (elenco personalizzato) – Durata: numerico (minuti) Ing. M.Paolizzi MS Access 86 Creare la maschera (2003) - 1 • Dalla finestra oggetti selezionare MASCHERE • Selezionare CREA MASCHERA ATTRAVERSO UNA CREAZIONE GUIDATA Ing. M.Paolizzi MS Access 87 Creare la maschera(2003) - 2 • Selezionare la tabella su cui costruire la maschera (FILM) • Selezionare i campi della tabella cui si vuole agire attraverso la maschera (TUTTI) • Premere AVANTI Ing. M.Paolizzi MS Access 88 Creare la maschera(2003) - 3 • Selezionare un layout da applicare alla maschera • Premere AVANTI • Inserire il nome per la maschera • Premere FINE Ing. M.Paolizzi MS Access 89 Modificare la maschera(2003) - 1 • Campi poco distanziati e confusamente posizionati • Click destro sulla maschera • Aprire la maschera in VISUALIZZAZIONE STRUTTURA Ing. M.Paolizzi MS Access • Dimensioni “disarmoniche” • Colore “spento” 90 Modificare la maschera(2003) - 2 • Ingrandiamo la finestra per lavorare comodi • Modifichiamo la dimensione dell’area della maschera trascinando il bordo inferiore • Selezioniamo i CONTROLLI posizionandovi sopra il cursore e facendo click sx (apparirà una manina scura) • Spostiamo i CONTROLLI per riorganizzare la maschera Ing. M.Paolizzi MS Access 91 Modificare la maschera(2003) - 3 • Ridimensioniamo i controlli – Click sinistro sul controllo – Appaiono le caselle di trascinamento – Agire sulla opportuna casella di trascinamento – Il cursore cambierà in una doppia freccia – Trascinare fino a raggiungere la dimensione desiderata Ing. M.Paolizzi MS Access 92 Modificare la maschera(2003) - 4 • Modifichiamo i font – Doppio click sinistro sulla etichetta – Si apre la finestra delle proprietà – Linguetta FORMATO – Modificare : 9 COLORE PRIMO PIANO 9 TIPO CARATTERE 9 DIMENSIONE CARATTERE 9 ETC. Ing. M.Paolizzi MS Access 93 Modificare la maschera(2003) - 5 • Cambiamo lo sfondo – Click destro sullo sfondo (CORPO) – Selezionare PROPRIETA’ – Linguetta FORMATO – Modificare COLORE E SFONDO Ing. M.Paolizzi MS Access 94 Creare una maschera (2007) • utilizzare il pulsante MASCHERA – Scheda CREA – gruppo MASCHERE della scheda CREA della barra • Si può creare una maschera con un solo click del mouse; • Quando si utilizza questo strumento, tutti i campi dell'origine dati sottostante vengono inseriti nella maschera • La maschera viene creata automaticamente e in visualizzazione Layout. In tale visualizzazione è possibile apportare modifiche alla struttura Ing. M.Paolizzi MS Access 95 Utilità della maschera • Possiamo usare la maschera per – Inserire direttamente un nuovo record nella tabella – Modificare un record – Scorrere i record • Nell’esempio (una sola tabella) non è molto utile • Se il DB fosse composto da molte tabelle la maschera consentirebbe di inserire dati in tutte o alcune con una unica interfaccia • La maschera può visualizzare anche i risultati di una query Ing. M.Paolizzi MS Access 96 I Report • I report costituiscono uno strumento efficace per la presentazione di informazioni in sola lettura; • Sono visualizzazioni riepilogative dei dati; • Organizzano i dati secondo criteri stabiliti; • Sono finalizzati principalmente alla stampa; • Consentono di formattare i dati; • Possono riguardare un sottoinsieme dei dati o i risultati di una Query; • Rispetto ad altri oggetti Access (foglio dati e maschere) consentono maggior controllo e maggiore flessibilità. Ing. M.Paolizzi MS Access 97 I Report • Un report consente di organizzare e formattare informazioni finalizzate ad uno scopo specifico (tipicamente la stampa); • Access consente di progettare report che contengono elementi grafici. Un report può contenere: – Testo – Dati – Immagini – Linee – Caselle – Grafici • Il tipo, il numero degli elementi e la loro reciproca disposizione dipendono dalle scelte dell’utente Ing. M.Paolizzi MS Access 98 Utilizzo dei Report • Utilizzare un report quando: – Si desidera stampare informazioni utilizzate con regolarità; – Si desidera stampare informazioni per la distribuzione ad altri utenti; – È necessario controllare con precisione l'organizzazione e l'aspetto delle informazioni stampate; – Si desidera raggruppare o riepilogare informazioni da comunicare ad altri. Ing. M.Paolizzi MS Access 99 Dati dei Report • Le informazioni presentate nei report possono provenire da: – Tabelle – Query • Altre informazioni (intestazioni, titoli, etc.) possono essere inserite nella struttura. Ing. M.Paolizzi MS Access 100 Creazione di un Report - 1 • Al solito si può utilizzare: – Visualizzazione struttura – Creazione guidata Ing. M.Paolizzi MS Access 101 Creazione di un Report - 2 • Selezionare la tabella • Selezionare i campi • Ripetere per tutte le tabelle che occorrono • Premere AVANTI Ing. M.Paolizzi MS Access 102 Creazione di un Report - 3 • Stabilire la gerarchia dei campi (ordine di raggruppamento) • Indicare le priorità desiderate • Premere AVANTI Ing. M.Paolizzi MS Access 103 Creazione di un Report - 5 • Stabilire i criteri di ordinamento con cui appariranno i record – Selezionare il campo – Specificare il tipo di ordinamento • Premere AVANTI Ing. M.Paolizzi MS Access 104 Creazione di un report - 6 • Scegliere il layout • Scegliere l’orientamento • Premere AVANTI Ing. M.Paolizzi MS Access 105 Creare un report - 7 • Scegliere lo stile • Premere AVANTI Ing. M.Paolizzi MS Access 106 Creazione di un Report - 7 • Attribuire un nome al report • Selezionare VISUALIZZA ANTEPRIMA • Premere FINE Ing. M.Paolizzi MS Access 107 Creazione di un Report - 8 Ing. M.Paolizzi MS Access 108 Modificare la struttura del Report • Aprire il record in VISUALIZZAZIONE STRUTTURA; • La struttura consta di 5 sezioni: – Intestazione report – Intestazione pagina – Corpo – Piè di pagina pagina – Piè di pagina report • Per ciascuna sezione sono editabili le proprietà: click destro sull’oggetto. Ing. M.Paolizzi MS Access 109 Preparazione della stampa • Tipicamente l’oggetto deputato ad essere stampato è il REPORT; • Access consente, tuttavia, di stampare tabelle, query e maschere; • E’ per tali oggetti è disponibile la funzione di ANTEPRIMA DI STAMPA quando: – La Tabella selezionata è chiusa oppure è aperta in visualizzazione foglio dati – La Query selezionata è chiusa o aperta in visualizzazione foglio dati – Il Report selezionato è chiuso o aperto in visualizzazione struttura – La maschera selezionata è chiusa o aperta in una delle tre modalità Visualizzazione struttura, maschera, foglio dati. • Per accedere alle opzioni e alle funzioni di stampa selezionare il menu FILE->STAMPA. Ing. M.Paolizzi MS Access 110 Pagine di accesso ai dati • Pagine WEB pubblicate da Access e connesse ad un DB; • Consentono di : – visualizzare i dati archiviati nel DB – inserire dati – modificare i dati esistenti – manipolare i dati esistenti • Possono includere anche origini dati differenti da Access (es. Excel); • Si creano analogamente agli altri oggetti. Ing. M.Paolizzi MS Access 111 Forme normali • Normalizzazione: insieme delle attività progettuali mirate alla struttura delle tabelle e alle relazioni tra di esse al fine di evitare duplicazione dei dati e inefficienze • Vantaggi: – Minore occupazione dello spazio di archiviazione – Maggiore efficienza nelle transazioni (gestione di singole tabelle di minor dimensione) – Maggiore affidabilità – Maggiore sicurezza • Le principali forme normali sono TRE Ing. M.Paolizzi MS Access 112 Prima forma normale • Se una tabella contiene più campi dello stesso tipo, allora è meglio spostare tali campi in una tabella dedicata Esempio: Id_film Titolo genere ann o Attore 1 Attore 2 Attore 3 • Non si possono inserire più di tre attori • Se gli attori sono meno di tre si ha spreco di spazio Ing. M.Paolizzi MS Access 113 Seconda forma normale • Richiede che sia stata già applicata la prima • Se un campo deve contenere valori multipli è meglio enuclearlo in una tabella separata collegata da un identificatore Id_film Ing. M.Paolizzi MS Access Titolo genere anno Id_gener e genere 114 Terza forma normale • Richiede che sia stata applicata la seconda • Se all’interno di una tabella alcuni campi dipendono da altri (diversi dalla chiave) è meglio spostarli in un tabella dedicata e collegata dal campo di dipendenza • ESEMPIO: Città, cap, provincia Ing. M.Paolizzi MS Access 115 • Esercizio…esercizio…esercizio!!!! FINE Ing. M.Paolizzi MS Access 116