24/10/2010
mm.ss 1
1Ing. M.Paolizzi MS Access
LABORATORIO INFORMATICOBasi di DatiMS Access
2Ing. M.Paolizzi MS Access
Sistemi Informativi
• I sistemi informativi hanno il compito di: – raccogliere– organizzare– conservarei 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
3Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 2
4Ing. M.Paolizzi MS Access
DBMS
• Database Management System• Un sistema di gestione di basi di dati è un sistema
software in grado di gestire collezioni di dati– grandi– condivise– persistentiGarantendo– affidabilità– privacy
• Una base di dati può essere definita come una collezione di dati gestita da DBMS.
5Ing. M.Paolizzi MS Access
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.
6Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 3
7Ing. M.Paolizzi MS Access
Base di dati relazionale
Id_corso titolo docente
01 Diritto1 Bianchi
02 Diritto2 Verdi
03 Economia Viola
04 Informatica Rosa
Matricola cognome nome Anno_nascita
1962447 Pallino Pinco 01/01/1973
1962468 Rossi Maria 02/02/1972
1962578 La Moto Guido 14/07/1974
studente corso votazione
1962468 03 30
1962578 02 27
STUDENTI
ESAMI
CORSI
record
campi
8Ing. M.Paolizzi MS Access
Database relazionali
• I dati in un database relazionale sono organizzati in tabelle;
• Ogni tabella è formata da record, a loro volta organizzati in campi (colonne)– Il campo è un’area destinata a
ricevere un tipo specifico di dati e contiene un unico dato
• Un record è una collezione di campi che definisce una informazione;
• Una tabella è una collezione di record;
Matricola cognome nome Anno_nascita
1962447 Pallino Pinco 01/01/1973
1962468 Rossi Maria 02/02/1972
1962578 La Moto Guido 14/07/1974
9Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 4
10Ing. M.Paolizzi MS Access
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.
11Ing. M.Paolizzi MS Access
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.
12Ing. M.Paolizzi MS Access
Campi
• Il campo ha una serie di proprietà:– il tipo determina quali dati possono essere inseriti e
che tipo di operazioni si possono eseguire :testo
numero
data
booleano
– la lunghezza determina la quantità di memoria riservata;
– …
24/10/2010
mm.ss 5
13Ing. M.Paolizzi MS Access
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 essereuno-a-uno
uno-a-molti
molti-a-molti
14Ing. M.Paolizzi MS Access
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.
15Ing. M.Paolizzi MS Access
ESEMPIO DI DIAGRAMMA ER
STUDENTE
matricola
nome
cognome
data di nascita
esame CORSO
codice
denominazione
data voto
24/10/2010
mm.ss 6
16Ing. M.Paolizzi MS Access
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;
17Ing. M.Paolizzi MS Access
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).
18Ing. M.Paolizzi MS Access
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;
24/10/2010
mm.ss 7
19Ing. M.Paolizzi MS Access
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€
20Ing. M.Paolizzi MS Access
SQL
• Structured Query Language;
• E’ un linguaggio standard per basi di dati che consente di:– Definire la struttura (schema) del db:
Data Definition Language (DDL)
– Modificare o interrogare la base dati:Data Manipulation Language (DML) e Data Query Language
(DQL)
21Ing. M.Paolizzi MS Access
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 primary key
Nome char (20)
Indirizzo char (20)
24/10/2010
mm.ss 8
22Ing. M.Paolizzi MS Access
SQL DML e DQL
• Come DML l’SQL consente di:– Estrarre record da una o più tabelle
SELECT titolo, anno, genere FROM film
– Modificare e aggiornare i valori dei campi di un record di una tabella
UPDATE film SET anno=1966 WHERE titolo=‘il buono, il brutto, il cattivo’
– Inserire i valori dei campi di un nuovo record INSERT INTO film (titolo, anno, genere) VALUES (‘dune’,1984,’fantastico’)
– Cancellare uno o più record di una tabellaDELETE from film WHERE titolo=‘ivanhoe’
23Ing. M.Paolizzi MS Access
DBMS
• Esistono numerosi DBMS sia commerciali che open source:– Oracle
– MS SQL Server
– PostgreSQL
– MySQL
– Firebird
– Access
24Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 9
25Ing. M.Paolizzi MS Access
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
26Ing. M.Paolizzi MS Access
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
27Ing. M.Paolizzi MS Access
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
24/10/2010
mm.ss 10
28Ing. M.Paolizzi MS Access
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.
29Ing. M.Paolizzi MS Access
L’ interfaccia di ACCESS 2003
• All’avvio Access mostra una finestra con:– Barra del titolo
– Barra dei menu
– Barra degli strumenti
– Riquadro attività
30Ing. M.Paolizzi MS Access
L’ interfaccia di ACCESS 2007
• Interfaccia Office FLUENT– Pulsante Office
– Barra di accesso rapido
– Barra multifunzione
– Barra di stato
24/10/2010
mm.ss 11
31Ing. M.Paolizzi MS Access
Chiudere Access 2003
• Dalla barra menu selezionare FILE->ESCI
• Dal pulsante di controllo CHIUDI
• Combinazione di tasti ALT + F4
32Ing. M.Paolizzi MS Access
Chiudere Access 2007
• Dal pulsante OFFICE->ESCI DA ACCESS
• Dal pulsante di controllo CHIUDI
• Combinazione di tasti ALT + F4
33Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 12
34Ing. M.Paolizzi MS Access
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.
35Ing. M.Paolizzi MS Access
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
36Ing. M.Paolizzi MS Access
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:Campi di ricerca multivalore
Tipo di dati allegato
• Per mantenere la compatibilità occorre salvare il db come “database di Access 2002-2003”
24/10/2010
mm.ss 13
37Ing. M.Paolizzi MS Access
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;
38Ing. M.Paolizzi MS Access
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
39Ing. M.Paolizzi MS Access
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
24/10/2010
mm.ss 14
40Ing. M.Paolizzi MS Access
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
41Ing. M.Paolizzi MS Access
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;
42Ing. M.Paolizzi MS Access
Creazione nuovo DB (2003)
• Dalla barra menu FILE->NUOVO
• Dalla barra strumenti
• Dal riquadro attività : DATABASE VUOTO
24/10/2010
mm.ss 15
43Ing. M.Paolizzi MS Access
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.
44Ing. M.Paolizzi MS Access
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.
45Ing. M.Paolizzi MS Access
Finestra Introduzione a MS Access 2007
• Agevola l’utente – Nella creazione di un nuovo
dbDa DB vuoto
Da modello locale
Da modello online
– Nella apertura di un db esistente
24/10/2010
mm.ss 16
46Ing. M.Paolizzi MS Access
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
47Ing. M.Paolizzi MS Access
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)
48Ing. M.Paolizzi MS Access
VISUALIZZAZIONI
• Per ogni oggetto ACCESS fornisce varie visualizzazioni ciascuna adatta ad un determinato tipo di utilizzo:
oggetto visualizzazioni
TABELLE Struttura Foglio dati
QUERY Struttura Foglio dati SQL
MASCHERE Struttura Foglio dati layout
REPORT Struttura
24/10/2010
mm.ss 17
49Ing. M.Paolizzi MS Access
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
50Ing. M.Paolizzi MS Access
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
51Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 18
52Ing. M.Paolizzi MS Access
ESEMPIO: MAGAZZINO MERCI
• Consideriamo un DB per gestire un magazzino
• Occorrono almeno due tabelle :– MERCI
– PRODUTTORI
Id_merce
descrizione colli produttore costo_unitario
000009 Tonno in scatola
100 01 0,36
000002 Barra cioccolato
26 12 0,87
000178 Biscotti 78 18 1,15
Id_produttore denominazione
indirizzo Città PI
000001 Sardine&tonni Via del Luccio
Roma 00010101345
000002 Dolci&amari Piazza Garibaldi
Milano 09090909654
000003 Panifici riuniti Via dell’Olio Albano 00903872324
53Ing. M.Paolizzi MS Access
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.
54Ing. M.Paolizzi MS Access
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
24/10/2010
mm.ss 19
55Ing. M.Paolizzi MS Access
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.
56Ing. M.Paolizzi MS Access
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.
57Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 20
58Ing. M.Paolizzi MS Access
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
59Ing. M.Paolizzi MS Access
Creazione della tabella
• Chiudere la tabella;
• Attribuire il nome MERCI;
• Premere ok;
• La tabella creata figura nella finestra degli oggetti TABELLE;
60Ing. M.Paolizzi MS Access
ESEMPIO: MAGAZZINO MERCI
• In modo analogo creiamo la tabella PRODUTTORE;
• Ottenendo le due tabelle nella finestra degli oggetti;
24/10/2010
mm.ss 21
61Ing. M.Paolizzi MS Access
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;
62Ing. M.Paolizzi MS Access
Operazioni sui record
• Inserimento
• Modifica
• cancellazione
Selettore di record
Record corrente
Barra di navigazione
Crea nuovo record
Numero di record
corrente
Record precedente/successivo
63Ing. M.Paolizzi MS Access
Inserimento record
• Dalla finestra delle tabelle fare doppio click sul nome della tabella;
• Si aprirà la finestra della stessa tabella;
• Per inserire i record basta cliccare su posizionarsi sui campi e digitare nei vari campi;
Riga attiva
Riga sotto modifica
Nuova riga
24/10/2010
mm.ss 22
64Ing. M.Paolizzi MS Access
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.
65Ing. M.Paolizzi MS Access
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.
66Ing. M.Paolizzi MS Access
Esempio: archivio film
• Per iniziare ad inserire film possiamo:– inserire le singole righe nella
tabella
– utilizzare una maschera
24/10/2010
mm.ss 23
67Ing. M.Paolizzi MS Access
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
68Ing. M.Paolizzi MS Access
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.
69Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 24
70Ing. M.Paolizzi MS Access
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;
71Ing. M.Paolizzi MS Access
Creare una Query (2003) - 2
• Selezionare DETTAGLIO
• Premere AVANTI
• Assegnare un nome alla query
• Selezionare la APRIRE LA QUERY
• Premere FINE
72Ing. M.Paolizzi MS Access
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
24/10/2010
mm.ss 25
73Ing. M.Paolizzi MS Access
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.
74Ing. M.Paolizzi MS Access
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
75Ing. M.Paolizzi MS Access
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).
24/10/2010
mm.ss 26
76Ing. M.Paolizzi MS Access
Query con parametri
• Spesso è utile eseguire una query sulla base di un valore inserito di volta in volta dall’utente (PARAMETRO)
• Aprire la query in VISUALIZZAZIONE STRUTTURA
• In corrispondenza del campo opportuno, alla voce CRITERI inserire la richiesta parametro tra parentesi quadre [ ]
• Quando si eseguirà la query verrà richiesto il parametro
Ad esempio, anziché visualizzare tutti i film con genere=‘western’ si vogliono visualizzare tutti film di
genere= valore inserito da utente
romantico
77Ing. M.Paolizzi MS Access
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;
78Ing. M.Paolizzi MS Access
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
24/10/2010
mm.ss 27
79Ing. M.Paolizzi MS Access
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.
80Ing. M.Paolizzi MS Access
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
81Ing. M.Paolizzi MS Access
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;
24/10/2010
mm.ss 28
82Ing. M.Paolizzi MS Access
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.
83Ing. M.Paolizzi MS Access
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
84Ing. M.Paolizzi MS Access
Creare una query in MS Access 2007
• i pulsanti di riferimento sono – Scheda CREA
– gruppo ALTRO
• Le possibilità sono:– Creazione guidata query
– Struttura query
24/10/2010
mm.ss 29
85Ing. M.Paolizzi MS Access
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).
86Ing. M.Paolizzi MS Access
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)
87Ing. M.Paolizzi MS Access
Creare la maschera (2003) - 1
• Dalla finestra oggetti selezionare MASCHERE
• Selezionare CREA MASCHERA ATTRAVERSO UNA CREAZIONE GUIDATA
24/10/2010
mm.ss 30
88Ing. M.Paolizzi MS Access
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
89Ing. M.Paolizzi MS Access
Creare la maschera(2003) - 3
• Selezionare un layout da applicare alla maschera
• Premere AVANTI
• Inserire il nome per la maschera
• Premere FINE
90Ing. M.Paolizzi MS Access
Modificare la maschera(2003) - 1• Campi poco
distanziati e confusamente posizionati
• Dimensioni “disarmoniche”
• Colore “spento”
• Click destro sulla maschera
• Aprire la maschera in VISUALIZZAZIONE STRUTTURA
24/10/2010
mm.ss 31
91Ing. M.Paolizzi MS Access
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
92Ing. M.Paolizzi MS Access
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
93Ing. M.Paolizzi MS Access
Modificare la maschera(2003) - 4
• Modifichiamo i font– Doppio click sinistro
sulla etichetta
– Si apre la finestra delle proprietà
– Linguetta FORMATO
– Modificare :COLORE PRIMO PIANO
TIPO CARATTERE
DIMENSIONE CARATTERE
ETC.
24/10/2010
mm.ss 32
94Ing. M.Paolizzi MS Access
Modificare la maschera(2003) - 5
• Cambiamo lo sfondo– Click destro sullo sfondo
(CORPO)
– Selezionare PROPRIETA’
– Linguetta FORMATO
– Modificare COLORE E SFONDO
95Ing. M.Paolizzi MS Access
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
96Ing. M.Paolizzi MS Access
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
24/10/2010
mm.ss 33
97Ing. M.Paolizzi MS Access
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à.
98Ing. M.Paolizzi MS Access
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
99Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 34
100Ing. M.Paolizzi MS Access
Dati dei Report
• Le informazioni presentate nei report possono provenire da:– Tabelle
– Query
• Altre informazioni (intestazioni, titoli, etc.) possono essere inserite nella struttura.
101Ing. M.Paolizzi MS Access
Creazione di un Report - 1
• Al solito si può utilizzare:– Visualizzazione struttura
– Creazione guidata
102Ing. M.Paolizzi MS Access
Creazione di un Report - 2
• Selezionare la tabella
• Selezionare i campi
• Ripetere per tutte le tabelle che occorrono
• Premere AVANTI
24/10/2010
mm.ss 35
103Ing. M.Paolizzi MS Access
Creazione di un Report - 3
• Stabilire la gerarchia dei campi (ordine di raggruppamento)
• Indicare le priorità desiderate
• Premere AVANTI
104Ing. M.Paolizzi MS Access
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
105Ing. M.Paolizzi MS Access
Creazione di un report - 6
• Scegliere il layout
• Scegliere l’orientamento
• Premere AVANTI
24/10/2010
mm.ss 36
106Ing. M.Paolizzi MS Access
Creare un report - 7
• Scegliere lo stile
• Premere AVANTI
107Ing. M.Paolizzi MS Access
Creazione di un Report - 7
• Attribuire un nome al report
• Selezionare VISUALIZZA ANTEPRIMA
• Premere FINE
108Ing. M.Paolizzi MS Access
Creazione di un Report - 8
24/10/2010
mm.ss 37
109Ing. M.Paolizzi MS Access
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.
110Ing. M.Paolizzi MS Access
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.
111Ing. M.Paolizzi MS Access
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.
24/10/2010
mm.ss 38
112Ing. M.Paolizzi MS Access
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
113Ing. M.Paolizzi MS Access
Prima forma normale
• Se una tabella contiene più campi dello stesso tipo, allora è meglio spostare tali campi in una tabella dedicata
Esempio:
• Non si possono inserire più di tre attori
• Se gli attori sono meno di tre si ha spreco di spazio
Id_film Titolo genere anno
Attore 1
Attore 2
Attore 3
114Ing. M.Paolizzi MS Access
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 Titolo genere anno Id_genere
genere
24/10/2010
mm.ss 39
115Ing. M.Paolizzi MS Access
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
116Ing. M.Paolizzi MS Access
• Esercizio…esercizio…esercizio!!!!
FINE